How to solve forth order Polynomial (equation) with one independent variable and two constants.

18 views (last 30 days)
Dear MATLAB experts,
I have an forth order polynomial (equation) as follow:
(A^2*y^4) + (4*x*A^2*y^3) + ((4*B-4-2*A^2)*y^2) + ((8-8*x-4*A^2*x)*y) + (8*x-4+A^2-4*x^2*B) = 0;
Where, A and B are constants and y is function of x. The independent variable x varies between 0 and 1 (0<=x<=1).
My questions are:
  1. Is there any way to define A and B as a constants instead of set them as a numbers since the equation is to be used in iterative code and thus A and B change from time to time.
  2. Need to find the function y=f(x).
I have tried
The MATLAB version i have is 7.10.0 (R2010a), but not an issue if answers in newer version.
I really appreciate any suggestions
Thank you

Answers (1)

Walter Roberson
Walter Roberson on 1 Feb 2016
If you have the Symbolic Toolbox, you can use
syms A B x y
sol := solve(Equation, y);
The solution you get will be a RootOf() a quartic (polynomial of order 4), so there are 4 solutions, some of which might be imaginary at portions of the range x = 0 to 1. You can convert this to a function by using
Y = matlabFunction(sol, 'vars', [x A B]);
after which Y will be a function handle of a function that takes 3 parameters in the order x, A, B, and which should accept a vector of x values.

Sign in to comment.


Find more on Polynomials 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!