Loading... ## 多项式的创建: <div class="tip inlineBlock info"> 创建多项式须注意: 1. 多项式系数向量的顺序是从高到第 2. 多项式系数向量包含0次项系数,所以其长度为多项式最高次数加1 3. 如果有的项没有,系数向量相应位置应该用0补足 4. n次多项式用一个长度为n+1的行向量表示,表示形式为:[an, an-1, an-2, ..., a1, a0] </div> ### 举例: ```matlab %多项式为:s^4 + 3s^3 - 15s^2 - 2s + 9 可组成一个向量:a = [1, 3, -15, -2, 9]; %多项式为:s^4 + 1 可组成一个向量:a = [1, 0, 0, 0, 1];%若多项式某些项系数为0,则必须在向量中相应位置补零 ``` ## 多项式的加、减、乘、除: ### 多项式加、减: 多项式的加、减,可直接利用向量进行+与-符号进行运算,但运算的两个向量维数必须相同。 #### 举例: ```matlab %相同维数a(x)与b(x) a(x) = x^3 + 2x^2 + 3x + 4, b(x) = x^3 + 4x^2 + 9x + 16; a = [1, 2, 3, 4]; b = [1, 4, 9, 16]; c = a + b;%向量的加法 c = a - b;%向量的减法 %不同维数a(x)与b(x) a(x) = x^4 + 19, b(x) = x^3 + x^2 + 2; a = [1, 0, 0, 0, 19];%注意补零 b = [0, 1, 1, 0, 2];%注意补零 c = a + b; c = a - b; ``` ### 多项式的乘、除: 多项式相乘可利用函数: `c = conv(a, b);`(不同阶次多项式也可以进行运算) 多项式相除可利用函数: `[p, q]= deconv(a, b);`p为商式矩阵,q为余式矩阵(不同阶次多项式也可进行运算) #### 举例: ```matlab a = [1, 2]; b = [1, 4, 7]; c = conv(a, b); [p, q] = deconv(a, b); ``` ## 多项式求值运算: ### 使用格式: `y = polyval(p, x);` p代表多项式各阶系数向量,x代表要求的值得点。 ### 举例: ```matlab %找出s^4 + 2s^3 - 12s^2 - s + 7,在s = 3的值? a = [1, 2, -12, -1, 7]; c = polyval(a, 3); ``` ## 多项式求根运算: ### 使用格式: `x = roots(p);` p为多项式的向量表达式 ### 举例: ```matlab %求多项式 s^4 + 3s^3 - 12s^2 -2s + 8的根 a = [1, 3, -12, -2, 8]; c = roots(a); ``` ## 多项式求导: `c = polyder(p);`求多项式p的导函数 `c = polyder(p, q);`求p*q的导函数 `[c, d] = polyder(p, q);`求p/q的导函数,导函数分子存入c, 分母存入d ## 多项式构造: * 若已知多项式的全部根,可用poly()函数建立多项式,调用格式: `p = poly(x);`x为多项式的根 * 若已知多项式的系数,则可将系数多项式变成符号多项式,调用格式: `p = ploy2sym(t);`t为多项式的系数 最后修改:2021 年 12 月 17 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果文章有用,请随意打赏。