0 创建多项式

多项式的一般形式如下:

我们可以使用它的系数向量来表示,

matlab中,提供了poly2sym函数实现多项式的构造。

  • r = poly2sym(c):c为多项式的系数向量
  • r = poly2sym(c, v):c为多项式的系数向量,v为其变量
>> poly2sym([1 3 2])ans =x^2 + 3*x + 2>> poly2sym(sym([1 0 1 -1 2]),sym('y'))ans =y^4 + y^2 - y + 2

1.多项式的求根

多项式的根:

matlab使用roots函数求解多项式的根,即求解函数等于0的根

  • r = roots(c):其中c为多项式的系数向量,r为求解多项式的根
>> p = [1 -12 0 25 116];
>> r = roots(p);
>> pp =1   -12     0    25   116>> rr =11.7473 + 0.0000i2.7028 + 0.0000i-1.2251 + 1.4672i-1.2251 - 1.4672i

由根创建多项式:

matlab中规定,多项式是行向量,根是列向量。给出一个多项式的根,也可以构造相应的多项式。

  • p = poly(A):如果A为方阵,则多项式p为该方阵的特征多项式;如果A为向量,则A的元素为该多项式p的根。n阶方阵的特征多项式存放在行向量中,并且特征多项式最高次的系数一定为1
>> pp = poly(r)pp =1.0000  -12.0000   -0.0000   25.0000  116.0000

2.多项式的四则运算

多项式的加法:

如果两个多项式向量大小相同,相加时就与标准的数组加法相同

>> p1 = [5 40 6 21 9 3];
>> p2 = [4 0 3 72 1 8];
>> p3 = p1 + p2p3 =9    40     9    93    10    11>> r1 = poly2str(p3,'x')   % 显示多项式r1 =9 x^5 + 40 x^4 + 9 x^3 + 93 x^2 + 10 x + 11>> p4 = p1 - p2p4 =1    40     3   -51     8    -5>> r2 = poly2str(p4,'x')   % 显示多项式r2 =x^5 + 40 x^4 + 3 x^3 - 51 x^2 + 8 x - 5

注意:当两个多项式阶次不同时,低阶的多项式用首0填补,使其与高阶多项式有同样的阶次。要求首零而不是尾0,是因为相关的系数像x幂一样,必须整齐

多项式的乘法:

conv函数实现多项式的乘运算,deconv函数实现多项式的除运算

  • c = conv(a,b):执行a,b两个向量的卷积运算
  • c = conv(a,b,'shape'):按形参‘shape’返回卷积运算,shape取值如下:
    • full:为返回完整的卷积,是默认值
    • same:为返回部分卷积,其大小与向量a大小相同
    • valid:只返回无填充0部分的卷积,此时输出向量c的最大值为max(length(a) - max(0,length(b) - 1),0).
>> f = [1 4 -2 7 11];
>> g = [9 -11 5 0 8];
>> c = conv(f,g)c =9    25   -57   105    20   -54    39    56    88

注意:conv函数只能进行两个多项式的乘法,两个以上的多项式的乘法需要重复使用conv

  • [q,r] = deconv(v,u):求多项式v, u的除法运算,其中q为返回多项式v除以u的商式,r为返回v除以u的余式。
>> c = [1 5 15 35 69 100 118 110 72];
>> b = [1 2 3 6 8];
>> [a,r] = deconv(c,b)a =1     3     6     8     9r =0     0     0     0     0    -2    -5    -8     0

3.多项式的导数

  • k = polyder(p):求多项式的导函数多项式
  • k = polyder(a,b):求多项式a与多项式b乘积的导函数多项式
  • [q,d] = polyder(b,a):求多项式b与多项式a相除的导函数,导函数的分子存入q,分母存入d
>> a = [3 6 9];
>> b = [1 2 0];
>> k = polyder(a,b)k =12    36    42    18>> K = poly2str(k,'x')K =12 x^3 + 36 x^2 + 42 x + 18
>> [q,d] = polyder(b,a)q =18    18d =9    36    90   108    81

4.多项式的积分

  • polyint(p,k):返回以向量p为系数的多项式积分,积分的常数项为k
  • polyint(p):返回以向量p为系数多项式的积分,积分的常数项为默认值0
>> p = [1 -1 2];
>> k = 1/2;
>> F = polyint(p,k)F =0.3333   -0.5000    2.0000    0.5000>> df = poly2sym(F)df =x^3/3 - x^2/2 + 2*x + 1/2

5.多项式的估值

matlab提供了polyval函数与polyvalm函数用于求多项式p(x)在x=a的取值。输入可以是标量或矩阵

  • y = polyval(p,x):p为多项式的系数向量,x为矩阵,它是按数组运算规则来求多项式的值
  • [y,delta] = polyval(p,x,S):使用可选的结构数组S产生由polyfit函数输出的估计参数值;delta是预测未来的观测估算的误差标准偏差
  • y = polyval(p,x,[],mu)或[y,delta] = polyval(p,x,S,mu):使替代x,,其中心点与坐标值可由polyfit函数计算得出

polyvalm函数的输入参数只能是N阶方阵,这时可以将多项式看作矩阵函数

  • Y = polyvalm(p,X):p为多项式的系数向量,X为方阵,其实按矩阵运算规则来求多项式的值。
>> X = pascal(4)X =1     1     1     11     2     3     41     3     6    101     4    10    20>> p = poly(X)p =1.0000  -29.0000   72.0000  -29.0000    1.0000>> P = poly2str(p,'x')P =x^4 - 29 x^3 + 72 x^2 - 29 x + 1>> y = polyval(p,X)y =1.0e+04 *0.0016    0.0016    0.0016    0.00160.0016    0.0015   -0.0140   -0.05630.0016   -0.0140   -0.2549   -1.20890.0016   -0.0563   -1.2089   -4.3779>> y = polyvalm(p,X)y =1.0e-10 *-0.0003   -0.0036   -0.0052   -0.0143-0.0021   -0.0136   -0.0179   -0.0464-0.0059   -0.0330   -0.0400   -0.1047-0.0130   -0.0639   -0.0750   -0.1962

6.有理多项式

matlab中,有理多项式由它们的分子多项式和分母多项式表示。对有理多项式进行运算的两个函数是residue和polyder。redidue执行部分分式展开的运算

  • [r,p,k] = residue(b,a):b,a分别为分子和分母多项式系数的行向量,r为留数行向量
  • [b,a] = residue(r,p,k):p为极点行向量,k为直项行向量
>> b = [5 3 -2 7];
>> a = [-4 0 8 3];
>> [r,p,k] = residue(b,a)r =-1.4167-0.66531.3320p =1.5737-1.1644-0.4093k =-1.2500>> [b,a] = residue(r,p,k)b =-1.2500   -0.7500    0.5000   -1.7500a =1.0000   -0.0000   -2.0000   -0.7500

7.多项式的微分

  • k = polyder(p):p,k分别为原多项式及微分多项式的多项式表示
  • k = polyder(a,b):求多项式a与多项式b乘积的导函数多项式
  • [q,b] = polyder(b,a):求多项式b与多项式a相除的导函数,导函数的分子存入q,分母存入d
>> a = [3 6 9];
>> b = [1 2 0];
>> k = polyder(a,b)k =12    36    42    18>> K = poly2str(k,'x')K =12 x^3 + 36 x^2 + 42 x + 18
>> [q,d] = polyder(b,a)q =18    18d =9    36    90   108    81

