Ergebnis auf komplexe Zahlen test

Allgemeine Fragen zu Statistik mit R.

Ergebnis auf komplexe Zahlen test

Beitragvon riejuhatza » Fr 18. Jan 2019, 13:49

Ich habe eine quadratische Gleichung der Form: x² + px + q = 0

Für p und q habe ich einen vektor definiert und möchte nun eine if-Abfrage erstellen, in der zuerst festgestellt werden soll ob die Lösung der Gleichung mit dem Wertepaar p und q eine komplexe Lösung ergibt oder reelle Zahlen.

Mein code zur Abfrage sieht daher so aus:

Code: Alles auswählen
if (is.nan((-p/2)-(sqrt(((p/2)^2)-q))) == FALSE)


Wenn die Lösung reell ist, dann soll R weiter berechnen und wenn die Lösung eine komplexe Zahl ist, dann soll mir mittels print eine Fehlermeldung ausgegeben werden.


Ich habe das ganze zunächst mit "is.complex == FALSE" probiert aber das hat leider nicht funktioniert.

Bin mir dessen bewusst, dass eine komplexe Lösung aus zwei teilen besteht. Für mich reicht es aber aus zu sagen, dass die Lösung komplex ist und die berechnung nicht durchgeführt werden soll, sobald ein komplexer Teil dabei ist.

Meine eigentliche Frage: Ist es korrekt diese Abfrage mit "is.nan" durchzuführen? Ich habe keine speziellen Pakete oder Funktionen für Berechnungen mit komplexen Zahlen verwendet.
riejuhatza
 
Beiträge: 2
Registriert: Di 6. Nov 2018, 02:43
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Ergebnis auf komplexe Zahlen test

Beitragvon jogo » Sa 19. Jan 2019, 12:50

Hallo riejuhatza,

ich verstehe nicht, warum Du nicht testest, ob die Diskriminante kleiner als Null ist.
Kannst Du bitte erklären, warum Du unbedingt is.nan() verwenden möchtest?

Gruß, Jörg
jogo
 
Beiträge: 165
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 1 mal in 1 Post

Re: Ergebnis auf komplexe Zahlen test

Beitragvon riejuhatza » Sa 19. Jan 2019, 13:13

Muss nicht unbedingt sein. War nur das erste das mir eingefallen ist ...
Aber ja natürlich, zu überprüfen wie groß der Wert der berechneten Quadratwurzel ist, ist noch simpler.

Trotz allem, weil es mich jetzt interessiert, wäre die Lösung mit "is.nan" auch korrekt?
riejuhatza
 
Beiträge: 2
Registriert: Di 6. Nov 2018, 02:43
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Ergebnis auf komplexe Zahlen test

Beitragvon jogo » Mo 21. Jan 2019, 15:06

Es geht, aber es werden Warnungen erzeugt durch die Funktion sqrt().

Code: Alles auswählen
p <- c(2, 4, 4)
q <- c(3, 2, 7)

data.frame(p=p, q=q)
is.nan(-p/2 - sqrt(((p/2)^2)-q))

D <- (p/2)^2 - q
D < 0 # komplexe Loesungen?


Gruß, Jörg
jogo
 
Beiträge: 165
Registriert: Mo 26. Feb 2018, 09:56
Danke gegeben: 3
Danke bekommen: 1 mal in 1 Post


Zurück zu Statistik allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron