如何用matlab解一元三次方程0=x^3-6*x^2+9*x-9谁能给出详细的过程和结果?Undefined function or method 'solve' for input arguments of type 'char

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 22:42:46

如何用matlab解一元三次方程0=x^3-6*x^2+9*x-9谁能给出详细的过程和结果?Undefined function or method 'solve' for input arguments of type 'char
如何用matlab解一元三次方程
0=x^3-6*x^2+9*x-9
谁能给出详细的过程和结果?
Undefined function or method 'solve' for input arguments of type 'char

如何用matlab解一元三次方程0=x^3-6*x^2+9*x-9谁能给出详细的过程和结果?Undefined function or method 'solve' for input arguments of type 'char
>> solve('x^3-6*x^2+9*x-9')
ans =
1/(45^(1/2)/2 + 7/2)^(1/3) + (45^(1/2)/2 + 7/2)^(1/3) + 2
2 - (45^(1/2)/2 + 7/2)^(1/3)/2 - (3^(1/2)*i*(1/(45^(1/2)/2 + 7/2)^(1/3) - (1/2*45^(1/2) + 7/2)^(1/3)))/2 - 1/(2*(45^(1/2)/2 + 7/2)^(1/3))
(3^(1/2)*i*(1/(45^(1/2)/2 + 7/2)^(1/3) - (1/2*45^(1/2) + 7/2)^(1/3)))/2 - (45^(1/2)/2 + 7/2)^(1/3)/2 - 1/(2*(45^(1/2)/2 + 7/2)^(1/3)) + 2
>> roots([1 -6 9 -9])
ans =
4.4260
0.7870 + 1.1891i
0.7870 - 1.1891i

%数值解
roots([1 -6 9 -9])
%解析解
syms x
solve(x^3-6*x^2+9*x-9)

谁能编程用MATLAB解一元三次方程
能帮我用MATLAB编个程序解个一元三次方程么?
方程为想x^3+a*x^2-b=0
我知道用solve很容易解 但是我是想能用一个程序一运行就是输入a,b的值,然后直接出结果。不用每次都自己再输入SOLVE(x^3+a*x^2-b)
我想很简单 就是自己还刚接触还不会 希望大家给帮个忙,
问题补充:这...

全部展开

谁能编程用MATLAB解一元三次方程
能帮我用MATLAB编个程序解个一元三次方程么?
方程为想x^3+a*x^2-b=0
我知道用solve很容易解 但是我是想能用一个程序一运行就是输入a,b的值,然后直接出结果。不用每次都自己再输入SOLVE(x^3+a*x^2-b)
我想很简单 就是自己还刚接触还不会 希望大家给帮个忙,
问题补充:这怎么会很难 ,只要你定义一下变量,在用输入语句,在把定义的输入变量赋值给 A,B就可以了 你可别来骗我 ,我就是想让大家来帮忙,
要是你感觉很难 那就不用你帮了 ,我可怕浪费你时间。
]可是我不会 ,因为我学的是C
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function x=mysolve3(a,b)
%%求解x^3+a*x^2-b=0的解
p=(-a*a)/3;
q=(2*a^3+27*(-b))/27;
D=(p/3)^3+(q/2)^2;
if (D>=0)
temp=-q/2+sqrt(D);
if (temp>0) u=(temp)^(1/3); else u=-(-temp)^(1/3); end
temp=-q/2-sqrt(D);
if (temp>0) v=(temp)^(1/3); else v=-(-temp)^(1/3); end
y(1)=u+v;
y(2)=-(u+v)/2+i*sqrt(3)*(u-v)/2;
y(3)=-(u+v)/2-i*sqrt(3)*(u-v)/2;
else
temp=acos(-q/2*(-p/3)^-1.5);
y(1)=2*sqrt(-p/3)*cos(temp/3);
y(2)=-2*sqrt(-p/3)*cos((temp+pi)/3);
y(3)=-2*sqrt(-p/3)*cos((temp-pi)/3);
end
x=y-a/3;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
在Matlab下面输入:
mysolve3(1,3)
得到三个解
你可以通过vpa(solve('x^3+x^2-3'),5)进行检验

收起

把你方程的系数降幂排列,写成一个向量,利用roots命令即可。
>> p=[1,-6,9,-9];roots(p)
ans =
4.4260e+000
7.8701e-001 +1.1891e+000i
7.8701e-001 -1.1891e+000i