matlab多项式及其运算相关推荐

  1. matlab多项式加法运算,matlab多项式运算与代数方程求解解析.ppt

    * 多项式运算与代数方程求解 数学软件 Matlab Matlab基础及应用 * 多项式转化为符号表达式:poly2sym 四则运算:conv.deconv 导数与积分:ployder.polyint ...

  2. MATLAB多项式符号运算

    符号计算是指在运算时,无须事先对变量进行赋值,而是将所有得到的结果以标准的符 号形式表示出来.符号计算是以符号对象和符号表达式作为运算对象的表达形式,最终给出 的是解析解;在运算过程中不会受到计算误差 ...

  3. matlab二元多项式求值,matlab多项式代入求值

    Matlab 多项式运算与方程求根 ? Matlab多项式运算无论是在线性代数中,还是信号处理.自动控制等理论 中,多项式运算都有着十分重要的地位,因此,MATLAB 为多项式的操作提供了相应的函数库 ...

  4. matlab 多项式表达,Matlab多项式运算

    % matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式   %降幂排列的. % f(x)=an^n+an-1^n-1+--+a0 % 可用行向量 p=[an an-1 -- a1 a0 ...

  5. matlab多项式多个值代入求值,[转载]Matlab 解惑之——多项式运算

    http://www.cublog.cn/u1/37798/showart_452797.html% matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式 %降幂排列的. % f(x)= ...

  6. MATLAB 多项式的四则运算与导数运算

    MATLAB 多项式的四则运算与导数运算 加减运算可以直接通过"+"和"-"来实现,阶次不同时,低次多项式必须用0来填补 乘法运算通过conv函数实现,该函数相 ...

  7. matlab vdp1000,第四章 MATLAB的数学运算.ppt

    第四章MATLAB的数学运算要点 第四章 MATLAB的数学运算 MATLAB可以进行很多的数学运算, 如:多项式.线性插值.傅里叶变换和微分 方程等. 教学内容 多项式与插值 函数运算 微分方程 应 ...

  8. 2021-03-01 Matlab 多项式的根求解

    Matlab 多项式的根求解 分享一下通过多种不同的方法计算多项式的根. 数值根 使用代换法求根 特定区间内的根 符号根 数值根 roots 函数用于计算系数向量表示的单变量多项式的根. 例如,创建一 ...

  9. matlab 矩阵加减乘除运算

    文章目录 matlab 矩阵加减乘除运算 1 .加.减运算 2. 乘法 3.向量点积 4.向量叉乘 5.混合积 6.矩阵的卷积和多项式乘法 7.反褶积(解卷)和多项式除法运算 8.张量积 9. 除法运 ...

最新文章

  1. 基于深度学习的自然图像和医学图像分割:网络结构设计
  2. 利用Bandwidth Splitter限制带宽
  3. u-boot分析——struct gd_t与struct bd_t
  4. 阮一峰react demo代码研究的学习笔记 - demo7 debug - create ref element
  5. einops和einsum:直接操作张量的利器
  6. matlab中gama,matlab积分结果中的gamma()函数参数问题,急求解答!!!
  7. 简历python技能怎么写_简历怎么写?列出这10项重要的工作技能
  8. 流行-Manifold【0】-维基百科中文版本解释
  9. Echarts单条折线可拖拽
  10. Git出错,提示error: bad signature 0x00000000 fatal: index file corrupt(win10系统)
  11. 2014 卧底深度解密 到底是谁抢了我的车票?
  12. WIFI能杀死植物吗?
  13. Galaxian 小蜜蜂
  14. 用java生成一个表白二维码
  15. C++入门学习笔记01
  16. 不宜猥琐惊世人 猥琐哥横空出世
  17. 弹出框美化 alert样式美化
  18. 机器学习十大算法之三K-means
  19. TCP之系统调用listen()
  20. UI设计基础知识点整理,值得收藏「干货」!

热门文章

  1. 【圣诞树代码】送她六棵圣诞树,祝她圣诞快乐~(送女朋友必备!)
  2. kibana基本操作
  3. 请问你知道分布式系统设计模式的最低水位线思想么?
  4. 推荐一款超级好用的AI模型训练平台——Tesra超算网络!
  5. 常见机器学习模型适用场景及优缺点
  6. Linux下软件逆向工程的介绍(一)
  7. 雨伞16骨好还是24骨好_伞骨什么材质好 晴雨伞骨数越多越好吗
  8. npm插件开发-Vue插件
  9. 扇贝编程python无法退款_扇贝编程python学习笔记-基础篇1
  10. 打造高速浏览器,逐鹿搜索市场,搜狗高速浏览器2.0值得期待