x = 10';
tspan = [0 10];
[t,x]= ode45(@fun,tspan,x);
[~, u] = fun(t.',x.');
figure(1)
plot(t,u,'-k','Linewidth',1.5);
and function file is
function [dot,u] = fun(~,x)
k = 1;
p = 10;
x = x(1);
u = (-k.*x + x.^3 - p.*x^2) ./ x;
xdot = -x.^3 + p.*x.^2 + x.*u;
dot = xdot';
When I try to plot t with u, I am not getting a plot because input u is not getting saved as vector.
Is there any way that u can be saved as a vector here?
Thanks

 Akzeptierte Antwort

VBBV
VBBV am 31 Mär. 2021

0 Stimmen

function [dot,u] = fun(~,x)
k = 1;
p = 10;
%x = x(1);
x
u = (-k.*x + x.^3 - p.*x.^2) ./ x;
xdot = -x.^3 + p.*x.^2 + x.*u;
dot = xdot';

2 Kommentare

VBBV
VBBV am 31 Mär. 2021
Bearbeitet: VBBV am 31 Mär. 2021
Comment the line
%x = x(1);
Rune it again with a small change below line in function
u = (-k.*x + x.^3 - p.*x.^2) ./ x; % need element wise power operator
prabhjeet singh
prabhjeet singh am 31 Mär. 2021
Thankyou very much VBBV. :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by