matlab中怎么求多项式的解

作者&投稿:赏祥 (若有异议请与网页底部的电邮联系)
如何用Matlab进行多项式除法运算~

1、鼠标右击打开桌面上的matlab程序,如下图所示,matlab运行需要一定的时间,不要着急。

2、除法运算的调用:调用格式如下:【k,r】=deconv(p,q)其中k返回的是多项式p初以q的商,r是余式。

3、输入程序:clear all关闭所有正在运行的程序,这个是很重要的。

4、下面我们以两组向量为例子作为演示程序:p1=[2 3 4 0 -2];p2=[0 0 8 -5 6];注意向量的表达的方法,注意其的格式。

5、输入程序:p=p1+p2;poly2sym(p)先令成一个向量p,做求和;poly2sym(p)函数我们之前说过,是一种创建向量的方法。

syms a b c d x;
p=a*x^2+c*x+c+d*x;
t=coeffs(p,x);
t(2)
%%%%
输出结果
=
c+d
即为所得。
coeffs(p,x)的结果是按照变量的幂来排列的。
如上t(1) 为常系数c,t(2)为x的系数,t(3)为x^2的系数。

用MATLAB解方程的三个实例
1、对于多项式p(x)=x3-6x2-72x-27,求多项式p(x)=0的根,可用多项式求根函数roots(p),其中p为多项式系数向量,即
>>p =
p =
1.00 -6.00 -72.00 -27.00
p是多项式的MATLAB描述方法,我们可用poly2str(p,'x')函数 ,来显示多项式的形式:
>>px=poly2str(p,'x')
px =x^3 - 6 x^2 - 72 x - 27
多项式的根解法如下:
>> format rat %以有理数显示
>> r=roots(p)
r =
2170/179
-648/113
-769/1980
2、在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为:solve(s,v):求解符号表达式s的代数方程,求解变量为v。
例如,求方程(x+2)x=2的解,解法如下:
>> x=solve('(x+2)^x=2','x')
x =
.69829942170241042826920133106081
得到符号解,具有缺省精度。如果需要指定精度的解,则:
>> x=vpa(x,3)
x =
.698
3、使用fzero或fsolve函数 ,可以求解指定位置(如x0)的一个根,格式为:x=fzero(fun ,x0)或x=fsolve(fun,x0)。例如,求方程0.8x+atan(x)-=0在x0=2附近一个根,解法如下:
>> fu=@(x)0.8*x+atan(x)-pi;
>> x=fzero(fu,2)
x =
2.4482

>> x=fsolve('0.8*x+atan(x)-pi',2)
x =
2.4482
________________________________________
当然了,对于该方程也可以用第二种方法求解:
>> x=solve('0.8*x+atan(x)-pi','x')
x =
2.4482183943587910343011460497668
对于第一个例子,也可以用第三种方法求解:
>> F=@(x)x^3-6*x^2-72*x-27
F =
@(x)x^3-6*x^2-72*x-27
>> x=fzero(F,10)
x =
12.1229
对于第二个例子,也可以用第三种方法:
>> FUN=@(x)(x+2)^x-2
FUN =
@(x)(x+2)^x-2
>> x=fzero(FUN,1)
x =
0.6983
 
最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵 ,非奇异)的求解,MATLAB中有两种方法:
(1)x=inv(A)*b — 采用求逆运算解方程组;
(2)x=A\b — 采用左除运算解方程组。
例:
x1+2x2=8
2x1+3x2=13
>>A=;b=;
>>x=inv(A)*b
x =
2.00
3.00
>>x=A\b
x =
2.00
3.00;
即二元一次方程组的解x1和x2分别是2和3。
对于同学问到的用matlab 解多次的方程组,有符号解法,方法是:先解出符号解,然后用vpa(F,n)求出n位有效数字的数值解.具体步骤如下:
第一步:定义变量syms x y z ...;
第二步:求解=solve('eqn1','eqn2',...,'eqnN','var1','var2',...'varN');
第三步:求出n位有效数字的数值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);...。
如:解二(多)元二(高)次方程组:
x^2+3*y+1=0
y^2+4*x+1=0
解法如下:
>>syms x y;
>>=solve('x^2+3*y+1=0','y^2+4*x+1=0');
>>x=vpa(x,4);
>>y=vpa(y,4);
结果是:
x =
1.635+3.029*i
1.635-3.029*i
-.283
-2.987
y =
1.834-3.301*i
1.834+3.301*i
-.3600
-3.307。


