how can I write a function of another function of two variables
Afficher commentaires plus anciens
How can I wtite
where
are constant.
in such a way I can evaluate vectors in it, For example
,where
Lt=linespace(0,1,10) and Lt=linespace(0,10,10)
Réponses (1)
Create the ρ function and then call it in the μ function —
rho = @(t,z) something;
mu = @(t,z) c .* log(rho(t,z)*b ./ (1 - rho(t,z)*b)) + rho(t,z)*b./(1-rho(t,z)*b);
Example —
b = rand
c = rand
rho = @(t,z) t./z;
mu = @(t,z) c .* log(rho(t,z)*b ./ (1 - rho(t,z)*b)) + rho(t,z)*b./(1-rho(t,z)*b);
Li = linspace(0, 1, 10);
Lz = linspace(0, 10, 10);
Mu = mu(Li, Lz)
.
8 commentaires
Maryam Albuhayr
le 22 Mai 2024
Star Strider
le 22 Mai 2024
My pleasure!
Can you be more specific about what
actually is? My approach should work regardless. It is all just a matter of coding
.
Maryam Albuhayr
le 22 Mai 2024
Modifié(e) : Maryam Albuhayr
le 22 Mai 2024
Didn't you forget time stepsize dt and spatial stepsize dz somewhere in the update for rho ?
rho=zeros(N,M);
% BC
rho(1,:)=7000; %mol/m^3
rho(N,:)=0;
% % IC
%
rho(:,1)=7000+(7000/D)*z;
for n=1:M-1
for i=2:N-1
mu = 3*log(rho(i,n)*4/(1 - rho(i,n)*4)) + rho(i,n)*4/(1-rho(i,n)*4);
rho(i,n+1)=Lambda*rho(i+1,n)+(1-2*Lambda)*rho(i,n)+Lambda*rho(i-1,n) + mu;
end
end
Maryam Albuhayr
le 22 Mai 2024
Maryam Albuhayr
le 22 Mai 2024
Torsten
le 22 Mai 2024
It's very unusual to give dt/dz^2 the name Lambda. Lambda is thermal conductivity in general.
So your code works now ? At least it should no longer give syntax errors.
Maryam Albuhayr
le 22 Mai 2024
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!