matlab数值运算课件综述
第四章 数值计算功能
4.1 多项式计算
4.2 数值插值和曲线拟合
4.3 函数极值
4.4 非线性方程问题求解
4.5 常微分方程的数值求解
4.6 数值微分与积分
4.7 概率统计
4.1 多项式运算
1.多项式表示法
2.多项式运算函数
多项式求根
多项式求值
多项式乘法和除法
多项式的微积分
1.多项式表示法
(1) 直接法:
多项式
多项式系数用行向量表示,按降幂排列;
缺某幂次项,其幂次项系数为零。
P=[a0,a1,...an-1,an]
符串形式,x多项式变量
y=poly2str(P, ' x')
(2) 字符串表示法:
y= poly2sym(P, x)
(3) 符号多项式表示法:
完整形式
p=[1,3,0,4,5]
y=poly2str(p,'x')
y = x^4 + 3 x^3 + 4 x + 5
syms x
y=poly2sym(p, x)
y=x^4 + 3*x^3 + 4*x + 5
>> p=[1,3,0,4,5]
p = 1 3 0 4 5
>> y=poly2str(p,'x')
y = x^4 + 3 x^3 + 4 x + 5
>> rp=roots(p)
rp = -3.2346
0.5594 + 1.1980i
0.5594 - 1.1980i
-0.8843
>> P=[1,8,3,4,-10];
>> pp=poly2str(P,'X')
pp = X^4 + 8 X^3 + 3 X^2 + 4 X - 10
例
2.多项式的运算函数
多项式的值;根和微分;拟合曲线;部分分式
polyval
polyval
polyvalm
covolution
(1)多项式求根 (roots)
(1)多项式的根
=0
n次多项式n个根,或实根,或若干对共轭复根。
r = roots(P)
P:多项式系数向量;
r:n个根b(1),b(2),…,b(n) 的向量。
>> r=roots(P)
r = -7.6998
-0.5572 + 1.1335i
-0.5572 - 1.1335i
0.8141
例
求多项式x4+8x3+3x2+4x-10的根
P=[1,8,3,4,-10];
r=roots(P)
多项式根的r向量:[r(1),r(2),…,r(n) ]
(2)根行向量创建多项式(poly)
P=poly(r)
>> PP=poly(r)
PP = 1.0000 8.0000 3.0000 4.0000 -10.0000
>> format rat 避免浮点显示
>> p=poly(r)
p = 1 8 3 4 -10
多项式的向量系数:
(3) 多项式求值(polyval)
Y = polyval(P,x)
若x数值,则求多项式在该点x的值;
若X是向量或矩阵,每元素x(i,j)多项式求值。
代数多项式P求值
数组乘方运算:
Y=a0*X.^n+a1*X.^(n-1)…an+1
>> p=[1,3,0,2];
>> poly2str(p,'x')
ans = x^3 + 3 x^2 + 2
>> a=[1,2;3,4]
a =1 2
3 4
>> y=polyval(p,a)
y =6 22
56 114
>> y=polyval(p,2)
y = 22
例
例
Y = polyvalm(P,X)
矩阵多项式求值(polyvalm)
Y=a0*X^n+a1*X^n-1…an+1
X必为方阵,作自变量代入多项式求值;
结果阶数还是保持方阵阶数。
相当于矩阵X乘方运算:
设A为方阵,
P代表多项式x3-5x2-2:
pp=polyval(P,A)的含义
pp=A.*A.*A -5*A. *A-2
Pm=polyvalm(P,A)的含义:
Pm=A*A*A-5*A*A-2
>> p=[1,-5,0,-2];
>> a=[2,4;1,0]
a = 2 4
1 0
>> pp=polyval(p,a)
pp = -14