MATLAB入门及多项式方程的求解

合集下载

Matlab多项式运算与代数方程求解

Matlab多项式运算与代数方程求解
21
上机要求
上机要求
将所有文件作为附件,通过 foxmail 以邮件形式发给
mhjs@system.mail 邮件主题为:机号-学号-姓名,其中机号为 两位数 三个字段之间用英文状态下的减号连接 每个 M 文件的第一行添加一条注解语句:
% 机号-学号-姓名
22

注意:f 不是方程!也不能使用符号表达式!
15
fzero 举例
例:求 f(x)=x3-3x+1 在区间 [-2, 0] 内的实根。
f=@(x) x^3-3*x+1; x0=fzero(f,[-2,0])
例:求 f(x)=sin(x) 在 10 附近的实根。
fzero(@sin,10)
用 fzero 求零点时可以先通过作图确定零点的大致范围
17
代数方程符号求解
solve 也可以用来解方程组 solve(f1,f2, ...,fN, v1,v2, ...,vN)
求由 f1 , f2 , ... , fN 确定的方程组关于 v1 , v2 , ... , vN 的解
x 2 y z 27 xz3 x 2 3 y 2 28
11
多项式运算中, 使用的是多项式
系数向量,
不涉及符号计算!
内容提要
多项式运算
多项式转化为符号表达式:poly2sym, sym2poly
四则运算:conv、deconv
导数与积分:ployder、polyint 求值与零点:polyval、polyvalm、roots、poly
代数方程求解
线性方程组数值求解:linsolve 非线性方程数值求解:fzero 非线性方程符号求解:solve

matlab多项式运算和方程组的求解

matlab多项式运算和方程组的求解

二、多项式(1)多项式的表达式和创建MATLAB中使用一维向量来表示多项式,将多项式的系数按照降幂次序存放在向量中。

例如:多项式2X4+3X3+5X2+1可以用向量[2 3 5 0 1]来表示。

例2-1,输入多项式3x4-10x3+15x+1000在命令窗口输入:p=[3 -10 0 15 1000]输出结果如下:(2)多项式求根1、多项式的根找出多项式的根,即使多项式为零的值,MATLAB提供了特定的函数roots求解多项式的根。

例2-2,求解多项式3x4-10x3+15x+1000的根。

在命令窗口输入:输出的结果如下:2、由根创建多项式在MATLAB中,无论是一个多项式,还是它的根,都是以向量形式存储的,按照惯例,多项式是行向量,根是列向量。

因此当我们给出一个多项式时,MATLAB 也可以构造出相应的多项式,这个过程需要使用函数poly。

例2-3输入及结果(3)多项式四则运算1,多项式的加法MATLAB并未提供一个特别的函数,如果两个多项式向量大小相同,那么多项式相加时就和标准的数组加法相同。

例2-4在命令窗口输入:a=[1 3 5 7 9];b=[1 2 4 6 8];c=a+b输出结果:C(x)=2x4+5x3+9x2+13x+172、多项式的乘法运算在MATLAB中,函数conv支持多项式乘法(运算法则为执行两个数组的卷积)。

例2-5在命令窗口输入:a=[1 3 5 7 9]; b=[1 2 4 6 8];c=conv(a,b)输出的结果如下:C(x)=x8+5x7+15x6+35x5+69x4+100x3+118x2+110x+72PS:conv指令只能进行两个多项式的乘法,两个以上的多项式的乘法需要重复使用conv。

3、多项式的除法运算在MATLAB中,由函数deconv完成的。

例2-6在命令窗口输入:c=[1 5 15 35 69 100 118 110 72];b=[1 2 4 6 8]; [a,r]=deconv (c,b)输出的结果:(4)多项式微分1、多项式的导数MATLAB为多项式求导提供了函数polyder。

第三章MATLAB数据分析与多项式计算.