Matlab怎么计算定积分
2、在编辑器中输入指令:function f=f(x);f=exp(2*x).*sin(x+pi\/3);(注意,用 .* )3、保存函数文件到自己的工作路径,比如G:\\matlab\\work。输入指令:cd G:\\matlab\\work,是该路径成为当前路径。4、matlab中计算积分的两种指令:1.F=quad('fname',a,b,tol,trace) Simpson数值...

如何在matlab中用最小二乘法拟合的方式求解方程系数?
如何在matlab中用最小二乘法拟合的方式求解 y=c1*z1+c2*z2+c3*z3 方程系数(c1,c2,c3)?我们可以按下列方法来求解:第一步,读取数据,z1、z2、z3和y,然后组成z数组向量,即z=[z1 z2 z3]第二步,自定义拟合函数,即 func=@(c,z)c(1)*z(:,1)+c(2)*z(:,2)+c(3)...

matlab 中矩阵怎么求所有元素的和
可先求列和,然后将列和组成的向量转置,最后再对转置后的向量求列和。例对矩阵A求所有元素的和,可: sum((sum(A))')。 例: A =16 3 2 135 10 11 89 6 7 124 15 14 1 >> sum((sum(A))') ans = 136 matlab中小数取整的函数大约有四个:floor、ceil、round、fix 例如:若 A = [-2.0, ...

matlab中知道正弦函数的实部怎么求虚部
matlab中知道正弦函数的实部怎么求虚部:1:打开软件 2:编辑所需要的信息 3:然后编辑好了之后确认,点击右上角的设置中心 4:在设置中心里面找到信息就可以了

matlab中如何求矩阵的特征值和特征向量
具体步骤分析如下:1、第一步我们首先需要知道计算矩阵的特征值和特征向量要用eig函数,可以在命令行窗口中输入help eig,查看一下eig函数的用法,如下图所示:2、第二步在命令行窗口中输入a=[1 2 3;2 4 5;7 8 9],按回车键之后,输入[x,y]=eig(a),如下图所示:3、第三步按回车键之后...

MATLAB中如何求幂函数,比如0.9的n次方,n=[-5:5]
1、首先双击matlab软件图标,打开matlab软件,可以看到matlab软件的界面。2、使用“0.1:0.1:5;”创建一维数组,表示从0.1到5,每隔0.1会取一个数字。这个一维数组用来作为一元一次函数的横坐标的数值。3、接着创建三个幂函数,分别是y1=x.^(1\/4); y2=x.^(1\/2); y3=x.^(3\/2)。4、...

matlab中,两个自变量的函数怎么求最大值(急!1) 请举例说明
需求:利用matlab求解二元函数 y=f(x1,x2)=(339-0.01*x1-0.003*x2)*x1 +(399-0.004*x1-0.01*x2)*x2-(400000+195*x1+225*x2) 的最大值 步骤:1、syms x1 x2;2、y=(339-0.01*x1-0.003*x2)*x1+(399-0.004*x1-0.01*x2)*x2-(400000+195*x1+225*x2) 得 y =...

matlab怎么求一元多次方程
用matlab求一元多次方程的s值,其中已知Eeq,Req,Xeq,KH是4×1的列向量。可以用for循环语句和vpasolve函数来求解,其实现方法:Eeq=[?;?;?;?]Req=[?;?;?;?]Xeq=[?;?;?;?]KH=[?;?;?;?]KL=?a=?;r2=?;x2=?;for n=1:4 syms s s0(n)=vpasolve(式9表达式==0);表达式中,...

matlab怎么解一元二次方程
B.解二元方程:【1】 首先来求一个二元一次方程组 9x+8y=10 式1 13x+14y=12 式2 一般的解法是代入法,或者加减消去法。比较繁琐。这里只需输入如下命令即可求出解:[x,y]=solve('9*x+8*y=10','13*x+14*y=12','x','y')【2】回车后,matlab就求出了这个二元一次方程组的...

matlab中怎么求一个复数的模
可以用abs()函数来求一个复数的模。即 abs(X) 等于 sqrt(real(X).^2 + imag(X).^2)例如:计算 3+4i 的模 >>abs(3+4i)ans = 5

四方区18358098589: 怎样有matlab解多项式方程 -
达奚视珠珀: 用MATLAB解方程的三个实例 1、对于多项式p(x)=x3-6x2-72x-27,求多项式p(x)=0的根,可用多项式求根函数roots(p),其中p为多项式系数向量,即 >>p = p =1.00 -6.00 -72.00 -27.00 p是多项式的MATLAB描述方法,我们可用poly2str(p,'x')函数 ...

四方区18358098589: 已知x如何求多项式的值 matlab -
达奚视珠珀:[答案] a=[1,2,3,1]; poly2sym(a) polyval(a,2) %求多项式在x=2的值 另一种,以符号变量 syms x y=x^3 + 2*x^2 + 3*x + 1; subs(y,x,2) %x=2的值

四方区18358098589: matlab中怎么用数据计算多项式 -
达奚视珠珀: Matlab中计算多项式的值的命令是polyval.具体用法如下:y = polyval(p,x) p为多项式从高位到低位的系数,x是待计算的变量.下面这个例子是计算p(x) = 3*x^2 + 1 在 x = 5,7时的值.p = [3 0 1]; %构造多项式 polyval(p,[5 7]) %计算多项式的值 计算结果为:ans =76 148

四方区18358098589: 用matlab 求次数不超过3 的多项式P(x),使其满足条件:P(0)=0;P'(0)=0;P(1)=1,P'(1)=2 -
达奚视珠珀:[答案] syms a b c d x >> p=@(x)a*x^3+b*x^2+c*x+d p = @(x)a*x^3+b*x^2+c*x+d >> s1=p(0) s1 = d >> s2=p(1) s2 = a + b + c + d >> dp=diff(p,x) dp = 3*a*x^2 + 2*b*x + c >> dp=@(x)3*a*x^2 + 2*b*x + c dp = @(x)3*a*x^2+2*b*x+c >> s3=dp(0) s3 = c >> s4=dp(1) ...

四方区18358098589: MATLAB多项式求值求解在x=8时多项式(x - 6)(x - 9) (x - 11)(x - 6)的值.先用多项式的根构建多项式. -
达奚视珠珀:[答案] p=poly([6 9 11 6]) x=8 polyval(p,x)

四方区18358098589: matlab中多项式求解是用什么算法实现的?? -
达奚视珠珀: r = roots(c); Algorithm:The algorithm simply involves computing the eigenvalues of the companion matrix:A = diag(ones(n-1,1),-1); A(1,:) = -c(2:n+1)./c(1); eig(A) It is possible to prove that the results produced are the exact eigenvalues of a matrix ...

四方区18358098589: matlab 多项式带入实际值求解 -
达奚视珠珀: 先移个项, 解10*(x+a)*(x+b)*(x+c)-(x+a1)*(x+b1)*(x+c1)=0方程,要不然运算更长时间. syms x a b c a1 b1 c1 solve('10*(x+a)*(x+b)*(x+c)-(x+a1)*(x+b1)*(x+c1)')结果很长,你自己运行一下吧. 顺便说句,matlab符号计算能力并不强,如果是数字...

四方区18358098589: 怎么用MATLAB求矩阵的特征多项式???求高手相助.....先谢谢啦. -
达奚视珠珀: A=[1,2,3;4,5,6;7,8,9]; poly(A) 得到的 ans = 1.0000 -15.0000 -18.0000 -0.0000 这个不好看.可以这样弄一下. A=[1,2,3;4,5,6;7,8,9]; AA=sym(A); poly(AA) 得到的结果 ans =x^3-15*x^2-18*x 这下就清楚了吧.

四方区18358098589: matlab怎么利用矩阵计算多项式拟合?如y=[1 2 3 4];x=[1 2 3 44 5 6 77 8 9 10];可以这样x1=[1 2 3 4];x2=[4 5 6 7];x3=[7 8 9 10];x=[ones(4,1),x1',x2',x3'];a=regress... -
达奚视珠珀:[答案] 当然可以按你所说的求解,关键是看你建立的回归模型的意义. 还有,从回归原理看,一般认为回归方程要有常数项,这样才能保证回归的有效性.比如,如果没有 ones(4,1) 这一列,matlab会提示: R-square and the F statistic are not well-defined ...

四方区18358098589: Matlab 多项式求值 -
达奚视珠珀: 为了不破坏x,y的符号性质,可以巧妙使用subs函数来解决这个问题; syms x y; y=x.*x+x+4; y1=subs(y,'x',3); 注意此时的y1不再是符号,而是数值了. y2=subs(y,'x',1:100); 同上

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网