tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
568
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    thomas255 thomas255 ist offline Grünschnabel
    Registriert seit
    May 2011
    Beiträge
    2
    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.
     

  2. #2
    thomas255 thomas255 ist offline Grünschnabel
    Registriert seit
    May 2011
    Beiträge
    2
    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

  1. Antworten: 4
    Letzter Beitrag: 06.12.09, 15:15
  2. Hilfe bei Programmierung
    Von Donni im Forum Java
    Antworten: 18
    Letzter Beitrag: 01.04.06, 20:57
  3. Applet-Programmierung Hilfe
    Von lindin im Forum Java
    Antworten: 3
    Letzter Beitrag: 28.09.04, 12:49
  4. Hilfe in VB Programmierung gesucht
    Von RouviDog im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 18.02.04, 15:55
  5. DLL Programmierung! HILFE
    Von MathiasRichter im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 15.09.03, 22:44