2、cl=oncs(l,n-l);al=diag(cl,-l);这个・1说明行位置・1c2=12*ones(l,n);a2=diag(c2);c3=oncs(l,n-l);a3=diag(c3,l);a=al+a2+a3;3・拉格朗日插值functionyh=lage(x,y,xh)n=length(x);m=length(xh);yh=zeros(l,m);cl=oncs(n-lJ);c2=ones(l,m);fori=l:nxp=x([l:i-li+l:n]);yh=yh+y(i)*prod((c1*xh-xp'*c2)./(x(i)-xp'*c2));en
3、dend»X叫11,12];»y=[2,4];»xh=[l1.75];»lagc(x,y,xh)ans=3.50004最小二乘法1.最小二乘的xi和yi为:xi19531964198219902000yi5.826.9510.0811.3412.66要拟合的函数为:y=a+bx-cxy注意不是多项式2.编程函数为:functionz=erchen(x,y)xl=ones(5,l);A=[xl,x,・x.*y];注意点乘z=Ay;注意左除a=z(l);b=z⑵;c=z(3);end输入:»x=l!9531964198219902000]*;»y=[5.826
4、.9510.0811.3412.66]';»erchen(x,y)ans=2.9456=a-0.0014=b-0.0005=c1.最小二乘的xi和yi为:xi00.250.50.751yi11.2841.64872」1702.7183要拟合的函数为:y=a+bx+cx2是多项式2.编程函数为:functionz=erchen2(x,y)xl=ones(5,l);A=[xl,x,x.A2];z=Ay;a=z(l);b=z(2);c=z(3);end输入:»x=[00.250.50.751.OO]1;»y=[1.001.2841.64872.11702.718
5、3]1;»erchen2(x,y)ans=1.00510.86420.8437最小二乘多项式拟合的简单函数方法:»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是反的5复合辛普森公式求解积分先定义函数:functionv=f(x)v=sin(x);“若定义有除数要点除,分母有0时要特殊定义”end定义程序:functionI=fsps(f,a,b,n)h=(b
6、-a)/n;x=linspace(a,b,2*n+1);y=feval(f,x);I=(h/6)*(y(l)+2*sum(y(3:2:2*n-l))+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=xA3-x-l;end再定义编程:function[it,x]=fix
7、pntl(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此函数的调用:»fixpntl(f,2,100,le-5)ans=2.利用切换函数SWITCH的方法(多个不动点迭代函数)function[x,it]=fixpnt(np,a,maxit,tol)switchnp,case1,phi二inline('(3*x+10)八(1/5)');case2,phi=inlinc('sin(10*x)+2*cos(x)-3');case3,
8、phi=inline(3-atan(x)<);cas