Parametric solution to non-linear equation
조회 수: 14 (최근 30일)
이전 댓글 표시
Hi all! I have a (very long) non-linear equation with unknown x1,...,x8. I tried to use "solve(eqn,x1)" to get the parametric solution x1=f(x2,...,x8), but I get "Cannot find explicit solution". In the equation I have terms like x1^2, x1^3, x1^4,... The simplest reason for that could be that the formula is more than 25000 characters :D The final purpose is to solve an 8-equations system, with x1,...,x8 unknown.
Can anybody help me?
Thank you so much for your help
Federico
댓글 수: 0
답변 (1개)
Walter Roberson
2016년 8월 23일
If your equations contains any trig functions, you probably will not be able to find a closed form solution. Also if your equations contain the sum of exponentials with more than two exponentials then you will probably not be able to find a closed form solution (and even two exponentials cannot usually be found as a closed form solution.) If your equation contains fractional powers then typically you would not be able to find a closed form solution.
If your equations are multinomials (that is, polynomials in several variables) then you might be able to find a solution for up to four of the variables (possibly), but if the maximum total degree of your terms exceeds 4 then you probably will not be able to get an explicit expression, and even total degree 4 typically ends up with something too complex to be usable. You indicated that you have x1^4: there are closed form solutions for quartics, but they are silly long and essentially useless for practical purposes.
You might be able to help it along by using the MaxDegree option to solve()
You should probably use fsolve() instead, especially in combination with any bounds that you know (for example, if you know that x1 is real and positive and less than 10000? If so then that can help a lot in finding solutions.)
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Linear Algebra에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!