1、1 x(j)=y(j)-u(j)*x(j+1);数值试验:n=101;a= 12 1 0.0 1 12 1 .0 0 1 12 1 .0 0 0 1 12 1 0 1 1 12关键是如何定义上述矩阵:c1=ones(1,n-1);a1=diag(c1,-1); 这个-1说明行位置-1c2=12*ones(1,n);a2=diag(c2);c3=ones(1,n-1);a3=diag(c3,1);a=a1+a2+a3;3. 拉格朗日插值function yh=lage(x,y,xh)n=length(x);m=length(xh);yh=zeros(1,m);c1=ones(n-1,1);c2=
2、ones(1,m); xp=x(1:i-1 i+1:n); yh=yh+y(i)*prod(c1*xh-xp*c2)./(x(i)-xp*c2); x=11,12; y=2,4; xh=11.75; lage(x,y,xh)ans =3.50004 最小二乘法1.最小二乘的xi和yi为:xi19531964198219902000yi5.826.9510.0811.3412.66要拟合的函数为:y=a+bx-cxy 注意不是多项式2.编程函数为:function z = erchen(x,y)x1=ones(5,1);A=x1,x,-x.*y; 注意点乘z=Ay; 注意左除a=z(1);b=z
3、(2);c=z(3);end 输入: x=1953 1964 1982 1990 2000; y=5.82 6.95 10.08 11.34 12.66 erchen(x,y) 2.9456 =a -0.0014 =b -0.0005 =c0.250.50.751.2841.64872.11702.7183y=a+bx+cx2 是多项式function z = erchen2(x,y)A=x1,x,x.2; x=0 0.25 0.5 0.75 1.00 y=1.00 1.284 1.6487 2.1170 2.7183 erchen2(x,y) 1.0051 0.8642 0.8437最小二乘
4、多项式拟合的简单函数方法: P=polyfit(x,y,2) 要拟合成4次,则2改成4就可以了P =0.8437 0.8642 1.0051 注意此内置函数输出的结果c,b,a是反的5 复合辛普森公式求解积分先定义函数:function v=f(x) v=sin(x); “若定义有除数要点除,分母有0时要特殊定义”定义程序:function I=fsps(f,a,b,n)h=(b-a)/n;x=linspace(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*n)+y(2*n+1); fsps(f ,0,
5、1,4) 0.45976.不动点迭代思路不动点迭代常常有好几个迭代的不动点函数,所以要分别定义这些函数是很困难的,如是乎使用SWITCH内置函数进行切换,叫切换函数.1.先定义函数后进行编程的方法先需要定义不动点函数:v=x3-x-1;再定义编程:function it,x=fixpnt1(f,a,maxit,tol)it=0;x=feval(f,a);while ittol, it=it+1; a=x; x=feval(f,a);此函数的调用: fixpnt1(f,2,100,1e-5)3.利用切换函数SWITCH的方法(多个不动点迭代函数)function x,it=fixpnt(np,a
6、,maxit,tol)switch np, case 1, phi=inline(3*x+10)(1/5); case 2,sin(10*x)+2*cos(x)-3 case 3,3-atan(x) case 4,-2-1/log(x2+x+1)x=phi(a); x=phi(a);使用与输入: fixpnt(2,1,100,1e-5) -4.26967. 雅可比迭代function x it=jacobi(A,b,tol)D=diag(diag(A);L=D-tril(A);U=D-triu(A);x=zeros(size(b);for it=1:500 x=D(b+L*x+U*x);err
7、or=norm(b-A*x)/norm(b);if (errortol, x=a/2+b/2; fx=feval(f,x);if sign(fx)=sign(fa), a=x;fa=fx;else b=x;fb=fx;11. 牛顿法:先需要定义不动点函数需要计算的函数ffunction v = f( x )v=x5-3*x-10;需要计算的函数的导数gfunction v = g( x )v=5*x4-3;2. 再定义编程:function v = newton(a,f,g,maxit,tol)x=a;while it it=it+1; x=x-feval(f,x)/feval(g,x);v=
8、x,it;12. 牛顿下山法:function v = f(x)v=x2+sin(10*x)-1function v =g(x)v = 2*x+10*cos(10*x)2. 再定义编程1:function v = newtonxiashang(x0,f,g,maxit,tol)x=x0; d=-feval(f,x)/feval(g,x); lambda=1; isdone=0; while isdone, xn=x+lambda*d; if abs(feval(f,xn)=abs(feval(f,x), lambda=0.5*lambda; x=x+lambda*d; v=x,it;13. 割线法先需要定义函数function v = gexian(a,b,f,maxit,tol)x0=a;x=b;w
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1