How to plot the results from dsolve matlab

26 visualizaciones (últimos 30 días)
Sabella Huang
Sabella Huang el 30 de Mayo de 2022
Comentada: Sabella Huang el 30 de Mayo de 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)

Respuesta aceptada

Torsten
Torsten el 30 de Mayo de 2022
Editada: Torsten el 30 de Mayo de 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))

Más respuestas (1)

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

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by