Need to solve the roots from a large equation
1 次查看(过去 30 天)
显示 更早的评论
2*k - 2*k*n + (8*k^7*n^4 - 24*k^5*n^3 + 16*k^3*la^2*n^2 + 16*k^3*n^2 - 32*k*la^2*n + 32*k*la^2)/(4*(k^8*n^4 - 4*k^6*n^3 + 4*k^4*la^2*n^2 + 4*k^4*n^2 - 16*k^2*la^2*n + 16*k^2*la^2 + 16*la^2)^(1/2)) + 2*k^3*n^2==0
How can find the value of k from here?
we have to express k in terms of n, la and number.
Thanks in advance.
0 个评论
回答(2 个)
Star Strider
2020-4-3
Use the correct values for ‘la’ and ‘n’, then this:
syms k
la = 42;
n = pi;
Eqn = 2*k - 2*k*n + (8*k^7*n^4 - 24*k^5*n^3 + 16*k^3*la^2*n^2 + 16*k^3*n^2 - 32*k*la^2*n + 32*k*la^2)/(4*(k^8*n^4 - 4*k^6*n^3 + 4*k^4*la^2*n^2 + 4*k^4*n^2 - 16*k^2*la^2*n + 16*k^2*la^2 + 16*la^2)^(1/2)) + 2*k^3*n^2==0;
Sk = solve(Eqn)
k = vpa(Ss)
Walter Roberson
2020-4-3
You will not be able to do that.
If you normalize into numerator / denominator form, then you can extract the numerator, because in the form A/B = 0, in order for A/B to be 0, A must be 0 or B must be +/- infinity.
Now take the numerator and substitute k=sqrt(K) and simplify. You will get something of the form 2 * (polynomial in K) * sqrt(K) = 0 . This has a solution when K = 0, and with k=sqrt(K) that implies a solution at k=0 . But that is a trivial solution. For the nontrivial solution, you need to solve the polynomial for K.
Unfortunately the polynomial is degree 5 in K (the original polynomial for k was degree 10 using only even powers; the substitution to create K gets it down to degree 5). And unfortunately there is no closed form solution for most polynomials of degree 5.
You can construct a placeholder, list the coefficients of the polynomial of degree 5, but you cannot solve symbolically.
For example for n=3, la=7 you end up trying to solve
1458*K^5 - 2349*K^4 + 17064*K^3 - 746352*K^2 + 671104*K - 150528
which can be done numerically but not in closed form.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Polynomials 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!