save an algorithm and call it

3 ビュー (過去 30 日間)
Nima Vali
Nima Vali 2020 年 10 月 21 日
コメント済み: Nima Vali 2020 年 10 月 21 日
hello all
I want to save the Thomas algorithm and backward substitution algorithm and call it whenver I need it in my code. How to do this?
solving linear system with Thomas algorithm*******************************
for k = 1:p-1
i = k +1;
l(i,k)=Ac(i,k)/Ac(k,k);
for j = k :k+1
Ac(i,j) = Ac(i,j)- l(i,k)*Ac(k,j);
end
b(i) = b(i)-l(i,k)*b(k);
end
%apply backward substitution
for k = p:-1:1
g(k)=b(k);
for j=k+1: min(p,k+1)
g(k)=g(k)-Ac(k,j)*g(j);
end
g(k)=g(k)/Ac(k,k);
end
T_cn(2:n-1)=g(1:p);
end
  2 件のコメント
Rik
Rik 2020 年 10 月 21 日
Do you mean you want to make this a function?
Nima Vali
Nima Vali 2020 年 10 月 21 日
Yes, I want to call it like z=thomas(Ac,b,p-2);

サインインしてコメントする。

採用された回答

Rik
Rik 2020 年 10 月 21 日
Store this in thomas.m
function z=thomas(Ac,b,p_minus_2)
%solving linear system with Thomas algorithm
%
% More explanation about this function and its syntax go here.
p=p_minus_2+2;
for k = 1:p-1
i = k +1;
l(i,k)=Ac(i,k)/Ac(k,k);
for j = k :k+1
Ac(i,j) = Ac(i,j)- l(i,k)*Ac(k,j);
end
b(i) = b(i)-l(i,k)*b(k);
end
%apply backward substitution
for k = p:-1:1
g(k)=b(k);
for j=k+1: min(p,k+1)
g(k)=g(k)-Ac(k,j)*g(j);
end
g(k)=g(k)/Ac(k,k);
end
T_cn(2:n-1)=g(1:p);
end
  1 件のコメント
Nima Vali
Nima Vali 2020 年 10 月 21 日
Thanks very much!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMathematics and Optimization についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by