【发布时间】:2015-07-01 00:35:58
【问题描述】:
我尝试使用 interp1 来解决我的 ode 问题... 我想将以前的数据插入另一个方程...... 以下是代码...
function dxdt = newforced(t,x1,d)
dxdt_1 = x1(2);
dxdt_2 = -100*x1(2)-250000*x1(1)+(25000*(d^3)); %data should be interpolated at d
dxdt = [dxdt_1;dxdt_2];
tspan=[0:0.1:100];
d=x(:,1); %x is data sampling from previous ode
initial_x1=0;
initial_dxdt=0;
f=interp1(t,d,x);
[t,x1]=ode45(@newforced,tspan,[initial_x1 initial_dxdt]);
figure
plot(t,x,':')
figure
plot(d,f)
问题:我有 2 个变量(d 和 x(:,1)),我想重新采样一个以匹配另一个的长度。
上面的代码不起作用,因为弹出了很多错误... 谁能纠正我 谢谢
【问题讨论】:
-
您只是想重新采样数据以适应特定长度吗?
-
是的,重新采样数据,但来自另一个 ode
-
所以如果我理解正确的话,你有 2 个变量,你想重新采样一个以匹配另一个的长度?如果是,那两个变量有问题?
-
这两个变量是d和x(:,1) ....
-
请验证我的解决方案:)
标签: matlab interpolation ode resampling