参考教材:《数学建模与教学实验》第5版
提示:以下是本篇文章正文内容,来自参考教材课后习题。
1. 在化工生产中常需要知道丙烷在各种哦温度T和压力P下的导热系数K.
下面是试验得到的数据:
T | 68 | 68 | 87 | 87 | 106 | 106 | 140 | 140 |
---|---|---|---|---|---|---|---|---|
P | 9.7981 | 13.324 | 9.0078 | 13.355 | 9.7918 | 14.277 | 9.6563 | 12.463 |
K | 0.0848 | 0.0897 | 0.0762 | 0.0807 | 0.0696 | 0.0753 | 0.0611 | 0.0651 |
试求T=99和P=10.3下的K
matlab求解:
% 温度
T = [68 68 87 87 106 106 140 140];
% 压强
P = [9.7981 13.324 9.0078 13.355 9.7918 14.277 9.6563 12.463];
% 导热系数
K = [0.0848 0.0897 0.0762 0.0807 0.0696 0.0753 0.0611 0.0651];
% 散乱节点插值函数griddata
ck = griddata(T,P,K,99,10.3) % 线性插值
ck1 = griddata(T,P,K,99,10.3,"v4") % 四点样条插值
ck2 = griddata(T,P,K,99,10.3,"cubic") % 三次插值
ck3 = griddata(T,P,K,99,10.3,"nearest") % 最近领点插值
线性插值k=0.0729,四点样条插值k=0.0718,三次插值k=0.0724,最近领点插值k=0.0696
2. 下表给出了某一海域的水深数据. 直角坐标系 O x y O_{xy} Oxy 中, xy 平面上的点 (x,y) , 水深 z 以英尺为单位.水深数据是在低潮时测得的, 船的吃水深度为 5 英尺.
问在矩形区域 (75,200)×(−50,150) 里哪些地方船要避免进入.
x | 129 | 140 | 103.5 | 88 | 185.5 | 195 | 105.5 | 157.5 | 107.5 | 77 | 81 | 162 | 162 | 117.5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
y | 7.5 | 141.5 | 23 | 147 | 22.5 | 137.5 | 85.5 | -6.5 | -81 | 3 | 56.5 | -66.5 | 84 | -33.5 |
z | 4 | 8 | 6 | 8 | 6 | 8 | 8 | 9 | 9 | 8 | 8 | 9 | 4 | 9 |
matlab求解:
clear;clc
% 数据输入
x = [129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];
y = [7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5];
z = [4 8 6 8 6 8 8 9 9 8 8 9 4 9];
z = z.*(-1);% 深度方向
nx = 75:0.2:200;
ny = -70:0.2:150;
[nx,ny] = meshgrid(nx,ny);
nz = griddata(x,y,z,nx,ny,"cubic"); % 三次插值,其他插值也可以
subplot(1,2,1);
% 带帷幕的网格曲面图meshz
meshz(nx,ny,nz);title("插值曲面图"),xlabel("x"),ylabel("y"),zlabel("z")
% 等值线图
subplot(1,2,2);
contour(nx,ny,nz,[-5,-5],"r");title("等值图")
hold on
plot(x,y,"*");xlabel("x"),ylabel("y")
结果可知在红色区域为危险区域,避免红色区域·进入。
3. 用给定的多项式,如 y = x 3 − 6 x 2 + 5 x − 3 y=x^3-6x^2+5x-3 y=x3−6x2+5x−3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。
如果作2次或4次多项式拟合,结果如何?
matlab求解:
clear;clc
x = 1:0.5:10;
% 多项式
y = x.^3 - 6*x.^2 + 5*x - 3;
% 添加随机干扰
a = rand(size(y))
y0 = y + a;
% 三次多项式拟合
f3 = polyfit(x,y0,3)
y3 = polyval(f3,x);
subplot(2,2,1);plot(x,y,"*",x,y3);title("三次拟合曲线")
% 二次多项式拟合
f2 = polyfit(x,y0,2)
y2 = polyval(f2,x);
subplot(2,2,2);plot(x,y,"*",x,y2);title("二次拟合曲线")
% 四次多项式拟合
f4 = polyfit(x,y0,4)
y4 = polyval(f4,x);
subplot(2,2,3);plot(x,y,"*",x,y4);title("四次拟合曲线")
系数:
多项式拟合曲线:
比较拟合后多项式和原式的系数,发现四次多项式系数、三次多项式系数与原系数比较接近.作图后,发现二次多项式的图形与原函数的差别比较大,三次与四次多项式拟合图像与原系数比较接近。而且接近程度较好。
4. 用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为 U ( t ) = U − ( U − U 0 ) e − t / T U(t)=U -(U-U_0)e^{-t/T} U(t)=U−(U−U0)e−t/T,其中 U 0 U_0 U0是电容器的初始电压,T是充电常数。
试由下面一组t,U(t)数据确定 U 0 和 T U_0和T U0和T。
t/s | 0.5 | 1 | 2 | 3 | 4 | 5 | 7 | 9 |
---|---|---|---|---|---|---|---|---|
U/v | 6.36 | 6.48 | 7.26 | 8.22 | 8.66 | 8.99 | 9.43 | 9.63 |
matlab求解:
建立curvefun函数:
function f = curvefun(x,t)
f = 10-(10-x(1))*exp(-t./x(2))
主函数:
t = [0.5 1 2 3 4 5 7 9];
v = [6.36 6.48 7.26 8.22 8.66 8.99 9.43 9.63];
x0 = [0.2,0.05];
% 非线性最小二乘拟合
x = lsqcurvefit("curvefun",x0,t,v)
f = curvefun(x,t)
可得
U
0
=
5.5577
,
T
=
3.5002
U_0=5.5577,T=3.5002
U0=5.5577,T=3.5002
5. 弹簧在力F的作用下伸长x,一定范围内服从胡克定律:F与x成正比,即F=kx,k为弹性系数。
现在得到下面一组x,F数据,并在(x, F)坐标下作图。可以看出,当F大到一定数值(如x=9以后)后,就不服从这个定律了。试由数据拟和直线F=kx,并给出不服从胡克定律时的近似公式(曲线)。x,F数据如下:
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 |
matlab求解:
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];
% 先使用一元多项式拟合(线性)
a = polyfit(x,f,1)
b = polyval(a,x)
plot(x,f,"+",x,b,"-")
figure(2)
可以看出在10以后的拟合效果不是很好。越来越偏离实际情况。
选取前5个数据与后4个数据分别进行拟合:文章来源:https://www.toymoban.com/news/detail-460743.html
x = [1 2 4 7 9];
f = [1.5 3.9 6.6 11.7 15.6];
% 使用一元多项式拟合
a = polyfit(x,f,1)
b = polyval(a,x)
subplot(1,2,1);plot(x,f,"+",x,b,"-");title("前5数据一元多项式拟合")
x1 = [12 13 15 17];
f1 = [18.8 19.6 20.6 21.1];
% 使用二元多项式拟合
a1 = polyfit(x1,f1,2)
b1 = polyval(a1,x1)
subplot(1,2,2);plot(x1,f1,"+",x1,b1,"-");title("后4数据二元多项式拟合")
系数:
拟合图:
由上述结果可得:当x<=9时,服从胡克定律
F = 1.7084x
当x>9后,不符合胡克定律,用二次函数来表示:
F
=
−
0.0732
x
2
+
2.5790
x
−
1.5834
F = -0.0732x^2 + 2.5790x-1.5834
F=−0.0732x2+2.5790x−1.5834文章来源地址https://www.toymoban.com/news/detail-460743.html
到了这里,关于《数学建模与数学实验》第5版 插值与拟合 习题7.6的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!