Я хочу решить нелинейное дифференциальное уравнение, и я пробовал много методов, таких как ode45, ode15s, но потерпел неудачу. Не могли бы вы помочь мне. Уравнение
x''+0.01x'+x+2(x'-0.55x)^3=sin(0.1t)%
(я буду расширять его в моей программе).
Я написал метод Оде в Matlab, пожалуйста, посмотрите.
%system governing function
function xdot=ForcedOscillator1(t,x,dummy,zeta,a,b,c,d,Omega,Xo)
xdot=[x(2);-zeta*x(2)-x(1)-a*x(2)^3-b*x(2)^2*x(1)-c*x(2)*x(1)^2-d*x(1)^3+Xo*sin(Omega*t)];
%ode program
clear all
clc
zeta=0.01;
a=2;
b=-3.3;
c=1.815;
d=-0.3328;
Omega=0.1; Xo=1;
tspan=[0 100]
options=odeset('RelTol',1e-8,'AbsTol',[1e-8 1e-8]);
for m=1:1
[t,x]=ode15s('ForcedOscillator1',tspan,[0 0]',options,zeta,a(m),b(m),c(m),d (m),Omega,Xo);
plot(t,zeta.*x(:,2)+x(:,1)+a.*x(:,2).^3+b.*x(:,2).^2.*x(:,1)+c.*x(:,2).*x(:,1).^2+d.*x(:,1).^3);
grid on
xlabel('t(s)');
ylabel('F_t(N)');
title('Response of a nonlinear system');
hold on
end
Как вы можете видеть, когда я запускаю этот файл, вывод будет необычайно большим, он достигнет примерно 10 ^ 49. Я думаю, что-то не так в моей программе, или система нестабильна.
Не могли бы вы помочь решить этот вопрос с помощью численных методов. Или докажите, что это уравнение неустойчиво.