对于上述问题,可键入以下的命令:
x=[1,2,4,7,9,12,13,15,17]';
F=[1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1]';
plot(x,F,'.')
从图像上我们发现:前5个数据应与直线拟合,后5个数据应与二次曲线拟合。于是
键入 a=polyfit(x(1:5),F(1:5),1); a=polyfit(x(5:9),F(5:9),2)
得
注意:有时,面对一个实际问题,究竟是用插值还是用拟合不好确定,还需大家在实际中
仔细区分。同时,大家(包括学过计算方法的同学)注意去掌握相应的理论知识。
4.数值积分
先看一个例子:
例4.现要根据瑞士地图计算其国土面积。于是对地图作如下的测量:以西东方向为横
轴,以南北方向为纵轴。(选适当的点为原点)将国土最西到最东边界在x轴上的区间划
取足够多的分点x
i
,在每个分点处可测出南北边界点的对应坐标y
1
,y
2
。用这样的方法得
到下表
x 7.0 10.5 13.0 17.5 34.0 40.5 44.5 48.0 56.0
y
1
44 45 47 50 50 38 30 30 34
y
2
44 59 70 72 93 100 110 110 110
x 61.0 68.5 76.5 80.5 91.0 96.0 101.0 104.0 106.5
y
1
36 34 41 45 46 43 37 33 28
y
2
117 118 116 118 118 121 124 121 121
x 111.5 118.0 123.5 136.5 142.0 146.0 150.0 157.0 158.0
y
1
32 65 55 54 52 50 66 66 68
y
2
121 122 116 83 81 82 86 85 68
根据地图比例知18mm相当于40km,试由上表计算瑞士国土的近似面积。(精确值为
41288km
2
)。
解题思路:数据实际上表示了两条曲线,实际上我们要求由两曲线所围成的图形的面积。
解此问题的方法是数值积分的方法。具体解时我们遇到两个问题: 1。数据如何输入;
2。没有现成的命令可用。
解:对于第一个问题,我们可把数据考备成M文件(或纯文本文件)。
然后,利用数据绘制平面图形。键入
load mianji.txt
A=mianji';
plot(A(:,1),A(:,2),'r',A(:,1),A(:,3),'g')
评论0