1. 追赶法matlab
function x=zhuiganfa
%首先说明:追赶法是适用于三对角矩阵的线性方程组求解的方法,并不适用于其他类型矩阵。
%定义三对角矩阵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=[0 -1 -2 -3];c=[-1 -2 -3];b=[2 3 4 5];d=[6 1 -2 1];
n=length(b);
u0=0;y0=0;a(1)=0;
%“追”的过程
L(1)=b(1)-a(1)*u0;
y(1)=(d(1)-y0*a(1))/L(1);
u(1)=c(1)/L(1);
for i=2:(n-1)
L(i)=b(i)-a(i)*u(i-1);
y(i)=(d(i)-y(i-1)*a(i))/L(i);
u(i)=c(i)/L(i);
end
L(n)=b(n)-a(n)*u(n-1);
y(n)=(d(n)-y(n-1)*a(n))/L(n);
%“赶”的过程
x(n)=y(n);
for i=(n-1):-1:1
x(i)=y(i)-u(i)*x(i+1);
end
2. 求助,利用MATLAB,追赶法求解图中的方程组
没看到方程组
3. 如何利用MATLAB追赶法求解图中的方程组,望大家帮忙,必有重谢
追赶法解三对角方程组就是把Gauss消去法用到三对角矩阵上得到的特殊形式,所以你只要知道Gauss消去法就行了
4. 请教matlab中用追赶法解三对角方程组的数学理论、算法和流程图
本质来讲还是利用矩阵的三角分解进行求解,数学理论和算法可以随便找一本数值分析的书应该都有,程序有了流程图应该很容易得到吧。
5. 用追赶法求Ax=b的解 matlab编程解线性方程组
syms x1 x2 x3 x4
eq1=2*x1+x2-1;
eq2=2*x1+4*x2+2*x3+1;
eq3=3*x2+5*x3+x4-3;
eq4=6*x3+7*x4-2;
s=solve(eq1,eq2,eq3,eq4,'x1','x2','x3','x4');
以上简单明了,追赶法要矩阵求逆,可麻烦啦。。。
6. 求解块对角方程组追赶法及其MATLAB程序
网页链接
7. matlab编写程序,用追赶法求解n阶三对角方程组Ax=f,其中n=100,200,500
主程序
clc;clearn =100;a = [0,ones(1,n-1)];b = ones(1,n)*(-4);c = [2*ones(1,n-1),0];A = -4*eye(n) + diag(ones(n-1,1),-1)+diag(2*ones(n-1,1),1);f = [3,ones(1,n-2),3];ticx = chase(a,b,c,f);tocerr = norm(A*x'-f')%误差函数程序
function x=chase(a,b,c,f)%求解线性方程组Ax=f,其中A是三对角阵%a是矩阵A的下对角线元素a(1)=0%b是矩阵A的对角线元素%c是矩阵A的上对角线元素c(N)=0%f是方程组的右端向量N=length(f);x=zeros(1,N);y=zeros(1,N);d=zeros(1,N);u= zeros(1,N);%预处理d(1)=b(1);for i=1:N-1u(i)=c(i)/d(i);d(i+1)=b(i+1)-a(i+1)*u(i);end%追的过程y(1)=f(1)/d(1);for i=2:N y(i)=(f(i)-a(i)*y(i-1))/d(i);end%赶的过程x(N)=y(N);for i=N-1:-1:1x(i)=y(i)-u(i)*x(i+1);end结果n=100时
时间已过 0.000547 秒。err = 1.948433500629703e-15
8. 用matalb编写程序,用追赶法求解三对角线性方程组:
function x=Trid(a,b,c,d)
% 追赶法求解三对角的线性方程组 Ax=d
% b为主对角线元素,a,c分别为次对角线元素,d为右端项
% A=[ b1 c1
% a2 b2 c2
% ......
% a_(n-1) b_(n-1) c_(n-1)
% a_(n) b_(n) ]
% b=[b1...b_(n)]
% a=[0 a2...a_(n)]
% c=[c1...c_(n-1)]
n=length(b);
u(1)=b(1);
for i=2:n
l(i)=a(i)/u(i-1);
u(i)=b(i)-l(i)*c(i-1);
end
y(1)=d(1);
for i=2:n
y(i)=d(i)-l(i)*y(i-1);
end
x(n)=y(n)/u(n);
for i=n-1:-1:1
x(i)=(y(i)-c(i)*x(i+1))/u(i);
end