how can I write a function of another function of two variables
Show older comments
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)
Answers (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 Comments
Maryam Albuhayr
on 22 May 2024
Star Strider
on 22 May 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
on 22 May 2024
Edited: Maryam Albuhayr
on 22 May 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
on 22 May 2024
Maryam Albuhayr
on 22 May 2024
Torsten
on 22 May 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
on 22 May 2024
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!