Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links

Duffing Attractor

Para este ejemplo se considera el sistema oscilatorio forzado de Duffing, dado por el siguientes sistema de ecuaciones diferenciales de primer orden:

dx/dt = y

dy/dt = x - x3 - a y + b Cos(w t)

donde a=0.25, b=0.3, w=1.0

Generación del Duffing Attractor

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)).

duffing1.gif

Código Fuente

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