How to find roots of a quartic function with unknown constant coefficients?
Show older comments
The polynomial is:
x^4 + 10.1ax^3 + 1.81x^2 + 9ax + 0.81 = 0
where a is an unkown constant coefficient.
I have to find the corresponding x values to further solve an ODE.
Answers (2)
James Tursa
on 28 Nov 2023
Edited: James Tursa
on 28 Nov 2023
0 votes
You can look here:
But the nature of the roots is going to depend on the value of a. Do you know anything at all about a? What is the context of the overall problem you are solving? What is the ODE?
syms x a
p = x^4 + 10.1*a*x^3 + 1.81*x^2 + 9*a*x + 0.81;
sol = solve(p==0,'MaxDegree',4)
vpa(subs(sol,a,1)) % E.g. for a = 1
1 Comment
Walter Roberson
on 29 Nov 2023
Edited: Walter Roberson
on 29 Nov 2023
The roots get complicated and fragile
filename = fullfile(tempdir, 'sol.m');
addpath(tempdir);
syms x a
p = x^4 + 10.1*a*x^3 + 1.81*x^2 + 9*a*x + 0.81;
sol = solve(p==0);
solF = matlabFunction(sol, 'file', filename)
A = linspace(-1/2,1/2,200);
Y = cell2mat(arrayfun(solF, A, 'uniform', 0));
figure();
plot(A, real(Y(1,:)), A, real(Y(2,:)), A, real(Y(3,:)), A, real(Y(4,:)));
legend({'1 real', '2 real', '3 real', '4 real'})
figure();
plot(A, imag(Y(1,:)), A, imag(Y(2,:)), A, imag(Y(3,:)), A, imag(Y(4,:)));
legend({'1 imag', '2 imag', '3 imag', '4 imag'})
Categories
Find more on Calculus 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!



