save an algorithm and call it

2 vues (au cours des 30 derniers jours)
Nima Vali
Nima Vali le 21 Oct 2020
Commenté : Nima Vali le 21 Oct 2020
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 commentaires
Rik
Rik le 21 Oct 2020
Do you mean you want to make this a function?
Nima Vali
Nima Vali le 21 Oct 2020
Yes, I want to call it like z=thomas(Ac,b,p-2);

Connectez-vous pour commenter.

Réponse acceptée

Rik
Rik le 21 Oct 2020
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 commentaire
Nima Vali
Nima Vali le 21 Oct 2020
Thanks very much!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics and Optimization dans Help Center et File Exchange

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by