Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links
Para este ejemplo se considera el sistema oscilatorio forzado de Duffing, dado por el siguientes sistema de ecuaciones diferenciales de primer orden:
|
donde a=0.25, b=0.3, w=1.0
Utilizo el Método de Euler para resolver el sistema, las condiciones iniciales del sistema son para t=0; x(0)=1.0, y(0)=1.0 y utilizo un tamaño de paso h=0.05.
Gráfica de la solución del sistema (plano de fase X(t) vs Y(t)).
Código que se encarga de resolver el sistema de ecuaciones y graficarlo en 2D duffing.zip (3 Kb)
Function dx(ByVal t As Double, ByVal x As Double, ByVal y As Double) As Double dx = y End Function Function dy(ByVal t As Double, ByVal x As Double, ByVal y As Double) As Double dy = x - x * x * x - a * y + B * Cos(w * t) End Function Sub Duffing() Dim x, y, t As Double Dim sx, sy As Double Dim h As Double Dim N, nPuntos As Long Dim Red, Green, Blue As Double Picture1.Cls t = 0 x = 1# y = 1# nPuntos = 0 h = 0.05 Do While (nPuntos < MaxPuntos) x = x + h * dx(t, x, y) y = y + h * dy(t, x, y) t = t + h sx = FactorDeEscala * x + ScreenX / 2 sy = FactorDeEscala * y + ScreenY / 2 N = nPuntos Mod 255 Red = RGBColor(N, 0) Green = RGBColor(N, 1) Blue = RGBColor(N, 2) Picture1.PSet (sx, ScreenY - sy), RGB(Red, Green, Blue) nPuntos = nPuntos + 1 Loop End Sub |
valcoey@hotmail.com
Ramiro Alcocer, 2001
Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links