i try to implement interpolation on ode45 but mostly error pop up, plus i dont really understand how it works. these are codes used...
function dxdt = forced(t,x)
dxdt_1 = x(2);
dxdt_2 = -100*x(2)-250000*x(1)+ sin(500*t);
dxdt = [dxdt_1;dxdt_2];
tspan=[0:0.1:100];
initial_x=0;
initial_dxdt=0;
[t,x]=ode45(@forced,tspan,[initial_x initial_dxdt]);
figure
plot(t,x(:,1));
grid on
this will result to having x data..
now, i want to interpolate x data into f(see below function)...
function dxdt = forced(t,x)
dxdt_1 = x(2);
dxdt_2 = -100*x(2)-250000*x(1)+(25000*(f(t)^3));
dxdt = [dxdt_1;dxdt_2];
tspan=[0:0.1:100];
initial_x=0;
initial_dxdt=0;
f=interp1(x1,p,x);
[t1,x1,f]=ode45(@forced,tspan,[initial_x initial_dxdt]);
but it doesnt work, and error pops such as Index exceeds matrix dimensions.
Error in interp1>sortxv (line 423)
V = V(idx,:);
Error in interp1 (line 186)
[X, V] = sortxv(X,V);
...
any body has any suggestion or correct my codes, thanks.