How to plot the results from dsolve matlab

37 vues (au cours des 30 derniers jours)
Sabella Huang
Sabella Huang le 30 Mai 2022
Commenté : Sabella Huang le 30 Mai 2022
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)

Réponse acceptée

Torsten
Torsten le 30 Mai 2022
Modifié(e) : Torsten le 30 Mai 2022
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 commentaire
Sabella Huang
Sabella Huang le 30 Mai 2022
thank you very much. It's really help me

Connectez-vous pour commenter.

Plus de réponses (1)

Alberto Cuadra Lara
Alberto Cuadra Lara le 30 Mai 2022
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 commentaire
Sabella Huang
Sabella Huang le 30 Mai 2022
Yes, this is a graph that I hope to get. Thank you very much. It's really help me

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by