追赶法解三对角矩阵

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验追赶法解三对角方程组

一、实验目的

学会用追赶法解三对角方程组,并应用该算法于实际问题.

二、实验要求

给定三对角方程组,应用追赶法解得方程组的解。

三、实验内容

1、追赶法

2、以课本数值试验2为实例

3、如果有错,修改直至运行成功,查看运行结果;

四、实验环境

matlab

五、实验步骤和方法

1、程序设计

2、带入实例

3、撰写实验报告。

六、实验预习要求

得到实例的解

一、[源程序]

function x = my_zgf2(A,d,flag)

%MY_ZGF2 Summary of this function goes here

[m,n]=size(A); %计算矩阵的大小

if nargin==2; %输入变量等于2的时候,A中储存所有元素的值for i=1:n

a(i)=A(i+1,i);

b(i)=A(i,i);

c(i)=A(i,i+1);

end

a(1)=0; %补充不足的值

b(n)=A(n,n);

c(n)=0;

else

c=[A(1,:) 0]; %flag==1时

b=A(2,:);

a=[0 A(3,:)];

end

u(1)=b(1);

for i=2:n %第一次追赶,得到上、下三角矩阵

l(i)=a(i)/u(i-1);

u(i)=b(i)-c(i-1)*l(i);

end

y(1)=d(1); %解Ly=d

for i=2:n

y(i)=d(i)-l(i)*y(i-1);

end

x(n)=y(n)/u(n); %解Ux=y

for i=n-1:-1:1

x(i)=(y(i)-c(i)*x(i+1))/u(i);

end

二、带入实例

A =

-2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 0

5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000

-2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 0

d= 8.1400 0 0 0 0 0 0 0

>> d=A(4,:);

my_zgf2(A,d,1)

ans =

2.0350 1.0174 0.5086 0.2541 0.1267 0.0626 0.0298 0.0119 >>

相关文档
最新文档