2、n=101;a=1210………………………………..….01121………………………………..…001121………………………..…0001121……………………01112关键是如何定义上述矩阵:>>n=101;c1=ones(1,n-1);a1=diag(c1,-1);这个-1说明行位置-1c2=12*ones(1,n);word资料.a2=diag(c2);c3=ones(1,n-1);a3=diag(c3,1);a=a1+a2+a3;3.拉格朗日插值functionyh=lage(x,y,xh)n=le
3、ngth(x);m=length(xh);yh=zeros(1,m);c1=ones(n-1,1);c2=ones(1,m);fori=1:nxp=x([1:i-1i+1:n]);yh=yh+y(i)*prod((c1*xh-xp'*c2)./(x(i)-xp'*c2));endend>>x=[11,12];>>y=[2,4];>>xh=[11.75];>>lage(x,y,xh)ans=3.50004最小二乘法1.最小二乘的xi和yi为:xi19531964198219902000yi5.826.9510.
4、0811.3412.66要拟合的函数为:y=a+bx-cxy注意不是多项式2.编程函数为:functionz=erchen(x,y)x1=ones(5,1);A=[x1,x,-x.*y];注意点乘z=Ay;注意左除a=z(1);b=z(2);c=z(3);end输入:≻≻x=[19531964198219902000]';≻≻y=[5.826.9510.0811.3412.66]';word资料.≻≻erchen(x,y)ans=2.9456=a-0.0014=b-0.0005=c1.最小二乘的xi和yi为
5、:xi00.250.50.751yi11.2841.64872.11702.7183要拟合的函数为:y=a+bx+cx2是多项式2.编程函数为:functionz=erchen2(x,y)x1=ones(5,1);A=[x1,x,x.^2];z=Ay;a=z(1);b=z(2);c=z(3);end输入:≻≻x=[00.250.50.751.00]';≻≻y=[1.001.2841.64872.11702.7183]';≻≻erchen2(x,y)ans=1.00510.86420.8437最小二乘多项式拟
6、合的简单函数方法:≻≻x=[00.250.50.751.00]';≻≻y=[1.001.2841.64872.11702.7183]';≻≻P=polyfit(x,y,2)要拟合成4次,则2改成4就可以了P=0.84370.86421.0051注意此内置函数输出的结果c,b,a是反的word资料.5复合辛普森公式求解积分先定义函数:functionv=f(x)v=sin(x);“若定义有除数要点除,分母有0时要特殊定义”end定义程序:functionI=fsps(f,a,b,n)h=(b-a)/n;x=li
7、nspace(a,b,2*n+1);y=feval(f,x);I=(h/6)*(y(1)+2*sum(y(3:2:2*n-1))+4*sum(y(2:2:2*n))+y(2*n+1));end>>fsps('f',0,1,4)ans=0.45976.不动点迭代思路不动点迭代常常有好几个迭代的不动点函数,所以要分别定义这些函数是很困难的,如是乎使用SWITCH内置函数进行切换,叫切换函数.1.先定义函数后进行编程的方法先需要定义不动点函数:functionv=f(x)v=x^3-x-1;end再定义编程:fun
8、ction[it,x]=fixpnt1(f,a,maxit,tol)it=0;x=feval(f,a);whileit<=maxit&abs(x-a)>tol,it=it+1;a=x;x=feval(f,a);end此函数的调用:>>fixpnt1('f',2,100,1e-5)ans=1word资料.3.利用切换函数SWITCH的方法(多个不动点迭代函数)function[x,it]=fixpnt