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