Thema Datum  Von Nutzer Rating
Antwort
Rot Lösen einer kubischen Gleichung
10.05.2014 16:14:19 sebi90
Solved
10.05.2014 16:49:43 sebi90
NotSolved
10.05.2014 17:07:32 Gast88680
NotSolved
10.05.2014 17:36:09 sebi90
NotSolved
10.05.2014 19:00:29 Gast52345
NotSolved
12.05.2014 11:12:26 Holger
NotSolved

Ansicht des Beitrags:
Von:
sebi90
Datum:
10.05.2014 16:14:19
Views:
1697
Rating: Antwort:
 Nein
Thema:
Lösen einer kubischen Gleichung

Hi, ich arbeite das 1.mal mit vba und möchte ein Programm schreiben zur Lösung einer kubischen Gleichung

x³+ax²+bx+c=0

 

Ich habe zuerst eine Funktion zur Diskriminanten geschrieben:

    Public Function Disc(ByVal p As Double, ByVal q As Double) As Double
                 Disc = (p / 3) ^ 3 + (q / 2) ^ 2
    End Function

Nun sollen in excel a,b und c mit Werten gefüllt werden und danach die Diskriminante berechnet werden. Ist D>0 gibt es eine reele Lösung, die ausgegeben werden soll, und hier hängt des. Bis hierhin sieht dann mein main-Programm so aus:

 

Sub Loesung()

    Dim u As Double, v As Double
    Dim x_1 As Double
    
    Dim a, b, c As Double
    
    a = Tabelle1.Cells(10, 3)
    b = Tabelle1.Cells(11, 3)
    c = Tabelle1.Cells(12, 3)
    
    p = (3 * b - a ^ 2) / 3
    q = (2 * a ^ 3) / 27 - (a * b) / 3 + c
    
    If Disc(p, q) > 0 Then
    u = ((-q / 2) + (Disc(p, q)) ^ (1 / 2)) ^ (1 / 3)
    v = ((-q / 2) - (Disc(p, q)) ^ (1 / 2)) ^ (1 / 3)
    x_1 = u + v - a / 3
    Tabelle1.Cells(17, 3) = x_1
    
    ElseIf Disc(p, q) <= 0 Then
    MsgBox "3 Lösungen"
    
    End If

End Sub

 

Ich bekomme nun beim Debuggen "Lautzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument. Der Fehler liegt irgendwo in der Zeile

v = ((-q / 2) - (Disc(p, q)) ^ (1 / 2)) ^ (1 / 3)

Ändere ich das "-" vor der Funktion Disc z.b. in ein "+" , dann ist der Fehler weg und mein Wert wird berechnet, natürlich ist er dann falsch, aber es funktioniert alles. Nach gleichem Schema habe ich übrigens das für eine quadratische Gleichung gemacht, und hier funktioniert alles einwandfrei.

Danke für eure Hilfe!

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Lösen einer kubischen Gleichung
10.05.2014 16:14:19 sebi90
Solved
10.05.2014 16:49:43 sebi90
NotSolved
10.05.2014 17:07:32 Gast88680
NotSolved
10.05.2014 17:36:09 sebi90
NotSolved
10.05.2014 19:00:29 Gast52345
NotSolved
12.05.2014 11:12:26 Holger
NotSolved