how to find a roots of a cubic equation in matlab?

Answers (1)

Andrei Bobrov
Andrei Bobrov on 25 Feb 2012

0 votes

please read about function roots
or use function solve from Symbolic Math Toolbox
eg
use roots
%polynomial x^3-6*x^2-50*x-4
p = [1 -6 -50 -4]
out = roots(p)
use solve and Symbolic Math Toolbox
syms x
out2 = solve(x^3-6*x^2-50*x-4)
vpa(out2,6)
on Nasir comment
out = zeros(3,...);
for j1 = 1:....
B = ...
A = ...
out(:,j1) = roots([1, B-1, A-3*B^2, A*B-B^2-B^3]);
end

5 Comments

Nasir Qazi
Nasir Qazi on 25 Feb 2012
if I have equation like this
Z^3 +(B-1)Z^2 +(A-3B^2)Z -(AB-B^2-B^3)=0
where the values of A & B are varies in iteration .
in that case how can I calculate the Roots ?
Walter Roberson
Walter Roberson on 25 Feb 2012
Careful, there would be three roots for each cubic, so you would not be able to store the output of roots() in to a single array location out(j1)
Andrei Bobrov
Andrei Bobrov on 25 Feb 2012
Thank you Walter! Corrected.
Nasir Qazi
Nasir Qazi on 27 Feb 2012
I have a condition of trail and error which will repeat the process of roots find after a condition of error checking , but after 10 iteration it give me a error , root input cannot be inf or nan , where exactly do I have a fault in the coding ... ?
Walter Roberson
Walter Roberson on 27 Feb 2012
I think we would need to see the code.

Sign in to comment.

Categories

Tags

Asked:

on 25 Feb 2012

Edited:

on 25 Oct 2013

Community Treasure Hunt

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

Start Hunting!