第四章 数值计算优秀课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
% 按拟合曲线计算采样值
n1=6;
% 设定拟合次数为6
[p1,s1]=polyfit(x0,y0,n1);
yy1=polyval(p1,xx);
plot(xx,yy,'-b',xx,yy1,'-m',x0,y0,'.r','MarkerSize',20);
y3=polyval(p,0.5); y6=polyval(p1,0.5);
T_rem=poly2sym(A_r)
例4.1.1-4 多项式求值,求上式f1(x)在x=0.wenku.baidu.com处的函数值
T1=[2,5,0,4,1,4]; x=0.5; y=polyval(T1,x)
y= 5.8750
2> 多项式求根---roots 例4.1.1-5 求多项式f1(x)=2x5+5x4+4x2+x+4的根
第四章 数值计算
数值计算内容:
数值计算包括:多项式运算, 线性方程组求解, 矩阵特征值问题 的解, 卷积, 数据分析, 泛函指令的使用, 信号处理和系统分析.
4.1 多项式运算 多项式运算是数学中最基本的运算之一.多项式一般可 以表示为:
f(x)=a0xn+a1xn-1+a2xn-2+…+an-1x+an
T=[2, 5, 0, 4, 1, 4]; fx=poly2sym(T)
fx = 2*x^5+5*x^4+4*x^2+x+4
函数poly2sym是符号工具箱中的函数,在用此种方式 构造多项式时, 必须把多项式各项的系数写完整, 而不 管此项的系数是否为0
例4.1.1-2 用多项式的根构造多项式,根为r=[1,2,3,4]
T=T1+T2;
% 必须是同维的才能相加
T_add=poly2sym(T)
T=T1-T2;
T_sub=poly2sym(T)
T=conv(T1,T2);
% 乘法不要求同维
T_mul=poly2sym(T)
[A_coe, A_r]=deconv(T1,T3);
T_coe=poly2sym(A_coe)
x0=0:0.1:1; y0=[-0.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];
xi=0:0.02:1; yi=interp1( x0, y0, xi, 'cubic' ); subplot(1,2,1); plot(xi, yi, '-b', x0, y0, '.r', 'MarkerSize', 20); xlabel('x'), ylabel('y'); [p,s]=polyfit(x0,y0,3); xx=0:0.01:1; yy=polyval(p,xx); subplot(1,2,2); plot(xx, yy, '-r', x0, y0, '.r', 'MarkerSize', 20); xlabel('x'); ylabel('y');
1> 多项式的四则运算
多项式四则运算主要是多项式的加,减,乘,除.其中,多项 式的加减运算要求两个相加,减的多项式的大小必须相 等,此时加,减才有效. 当两个相加,减的多项式阶次不同 时必须通过补0使其相同. T=deconv(T1, T3)
加/减---+/-
[T, r]=deconv(T1,T3)
n----拟合出的多项式次数 p---多项式向量
s---偏差信息
yi=interp1(x0, y0, xi, 'cubic'); xi, yi---得到的新的插值点
cubic---插值方式
例4.1.1-7 对下列数据对(x0,y0)求三次拟合多项式并绘图. x0=0:0.1:1; y0=[-0.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58, 3.45,5.35,9.22];
T1=[2,5,0,4,1,4]; h=polyder(T1); poly2sym(h)
10*x^4+20*x^3+8*x+1
4> 拟合和插值---polyfit, interp1
x0,y0---给定数据对
p = polyfit(x0, y0, n); [p, s] = polyfit(x0, y0, n);
乘/除---conv, deconv
商多项式 余式
T3为分母
例4.1.1-3 多项式的加减乘除运算 f1(x)=2x5+5x4+4x2+x+4, f2(x)=5x3+x2+3x+2
T1=[2, 5, 0, 4, 1, 4];
T2=[0, 0, 5, 1, 3, 2];
T3=[5, 1, 3, 2]; % 除法运算中分母多项式第一个系数不能为0
text(0.5, y3-0.3, 'n=3');
text(0.5, y6+0.2, 'n=6');
y=348.21x6-1060.23x5+1297.68x4-758.90x3+ 181.00x2 + 1.00x+0.48
y=51.48x3 -77.74x2+35.06x-0.20
拟合只能在给定数据所限定的区间内使用, 不要任意向外拓展. 例4.1.1-8 按上例所给数据研究插值, 并观察插值和拟合的区别.
对于这种表示形式,很容易用一个行向量表示,即: 幂 T=[a0,a1,a2,…an-1,an]
在MATLAB中, 多项式正是用这样一个行向量表示的, 系数是按降序排列的.
4.1.1 多项式构造
多项式可以直接用向量表示, 因此, 构造多项式最简单的方法是 直接输入向量.
例4.1.1-1 直接输入向量构造 f(x)=2x5+5x4+4x2+x+4
r=[1,2,3,4]; T1=poly(r); y=poly2sym(T1) y_class=class(y)
T1 = 1 -10 35 -50 24
y= x^4-10*x^3+35*x^2-50*x+24
y_class = sym
4.1.2 多项式的运算
多项式的运算主要包括多项式的四则运算,导数运算, 估值运算,求根运算以及多项式的拟合等.
x0=0:0.1:1;
y0=[-0.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];
n=3;
% 设定拟合次数为3
[p,s]=polyfit(x0,y0,n); % 得到拟合多项式向量和相关偏差信息
xx=0:0.01:1;
yy=polyval(p,xx);
T1=[2, 5, 0, 4, 1, 4]; root=roots(T1);
root = -2.7709 0.5611 + 0.7840i
0.5611 - 0.7840i
-0.4257 + 0.7716i
-0.4257 - 0.7716i
3> 多项式的导数运算---polyder
例4.1.1-6 求多项式f1(x)=2x5+5x4+4x2+x+4的导数