How to plot the results from dsolve matlab

조회 수: 37 (최근 30일)
Sabella Huang
Sabella Huang 2022년 5월 30일
댓글: Sabella Huang 2022년 5월 30일
Hello Guys,
I would like to ask about, how to plot the results from the dsolve equation?. Here is my code that I used
Rmax = 1410.34;
conc = 500e-9;
ka = 3.46e3;
kd = 1.46e-4;
t = linspace(0, 1800, 600)';
A = ka*conc*Rmax;
B = ka*conc;
C = kd;
syms y(t) A B C
eqn = diff(y,t) == A-B*y-C*y;
cond = y(0) == 0;
s(t) = dsolve(eqn,cond);
fplot(t(:),s)

채택된 답변

Torsten
Torsten 2022년 5월 30일
편집: Torsten 2022년 5월 30일
Rmax = 1410.34;
conc = 500e-9;
ka = 3.46e3;
kd = 1.46e-4;
A = ka*conc*Rmax;
B = ka*conc;
C = kd;
syms t y(t)
eqn = diff(y,t) == A-B*y-C*y;
cond = y(0) == 0;
s(t) = dsolve(eqn,cond);
s = matlabFunction(s);
t = linspace(0, 1800, 600)';
plot(t,s(t))
  댓글 수: 1
Sabella Huang
Sabella Huang 2022년 5월 30일
thank you very much. It's really help me

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Alberto Cuadra Lara
Alberto Cuadra Lara 2022년 5월 30일
Hello Sabella,
I have not worked too much with symbolic, but I think this approach may solve your problem.
In case you want to plot a specific range, fplot requires specifying the interval, not the range of values.
Rmax = 1410.34;
conc = 500e-9;
ka = 3.46e3;
kd = 1.46e-4;
t_vector = linspace(0, 1800, 600);
A = ka*conc*Rmax;
B = ka*conc;
C = kd;
syms y(t)
eqn = diff(y, t) == A - B*y - C*y;
cond = y(0) == 0;
s(t) = dsolve(eqn, cond);
fplot(@(t) s(t), [t_vector(1), t_vector(end)])
  댓글 수: 1
Sabella Huang
Sabella Huang 2022년 5월 30일
Yes, this is a graph that I hope to get. Thank you very much. It's really help me

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Equation Solving에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by