Reversing an polynomial equation y = f(x) to x = f(y)

조회 수: 96 (최근 30일)
Hazem Elgabra
Hazem Elgabra 2012년 5월 13일
편집: John D'Errico 2023년 2월 19일
I'm trying to reverse a 3rd order equation using matlab, ie: y = x^3 + x^2 + x^1 + 5 to x = f(y) I just don't know if there's an already built it function in matlab for such a task.
Thank you...
  댓글 수: 2
Khalid Alshumayri
Khalid Alshumayri 2023년 2월 19일
Did you find anything ?
John D'Errico
John D'Errico 2023년 2월 19일
편집: John D'Errico 2023년 2월 19일
@Khalid Alshumayri - did you understand the answers? This is mathematically impossible in general, certainly for polynomials of higher degree than 4. Even for lower polynomials, at best you would need to use a root finder, something like solve. There will be no single valued function you can formulate as the inverse function for most polynomials. And even if the inverse does technically exist if the polynomial is monotonic, the solution is still rather a messy one, even for 3rd or degree polynomials, involving radicals and complex numbers. Note that even degree polynomials will NEVER be monontonic functions.

댓글을 달려면 로그인하십시오.

답변 (2개)

Walter Roberson
Walter Roberson 2012년 5월 13일
polynomials of degree 2 or higher cannot be inverted to give a polynomial.
The inverse of the particular polynomial you indicate is the union of three expressions.
If you have the symbolic toolbox, you can use solve()

Marcin Konowalczyk
Marcin Konowalczyk 2017년 11월 1일
@Walter is right, but what you can do is approximate them using, for example, this function. This works only in a small domain where your polynomial is well conditioned (monotonically increasing) and fails horribly otherwise, but for certain cases (see the docstring of the linked function) it is useful.

카테고리

Help CenterFile Exchange에서 Polynomials에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by