How to arrange correctly with a graph
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Emilia
am 2 Jan. 2021
Beantwortet: Mischa Kim
am 2 Jan. 2021
Hello,
I want to produce a graph using ode45,But it gives me an error.
Thanks for the helpers
function second_oder_ode
h=0.01;
t = 0:h:60;
initial_y = 0;
initial_dydt = 0;
[t,y]=ode45( @rhs, t, [initial_y initial_dydt] );
plot(t,y(:,1));
xlabel('t'); ylabel('y');
function y_out=rhs(y)
L0=128;
W=100;
g = 9.81; % Gravitational acceleration (m/s^2)
A=(pi*(0.02)^2)/4;
m=W/g; % Mass of the jumper (kg)
if y(1)<=L0
y_out = [y(2);g];
else
y_out = [y(2);g-((Viscosity(y)*(y(1)-L0)^0.8)*y(2))/(m*y(1))-(ElasticModulus(y)*y(1)*A)/(m*L0)];
end
function [eta]=Viscosity(y)
L0=128;
gammadot= y(2)/(y(1)-L0);
table_gammadot=[0.02 0.05 0.09 0.18 0.3 0.5 0.9 1.8 3 5 9 18 30];
table_eta=[62.20241 28.73309 16.96822 9.024566 5.742004 3.634656 2.099485 1.107372 0.703221 0.429745 0.251424 0.134518 0.082058];
eta=interp1(table_gammadot, table_eta, gammadot, 'nearest', 'extrap');
end
function [G]=ElasticModulus(y)
L0=128;
lambda=y(1)/L0;
table_lambda=[1.355667 1.67225 1.981016 2.309324 2.645449 2.973758 3.302066 3.626466 3.954774 4.294807 4.619207 4.947515 5.291457 5.486879 5.93244 6.25684 6.596873 6.925181 7.241764];
table_G=[117.957 177.1892 183.9973 189.4069 193.7871 196.9072 195.846 199.0777 205.7417 168.6455 175.6384 234.3298 252.4299 277.298 291.751 317.9678 347.2071 382.3623 478.0037];
G=interp1(table_lambda, table_G, lambda, 'nearest', 'extrap')*1000;
end
end
end
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Ordinary Differential Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!