作者zupo (外派越南工作者)
标题Re: [问题] 联立微分方程式
时间Mon Nov 4 21:01:48 2013
※ 引述《h062471033 (Branco)》之铭言:
: 各位版上的高手,我在解联立微分方程式,
: 但是解完的结果是NaN,不知道哪边出问题,
: 是程式码有问题?还是推导降阶有误?还是方程式本身无解? 谢谢!
: % {x''+x'+x=-y+c c是常数项,x(t) y(t) 前面的系数忽略
: % {y''+y'+y=-x
: % y(1)=x => dydt(1)= x' = y(2)
: % y(2)=x' => dydt(2)= x'' = -x'-x-y+c = -y(2)-y(1)-y(3)+c
: % y(3)=y => dydt(3)= y' = y(4)
: % y(4)=y' => dydt(4)= y'' = -y'-y-x = -y(4)-y(3)-y(1)
: function dydt=beamdisp(t,y)
: a=11988;
: b=2.198;
: c=115972
: d=12078;
: e=10.99;
: f=6441;
: cc=32.62;
: dydt(1) = y(2);
: dydt(2) = -a.*y(1)-b.*y(2)-c.*y(3)+cc;
: dydt(3) = y(4);
: dydt(4) = -d.*y(3)-e.*y(4)-f.*y(1);
: dydt = dydt';
: (command window)
: [t,y]=ode45(@beamdisp,[0 1],[0 0 0 0])
: y1=y(:,1);
: plot(t,y1,'r')
应该是对的了
------------------------------------------------
function pttex133
% {x''+x'+x=-y+c c是常数项,x(t) y(t) 前面的系数忽略
% {y''+y'+y=-x
% x(1)=x => dydt(1)= x' = x(2)
% x(2)=x' => dydt(2)= x'' = -x'-x-y+c = -x(2)-x(1)-x(3)+c
% x(3)=y => dydt(3)= y' = x(4)
% y(4)=y' => dydt(4)= y'' = -y'-y-x = -x(4)-x(3)-x(1)
clc
[t x] = ode45(@beamdisp,[0 1],[0;0;0;0]);
plot(t,x)
legend('x','x''','y','y''')
title('beamdisp')
xlabel('t (0~1)')
ylabel('value')
grid
function dydt=beamdisp(t,x)
a=11988;
b=2.198;
c=115972;
d=12078;
e=10.99;
f=6441;
cc=32.62;
dydt(1) = x(2);
dydt(2) = -a.*x(2)-b.*x(1)-c.*x(3)+cc;
dydt(3) = x(4);
dydt(4) = -d.*x(4)-e.*x(3)-f.*x(1);
dydt = dydt';
---------------------------------------------
你先看看有没有问题,应该是你微分方程式程式码
里面的元素码打错导致解不出来
--
1.MATLAB programming 2.ASPEN process simulation package
3.FORTRN programming 4.Advance Engineering Mathematics
5.Process Control Theory
6.Chemical Engineering Basic Theory(Kinetic.thermodynamics.transport)
7.Numerical Method and Analysis
8.MATLAB Toolbox.Simulink system basic design
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 113.186.203.69