6--多项式运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拟合问题引例
拟合问题引例
0C) 20.5 32.7 51.0 73.0 95.7 温度 t( 已知热敏电阻数据:
电阻R() 765 求600C时的电阻R。
1100 1000 900 800 700 20
826ຫໍສະໝຸດ Baidu
873
942 1032
设 R=at+b a,b为待定系数
40
60
80
100
曲线拟合理论
j m
x p
j
rj 1
2
x p
多项式的值
计算多项式在给定点的值
代数多项式求值
y = polyval(p,x): 计算多项式 p 在 x 点的值
注:若 x 是向量或矩阵,则采用数组运算 (点运算)! 例:已知 p( x) 2 x 3 x 2 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)
多项式的值
矩阵多项式求值
Y=polyvalm(p,X)
采用的是普通矩阵运算 X 必须是方阵
3 2 例:已知 p( x) 2 x x 3,则
polyvalm(p,A) = 2*A*A*A - A*A + 3*eye(size(A)) polyval(P,A) = 2*A.*A.*A - A.*A + 3*ones(size(A)) >> p=[2,-1,0,3]; >> x=[-1, 2;-2,1];polyval(p,x) >> polyvalm(p,x)
多项式的零点
x=roots(p):若 p 是 n 次多项式,则输出是 p=0 的 n 个根组成的 n 维向量。
3 2 例:已知 p( x) 2 x x 3,求 p(x) 的零点。
>> p=[2,-1,0,3]; >> x=roots(p) 若已知多项式的全部零点,则可用 poly 函数给出该多项式 p=poly(x)
举例
在1-12的11小时内,每隔1小时测量一次温度,测得的 温度依次为:5,8,9,15,25,29,31,30,22,25,27, 24。试估计每隔1/10小时的温度值。 hours=1:12; temps=[5 8 9 15 25 29 31 30 22 25 27 24]; h=1:0.1:12; t=interp1(hours,temps,h,'spline'); %(直接输出数据将是很多的) plot(hours,temps,'+',h,t,hours,temps,'r:') xlabel('Hour'),ylabel('Degrees Celsius’)
已知一组(二维)数据,即平面上 n个点(xi, yi) i=1,…n, 寻求一个函数(曲线)y=f(x), 使 f(x) 在某种准则下与所
有数据点最为接近,即曲线拟合得最好。
y + + + + + i (x+ i,yi)
+
最小二乘法,即
min|f(xi ) yi |2
i 1 n
+ +
y=f(x) x
x y 37 3.4 37.5 3 38 3 38.5 2.27 39 2.1 39.5 1.83 40 1.53 40.5 1.7 41 1.8 41.5 1.9 42 2.35 42.5 2.54 43 2.9
多项式插值
一维插值:interp1 yi = interp1(x,y,xi,'method') x,y为原 始数据,x1, y1为插值出的数值,'method'是插值 所用的方法. Available methods are: ‘nearest’ - 最邻近插值 ‘linear’ - 线性插值 ‘spline’ - 三次样条插值 ‘cubic’ - 三次插值
a=[3 2 5 4 6];b=[1 3 4 2 7 2]; [r,p,k]=residue(a,b)
[b,a] = residue(r,p,k)将部分分式展开的形 式还原为两个多项式b(x)和a(x)相除的形式
b x bs x s 如果多项式a x 不含重根,则 = t a x at x b x r1 r2 a x x p1 x p2 其中,p1 , p2 , p3 , rn k x x pn
有理多项式运算
部分分式展开与结合: [r,p,k] = residue(a,b) a,b为分子, 分母多项式系数向量,r,p,k分别是留数, 极点,直项
3x 4 2 x3 5 x 2 4 x 6 例:将 5 进行部分分式展开 4 3 2 x 3x 4 x 2 x 7 x 2
%作图
多项式插值
二维插值:interp2 zi = interp2(x,y,z,xi,yi,‘method’) x,y,z为原始数据,计算xi,yi处的函数值zi , ‘method’指定的方法同interp1. 要求x0,y0单调,x,y可取为矩阵,或x取行向量,y 取为列向量;x,y的值分别不能超出x0,y0的范围。
b1 x b0 可以写成: a1 x a0
, pn 称为极点,r1 , r2 , r3 ,
, rn 称为留数,k x 称为直项
留数和极点的个数n满足: n length a 1 length r length p 如果b x 的次数小于a x 的次数,则直项的系数向量的系数为空, 否则,它们之间满足: length k length b length a 1 如果a x 含有m重根p j rj x pj p j m 1 , 则展开的这m项应该写成: rj m 1
d 是分母
3 2 p ( x ) 2 x x 3, q( x) 2 x 1 , 例:已知 求 p' , ( p q)', ( p / q)'
>> k1=polyder([2,-1,0,3]); >> k2=polyder([2,-1,0,3],[2,1]); >> [k2,d]=polyder([2,-1,0,3],[2,1]);
i 为点(xi, yi) 与曲线 y=f(x) 的距离
多项式拟合
最小二乘拟合:polyfit p = polyfit(x,y,n) 求由给定向量x,y对应 的数据点的n次多项式拟合函数,p为所求拟合 多项式的系数向量(按降幂排列)。 【例】对下面数据作分别作二次、三次、七次 多项式拟合,并通过各次拟合的误差和来比较 拟合程度的高低。
x 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
y 2.1 3.2 2.1 2.5 3.2 3.5 3.4 4.1 4.7 5.0 5.2
拟合举例
【例】 某种合金中的主要成分为A,B两种金属, 经过试验发现:这两种金属成分之和x与合金的 膨胀系数y有如下关系,建立描述这种关系的数 学表达式.
p( x) ( x x1 )(x x2 )( x xn )
多项式插值、拟合
多项式插值、拟合
概述
在生产和科学实验中,自变量x与因变量y之间的 函数关系式有时不能直接写出表达式,而只能得到函 数在若干个点的函数值或导数值. 当要求知道观测点之 外的函数值时,需要估计函数在该点的数值. 这就要根 据观测点的值,构造一个比较简单的函数y=φ(x),使 函数在观测点的值等于已知的数值或导数值,寻找这 样的函数φ(x),办法是很多的. 根据测量数据的类型有如下两种处理观测数据的方法: ① 测量值是准确的,没有误差,一般用插值. ② 测量值与真实值有误差,一般用曲线拟合.
3 2 p 2 x x 3 例: 1 p2 2 x 1 p1 p2 2 x 3 x 2 2 x 4
[2, 1, 0, 3] [ 0, 0, [ 2, 1] [2, 1, 2, 4]
多项式四则运算
多项式乘法运算: k = conv(p,q)
例:计算多项式 2 x 3 x 2 3 和 2 x 1 的乘积
例: 2 x 3 x 2 3
[2, 1, 0, 3]
注:系数中的零不能省!
多项式构造
多项式的符号形式:poly2sym(p,’x’) poly2sym([2,-1,0,3]) poly2sym([2,-1,0,3],’x’) 特征多项式或指定根的多项式:poly(A) 若A是方阵,返回A的特征多项式;若A是向 量,返回以A中元素为根的首1多项式。
A=[0,1,1;1,0,1;1,1,1]; poly(A), x=[1 2 0]; poly(x)
多项式四则运算
多项式加减运算
Matlab 没有提供专门进行多项式加减运算的函数,事实 上,多项式的加减就是其所对应的系数向量的加减运算 对于次数相同的多项式,可以直接对其系数向量进行 加减运算; 如果两个多项式次数不同,则应该把低次多项式中系 数不足的高次项用 0 补足,然后进行加减运算。
数学实验
多项式及相关运算
主要内容
多项式基本运算 多项式插值拟合
Matlab 多项式基本运算
多项式构造
Matlab 中多项式的表示方法
在 Matlab 中,n 次多项式是用一个长度为 n+1的向量来 表示,缺少的幂次项系数为 0。
p( x) an x n an1x n1 a1x a0 在 Matlab中表示为向量: [an , an1 , , a1 , a0 ]
>> p=[2,-1,0,3]; >> q=[2,1]; >> k=conv(p,q);
多项式除法运算: [k,r] = deconv(p,q)
其中 k 返回的是多项式 p 除以 q 的商,r 是余式。 [k,r]=deconv(p,q) <==> p=conv(q,k)+r
多项式的求导
多项式的求导: polyder k=polyder(p) : 多项式 p 的导数; k=polyder(p,q): p*q 的导数; [k,d]=polyder(p,q): 有理分式p/q 的导数,k 是分子,
例: 用四种方法对 z xe
( x2 y 2 )
在(-2,2)
上的二维多项式插值效果进行比较。(cz6_1.m)
实验内容
1、求多项式x4+8x3-10的根,并根据已经求出的 根建立起该多项式,并与原多项式进行对比。 2、求f(x)=x-10x+2=0在x0=0.5附近的根
3、课本:P130:3,4,5;8;12
!!!注意:所有的插值方法都要求x是单调的,并且xi不能够 超过x的范围。
‘nearest’(最邻近插值):将插值点x处的函数值y 置为与之最接近的已知点xi处的值,即为yi。 ‘linear’(线性插值):用直线连接相邻的已知数据 点( xi ,yi),插值点x处的函数值y由该直线确 定。 ‘spline’(三次样条插值):用三次函数连接相邻的 已知数据点( xi ,yi),插值函数在已知点处连 续并且它的一阶导数和二阶导数也连续。 ‘cubic’(立方插值):用于实现分段光滑hermite 插值,并保留数据的单调性和形状。