如何用matlab来求解一元三次方程

如题所述

把你方程的系数降幂排列,写成一个向量,利用roots命令即可。

>> p=[1,-6,9,-9];roots(p)

ans =

4.4260e+000

7.8701e-001 +1.1891e+000i

7.8701e-001 -1.1891e+000i

扩展资料

MATLAB线性方程求解

a为m*n的系数矩阵。

Ø    m=n,该方程为“恰定”方程

Ø    m>n,该方程为“超定”方程

Ø    m<n,该方程为“欠定”方程

(1)恰定方程求解

方程ax+b(a为非奇异)

x=a-1 b

两种解:

①x=inv(a)*b 采用求逆运算解方程; 

②x=a\b    采用左除运算解方程。     

(2)超定方程求解

方程 ax=b ,m>n时此时不存在唯一解。

方程解 (a'a)x=a'b  

①x=(a'a)-1 a'b ——求逆法;       

②x=a\b  matlab用最小二乘法找一个准确地基本解。    

(3)欠定方程求解

当方程数少于未知量个数时,即不定情况,有无穷多个解存在。

matlab可求出两个解:

①用除法求的解x是具有最多零元素的解;

②是具有最小长度或范数的解,这个解是基于伪逆pinv求得的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-11-16
对于一般的一元三次方程可以直接solve()函数命令求解。
例如:x^3-2x^2-5x+6=0
>> x=solve('x^3-2*x^2-5*x+6=0','x') %回车
x = 1; -2; 3 计算结果
>> x=solve('sin(x)^3-2*sin(x)^2-5*sin(x)+6=0','x')
x = 1/2*pi; -asin(2); asin(3)本回答被网友采纳
第2个回答  2009-09-30
谁能编程用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)进行检验
第3个回答  2017-03-04
在matlab ”Command Window"中输入如下命令:
x=solve('你的方程','x')
然后点回车就可以解出答案啦
第4个回答  2009-09-30
>> 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

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

用matlab解一元三次方程的步骤是什么?
1、首先看一下matlab求解方程的方法,指明所解方程的变量,然后指明方程,未知数和限制条件,最后求解方程。2、来求解sin(x)=1方程,在matlab命令行窗口中输入symsx [x,params,conds]=solve (sin(x)==1,'ReturnConditions', true) ,按回车键可以得到方程解,如下图所示。3、转换一下,可以看到sin...

用MATLAB怎样求解一元三次方程呢?
在MATLAB的Command Window中输入:x=solve('x^2+100*x+99=0','x'),然后按回车键。MATLAB就会求出方程的解。用MATLAB解一元三次方程的步骤如下:在MATLAB的Command Window中输入方程,例如:x^3+1=0。在MATLAB的Command Window中输入:x=solve('x^3+1=0','x'),然后按回车键。MATLAB就会...

怎么用MATLAB求解一元三次方程?为Ax^3+Bx^2+Cx+D=0这种模式的?_百度...
A=1;B=2;C=3;D=4; %这是具体的取值, 改成你想要的.x0=subs(x) %这是A, B, C, D取上边的值以后得到的数值解.输出三个不同的解:x =

matlab怎么解一元三次方程
在matlab ”Command Window"中输入如下命令:x=solve('你的方程','x')然后点回车就可以解出答案啦

matlab怎么解一元三次方程
在matlab ”Command Window"中输入如下命令:x=solve('你的方程','x')然后点回车就可以解出答案啦

怎么用matlab解一元三次方程?
z=-1开6次方根 将z在复平面看成一个圆,r为根号下(-1^2+0^2)=1,θ=arctan(y\/x)=arctan(0\/-1)可以确定θ=-π。根据复变函数方根公式:-1开6次方根 = r·[cos(θ+2kπ\/n)+ i·sin(θ+2kπ\/n)] = 1·[cos(-π+2kπ\/6)+ i·sin(-π+2kπ\/6)]且k = ...

怎么用MATLAB求解一元三次方程
用roots函数,例如 clc;clear syms x f=x^3-6*x^2+11*x-6 p=sym2poly(f)x=roots(p)结果:f = x^3-6*x^2+11*x-6 p = 1 -6 11 -6 x = 3.0000 2.0000 1.0000

怎么用MATLAB解带参数的一元三次方程
2、可以用根轨迹分析的方法得出,方程有三个实数解的条件并非0<t<0.25,而是 |t| ≤ sqrt(27\/256),对于临界点 t≈0.3248,对应的三个根为 [ 3\/4, -3\/8, 3\/4]。根轨迹分析的基本思路是,令 K= t^2,则可以用 s=tf('s');rlocus(16\/(8*s^3-9*s^2))画出方程根随K=0→...

怎么用matlab求解一元三次方程f(S) =16.56S^3 + 12.42S^2 + 10.67...
fzero(@(x) (16.56*x.^3 + 12.42*x.^2 + 10.672*x + 0.84),0)得出解-0.0864。x=-10:0.1:10;plot(x,16.56*x.^3 + 12.42*x.^2 + 10.672*x + 0.84);可以画图。

相似回答