数值分析作业-malab上机作业.docVIP

  • 11
  • 0
  • 约1.54万字
  • 约 27页
  • 2016-09-20 发布于贵州
  • 举报
数值分析作业-malab上机作业

数值分析 ———Matlab上机作业 学院: 班级: 老师: 姓名: 学号: 第二章 解线性方程组的直接解法 第14题 【解】 1、编写一个追赶法的函数 输入a,b,c,d输出结果x,均为数组形式 function x=Zhuiganfa(a,b,c,d) %首先说明:追赶法是适用于三对角矩阵的线性方程组求解的方法,并不适用于其他类型矩阵。 %定义三对角矩阵A的各组成单元。方程为Ax=d %b为A的对角线元素(1~n),a为-1对角线元素(2~n),c为+1对角线元素(1~n-1)。 % A=[2 -1 0 0 % -1 3 -2 0 % 0 -2 4 -3 % 0 0 -3 5] % a=[-1 -2 -3];c=[-1 -2 -3];b=[2 3 4 5];d=[6 1 -2 1]; n=length(b); u(1)=b(1); y(1)=d(1); for i=2:n l(i)=a(i-1)/u(i-1);%先求l(i) u(i)=b(i)-c(i-1)*l(i);%再求u(i) %A=LU,Ax=LUx=d,y=Ux, %Ly=d,由于L是下三角矩阵,对角线均为1,所以可求y(i) y(i)=d(i)-l(i)*y(i-1); end x(n)=y(n)/u(n); for i=(n-1):-1:1 %Ux=y,由于U是上三角矩阵,所以可求x(i) x(i)=(y(i)-c(i)*x(i+1))/u(i); end 2、输入已知参数 a=[2 2 2 2 2 2 2]; b=[2 5 5 5 5 5 5 5]; c=[2 2 2 2 2 2 2]; d=[220/27 0 0 0 0 0 0 0]; 3、按定义格式调用函数 x=zhuiganfa(a,b,c,d) 4、输出结果 x=[8.147775166909105 -4.073701092835030 2.036477565178471 -1.017492820111148 0.507254485099400 -0.250643392637350 0.119353996493976 -0.047741598597591] 第15题 【解】 1、编写一个程序生成题目条件 生成线性方程组Ax=b的系数矩阵A和右端项量b,分别定义矩阵A、B、a、b分别表示系数矩阵,其中或分别构成A、B对应右端项量分别a、b。程序如下: clear,clc; n=5; %定义A矩阵 A=zeros(n,n); for i=1:n x=1+0.1*i; for j=1:n A(i,j)=x^(j-1); end end %定义B矩阵 B=zeros(n,n); for i=1:n for j=1:n B(i,j)=1/(i+j-1); end end %定义a向量,其中Ax=a for i=1:n x=1+0.1*i; a(i)=0; for j=1:n a(i)=x^(j-1)+a(i); end end %定义b向量,其中Bx=b for i=1:n b(i)=0; for j=1:n b(i)=1/(i+j-1)+b(i); end end 修改n分别为5、10、20,运行程序能得到相应A、B、a、b。 2、分别求系数矩阵A,B的2-条件数 利用自带函数求解 n=5时 cond(A,2)= 5.361484750384177e+005 cond(B,2)= 4.766072502417230e+005 n=10时 cond(A,2)= 8.682266932586666e+011 cond(B,2)= 1.602467527403655e+013 n=2=时 cond(A,2)= 3.420511387496488e+022 cond(B,2)= 1.845813098127243e+018 典型病态方程 3、利用LU分解法解方程组 首先,编辑一个LU分解函数如下 function[L,U]=Lu(A) % 求解线性方程组的三角分解法 % A为方程组的系数矩阵 %L和U为分解后的下三角和上三角矩阵 [n,m]=size(A); if n~=m error(The rows and columns of matrix A must be equal!); return; end %判断矩阵能否LU分解 for ii=1:

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档