追赶法matlab

2024-05-10 22:18

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

追赶法matlab

2. 求助,利用MATLAB,追赶法求解图中的方程组

没看到方程组

3. 如何利用MATLAB追赶法求解图中的方程组,望大家帮忙,必有重谢

追赶法解三对角方程组就是把Gauss消去法用到三对角矩阵上得到的特殊形式,所以你只要知道Gauss消去法就行了

如何利用MATLAB追赶法求解图中的方程组,望大家帮忙,必有重谢

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');
以上简单明了,追赶法要矩阵求逆,可麻烦啦。。。

用追赶法求Ax=b的解 matlab编程解线性方程组

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

matlab编写程序,用追赶法求解n阶三对角方程组Ax=f,其中n=100,200,500

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