[C] Wurzel aus negativen Zahlen, Iterationsverfahren

MSshady

Mitglied
Also das Wurzel ziehen selber hab ich schon, allerdings weiß ich nicht, wie ich die Wurzel aus einer negativen Zahl ziehe. Oder besser wie ich das programmiere.

Code:
#include <stdio.h>
#include <math.h>
// Berechnung der Potenz x hoch n
double power(double x, int n) {
 double result = x;
 int i;
 for (i = 1; i < n;i++) {
   result = result * x;
 }
 return result;
}

// Methode für die Wurzelberechnung
double ntewurzel(double a, int n) {
 // Initialwerte x1 = 1, x2 = 2, damit Abbruchbedingung nicht gleich am Anfang erfüllt ist
 double x1 = 1;
 double x2 = 2;
 while ((x1-x2 >= 1E-8) ||
        (x2-x1 >= 1E-8)) {
   // setze x1 auf den Wert von x2, damit weitergerechnet werden kann
   x1 = x2;
   x2 = (1.0/n) * ((n-1)*x1 + (a/power(x1, n-1)));
 }
 return x2;
}

 int main(void){
 double a; int n;
 printf("Bitte geben Sie den Radikand a und den Wurzelexponent n ein: \n");
 scanf("%lf %d", &a, &n);
 printf("Die %d. Wurzel aus %f ist %f.\n", n, a, ntewurzel(a, n));
 
 return 0;
 
 }

Das ist das was ich schon habe, hat jemand einen Tipp?
Hab bis jetzt noch nicht viel programmiert.

Danke im voraus :)
 
Also Wurzelziehen kannst du nur wenn der Exponent ungerade ist.
Ist dies der Fall, würde ich aus dem Betrag(also ohne Vorzeichen), der Zahl die Wurzel ziehen und nachträglich ein "-" Vorhängen, wenn sie ursprünglich negative war.

mfg
Gene
 
Moin,

Also Wurzelziehen kannst du nur wenn der Exponent ungerade ist
Das gilt aber ausschließlich für negative Radikanden - sonst gäbe es ja keine Quadratwurzel :suspekt:


Die Behandlung von Wurzeln aus negativen Zahlen ist nicht einheitlich. Es gilt beispielsweise
f1ee569af759923f3e418b1959048f48.png
und ? 2 ist die einzige reelle Zahl, deren dritte Potenz ? 8 ist. Allgemein ergeben sich für ungerade Potenzen negativer Zahlen wieder negative Zahlen.
Bezüglich der ungeraden Wurzeln aus negativen Zahlen werden folgende Positionen vertreten:

  • Wurzeln aus negativen Zahlen sind generell „verboten“. Beispielsweise ist
    e6ca3a3950c92e57c2faf7983423235a.png
    also undefiniert. Die Lösung der Gleichung x3 = ? 8 wird geschrieben als
    046bdeceaf4b9a6e222e0a7c0c151370.png
    .
  • Wurzeln aus negativen Zahlen sind erlaubt, wenn der Wurzelexponent eine ungerade Zahl ist (3, 5, 7, …). Für ungerade Zahlen 2n + 1 gilt generell
f65b59ef82e4c09f447ffd24084aa39f.png
. Diese Festlegung ist mit manchen Eigenschaften der Wurzeln, die für positive Radikanden gelten, nicht vereinbar. Beispielsweise ist
a948200eec48978bb74576dd018089b6.png
Wurzeln zu geraden Exponenten aus negativen Zahlen können keine reellen Zahlen sein, weil gerade Potenzen reeller Zahlen nie negativ sind. Der Bedarf für Wurzeln aus negativen Zahlen führte zur Einführung der komplexen Zahlen; allerdings gibt es auch im Bereich der komplexen Zahlen Wurzeln aus negativen Zahlen nur mit gewissen Einschränkungen, siehe unten.
(Quelle zum besseren Nachlesen: http://de.wikipedia.org/wiki/Wurzel_(Mathematik))

Ergo:
Ist dies der Fall, würde ich aus dem Betrag (also ohne Vorzeichen), der Zahl die Wurzel ziehen und nachträglich ein "-" Vorhängen, wenn sie ursprünglich negative war

Genau, und eben nur bei ungeraden Exponenten :)

Gruß
Klaus
 
Jap, da hab ich mich wohl ein wenig knapp gehalten:)

Ungenau so wie du (vfl_freak), hab ich das aus der Wikipedia entnommen, bzw sichergestellt, das es auch so ist, wie ich mir das gedacht habe.

Hoffe der Autor, dieses Themas kann noch stellung nehmen, ob ide Inforamtionen überhaupt weiter helgfen oder das Problem an einer anderen Stelle liegt.
 
Zurück