1.编出差商表的程序,并计算出表1的差商,并由此找出表1的差值多项式。
解:将以下程序存为命名为chashang.m的文件:
在命令行中运行:
>> x=[1 2 3 -4 5]';
>> y=[2 48 272 1182 2262]';
>> [p,q]=chashang(x,y)
系统显示如下:
所以这个插值多项式为:
p x=2+46x?1+89x?1x?2+6x?1x?2x?3
+4x?1x?2 (x?3)(x+4)
2.使用区间[-5,5]上的21个等距节点,找出函数f x=(x2+1)?1的20阶插值多项式p x。打印出f x和p x的图形,观察f x和p x的最大偏差。
解:编程如下:
则可以到如下图的图形(图2为[-4,4]区间上的图形)。可以看到,区间[-2.5,2.5]之内的部分两个函数非常靠近,而最大偏差在±4.8附近,偏差约达60。
图1f x和p x图形
图2 [-4,4]区间上的图形对比
3.利用π
6=arctan3
3
,以及arctanx的泰勒展开式,计算圆周率的近似值。
解:arctanx有如下的泰勒展开式:
arctanx=
(?1)n?1
∞
n=1
x2n?1
编程如下,并将程序命名为taile.m保存:
其中,ep是计算精度,若精度为10位小数时,可作如下调用:
故:若精度为10位小数时。圆周率为v= 3.1415926535714
4.拟合形如f x≈a+bx
的函数的一种快速方法是将最小二乘法用于下列问题:1+cx
f x1+cx≈a+bx,试用这一方法拟合表2给出的中国人口数据。
表2中国人口数据
成基函数为1,x,?xf x而数据位(x i,f x i)的最小二乘拟合问题,编程如下
求解得:a=2.9456 b=-0.0014 c=-0.0005
即中国人口最小二乘拟合的方程为:f x1?0.0005x≈2.9456?0.0014x
拟合的图像如下图所示:
5.利用等式:π=41
1+x2dx
1
,计算圆周率π,要求误差小于10?8。分别用复合辛普森积分公式、龙贝格方法、高斯-勒让德公式进行圆周率的计算;
解:将以下程序存为命名为f.m的文件
在命令行中运行:
运行结果为:辛普森积分p1 =3.1624 龙贝格积分p2 =3.1624 高斯积分p3 =3.1416
6.试用SOR迭代计算线性方程组
?55x1?5x2+12x3=41
21x1+36x2?13x3=52
24x1+7x2+47x3=12
取x(0)=(0,0,0)T,松弛因子分别选取为ω=0.1t,1≤t≤19,要求达到精度 x k+1?x k<10?4。试通过数值计算得出不同的松弛因子所需要的迭代次数和收敛最快的松弛因子,并指出哪些松弛因子使得迭代发散。
解:将以下程序存为命名为SOR.m的文件:
在命令行里运行>> [it,ws]=SOR运行结果如下:
93 49 33 24 19 15 12 10 8 6 6 11 20 44 556 Inf Inf Inf Inf
则可以知道,当ω=0.1t,1≤t≤19时所需要的迭代次数分别为93,49,33,24,19,15,12,10,8,6,6,11,20,44,556,∞,∞,∞,∞,其中∞代表不收敛。可知,ω=1.0和ω=1.1时迭代最快,ω≥1.6时迭代不收敛。
7.编写牛顿下山法的程序来求解下面方程组:
x?22+y?3+2x2=5
2x?32+y/32=4解:首先编写函数程序,命名为ff.m文件保存:
编写牛顿下山法程序,命名为broyden.m文件保存:
调用情形为:
>> [x,it,f]=broyden('ff',[1,2]') Broyden successes!
x =
1.73622590043996
-2.69290743529402 it =
15
f =
6.12843109593086e-014
1.33226762955019e-014
该方程有多解,输入不同的初始值不同,可能得到不同的解