how can I write a function of another function of two variables
이전 댓글 표시
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)
답변 (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
Maryam Albuhayr
2024년 5월 22일
Star Strider
2024년 5월 22일
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
2024년 5월 22일
편집: Maryam Albuhayr
2024년 5월 22일
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
2024년 5월 22일
Maryam Albuhayr
2024년 5월 22일
Torsten
2024년 5월 22일
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
2024년 5월 22일
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!