Differenzengleichungen mit Excel

Conny Cichon

Grünschnabel
Hallo alle zusammen,

vielleicht kann mir ja jemand hier helfen. Ich komm einfach nicht weiter. Ich soll in einer Projektarbeit Differenzengleichungen mit Excel programmieren, also mit VBA und ich hab keine Ahnung von VBA. Ich soll die linearen Differenzengleichunghen 1. Ordnung bearbeiten und dabei den inhomogenen Fall behandeln. Die folgen ak und gk sollen als Formeln in Excel änderbar sein. jedoch weiß ich nich wie das gehen soll, da diese ja von der variable k abhängig sind. Wie kann ich das denn jetz in VBA programmiern dass der mir ak und gk aus der Zelle rauslesen kann, obwohl die von k abhängig sind. Ich hab hier schon ma was, aber das klappt nicht -.- Wäre echt toll wenn mir jemand helfen könnte.

Liebe Grüße

Code:
Sub erst()
  Dim Minn As Integer, Maxn As Integer, p As Integer, yp As Double, gk As Double, ak As Double
  
  
  Minn = Range("B5").Value
  Maxn = Range("B6").Value
  p = Range("B7").Value
  yp = Range("B8").Value

 
  
  For i = 10 To Maxn - Minn + 10
    Cells(i, 1) = Minn + i - 10
  Next i
  
  rmin = Mini(Minn, p)
  rmax = Maxi(Maxn, p)

  Dim ywerte() As Double
  ReDim ywerte(rmin To rmax + 1) As Double
  ywerte(p) = yp
  
  For i = p To rmax - 1
    ywerte(i + 1) = gk(i) - (ak(i) * ywerte(i))
  Next i
  
  For i = p To rmin + 1 Step -1
    ywerte(i) = (gk(i) - ywerte(i + 1)) / ak(i)
  Next i
    
  For i = Minn To Maxn
    Cells(i - rmin + 10, 2) = ywerte(i)
  Next i
  
   
End Sub

Function Mini(a As Integer, b As Integer) As Integer
  If a < b Then Mini = a Else Mini = b
End Function

Function Maxi(a As Integer, b As Integer) As Integer
  If a < b Then Maxi = b Else Maxi = a
End Function

Function g(ByVal k As Integer) As Double
 g = gk
End Function

Function a(ByVal k As Integer) As Double
a = ak
 
End Function
 
Sorry aber bei mir schweben nur Fragezeichen übern Kopf... Wie sieht das Tabellenblatt aus? Wie soll deine Ausgabe aussehen? Was bededeuten die gnazen Buchstaben? Für mich ist das reinster Buchstabensalat...
 
ak und gk sind Werte jeweils in einer Zelle

alsoo das tabellenblatt hat auf der einen Seite die Inputfelder. Da soll der benutzer die ak und gk formeln angeben, dann den minimalen und maximalen Bereich für k un dann noch die Bedingung yp mit p. Und auf der rechten Seite ist dann die Ausgabe. Das Programm sollte mir die gesuchten yk-werte zum jeweiligen k ausgeben. Im Quellcode sind das die ywerte(i) und die ywerte(i+1).
 
sind ak und gk jetzt Werte oder Formeln? Und soll dann mit den Werten oder den Formeln in VBA weitergerechnet werden?
 
Kannst du mal ein Beispiel hier reinstellen, wie so eine Formel bzw. Folge aussieht? Weil wenn es das ist, an was ich mich gerade krampfhaft versuche zu erinnern (20 Jahre her), wird das ne haarige Sache.

Also, stell mein ein Beispiel hier rein, wie sowas aussieht, wenn du es auf Papier machst.
 
eine Differenzengleichung der 1.Ordnung inhomogen wäre zum Beispiel
y_(k+1)= 9^k y_k+?3^k?^2, ak = 9^k, gk = ?3^k?^2
und man hat als Bedingung y_p = 7 mit p=1 gegeben dann könnte man jetz mit der Rekursionsfomel die weiteren werte für y_k ausrechnen...also y_2, y_3 und so weiter
 
Und da ist das Stichwort: Rekursion! Puh, muss ich mir überlegen, wie das zu machen ist. Ich melde mich.

Kannst du mal in der Zwischenzeit deine Excel-Datei (was du bis jetzt hast) hier hochladen?
 

Neue Beiträge

Zurück