|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
求解二阶微分方程v=1.33*0.5*(dv/dx)^2./[k-1.01*d(dv/dx)/dx],其中k是时变项,是一系列数据集,我用的ode45,代码如下:clear;clc
. n* i4 d7 }' r7 c& EE=xlsread('jisuan.xlsx');
8 i8 I" ~7 x: J5 ^2 l; @0 @* H; ix=E(:,1); %位移,间隔为0.01
( N4 }( R$ ^) J/ ^y=E(:,2); %作用力4 g2 k9 O+ i& L2 b6 z
k=E(:,3); %刚度+ x0 u+ q4 ?6 f y* i8 E2 ^. j: x4 ^
m=length(k);
) B; k* c5 l5 T4 xfor i=1:length(k)4 c: a' Y: ?! n6 M& w, t- A
K=k(i);
1 m! s2 d7 F% xtspan=x;4 p" [- F1 ?9 V }6 z, p" T/ f! `, o
odefun=@(x,v)[v(2);(k(i)/1.01-(1.33*0.5*(v(2)^2)/(v(1)*0.5)))];
; v8 n% ~) S+ c- @# \/ S$ c[x,v]=ode45(odefun,tspan,[0.0096 0.042]);
0 i4 L$ S/ ]6 X1 xA=[x,v]" h4 S$ I4 }" ]$ X, \# a
end
3 c$ Q# A9 }% _/ f. M, j4 E) t但是结果是多个k对应的一系列v(1)v(2),我希望得到的是已知初值后各个k对应的v(1)v(2),看help也没有弄明白,还试过interp1调用和定义函数也报错了,请教各位这种有时变项的二阶微分方程要怎么求?是for循环吗还是有其他方法?3 `$ G8 [; `# a( q
% \8 m3 k: X1 R" i. T2 [/ }; I
|
|