# Differenzengleichungen mit Excel



## Conny Cichon (2. Juni 2012)

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


```
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
```


----------



## HonniCilest (4. Juni 2012)

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


----------



## Zvoni (4. Juni 2012)

Sind gk und ak Werte/Formeln in einer Zelle?


----------



## Conny Cichon (4. Juni 2012)

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


----------



## Zvoni (4. Juni 2012)

sind ak und gk jetzt Werte oder Formeln? Und soll dann mit den Werten oder den Formeln in VBA weitergerechnet werden?


----------



## Conny Cichon (4. Juni 2012)

das sind folgen...also zum Beispiel k/2 oder k/10...jaaa mit denen soll in VBA weitergerechnet werden


----------



## Zvoni (4. Juni 2012)

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.


----------



## Conny Cichon (4. Juni 2012)

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


----------



## Zvoni (5. Juni 2012)

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?


----------

