[求助]需要用MATLAB求解微分方程Duffing
毕业设计需要用MATLAB求解典型非线性微分方程Duffing希望哪位高手能帮帮忙,将MATLAB程序赐教
应该是用四阶龙格库塔法,偶是新手,不会 对于方程:
d2x+c*dx+k*x+a*x^3=p*cos(w*t)
matlab中定义函数的语句是,保存为Duffing.m:
function
dx=f(t,x)
c=0.2;
a=1;
k=1;
w=1;<
br>p=2.5;
dx(1)=x(2);
dx(2)=-c*x(2)-k*x(1)-a*x(1)^3+p*cos(w*t);
dx=
然后应用ode45求解,重新定义一个文件为DuffSolu.m:
tspan=;<
br>x0=;
=ode45('Duffing',tspan,x0);
plot(t,z(:,1))%时程图
plot(z(:,1),z(:,2))%相图
啥程序么,根本不对,谁给个正确的 function duffing
tspan=0:0.001:100;
x0=;
=ode45(@f,tspan,x0);
figure
plot(t,z(:,1))%时程图
figure
plot(z(:,1),z(:,2))%相图
end
function dx=f(t,x)
%d2x+c*dx+k*x+a*x^3=p*cos(w*t)
c=0.4;
k=1;
a=-4;
w=2;
p=0.115;
dx(1)=x(2);
dx(2)=-c*x(2)-k*x(1)-a*x(1)^3+p*cos(w*t);
dx=;
end 玉林 发表于 2012-12-15 21:48
function duffing
tspan=0:0.001:100;
x0=;
如果x是两个自由度怎么办?刚度矩阵、质量矩阵中存在耦合项怎么办?
页:
[1]