little2002 发表于 2006-6-12 23:27

[求助]需要用MATLAB求解微分方程Duffing

毕业设计需要用MATLAB求解典型非线性微分方程Duffing
希望哪位高手能帮帮忙,将MATLAB程序赐教
应该是用四阶龙格库塔法,偶是新手,不会

flybaly 发表于 2006-6-13 19:45

对于方程:
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))%相图

lece 发表于 2011-7-10 11:25

啥程序么,根本不对,谁给个正确的

玉林 发表于 2012-12-15 21:48

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

mxlzhenzhu 发表于 2014-12-7 13:15

玉林 发表于 2012-12-15 21:48
function duffing
tspan=0:0.001:100;
x0=;

如果x是两个自由度怎么办?刚度矩阵、质量矩阵中存在耦合项怎么办?
页: [1]
查看完整版本: [求助]需要用MATLAB求解微分方程Duffing