编译环境:MATLAB 2018a win64;
2. 确定地球与金星之间的距离
天文学家在1914年8月份的7次观测中,测得地球与金星之间距离(单位:米),并取其常用对数值,与日期的一组历史数据如下表:
日期(号) | 18 | 20 | 22 | 24 | 26 | 28 | 30 |
距离对数 | 9.9617724 | 9.9543645 | 9.9468069 | 9.9390950 | 9.9312245 | 9.9231915 | 9.9149925 |
由此推断何时金星与地球的距离(米)的对数值为9.9351799?
解:代码如下所示
clc;
x=[18,20,22,24,26,28,30];
y=[9.9617724,9.9543645,9.9468069,9.9390950,9.9312245,9.9231915,9.9149925];
y1=9.9351799;
z=interp1(y,x,y1,'linear');
xlabel('x');
ylabel('y');
plot(x,y,'-+',z,y1,'o');
disp(['插入9.9351799所在点的z值为',int2str(z)]);
结果如图所示。
气旋分布的可视化
下面是南半球不同年份在七月份按不同纬度的气旋数据,用二维插值,试
可视化其气旋分布,并对比最近邻插值、双二次插值、双三次插值。
1972 | 1973 | 1974 | 1975 | 1976 | 1977 | 1978 | 1979 | 1980 | 1981 | |
0-10 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
10-20 | 0 | 1 | 3 | 3 | 3 | 0 | 1 | 0 | 2 | 1 |
20-30 | 15 | 15 | 7 | 6 | 5 | 9 | 9 | 6 | 3 | 8 |
30-40 | 29 | 22 | 38 | 31 | 31 | 35 | 39 | 37 | 37 | 31 |
40-50 | 42 | 48 | 48 | 41 | 39 | 52 | 50 | 49 | 44 | 49 |
50-60 | 25 | 29 | 30 | 31 | 37 | 49 | 38 | 43 | 41 | 28 |
60-70 | 12 | 20 | 21 | 15 | 14 | 19 | 23 | 30 | 27 | 21 |
70-80 | 4 | 3 | 4 | 92 | 7 | 6 | 2 | 2 | 8 | 8 |
80-90 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
解:代码如下所示;
x=[1972:1981];
y=[10:10:90];
z=[0,0,2,1,0,0,0,0,0,1
0,1,3,3,3,0,1,0,2,1
15,15,7,6,5,9,9,6,3,8
29,22,38,31,31,35,39,37,37,31
42,48,48,41,39,52,50,49,44,49
25,29,30,31,37,49,38,43,41,28
12,20,21,15,14,19,23,30,27,21
4,3,4,92,7,6,2,2,8,8
0,0,1,0,0,0,0,0,0,0];
mesh(x,y,z);
xi=linspace(1972,1981,100);
yi=linspace(10,90,100);
[xii,yii]=meshgrid(xi,yi);
subplot(2,2,1);
mesh(x,y,z);
title('原始图')
subplot(2,2,2);
Z1=interp2(x,y,z,xii,yii,'nearest');
mesh(xii,yii,Z1);
title('使用最邻近插值法nearest')
subplot(2,2,3);
Z1=interp2(x,y,z,xii,yii,'linear');
mesh(xii,yii,Z1);
title('使用双二次插值法linear')
subplot(2,2,4);
Z1=interp2(x,y,z,xii,yii,'cubic');
mesh(xii,yii,Z1);
zlim([-10,100])
title('使用双三次插值法cubic')
结果下图所示:
考察温度x对产量y的影响,测得下列10组数据:
用拟合算法,求y关于x的多项式方程并绘图。
解:代码如下所示:
format rat;
wendu=[20:5:65];
chanliang=[13.2,15.1,16.4,17.1,17.9,18.7,19.6,21.2,22.5,24.3];
duoxiangshi=polyfit(wendu,chanliang,5);
B=polyval(duoxiangshi,wendu);
plot(wendu,chanliang,'rx',wendu,B,'-b');
legend('实际值','5次拟合预测曲线');
disp(poly2str([duoxiangshi],'x'));
拟合曲线结果为:4.1026e-09x^5-6.1166e-06x^4+0.0011301x^3-0.077339x^2+2.4234x-12.4173
旧车价格预测
某年美国旧车价格的调查资料如下表,其中xi表示轿车的使用年数,yi表示相应的平均价格。试分析用什么形式的曲线来拟合上述的数据,并预测使用4.5年后轿车的平均价格大致为多少?
xi | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
yi | 2615 | 1943 | 1494 | 1087 | 765 | 538 | 484 | 290 | 226 | 204 |
解:代码如下所示:
x=[1:10];
y=[2615,1943,1494,1087,765,538,484,290,226,204];
A=polyfit(x,y,7);
B=polyval(A,x);
fx=poly2str([A],'x');
disp(fx);
z=polyval(A,4.5);
plot(x,y,'ob',x,B,'-k',4.5,z,'rp');
title('7次拟合预测曲线')
legend('实际汽车价格','7次拟合预测曲线','预测4.5年后汽车价格');
disp(['预测4.5年后汽车价格为:',int2str(z)]);
预测函数为:
-0.037967x^7+1.5617x^6-26.0571x^5+226.0931x^4-1088.7609x^3+ 2913.676 x^2 - 4473.995 x + 5063.2
预测4.5年后汽车价格为:898
拟合曲线为: