追赶法求解块三对角矩阵以及matlab代码实现

数值分析课的作业

单从题目来看,矩阵A和矩阵B都是三对角矩阵

参考资料:块三对角矩阵方程的追赶法及其应用 - 豆丁网Docin

推导过程如下:

 求解matlab程序:

function x=tridiagsolver_block(n)
c=(1:n^2);
for i=1:n,
    a{i}=c(i:i+n-1);
    b{i}=a{i}';
end
B=diag(repmat([4], 1, n))+diag(repmat([-1], 1, n-1), 1)+diag(repmat([-1], 1, n-1), -1);%矩阵B
G{1}=B;
D{1}=-inv(G{1});
y{1}=inv(B)*b{1};
for i=2:n-1,
    G{i}=B+D{i-1};
    D{i}=-inv(G{i});
    y{i}=inv(G{i})*(b{i}+y{i-1});
end
G{n}=B+D{n-1};
D{n}=-inv(G{n});
y{n}=inv(G{n})*(b{n}+y{n-1});
x{n}=y{n};
for i=n-1:-1:1,
    x{i}=y{i}-D{i}*x{i+1};
end

注意,此处要使用cell数据类型将矩阵存储到A中,所以均采用“{}”,最后调用函数输入n就行啦^_^ 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值