How to find roots of a quartic function with unknown constant coefficients?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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.
0 comentarios
Respuestas (2)
James Tursa
el 28 de Nov. de 2023
Editada: James Tursa
el 28 de Nov. de 2023
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?
Torsten
el 28 de Nov. de 2023
Editada: Torsten
el 28 de Nov. de 2023
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 comentario
Walter Roberson
el 29 de Nov. de 2023
Editada: Walter Roberson
el 29 de Nov. de 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'})
Ver también
Categorías
Más información sobre Histograms en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!