好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

列主元高斯消去法、lu三角分解法、龙贝格(romberg)算法、最小二乘法的matlab程序及运行结果.doc

8页
  • 卖家[上传人]:wt****50
  • 文档编号:39984075
  • 上传时间:2018-05-21
  • 文档格式:DOC
  • 文档大小:89.50KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1 1..列主元高斯消去法列主元高斯消去法M 文件文件function[x]=gauss(a,b) n=length(a); x=zeros(n,1);a=[a b];for k=1:n-1 max=k;for i=k+1:nif a(i,k)>a(max,k)max=i;endendtemp=a(k,k:n+1); a(k,k:n+1)=a(max,k:n+1);a(max,k:n+1)=temp;for i=k+1:n a(i,k)=-a(i,k)/a(k,k);a(i,k+1:n+1)=a(i,k+1:n+1)+a(i,k)*a(k,k+1:n+1);endendx(n,1)=a(n,n+1)/a(n,n); for i=n-1:-1:1sum=0;for j=i+1:nsum=sum+x(j,1)*a(i,j);endx(i,1)=(a(i,n+1)-sum)/a(i,i);endMatlab 运行结果运行结果2..LU 三角分解法三角分解法M 文件文件function y=LU(A,B); n=length(A); A=[A B]; for k=1:n-1;for i=k:n;if(abs(A(i,k))==max(abs(A(k:n,k)))) P(k)=i; temp=A(k,:); A(k,:)=A(i,:);A(i,:)=temp;endendfor j=k+1:n;A(j,k)=A(j,k)/A(k,k); A(j,k+1:n+1)=A(j,k+1:n+1)-A(j,k)*A(k,k+1:n+1);end end P(n)=n; L(1,1)=1; L(2:n,1)=A(2:n,1); L(1,2:n)=0; U(1,1)=A(1,1); U(2:n,1)=0; U(1,2:n)=A(1,2:n);for i=2:n;L(i,1:i-1)=A(i,1:i-1); L(i,i)=1;L(i,i+1:n)=0;U(i,1:i-1)=0;U(i,i:n)=A(i,i:n); endx(n) = A(n,n+1)/U(n,n); for k = n-1:-1:1 x(k)=A(k,n+1); for p=n:-1:k+1;x(k) = x(k)-U(k,p)*x(p); end x(k)=x(k)/U(k,k); end x L U P EndMatlab 运行结果运行结果3..龙贝格龙贝格(Romberg)(Romberg)算法算法M 文件文件function[t]=romberg(f,a,b,e) t=zeros(15,4); t(1,1)=(b-a)/2*(f(a)+f(b)); for k=2:4 sum=0;for i=1:2^(k-2)sum=sum+f(a+(2*i-1)*(b-a)/2^(k-1));endt(k,1)=0.5*t(k-1,1)+(b-a)/2^(k-1)*sum;for i=2:kt(k,i)=(4^(i-1)*t(k,i-1)-t(k-1,i-1))/(4^(i-1)-1);endendfor k=5:15 sum=0;for i=1:2^(k-2)sum=sum+f(a+(2*i-1)*(b-a)/2^(k-1));endt(k,1)=0.5*t(k-1,1)+(b-a)/2^(k-1)*sum;for i=2:4t(k,i)=(4^(i-1)*t(k,i-1)-t(k-1,i-1))/(4^(i-1)-1);end if k>6 if abs(t(k,4)-t(k-1,4))=15disp(['溢出']); end Matlab 运行结果运行结果4..最小二乘法最小二乘法M 文件文件function[a,max,det]=zuixiaoerchengfa(x,y,r) n=length(x); c=ones(n,r+1); for i=2:r+1 for j=1:nc(j,i)=x(j)^(i-1);endendA=c'*c; b=c'*y'; a=inv(A)*b; det=0; max=0; for i=1:nsum=a(1);for j=2:r+1sum=sum+a(j)*x(i)^(j-1);endcc=abs(y(i)-sum); if cc>maxmax=cc;enddet=det+cc^2;end det=sqrt(det); Matlab 运行结果运行结果。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.