数值计算考试.docVIP

  • 2
  • 0
  • 约5.29千字
  • 约 10页
  • 2017-10-06 发布于重庆
  • 举报
数值计算考试

摘 要 学习数值计算,Gauss全主元消元法求解线性方程组、分段二次多项式插值、分段梯形积分、Euler方法求常微分方程初值问题、简单迭代法求非线性方程的程序。 1 1.1问题描述 1 1.2计算程序 1 1.3算例 2 1.4 计算结果 2 1.5分析组成 3 2 分段二次多项式插值 3 2.1问题描述 3 2.2计算程序 3 2.3算例 3 2.4 计算结果 3 2.5分析组成 4 3 分段梯形积分 4 3.1.问题描述 4 3.2计算程序 4 3.3算例 4 3.4 计算结果 5 3.5分析组成 5 4 Euler方法求常微分方程初值问题 5 4.1.问题描述 5 4.2计算程序 4 4.3算例 4 4.4 计算结果 5 4.5分析组成 6 5简单迭代法求非线性方程 6 5.1.问题描述 6 5.2计算程序 6 5.3算例 7 5.4 计算结果 7 5.5分析组成 7 参考文献 8 1 Gauss全主元消元法求解线性方程组 1.1 问题描述 gauss全主元消元法通过寻找矩阵中的主元,把主元放到对角线位置,利用矩阵行列变换进行消元。 1.2 计算程序 function [x,H]=Gauss(a,b) %x为解,H为全主元变换后的a矩阵 A=[a b]; Ra=rank(a);RA=rank(A);L=length(b);n=size(a);pos=1:n(1); if Ra~=RA fprintf(无解) else if RA~=L fprintf(有无数多个解) else fprintf(有唯一解) for i=1:(n-1) big=abs(max(max(a))); for r=1:n for t=1:n if big==abs(a(r,t)) zhuh=r; zhul=t; end end end p=a(i,:); %换主行 a(i,:)=a(zhuh,:); a(zhuh,:)=p; bb=b(i); b(i)=b(zhuh); b(zhuh)=bb; p=a(:,i); %换主列 a(:,i)=a(:,zhul); a(:,zhul)=p; p=pos(i); %记录由于换主列而造成的解的位置的变化 pos(i)=pos(zhul); pos(zhul)=p; end c=[a b]; for j=1:L-1 %化为上三角阵 for i=(j+1):L m=c(i,j)/c(j,j); c(i,:)=c(i,:)-c(j,:)*m; end end x(L,1)=c(L,L+1)/c(L,L); for k=L-1:-1:1 %求解x x(k,1)=(c(k,L+1)-c(k,k+1:L)*x(k+1:L))/c(k,k); end y=[1:n(1)]; %交换被列调换时打乱的解的位置 for w=1:n for v=1:n if (pos(v)==w) y(v)=x(w); end end end x=y; end end H=a; 1.3 算例 输入线性方程系数矩阵a和向量b,求解,并显示经过全主元行列变换后的矩阵。 a=[5 8 11;7 9 11;8 15 10];b=[4 12 17]; [x,H]=Gauss(a,b) 1.4 计算结果 有唯一解 x =

文档评论(0)

1亿VIP精品文档

相关文档