How to solve a equation that appears z2
16 views (last 30 days)
Show older comments
Hey, I have this equation to find a solution:
I defined this equation:
eqn = ((Sig) + (E*(Sig^(const_1))/const_2) - aux == 0)
And the solve I am using this function:
resp = solve(eqn, Sig)
But in Command Windows appears this message: Warning: Solutions are parameterized by the symbols: z2. To include parameters and conditions in the solution, specify the 'ReturnConditions' value as 'true'.\
Well I search about it and I changed my solve:
resp = solve(eqn, Sig,'ReturnConditions',true)
and the answer is
Why don't I have the exact number that solves this equation? Solving by hand, I found that the variable Sig is equal to 452.
3 Comments
Walter Roberson
on 22 Jul 2018
yogan, it would help if you posted your entire code including the assignments to const_1, const_2, E, and aux. That would make it easier to check our code for typing mistakes. It is easy to make typing mistakes when we type from images of numbers.
Answers (2)
Stephan
on 22 Jul 2018
Edited: Stephan
on 22 Jul 2018
Hi,
to get numeric solution use:
vpasolve(eqn,Sig)
after assigning values to the other variables.
Best regards
Stephan
3 Comments
Stephan
on 22 Jul 2018
Edited: Stephan
on 22 Jul 2018
Hi,
This is a good example why people should share code instead of pictures from their equations and values... i have tested the anwer i gave you, and checked it against the anwer from Walter. What should i say - i have didferent results in the values than both of you ;-)
But using my method i do not get a complex result, but the first result that is given by Walters method for finding all the solutions to your problem:
syms Sig
E = 6250;
const_1 = 59/9;
const_2 = 7496282746403319;
aux = 7180524015140341 / 17179869184;
eqn = ((Sig) + (E*(Sig^(const_1))/const_2) - aux == 0);
% my answer
stephan_sol = vpasolve(eqn,Sig)
resp = solve(eqn,Sig,'ReturnConditions',true);
% Walters answer
walter_sol = vpa(solve(resp.conditions).^9)
% same value for non complex numbers?
test = double(stephan_sol) == double(walter_sol(1))
So i do not really understand what gone wrong when you tried. But please share your values in a form that they can be copied and pasted to help prevend missunderstandings.
Best regards
Stephan
Walter Roberson
on 22 Jul 2018
I went back in my history, and I see now that I missed a '5' in the numerator for aux, so the 352 I came up with was wrong.
Walter Roberson
on 22 Jul 2018
What the solution is telling you is that eqn has multiple solutions, the 9th power of the set of all values z2 such that z2 satisfies what is in resp.conditions, which holds
z2^59 + (7496282746403319*z2^9)/6250 - 5382511036199773734618773191779/107374182400000 == 0 & -pi/9 < angle(z2) & angle(z2) <= pi/9
You can find the set of values, z2, by doing
sols = solve(resp.conditions)
which gives
ans =
root(z^59 + (7496282746403319*z^9)/6250 - 5382511036199773734618773191779/107374182400000, z, 1)
root(z^59 + (7496282746403319*z^9)/6250 - 5382511036199773734618773191779/107374182400000, z, 18)
root(z^59 + (7496282746403319*z^9)/6250 - 5382511036199773734618773191779/107374182400000, z, 19)
root(z^59 + (7496282746403319*z^9)/6250 - 5382511036199773734618773191779/107374182400000, z, 36)
root(z^59 + (7496282746403319*z^9)/6250 - 5382511036199773734618773191779/107374182400000, z, 37)
root(z^59 + (7496282746403319*z^9)/6250 - 5382511036199773734618773191779/107374182400000, z, 54)
root(z^59 + (7496282746403319*z^9)/6250 - 5382511036199773734618773191779/107374182400000, z, 55)
That is telling you that there are 7 solutions, each of which is one specific root of a degree 59 polynomial. And you will have to raise the solutions to the 9th power to get the values for Sig:
>> vpa(solve(resp.conditions).^9)
ans =
352.29770133833260627658225878862
202.91300541799526990732060006287 - 288.23117984225839253005502676133i
202.91300541799526990732060006287 + 288.23117984225839253005502676133i
- 119.3187617653193655735413104768 - 332.12514661176155734260244429285i
- 119.3187617653193655735413104768 + 332.12514661176155734260244429285i
- 340.71523389147595562891628070432 - 93.040015788380995959327750986162i
- 340.71523389147595562891628070432 + 93.040015788380995959327750986162i
1 Comment
Walter Roberson
on 22 Jul 2018
Edited: Walter Roberson
on 22 Jul 2018
Corrected code:
syms Sig
E = sym(6250);
const_1 = sym(59)/sym(9);
const_2 = sym('7496282746403319');
aux = sym('7180524015140341') / sym('17179869184');
eqn = ((Sig) + (E*(Sig^(const_1))/const_2) - aux == 0)
resp = solve(eqn, 'returnconditions', true);
sols = solve(resp.conditions).^9;
vpa(sols)
ans =
501.11351786727628482805542566572
288.11758708793446267122185621152 - 410.0513776055818614958938590984i
288.11758708793446267122185621152 + 410.0513776055818614958938590984i
- 169.95773946380078795972790346387 - 471.54242429792278622685006803953i
- 169.95773946380078795972790346387 + 471.54242429792278622685006803953i
- 483.62567000716230957508622467542 - 131.91490381694147143358175047123i
- 483.62567000716230957508622467542 + 131.91490381694147143358175047123i
See Also
Categories
Find more on Equation Solving in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!