第三章MATLAB数据分析与多项式计算.
说明: 函数conv(P1,P2)用于求多项式P1和P2的乘积。这里, P1、P2是两个多项式系数向量。
函数[Q,r]=deconv(P1,P2)用于对多项式P1和P2作除法 运算(退卷积)。其中Q返回多项式P1除以P2的商式,r返回P1 除以P2的余式.这里,Q和r仍是多项式系数向量.
例3-1 分别计对多项式x4+8x3-10与多项式2x2-x+3的进行乘法 和除法运算 p1=[1 8 0 0 -10]; p2=[2 -1 3]; p=conv(p1,p2) , %乘法运算 y=poly2sym(p) [q,r]=deconv([p1,p2]) %除法运算 p= 2 15 -5 24 -20 10 -30 y= 2*x^6+15*x^5-5*x^4+24*x^3-20*x^2+10*x-30
yi_cubic =
75.0000 106.2979 140.7981 179.3200 224.7603 yi_nearest = 75.0000 123.2000 123.2000 179.3200 250.0000
例3-16 某观测站测得某日6:00时至18:00时之间每隔2小时的室 内外温度t(℃),用3次样条插值分别求得该日室内外6:30至 17:30时之间每隔2小时各点的近似温度(℃)。 设时间变量h为一行向量,温度变量t为一个1*2矩阵,其中 第一列存放室内温度,第二列储存室外温度。命令如下: h=6:2:18; t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30];
说明: 1.求多项式P的导函数,参数P为多项式系数向量,返回值p为P的导函数系数向量. 2. 求P*Q积的导函数,参数P,Q均为多项式系数向量,返回值p为P*Q的导函数系数向量 3.求P/Q商的导函数, [p,q] (向量表示)为返回值分别存放导函数的分子与分母

matlab常用解方程及方程组函数

matlab常用解方程及方程组函数

matlab常用解方程及方程组函数matlab常用解方程及方程组函数1、roots求解多项式的根r=roots(c)注意:c为一维向量,者返回指定多项式的所有根(包括复根),poly与roots就是互为反运算,还有就就是roots只能求解多项式的解还有下面几个函数poly2sym、sym2poly、eig>>syms x>>y=x^5+3*x^3+3;>>c=sym2poly(y);%求解多项式系数 >>r=roots(c); >>poly(r)2、residue求留数[r, p, k] = residue(b,a) >>b = [ 5 3 -2 7] >>a = [-4 0 8 3]>>[r, p, k] = residue(b,a)3、solve符号解方程(组)——使用最多的g = solve(eq1,eq2,、、、,eqn,var1,var2,、、、,varn)注意:eqn与varn可以就是符号表达式,也可以就是字符串表达式,但就是使用符号表达式时不能有“=”号,假如说varn没有给出,使用findsym函数找出默认的求解变量。

返回的g就是一个结构体,以varn 为字段。

由于符号求解的局限性,好多情况下可能得到空矩阵,此时只能用数值解法解方程A=solve('a*x^2 + b*x + c')解方程组B=solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a + 6')4、fzero数值求零点[x,fval,exitflag,output]=fzero(fun,x0,options,p1,p2、、、)fun就是目标函数,可以就是句柄(@)、inline函数或M文件名x0就是初值,可以就是标量也可以就是长度为2的向量,前者给定一个位置,后者就是给定一个范围options就是优化参数,通过optimset设置,optimget获取,一般使用默认的就可以了,具体参照帮助p1,p2、、、为需要传递的其它参数假如说(x/1446)^2+p/504、1+(t/330、9)*(log(1-x/1446)+(1-1/5、3)*x/1446)=0的根,其中p,t就是已知参数,但就是每次都改变那么目标函数如下三种书写格式,效果完全等效。

matlab实验3:多项式运算

matlab实验3:多项式运算
计算多项式在给定点的值
代数多项式求值
y = polyval(p,x)
计算多项式 p 在 x 点的值
注:若 x 是向量或矩阵,则采用数组运算 (点运算)! 例:已知 p(x)=2x3-x2+3,分别取 x=2 和一个 22 矩阵,
求 p(x) 在 x 处的每个分量上的值
>> p=[2,-1,0,3]; >> x=2; y = polyval(p,x) >> x=[-1,2;-2,1]; y = polyval(p,x)
例:解方程组
x
2yz xz3
2
x 3y 8
>> A=[1 2 -1; 1 0 1; 1 3 0]; >> b=[2;3;8]; >> x=linsolve(A,b)
b是列向量!
非线性方程的根
Matlab 非线性方程的数值求解
fzero(f,x0):求方程 f=0 在 x0 附近的根。
符号求解
solve 也可以用来解方程组 solve( f1 , f2 , ... , fN , v , ... , fN 确定的方程组关于 v1 , v2 , ... , vN 的解
例:解方程组
x 2 y z 27
x
z
3
x2 3 y2 28
例:2x3-x2+3 <-> [2,-1,0,3]
特别注意:系数中的零是不能省的!
多项式的符号形式:poly2sym 如,>> poly2sym([2,-1,0,3])
运行结果:ans = 2*x^3-x^2+3
多项式四则运算
多项式加减运算
多项式的加减运算就是其所对应的系数向量的加减运算

matlab多项式与特征方程

matlab多项式与特征方程

MATLAB是一种常用的数学软件,它在科学计算领域有着广泛的应用。

在MATLAB中,多项式和特征方程是两个非常重要的概念。

本文将首先介绍多项式的相关知识,然后深入探讨多项式在MATLAB中的应用。

接着会详细介绍特征方程及其在MATLAB中的应用。

希望本文对读者能有所帮助。

一、多项式1. 多项式的定义多项式是代数学中的基本概念之一。

它是由若干个数与字母的乘积相加而成的代数式。

一般地,多项式的形式可以表示为:P(x) = a0 + a1x + a2x^2 + ... + anx^n其中,P(x)为多项式,x为自变量,a0, a1, ..., an为系数,n为多项式的次数。

2. MATLAB中的多项式表示在MATLAB中,可以使用polyval函数来计算多项式的值,使用polyfit函数来拟合数据得到多项式方程。

给定一组数据点(x, y),可以使用polyfit函数拟合出最佳拟合多项式,并使用polyval函数计算出对应x值时的多项式函数值。

3. MATLAB中的多项式运算MATLAB提供了丰富的多项式运算函数,例如polyadd、polymul、polyder、polyint等。

通过这些函数,可以方便地进行多项式的加法、乘法、求导、积分等运算。

二、特征方程1. 特征方程的定义特征方程是矩阵论中的一个重要概念。

对于一个n阶方阵A,其特征方程可以表示为:det(A - λI) = 0其中,det表示矩阵的行列式,λ是特征值,I为单位矩阵。

特征方程的解即为矩阵A的特征值。

2. MATLAB中的特征方程求解在MATLAB中,可以使用eig函数来求解特征方程。

eig函数可以计算出矩阵的所有特征值和对应的特征向量。

这对于解决线性代数中的特征值和特征向量相关问题非常有用。

3. 特征方程的应用特征方程在科学计算领域有着广泛的应用,例如在控制系统、信号处理、结构力学等方面都有重要作用。

通过求解特征方程,可以分析和预测系统的稳定性、自由振动特性等。

matlab 求解多项式方程

matlab 求解多项式方程

Matlab求解多项式方程简介多项式方程是数学中常见的方程类型,它由若干个变量的幂次项和常数项组成。

求解多项式方程是数学计算中的基本问题之一,对于复杂的多项式方程,手工求解往往非常困难甚至不可能完成。

而Matlab作为一种强大的科学计算软件,提供了丰富的函数和工具来解决这类问题。

本文将介绍如何使用Matlab求解多项式方程,包括多项式方程的表示方法、求解方法以及具体实现步骤等内容。

多项式方程表示方法多项式方程一般采用以下形式表示:f(x)=a n x n+a n−1x n−1+⋯+a1x+a0其中,a n,a n−1,…,a1,a0为系数,x为变量,n为次数。

在Matlab中,可以使用向量表示系数,例如:coefficients = [a_n, a_{n-1}, ..., a_1, a_0];求解多项式方程的方法Matlab提供了几种不同的方法来求解多项式方程,包括根据系数求解、根据方程求解以及使用符号计算工具箱等方法。

根据系数求解使用roots函数可以根据多项式方程的系数求解方程的根。

该函数的输入参数为系数向量,输出结果为根向量。

coefficients = [a_n, a_{n-1}, ..., a_1, a_0];roots = roots(coefficients);根据方程求解使用solve函数可以根据多项式方程本身求解方程的根。

该函数的输入参数为方程本身,输出结果为根向量。

syms x;equation = a_n*x^n + a_{n-1}*x^{n-1} + ... + a_1*x + a_0;roots = solve(equation, x);使用符号计算工具箱Matlab中的符号计算工具箱提供了更加强大的多项式方程求解功能。

通过定义符号变量,并使用相关函数进行运算,可以得到更加精确和全面的结果。

首先,需要定义符号变量:syms x;然后,可以使用一系列函数进行多项式方程求解,例如:•solve:用于求解代数方程组;•vpasolve:用于数值方式求解代数或者超越方程组;•polyval:用于计算多项式在给定点处的值;•polyfit:用于多项式拟合;•等等。

matlab解多项式方程

matlab解多项式方程

matlab解多项式方程一、引言多项式方程是数学中常见的一类方程,它包含一个或多个未知数,并且每个未知数的指数都是整数。

解多项式方程是求解这个方程中的未知数的值,对于一般的多项式方程,解的求解是一个复杂的过程。

然而,使用MATLAB这样的数学软件,可以大大简化这个过程,提高求解的效率。

本文将介绍如何使用MATLAB解决多项式方程的问题。

二、MATLAB解多项式方程的方法MATLAB提供了多种方法来解决多项式方程的问题,包括求解代数方程的根、求解多项式方程的特殊解等。

下面将介绍几种常见的方法:1. 使用roots函数求解代数方程的根roots函数是MATLAB中用于求解代数方程的根的函数,对于给定的多项式方程,它可以返回该方程的所有根。

使用方法如下:p = [1, -3, 2];r = roots(p);上述代码中,p是一个向量,表示一个多项式方程的系数,r是一个向量,表示该方程的所有根。

例如,对于多项式方程x^2 - 3x + 2 = 0,p表示的向量是[1, -3, 2],r表示的向量是[1, 2],即方程的根是1和2。

2. 使用poly函数求解多项式方程的特殊解poly函数是MATLAB中用于求解多项式方程的特殊解的函数,它可以根据给定的根来返回对应的多项式方程的系数。

使用方法如下:r = [1, 2];p = poly(r);上述代码中,r是一个向量,表示一个多项式方程的根,p是一个向量,表示该方程的系数。

例如,对于多项式方程的根是1和2,r表示的向量是[1, 2],p表示的向量是[1, -3, 2],即方程的系数是1、-3、2.三、MATLAB解多项式方程的示例为了更好地理解MATLAB解多项式方程的方法,下面将通过一个示例来演示具体的步骤:1. 求解一元二次方程假设我们要求解方程x^2 - 3x + 2 = 0的根,我们可以使用roots函数来实现:p = [1, -3, 2];r = roots(p);运行上述代码后,我们可以得到方程的根r是[1, 2]。

第6章 MATLAB数据分析与多项式计算

第6章  MATLAB数据分析与多项式计算

第6章 MATLAB数据分析与多项式计算
例6-3 求s=1!+2!+…+6!的值。 命令如下: >> x=cumprod(1:6) x=
1 2 6 24 120 720 >> s=sum(x) s=
873
第6章 MATLAB数据分析与多项式计算
6.1.5 标准差与相关系数
1.求标准差
对于具有n个元素的数据序列x1、x2、x3、…、xn, 标准差的计算公式如下:
第6章 MATLAB数据分析与多项式计算
6.1.3 平均值和中值
数据序列的平均值指的是算术平均值。
所谓中值,是指在数据序列中其值的大小恰好处在 中间的元素。例如,数据序列-2,5,7,9,12的中 值为7,即它的大小恰好处于数据序列各个值的中间, 这是数据序列为奇数个的情况。如果为偶数个,则 中值等于中间的两数之平均值。例如,数据序列-2, 5,6,7,9,12中,处于中间的数是6和7,故其中 值为6.5。
1
2
n
V ( ui , ui , , ui )
i 1
i 1
i 1
1
2
n
W ( ui , ui ,, ui )
i 1
i 1
i 1
称V为U的累加和向量,W为U的累乘积向量。
第6章 MATLAB数据分析与多项式计算
在MATLAB中,使用cumsum和cumprod函数能方便 地求得向量和矩阵元素的累加和与累乘积向量,它们 的调用格式相同,其中cumsum函数的调用格式为: ① cumsum(X):返回向量X累加和向量。 ② cumsum(A):返回一个矩阵,其第i列是A的第i列 的累加和向量。 ③ cumsum(A,dim):当dim为1时,该函数等同于 cumsum(A);当dim为2时,返回一个矩阵,其第i行 是A的第i行的累加和向量。

matlab解多项式方程

matlab解多项式方程

matlab解多项式方程Matlab是一款广泛使用的数值计算软件,其内置的多项式求解函数可以帮助用户快速解决多项式方程的求解问题。

本文将介绍如何使用Matlab解多项式方程。

1. 多项式方程的表示在Matlab中,多项式可以通过向量来表示。

例如,一个三次多项式可以表示为:p = [1,-2,3,-4]其中,向量p的第一个元素是最高次幂系数,最后一个元素是常数项系数。

2. 多项式求解函数Matlab提供了polyval和roots两个函数来求解多项式方程。

polyval函数用于计算给定x值下的多项式函数值。

其语法为:y = polyval(p,x)其中,p为多项式系数向量,x为自变量,y为因变量。

roots函数用于计算多项式方程的根。

其语法为:r = roots(p)其中,p为多项式系数向量,r为根向量。

3. 示例以下示例将演示如何使用Matlab解三次方程x^3-6x^2+11x-6=0。

首先定义该三次方程的系数向量:p = [1,-6,11,-6]然后使用roots函数求出该方程的根:r = roots(p)运行结果如下:r =1.00002.00003.0000即该方程的三个根分别为1、2、3。

最后,可以使用polyval函数验证求得的根是否正确。

例如,计算x=1时的函数值:y = polyval(p,1)运行结果为:y =说明x=1是该方程的一个根。

4. 总结本文介绍了如何使用Matlab解多项式方程。

通过定义多项式系数向量,并使用roots函数求解根,可以快速准确地求解多项式方程。

在实际应用中,可以通过调用Matlab内置函数来进行求解,从而提高工作效率和准确性。

MATLAB 2016基础实例教程 第8章 多项式与方程组

MATLAB 2016基础实例教程 第8章  多项式与方程组
将一个矩阵化为行阶梯形的命令是rref,当系数矩阵非奇异时,我 们可以利用这个命令将增广矩阵[A b]化为行阶梯形,那么R的最后一 列即为方程组的解。
《MATLAB 2016 基础实例教程》
8.4.3 课堂练习——求方程组的解
用矩形的基本运算方法求线性方程组
操作提示: (1)将方程组的系数转换为矩阵A、b; (2)利用除法求方程组的解 (3)利用伪逆函数pinv求方程组的解 (4)利用核空间矩阵函数null求方程组的解 (5)利用行阶梯形矩阵函数rref求方程组的解
法。
《MATLAB 2016 基础实例教程》
8.4.2 利用矩阵的基本运算
1.核空间矩阵求解 对于基础解系,我们可以通过求矩阵A的核空间矩阵得到,在
MATLAB中,可以用null命令得到A的核空间矩阵。 2.行阶梯形求解
这种方法只适用于恰定方程组,且系数矩阵非奇异,若不然这种 方法只能简化方程组的形式,若想将其解出还需进一步编程实现,因 此本小节内容都假设系数矩阵非奇异。
定理3:非齐次线性方程组的通解等于其一个特解与对应齐次方程 组的通解之和。
《MATLAB 2016 基础实例教程》
8.4.2 利用矩阵的基本运算
1.利用除法运算
对于线性方程组Ax=b,系数矩阵A非奇异,最简单的求解方法是
利用矩阵的左除“\”来求解方程组的解,即x=A\b,这种方法采用高
斯(Gauss)消去法,可以提高计算精度且能够节省计算时间。
《MATLAB 2016 基础实例教程》
8.2 函数运算
函数是数学中的一个基本概念,也是代数学里面最重要的概念之一。
首先要理解,函数是发生在非空数集之间的一种对应关系。
有类似
的多项式函数,有类似

如何用MATLAB解方程

如何用MATLAB解方程

用MATLAB解方程的三个实例1、对于多项式p(x)=x3-6x2-72x-27,求多项式p(x)=0的根,可用多项式求根函数roots(p),其中p为多项式系数向量,即>>p =[1,-6,-72,-27]p =1.00 -6.00 -72.00 -27.00p是多项式的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/19802、在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 =.6983、使用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-27F =@(x)x^3-6*x^2-72*x-27>> x=fzero(F,10)x =12.1229对于第二个例子,也可以用第三种方法:>> FUN=@(x)(x+2)^x-2FUN =@(x)(x+2)^x-2>> x=fzero(FUN,1)x =0.6983最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MA TLAB中有两种方法:(1)x=inv(A)*b —采用求逆运算解方程组;(2)x=A\b —采用左除运算解方程组。

matlab中进行多项式运算的一般步骤

matlab中进行多项式运算的一般步骤

在使用MATLAB进行多项式运算时,一般可以遵循以下几个步骤:1. 创建多项式我们需要创建多项式。

在MATLAB中,可以使用`poly`函数来创建多项式。

如果我们要创建一个多项式3x^3+2x^2-5x+4,可以使用以下命令:```matlabp = [3, 2, -5, 4];```其中,`p`即为所创建的多项式。

通过上述命令,MATLAB会将多项式系数按照从高次到低次的顺序存储在数组`p`中。

2. 求多项式的根求多项式的根是多项式运算中常见的操作。

在MATLAB中,可以使用`roots`函数来求多项式的根。

对于上述创建的多项式`p`,可以使用以下命令求其根:```matlabr = roots(p);```其中,`r`即为所求得的多项式的根。

通过上述命令,MATLAB会返回多项式的根,并存储在数组`r`中。

3. 多项式求导多项式求导是指对多项式进行微分操作。

在MATLAB中,可以使用`polyder`函数来对多项式进行求导。

对于上述创建的多项式`p`,可以使用以下命令对其进行求导:```matlabdp = polyder(p);```其中,`dp`即为所求得的多项式的导数。

通过上述命令,MATLAB会返回多项式的导数,并存储在数组`dp`中。

4. 多项式积分多项式积分是指对多项式进行积分操作。

在MATLAB中,可以使用`polyint`函数来对多项式进行积分。

对于上述创建的多项式`p`,可以使用以下命令对其进行积分:```matlabP = polyint(p);```其中,`P`即为所求得的多项式的积分。

通过上述命令,MATLAB会返回多项式的积分,并存储在数组`P`中。

5. 多项式加减乘除在MATLAB中,可以使用`polyadd`、`polysub`、`polymul`和`polydiv`函数来进行多项式的加减乘除运算。

对于两个多项式`p1`和`p2`,可以使用以下命令进行加减乘除运算:```matlabp_sum = polyadd(p1, p2);p_diff = polysub(p1, p2);p_product = polymul(p1, p2);[p_quotient, p_rem本人n] = polydiv(p1, p2);```通过上述命令,MATLAB会返回多项式的和、差、积、商和余数,并存储在相应的数组中。

matlab语言多项式计算的分析与概述

matlab语言多项式计算的分析与概述

matlab语言多项式计算的分析与概述1、多项式的表示在MATLAB中创建多项式向量时,注意三点:(1)多项式系数向量的顺序是从高到低。

(2)多项式系数向量包含0次项系数,所以其长度为多项式最高次数加1。

(3)如果有的项没有,系数向量相应位置应用0补足。

2、多项式的四则运算(1)多项式的加减运算多项式的加减运算非常简单,即相应向量相加减。

(2)多项式乘法conv (P1,P2):多项式相乘函数。

在这里,P1、P2是两个多项式系数向量。

(3)多项式除法[Q,r]=deconv(P1,P2):多项式相除函数。

其中,Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。

这里,Q和r仍是多项式系数向量。

deconv是conv的逆函数,因此有Pl=conv(Q,P2)+r即商式(Q)乘以除式(P2)加止余式( r)等手被除式(P1)> > f = [ 3 - 5 0 - 7 5 6 ] ; g = [ 3 5 - 3 ] ; g1 = [ 0 0 0 g ] ; y1= f + g1 % 多项式相加 , 等长向量可加减 y1 = 3 - 5 0 - 4 10 3 > > y2 = f - g1 % 多项式相减 y2 = 3 - 5 0 - 10 0 9 > > y3 = conv ( f ,g ) % 多项式相乘,积向量的长度为两个因子向量的长度之和减 1 y3 = 9 0 - 34 - 6 - 20 64 15 - 18 > > [ y4 r ] = deconv ( f , g ) % 多项式相除,y4是商式,r是余式 y4 =1.0000 -3.33336.5556 -16.5926 r = 0 0 0 0107.6296 -43.7778 > > y5 = conv ( y4 , g ) + r % 商式乘以除式加上余式 , 看看是否与被除式f相等 y5 =3.0000 -5.0000 0 -7.00005.00006.0000补充:三个或者三个以上的多项式相乘可用以下方法syms y1 y2 y3 x y1 = x ^ 2 + 5 * x + 2 ; y2 = - 2 * x ^ 2 + 2 * x - 3 ; y3 = 9 * x + 7 ; ans = y1 * y2 * y3 ; disp ( ans ) % 显示的结果没有展开 ans1 = expand ( ans ) % 使用expand函数将结果展开ans2 = factor ( ans ) % 将多项式因式分解% % 运行结果 ans = - ( 9 * x + 7 ) * ( x ^ 2 + 5 * x + 2 ) * ( 2 * x ^ 2 - 2 * x + 3 ) ans1 = - 18 * x ^ 5 - 86 * x ^ 4 - 29 * x ^ 3 - 78 * x ^ 2 - 131 * x - 42 ans2 = [ - 1 , 9 * x + 7 , x ^ 2 + 5 * x + 2 , 2 * x ^ 2 - 2 * x + 3 ]3、多项式的求导polyder( ):多项式求导函数。

matlab高元多项式求解技巧

matlab高元多项式求解技巧

matlab高元多项式求解技巧在MATLAB中,我们可以使用多种方法来解高次多项式。

下面是一些常用的技巧:1. 使用roots函数:MATLAB的roots函数可以用于求解多项式的根。

使用方法是将多项式的系数向量作为输入,并返回多项式的根向量。

例如,对于一个高次多项式p(x) = ax^3 + bx^2 + cx + d,可以使用以下代码求解根:```matlabcoeff = [a, b, c, d];roots(coeff);```返回的根向量包含多项式的所有根。

然而,请注意,roots函数只能提供复数根,无法提供实数根。

2. 使用poly函数:MATLAB的poly函数可以根据给定的根来构造多项式。

使用这个函数可以实现多项式的因式分解或者找到多项式的零点。

例如,对于一个三次多项式p(x) = (x - r1)(x - r2)(x - r3),可以使用以下代码构造多项式:```matlabroots = [r1, r2, r3];poly(roots);```返回的系数向量包含多项式的各项系数。

3. 使用fzero函数:MATLAB的fzero函数可以用于求解非线性方程,因此也可以用来求解多项式方程。

使用这个函数需要提供一个初始值,并返回离初始值最近的根。

例如,对于一个高次多项式p(x),可以使用以下代码求解根:```matlabf = @(x) polyval(p, x);x0 = [initial_guess];fzero(f, x0);```返回的根是离初始值x0最近的解。

4. 使用polyfit函数:MATLAB的polyfit函数可以根据给定的数据点拟合出一个多项式。

使用这个函数可以求解多项式的系数。

例如,对于一组数据点(x, y),可以使用以下代码拟合多项式并求解系数:```matlabcoeff = polyfit(x, y, n);```其中,n表示所拟合的多项式的次数,coeff是一个包含多项式系数的向量。

matlab求解多项式方程

matlab求解多项式方程

matlab求解多项式方程Matlab是一种功能强大的计算机程序,它可以用来求解各种数学问题,其中包括求解多项式方程。

求解多项式方程是一种常见的数学问题,它在工程、科学和技术等领域中经常用到。

在Matlab中,我们可以使用polyroot函数来求解多项式方程。

polyroot函数是Matlab中用来求解多项式方程的函数,它的语法格式如下:x = polyroot(p)其中,p是一个向量,表示多项式方程的系数,从高次到低次依次排列,x是一个向量,包含多项式方程的所有根。

例如,如果我们要求解如下多项式方程:x^3 - 6x^2 + 11x - 6 = 0对应的系数向量为[1 -6 11 -6],则可以使用polyroot函数来求解:x = polyroot([1 -6 11 -6])这个函数会返回一个包含所有根的向量x,例如,在这个例子中,我们会得到如下的根:x =1.00002.00003.0000注意,在使用polyroot函数时,我们需要确保多项式方程的根都是实数,否则的话,程序可能会返回复数根。

如果我们知道多项式方程有复数根,可以使用poly函数来求解。

在Matlab中,求解多项式方程还有一种更为直观的方法,那就是使用roots函数。

roots函数可以从一个向量中获取多项式方程的系数,并计算出它的所有根。

例如,我们想要求解如下方程:(x - 1)(x - 2)(x - 3) = 0对应的系数向量为[1 -6 11 -6],我们可以使用roots函数来计算出所有根:x = roots([1 -6 11 -6])这个函数会返回一个向量x,包含了所有根的值,例如,在这个例子中,我们会得到如下的根:x =3.00002.00001.0000这种方法和使用polyroot函数的结果相同,只是语法和逻辑有所不同。

综上所述,Matlab提供了多种方法来求解多项式方程,包括使用polyroot和roots函数。

matlab求解多项式

matlab求解多项式

matlab求解多项式在MATLAB中,求解多项式可以通过多种方法实现。

下面我将从多个角度介绍几种常用的方法。

1. 多项式根的求解:MATLAB提供了`roots`函数来求解多项式的根。

该函数接受一个多项式的系数作为输入,并返回多项式的根。

例如,对于一个一元多项式:matlab.p = [1 -3 2]; % 多项式 p(x) = x^2 3x + 2。

r = roots(p); % 求解多项式的根。

返回的结果r是一个列向量,包含了多项式的根。

2. 多项式拟合:MATLAB中的`polyfit`函数可以用于多项式拟合。

该函数接受一组数据点的x和y坐标以及所需的多项式次数,然后返回拟合的多项式系数。

例如:matlab.x = [1 2 3 4 5]; % 数据点的x坐标。

y = [2 4 6 8 10]; % 数据点的y坐标。

n = 2; % 多项式的次数。

p = polyfit(x, y, n); % 多项式拟合。

返回的结果p是一个包含了拟合多项式的系数的向量。

3. 多项式积分:MATLAB中的`polyint`函数可以对多项式进行积分计算。

该函数接受一个多项式的系数作为输入,并返回其积分的多项式系数。

例如:matlab.p = [1 -3 2]; % 多项式 p(x) = x^2 3x + 2。

q = polyint(p); % 对多项式进行积分。

返回的结果q是一个包含了积分多项式的系数的向量。

4. 多项式求导:MATLAB中的`polyder`函数可以对多项式进行求导计算。

该函数接受一个多项式的系数作为输入,并返回其求导的多项式系数。

例如:matlab.p = [1 -3 2]; % 多项式 p(x) = x^2 3x + 2。

q = polyder(p); % 对多项式进行求导。

返回的结果q是一个包含了求导多项式的系数的向量。

这些是MATLAB中常用的求解多项式的方法。

希望以上内容能够对你有所帮助。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档