ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
568
568
EMPFEHLEN
-
Hallo,
ich soll für die näherungsweise Berechnung einer Nullstelle für die Funktion: f(x)= e^-x² -w
ein Programm schreiben, nach Regula-Falsi-Schema (ich hoffe einige von euch kennen es, ansonsten kann ich gern nochmal erklären.
Es gilt: w>0
w, beide intervallgrenzen, die maximalen iterationsschritte und die genauigkeitsschranke können über textfelder eingegeben werden.
Mein Problem ist jetzt nun, dass ich die sache mit dem vorzeichenwechsel nicht ganz implementieren kann, es gilt ja
sgn(f(u)) ungleich sgn(f(v)) und u(i+1)=u(i); v(i+1) =t für sgn(f(t)) = sgn(f(vi))
folgendes habe ich schon erarbeitet (vorsicht, vba-anfänger
)
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
Option Explicit 'Globale Variable Eulersche Zahl Const e As Double = 2.718281828459 Private Sub Command1_Click() Dim w As Integer, itmax As Integer, it As Integer, u As Integer, v As Integer Dim genauigkeit As Double, t As Double, ausgabeT As Double, vy As Double, uy As Double it = 0 'Deklarierung der Eingabewerte w = TextW.Text iteration = TextIterationsschritt.Text u = TextU.Text v = TextV.Text genauigkeit = TextGenauigkeitsschranke.Text 'Funktion für f(u) uy = ((e ^ (u ^ 2)) - w) 'Funktion für f(v) vy = ((e ^ (v ^ 2)) - w) 'Funktion für t t = v - vy * ((v - u) / (vy - uy)) 'Funktion für f(t) ausgabeT = ((e ^ (t ^ 2)) - w) 'Ausgabeanweisung If ausgabeT <= genauigkeit Then MsgBox "Sie haben die gewünschte Genauigkeit erreicht. Der Wert ist " & ausgabeT End If End Sub
ich habe schon andere lösungsansätze gefunden, wollte es aber gern mit der sgn-funktion machen, wenn mir einer von euch helfen könnte.
Vielen Dank für eure Zeit.
-
ich hab jetzt mal n bisschen rumprobiert und sowas dabei rausbekommen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
If fu <> fv Then Do While it < itmax t = v - fv * ((v - u) / (fv - fu)) ft = (e ^ (t ^ 2)) - w If ft <> fu Then v = t fv = ft Else u = t fu = ft End If it = it + 1 If ausgabeT <= genauigkeit Then MsgBox "Sie haben die gewünschte Genauigkeit erreicht. Der Wert ist " & ft End If Loop MsgBox "Nach " & itmax & " maximalen Schritten ist der Wert " & ft End If
oder ist es besser die do-while nach der genauigkeit zu bestimmen und für die iterationsschritte eine for-schleife zu machen****
Ähnliche Themen
-
Hilfe bei PHP Programmierung für ein Wiki
Von Oenner im Forum PHPAntworten: 4Letzter Beitrag: 06.12.09, 15:15 -
Hilfe bei Programmierung
Von Donni im Forum JavaAntworten: 18Letzter Beitrag: 01.04.06, 20:57 -
Applet-Programmierung Hilfe
Von lindin im Forum JavaAntworten: 3Letzter Beitrag: 28.09.04, 12:49 -
Hilfe in VB Programmierung gesucht
Von RouviDog im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 18.02.04, 15:55 -
DLL Programmierung! HILFE
Von MathiasRichter im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 15.09.03, 22:44





Zitieren
Login





