3、结果分析
(1)由九个点做八次插值,由上图可知,仅在区间[0 16]上较精确,其他区间均与真实值有较大差距,区间[25 64]上,甚至出现严重波动。
(2)做分段三次插值,发现在各个区间上,都能获得比较精确的插值。仅在区间[0 4]上有少许偏差。
(3)两个结果对比说明,由于龙格现象的存在,高次插值虽能在更多点上与被插值函数的函数值相同,但从整体上看不一定能取得很好的逼近效果,甚至出现震荡。这时选用分段低次插值可以取得较好的效果。
实验五 数据拟合
一、 实验内容: 1、
浓度变化规律
在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一组数据
如下:
t(分) y t(分) y
1 4 9 10
2 6.4 10 10.2
3 8.0 11 10.32
4 8.4 12 10.42
5 9.28 13 10.5
6 9.5 14 10.55
7 9.7 15 10.58
8 9.86 16 10.6
计算出y与t的二次、三次多项式拟合函数,并推断20,40分钟的浓度值,
(1)程序代码如下: t=1:1:16;
y=[4 6.4 8.0 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6]; x=1:0.1:50; y2=polyfit(t,y,2); y3=polyfit(t,y,3); y_2=poly2str(y2,'t') y_3=poly2str(y3,'t') y22=polyval(y2,x); y33=polyval(y3,x); y2_20=polyval(y2,20) y2_40=polyval(y2,40) y3_20=polyval(y3,20) y3_40=polyval(y3,40)
plot(x,y22,'r',x,y33,'b',t,y,'ko');hold on plot(20,y2_20,'b*',40,y2_40,'b*');hold on plot(20,y3_20,'b*',40,y3_40,'b*');hold on gtext('二次拟合'); gtext('三次拟合');
(2)运行结果如下:
二次、三次拟合多项式为:
二次、三次拟合情况下,20分钟和40分钟的浓度值为:
二次、三次拟合的拟合曲线为:
2、 经济增长模型(注:可转变为矛盾方程组求解)
增加生产、发展经济所以靠的主要因素有增加投资、增加劳动力以及技
术革新等,在研究国民经济产值与这些因素的数量关系时,由于技术水平不像资金、劳动力那样容易定量化,作为初步的模型,可认为技术水平不变,只讨论产值和资金、劳动力之间的关系。在科学技术发展不快时,如资本主
义经济发展的前期,这种模型是有意义的。
用Q,K,L分别表示产值、资金、劳动力,要寻求的数量关系Q(K,L)。经过简化假设与分析,在经济学中,推导出一个著名的Cobb-Douglas生产函数
Q(K,L)?aK?L? (*)
式中?,?,a要经由经济统计α数据确定。现有美国马萨诸塞州1900-1926年上述三个经济指数的统计数据,见下表,试用数据拟合的方法,求出(*)式中的参数?,?,a。
马萨诸塞1900-1926年统计数据 t 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 Q 1.05 1.18 1.29 1.3 1.3 1.42 1.5 1.52 1.46 1.6 1.69 1.81 1.93 1.95 2.01 2 2.09 1.96 2.2 2.12 2.16 2.08 2.24 2.56 2.34 2.45 K 1.04 1.06 1.16 1.22 1.27 1.37 1.44 1.53 1.57 2.05 2.51 2.63 2.74 2.82 3.24 3.24 3.61 4.1 4.36 4.77 4.75 4.54 4.54 4.58 4.58 4.58 L 1.05 1.08 1.18 1.22 1.17 1.3 1.39 1.47 1.31 1.43 1.58 1.59 1.66 1.68 1.65 1.62 1.86 1.93 1.96 1.95 1.9 1.58 1.67 1.82 1.6 1.61 1926
2.58 4.54 1.64 (1)程序代码
对(*)式两边取对数并整理得:
lnQ?lna??lnK??lnL
令A=[1 lnK lnL],x??lna? 则lnQ=Ax,x=A\\lnQ
??T
K=[1.04 1.06 1.16 1.22 1.27 1.37 1.44 1.53 1.57 2.05 2.51 2.63 2.74 2.82 3.24 3.24 3.61 4.1 4.36 4.77 4.75 4.54 4.54 4.58 4.58 4.58 4.54]'; L=[1.05 1.08 1.18 1.22 1.17 1.3 1.39 1.47 1.31 1.43 1.58 1.59 1.66 1.68 1.65 1.62 1.86 1.93 1.96 1.95 1.9 1.58 1.67 1.82 1.6 1.61 1.64]'; Q=[1.05 1.18 1.29 1.3 1.3 1.42 1.5 1.52 1.46 1.6 1.69 1.81 1.93 1.95 2.01 2 2.09 1.96 2.2 2.12 2.16 2.08 2.24 2.56 2.34 2.45 2.58]'; lnK=log(K);lnL=log(L);lnQ=log(Q); I=ones(size(Q)); A=[I lnK lnL]; x=A\\lnQ a=exp(x(1)) alpha=x(2) beta=x(3)
(2)运行结果如下: