MATLAB: Error in simple ode45 functions

MATLABodeode45

Hello, I am trying to solve a non-stiff 2nd order ODE with ode45 function. My ODE is d^2y/dt^2 = -g + (4/15)*(1/m)*(dy/dt)^2
Here is the ode function file that I made
function [ ode_fun_vect ] = ode_1_fun( t,z )
global m g
m=80;
g=9.81;
ode_fun_vec=[z(1);-g+(4/15)*(z(1))^2/m];
end
And here is script to solve ode:
clc;
clear all;
close all;
initial_cond=[600,0];
time_range=[0,20];
[t,y]=ode45(@ode_1_fun,time_range,initial_cond);
figure();
subplot(2,1,1);
plot(t,y(:,1));
xlabel('time');
ylabel('displacement');
subplot(2,1,2);
plot(t,y(:,2));
xlabel('time');
ylabel('velocity');
However I am getting some errors saying: Output argument "ode_fun_vect" (and maybe others) not assigned during call
Can someone help me? Thanks in advance!

Best Answer

Typo!
You defined ‘ode_fun_vect’ as your function output and ‘ode_fun_vec’ as the value it calculates. Change one or the other and your ODE integrates successfully.
Related Question