Hi,
I've got a problem solving my ODE45 function. I have the equation d^2x/dt^2 – sigma^2*x = F(t), meaning the right hand side is a vector. F(t) is an equation containing data from an experiment. To simplify lets say F = 1:1:81.
I have converted the ODE into a first order ODE with x1' = x2 and x2' = F – sigma^2*x1. sigma = 2*pi/t
t = linspace(3.6,7.2,81); %time vector
F = 1:1:81; % Right hand side
initial_x = 0;initial_dxdt = 0;[t,x] = ode45(@funct,t,[initial_x,initial_dxdt]);plot(t,x(:,1));xlabel('t'); ylabel('x');function dxdt = funct(t,x) dxdt_1 = x(2);dxdt_2 = F - (2*pi/t)^2*x(1);dxdt = [dxdt_1;dxdt_2];end
What I am trying to do is to change the value of F for every value of t, but it seems that I cannot insert any values of add variables into "funct" without getting massive error messages. Do I have to insert ODE45 into a for-loop? Or is there something that I am missing? Thanks in advance
Best Answer