Solve returning root but doesn't give a numerical expression.
조회 수: 22 (최근 30일)
이전 댓글 표시
Hello ! I'm actually using the function " solve ", but instead of returning an expression, i get the following : "
9
root(z^4 - (10*z^3)/9 - z^2/6561 - z/729 - 91/6561, z, 1)
root(z^4 - (10*z^3)/9 - z^2/6561 - z/729 - 91/6561, z, 2)
root(z^4 - (10*z^3)/9 - z^2/6561 - z/729 - 91/6561, z, 3)
root(z^4 - (10*z^3)/9 - z^2/6561 - z/729 - 91/6561, z, 4)
These are indeed the solutions, but why it doesn't express it ? If i use the function " roots " with a vector with the above coefficient, it gives me the solution numerically. Anyone have a way to either get the answer numerically, or to extract the coeffcient of the above expression automatically ? In any case, here is the simple code :
clear all
syms a
b=9;h=0.1;
t2=a^4*b^3-b-h*(b^3-b^5*a^4)-(b^4*a^3-a-h*(a^3-b^4*a^5))
sol=solve(t2,a)
Thanks !
댓글 수: 0
채택된 답변
Walter Roberson
2016년 4월 28일
sol = solve(t2, a, 'MaxDegree', 4)
You should consider the possibility that you are using the wrong tool. solve() is for finding exact solutions. Your h is a floating point number rather than being 1/sym(10), which suggests that you are not interested in exact solutions. You should be giving consideration to using vpasolve() instead of solve()
추가 답변 (1개)
pepe
2019년 12월 23일
I have had a similar version dependent exprience. My code is:
syms x
solve(x^3+x-1==0)
In Matlab 2019 it produces the useless root() output that you also mentioned. But in MATLAB 2014 it produces a nicer result comprised of fractions and sums of numbers;...so I recommend you also give it a try using an old version of MATLAB.
good luck
پویا پاکاریان
پویاپاکاریان
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Calculus에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!