MATLAB作业4参考答案教学教材Word文件下载.docx
- 文档编号:16776735
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:9
- 大小:37.64KB
MATLAB作业4参考答案教学教材Word文件下载.docx
《MATLAB作业4参考答案教学教材Word文件下载.docx》由会员分享,可在线阅读,更多相关《MATLAB作业4参考答案教学教材Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
2);
z=exp(-x.A2-y.A4).*sin(x.*y.A2+x.A2.*y)./(3*x43+y);
surf(x,y,z)
选择新的密集网格,则可以通过二元插值得出插值曲面。
对比插值结果和新网格下的函数值精确解,则可以绘制出绝对插值误差曲面。
由插值结果可见精度是令人满意的。
[x1,y1]=meshgrid(0.2:
0.02:
z1=interp2(x,y,z,x1,y1,'
spline'
surf(x1,y1,z1)
z0=exp(-x1.A2-y1.A4).*sin(x1.*y1.A2+x1.A2.*y1)./(3*x1.A3+y1);
surf(x1,y1,abs(z1-z0))
现在假设已知的样本点不是网格形式分布的,而是随机分布的,则可以用下面语句生成样本点,得出分布的二维、三维示意图。
x=0.2+1.8*rand(400,1);
y=0.2+1.8*rand(400,1);
%仍生成(0.2,2)区间的均匀分布随机数
z=exp(-x.A2-y.A4).*sin(x.*y.A2+x.A2.*y)./(3*x.A3+y);
plot(x,y,'
x'
figure,plot3(x,y,z,'
利用下面的语句可以得出三维插值结果,同时可以绘制出插值的绝对误差曲面,可见插值
结果还是很好的,但由于边界样本点信息不能保证,所以不能像网格数据那样对(0.2,2)
区域,而只能选择(0.3,1.9)区域进行插值
[x1,y1]=meshgrid(0.3:
1.9);
z仁griddata(x,y,z,x1,y1,'
v4'
z0=exp(-x1.A2-y1.A4).*sin(x1.*y1.A2+x1.A2.*y1)./(3*x1.A3+y1);
surf(x1,y1,abs(z1-z0))
3、假设已知一组数据,试用插值方法绘制出x(2,4.9)区间内的光滑函数曲线,比较各
种插值算法的优劣。
Xi
-2
-1.7
-1.4
-1.1
-0.8
-0.5
-0.2
0.1
0.4
0.7
1
1.3
yi
.10289
.11741
.13158
.14483
.15656
.16622
.17332
.1775
.17853
.17635
.17109
.16302
1.6
1.9
2.2
2.5
2.8
3.1
3.4
3.7
4
4.3
4.6
4.9
Yi
.15255
.1402
.12655
.11219
.09768
.08353
.07015
.05786
.04687
.03729
.02914
.02236
【求解】用下面的语句可以立即得出给定样本点数据的三次插值与样条插值,得出的结果
如,可见,用两种插值方法对此例得出的结果几乎一致,效果均很理想。
x=[-2,-1.7,-1.4,-1.1,-0.8,-0.5,-0.2,0.1,0.4,0.7,1,1.3,…
1.6,192.2,2.5,2.8,3.1,3.4,3.7,4;
y=[0.10289,0.11741,0.13158,0.14483,0.15656,0.16622,0.17332,...
0.1775,0.17853,0.17635,0.17109,0.16302,0.15255,0.1402,...
0.12655,0.11219,0.09768,0.08353,0.07019,0.05786,0.04687,...
0.03729,0.02914,0.02236];
x0=-2:
4.9;
y1=interp1(x,y,x0,'
cubic'
y2=interp1(x,y,x0,'
plot(x0,y1,'
:
'
x0,y2,x,y,'
并用三维曲面的方式绘制出插值结果。
X1
X2
X3
X4
X5
X6
X7
X
X9
X10
X11
0.2
0.3
0.5
0.6
0.8
0.9
1.1
.83041
.82727
.82406
.82098
.81824
.8161
.81481
.81463
.81579
.81853
.82304
.83172
.83249
.83584
.84201
.85125
.86376
.87975
.89935
.92263
.94959
.9801
.83587
.84345
.85631
.87466
.89867
.9284
.96377
1.0045
1.0502
1.1529
.84286
.86013
.88537
.91865
.95985
1.0086
1.0642
1.1253
1.1904
1.257
1.3222
[.85268
.88251
.92286
.97346
1.0336
1.1019
1.1764
1.254
1.3308
1.4017
1.4605
r.86532
.91049
.96847
1.0383
1.118
1.2046
1.2937
1.3793
1.4539
1.5086
1.5335
r.88078
.94396
1.0217
1.1118
1.2102
1.311
1.4063
1.4859
1.5377
1.5484
1.5052
.89904
.98276
1.082
1.1922
1.3061
1.4138
1.5021
1.5555
1.5573
1.4915
1.346
r.92006
1.0266
1.1482
1.2768
1.4005
1.5034
1.5661
1.5678
1.4889
1.3156
1.0454
r.94381
1.0752
1.2191
1.3624
1.4866
1.5684
1.5821
1.5032
1.315
1.0155
.62477
.97023
1.1279
1.2929
1.4448
1.5564
1.5964
1.5341
1.3473
1.0321
.61268
.14763
【求解】直接采用插值方法可以解决该问题,得出的插值曲面
[x,y]=meshgrid(0.1:
1.1);
z=[0.83041,0.82727,0.82406,0.82098,0.81824,0.8161,0.81481,0.81463,0.81579,0.81853,0.82304;
0.83172,0.83249,0.83584,0.84201,0.85125,0.86376,0.87975,0.89935,0.92263,0.94959,0.9801;
0.83587,0.84345,0.85631,0.87466,0.89867,0.9284,0.96377,1.0045,1.0502,1.1,1.1529;
0.84286,0.86013,0.88537,0.91865,0.95985,1.0086,1.0642,1.1253,1.1904,1.257,1.3222;
0.85268,0.88251,0.92286,0.97346,1.0336,1.1019,1.1764,1.254,1.3308,1.4017,1.4605;
0.86532,0.91049,0.96847,1.0383,1.118,1.2046,1.2937,1.3793,1.4539,1.5086,1.5335;
0.88078,0.94396,1.0217,1.1118,1.2102,1.311,1.4063,1.4859,1.5377,1.5484,1.5052;
0.89904,0.98276,1.082,1.1922,1.3061,1.4138,1.5021,1.5555,1.5573,1.4915,1.346;
0.92006,1.0266,1.1482,1.2768,1.4005,1.5034,1.5661,1.5678,1.4889,1.3156,1.0454;
0.94381,1.0752,1.2191,1.3624,1.4866,1.5684,1.5821,1.5032,1.315,1.0155,0.62477;
0.97023,1.1279,1.2929,1.4448,1.5564,1.5964,1.5341,1.3473,1.0321,0.61268,0.1476
[x1,y1]=meshgrid(0.1:
axis([0.1,1.1,0.1,1.1,min(z1(:
)),max(z1(:
))])
其实,若光需要插值曲面而不追求插值数值的话,完全可以直接采用MATLABF的shading
interp命令来实现。
可见,这样的插值方法更好,得出的插值曲面更光滑。
surf(x,y,z);
shadinginterp
5、习题3和4给出的数据分别为一元数据和二元数据,试用分段三次样条函数和B样条函数对其进行拟合。
【求解】先考虑习题4,相应的三次样条插值和B-样条插值原函数与导数函数分别为:
x=[-2,-1.7,-1.4,-1.1,-0.8,-0.5,-0.2,0.1,0.4,0.7,1,1.3,...
1.6,1.9,2.2,2.5,2.8,3.1,3.4,3.7;
S=csapi(x,y);
S1=spapi(6,x,y);
fnplt(S);
holdon;
fnplt(S1)
Sd=fnder(S);
Sd1=fnder(S1);
fnplt(Sd),holdon;
fnplt(Sd1)
再考虑习题5中的数据,原始数据不能直接用于样条处理,因为meshgrid()函数产生的
数据格式与要求的ndgrid()函数不一致,所以需要对数据进行处理,其中需要的x和y
均应该是向量,而z是原来z矩阵的转置,所以用下面的语句可以建立起三次样条和B-样
条的插值模型,函数的表面图所示,可见二者得出的结果很接近。
[x,y]=meshgrid(0:
z=[0.83041,0.82727,0.82406,0.82098,0.81824,0.8161,0.81481,0.81463,0.81579,0.81853,0.82304;
0.83587,0.84345,0.85631,0.87466,0.89867,0.9284,0.96377,1.0045,1.0502,1.1,1.152
9;
0.84286,0.86013,0.88537,0.91865,0.95985,1.0086,1.0642,1.1253,1.1904,1.257,1.32
22;
0.85268,0.88251,0.92286,0.97346,1.0336,1.1019,1.1764,1.254,1.3308,1.4017,1.460
5;
x0=[0.0:
1];
y0=x0;
z=z'
;
S=csapi({x0,y0},z);
fnplt(S)
figure;
S1=spapi({5,5},{x0,y0},z);
S1x=fnder(S1,[0,1]);
fnplt(S1x)
S1y=fnder(S1,[0,1]);
fnplt(S1y)
6、重新考虑习题3中给出的数据,试考虑用多项式插值的方法对其数据进行逼近,并选择一个能较好拟合原数据的多项式阶次。
【求解】可以选择不同的多项式阶次,例如选择3,5,7,9,11,则可以对其进行多项式拟合,并绘制出曲线。
p3=polyfit(x,y,3);
y3=polyval(p3,x0);
p5=polyfit(x,y,5);
y5=polyval(p5,x0);
p7=polyfit(x,y,7);
y7=polyval(p7,x0);
p9=polyfit(x,y,9);
y9=polyval(p9,x0);
pl1=polyfit(x,y,11);
y1仁polyval(p11,xO);
plot(x0,[y3;
y5;
y7;
y9;
y11])
从拟合的结果可以发现,选择5次多项式就能较好地拟合原始数据
的值,并用得出的函数将函数曲线绘制出来,观察拟合效果。
这时可以写出原型函数为
f=inline('
exp(-(x-a
(1))A2/2/a
(2)A2)/(sqrt(2*pi)*a
(2))'
'
a'
由原型函数则可以用下面的语句拟合出待定参数31,32,。
这样,拟合曲线得出的拟合效果
是满意的。
a=lsqcurvefit(f,[1,1],x,y)
a=
0.346057535548862.23400202798747
x0=-2:
y0=f(a,x0);
plot(x0,y0,x,y,'
小二乘方法识别出a,b,c,d,e的数值。
【求解】用下面的语句可以用最小二乘的得出
x1=x(:
y1=y(:
z1=z(:
A=[sin(x142.*y1)cos(y142.*x1)x1.A2x1.*y1ones(size(x1))];
theta=A\z1
theta=
-0.89204693251635
.0937********
-0.12203277931186
2.70828089435211
-2.42507028220675
用下面的语句可以绘制出拟合结果,如图所示。
z=theta
(1)*sin(x.A2.*y)+theta
(2)*cos(y.A2.*x)+theta(3)*x.A2+...
theta(4)*x.*y+theta(5);
9、假设已知一组实测数据在文件c8pdat.dat中给出,试通过插值的方法绘制出三维曲
面。
【求解】由该文件可见,给定的数据是非网格型的x;
y;
z向量,故提取这些向量并按非网格
数据进行插值,则将得出如图所示的插值结果。
loadc8pdat.dat
x=c8pdat(:
1);
y=c8pdat(:
2);
z=c8pdat(:
3);
[max(x),min(x)max(y),min(y)]%找出插值区域
ans=0.99430.01290.99940.0056>
[x1,y1]=meshgrid(0:
1);
z1=griddata(x,y,z,x1,y1,'
surf(x1,y1,z1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 作业 参考答案 教学 教材
![提示](https://static.bdocx.com/images/bang_tan.gif)