Need some help with an odd output with solve
2 views (last 30 days)
Show older comments
Hello, first time asking a question here. I am having a bizarre output when I try to use solve, and would like some help.
Here is the code:
syms x
eqn = (1315.2/(8.22-x))+(895.4/(2.42-x))+(240/(1-x))+(9.45/(0.378-x))+(0.75/(0.15-x))==800;
solx=solve(eqn,x)
And here is the output:
solx =
0
root(z^4 - (2273*z^3)/250 + (63332491*z^2)/4000000 - (1367320551*z)/200000000 + 721613169/1000000000, z, 1)
root(z^4 - (2273*z^3)/250 + (63332491*z^2)/4000000 - (1367320551*z)/200000000 + 721613169/1000000000, z, 2)
root(z^4 - (2273*z^3)/250 + (63332491*z^2)/4000000 - (1367320551*z)/200000000 + 721613169/1000000000, z, 3)
root(z^4 - (2273*z^3)/250 + (63332491*z^2)/4000000 - (1367320551*z)/200000000 + 721613169/1000000000, z, 4)
I don't know if it's a problem with the code, or with my computer, but I'm unsure of what the z's in the solution correlate to. I'm also wondering if I can output the solution as just numbers, rather than these roots.
Thank you for answering, in advance.
0 Comments
Accepted Answer
Star Strider
on 7 May 2016
Use the vpasolve function to get numerical output:
syms x
eqn = (1315.2/(8.22-x))+(895.4/(2.42-x))+(240/(1-x))+(9.45/(0.378-x))+(0.75/(0.15-x))==800;
solx=vpasolve(eqn,x)
solx =
0
0.1585817446596710456915191570641
0.41963427877318302442907239553912
1.5592338740562100917600813995941
6.9545501025109358381193270478027
2 Comments
John BG
on 8 May 2016
Edited: John BG
on 8 May 2016
Why are you ignoring the imaginary part of the solution in the question?
The z in the answer is telling that the solutions have imaginary components.
You already have the answer, just to translate from symbolic to numerical:
vpa(solx)
ans =
0
0.1585817446596710456915191570641 + 5.4049015967984410970242199180548e-40i
0.41963427877318302442907239553912 - 6.0171382378517158407579368645247e-40i
1.5592338740562100917600813995941 + 3.0611832052663737186685847323496e-41i
6.9545501025109358381193270478027 + 3.0611832052663737186685847323496e-41i
If you find this answer of any help solving your question,
please click on the thumbs-up vote link,
thanks in advance
John
Star Strider
on 8 May 2016
Interesting that vpasolve returned different results than vpa(solx). The imaginary parts are vanishingly small, and likely the result of computational inaccuracies.
More Answers (2)
Walter Roberson
on 8 May 2016
double(solx)
Or,
solx = solve(eqn, x, 'MaxDegree', 4)
but be warned this is going to give you quite long solx.
0 Comments
Shashwat Singh
on 3 Sep 2021
(((80000000*root(z^6 - (16200801*z^4)/10000 + 16924119873732035442801/40000000000000000, z, 1)^2)/160801 - (800000000000*root(z^6 - (16200801*z^4)/10000 + 16924119873732035442801/40000000000000000, z, 1)^4)/2605105001601 + 8000)*((40000000000*root(z^6 - (16200801*z^4)/10000 + 16924119873732035442801/40000000000000000, z, 1)^4)/2605105001601 - (4000000*root(z^6 - (16200801*z^4)/10000 + 16924119873732035442801/40000000000000000, z, 1)^2)/160801 + 40401/100))/(((40000000000*root(z^6 - (16200801*z^4)/10000 + 16924119873732035442801/40000000000000000, z, 1)^4)/2605105001601 - (4000000*root(z^6 - (16200801*z^4)/10000 + 16924119873732035442801/40000000000000000, z, 1)^2)/160801 + 40401/100)^2 - (40401*((1000000000*root(z^6 - (16200801*z^4)/10000 + 16924119873732035442801/40000000000000000, z, 1)^4)/2605105001601 - (100000*root(z^6 - (16200801*z^4)/10000 + 16924119873732035442801/40000000000000000, z, 1)^2)/160801 + 10)^2)/25)^(1/2)
0 Comments
See Also
Categories
Find more on Assumptions 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!