Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Irrationale Wurzeln
Gehe zu Seite 1, 2, 3  Weiter
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Mathe-Forum -> Irrationale Wurzeln
 
Autor Nachricht
fas
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 26.05.2005
Beiträge: 2086

BeitragVerfasst am: 23 Jul 2005 - 03:19:04    Titel: Irrationale Wurzeln

Hallo zusammen,

Gibt es einen Algorithmus oder sonst einen Weg, herauszufinden, ob die (n-te) Wurzel einer rationalen Zahl irrational ist?

Liebe Grüsse
algebrafreak
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 28.10.2004
Beiträge: 4143
Wohnort: Passau

BeitragVerfasst am: 23 Jul 2005 - 09:27:55    Titel:

Behauptung: Die Zahl (p/q)^(1/k) für p,q in lN und k in lN ist genau dann Rational, wenn man den Zähler und Nenner von p/q so faktorisieren kann, dass für die entsprechenden Faktorzerlegungen

p = p_1^(e_1) ... p_n^(e_n)
q = q_1^(v_1) ... q_n^(v_n)

gilt, dass k | e_i und k | v_i für jedes 1 <= i <= n.

Beweis: Gelte, dass p und q Faktorisierungen im obigen Sinne besitzen. Dann gilt

(p/q)^(1/k) =
p^(1/k)/q^(1/k) =
(p_1^(e_1) ... p_n^(e_n))^(1/k)/(q_1^(v_1) ... q_n^(v_n))^(1/k) =
(p_1^(e_1/k) ... p_n^(e_n/k))/(q_1^(v_1/k) ... q_n^(v_n/k)) =
(*).

Seien e'_i = e_i / k in lN und v'_i = v_i / k in lN, denn k | e_i und k | v_i für jedes 1 <= i <= n. Dann gilt weiter

(*) =
(p_1^(e'_1) ... p_n^(e'_n))/(q_1^(v'_1) ... q_n^(v'_n)).

Letzterer Ausdruck ist rational.

Gelte nun, dass (p/q)^(1/k) rational ist. Sei dies etwa u/v mit

u = p_1^(e_1) ... p_n^(e_n)
v = q_1^(v_1) ... q_n^(v_n).

Dann ist für

u^k = (p_1^(e_1) ... p_n^(e_n))^k = p_1^(e_1k) ... p_n^(e_nk)
v^k = (q_1^(v_1) ... q_n^(v_n))^k = q_1^(v_1k) ... q_n^(v_nk).

die gesuchte Faktorzerlegung von p und q, denn es gilt offenbar k | e_ik und k | v_nk. qed

In der Praxis kann man mit dieser Charakterisierung nicht viel anfangen, denn die Faktorisierung ist ein sehr schweres Problem. Sag bescheid, wenn Du eine andere Lösung brauchst.

Beachte, dass eine solche Wurzel entweder rational ist oder irrational. Für negative Zahlen gibt es analog drei Fälle: Entweder ist die Wurzel rational, irrational oder nicht definiert (bzw. komplex). Das bekommt man anhand der Potenz.
fas
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 26.05.2005
Beiträge: 2086

BeitragVerfasst am: 23 Jul 2005 - 13:52:00    Titel:

Hi,

Danke für die Antort, nur leider ist es nicht ganz das, was ich suche. Ich suche nach einem Algorithmus (den ich implementieren will), um herauszufinden, ob die Wurzel irrational ist.

Ich würde mich auch mit einem Verfahren begnügen, mit dem man rausfindet, ob die Wurzel einer Zahl natürlich ist (zb 16->4, 100->10 etc).
Gibt es da einen Trick?

Gruss
algebrafreak
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 28.10.2004
Beiträge: 4143
Wohnort: Passau

BeitragVerfasst am: 23 Jul 2005 - 14:07:04    Titel:

Ich verstehe nicht, was dein Problem ist.

Wenn es nicht um Theorie geht, dann brauchst Du einfach von einem Bruch vom Zähler und vom Nenner die Wurzel zu ziehen. Wenn dann etwas natürliches kommt, so bist Du fertig.

Und wenn's um die Theorie geht, so wirst Du so oder so faktorisieren oder zumindest teilfaktorisieren müssen. Dann verstehe ich nicht ganz, wozu das gut sein sollte.
fas
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 26.05.2005
Beiträge: 2086

BeitragVerfasst am: 23 Jul 2005 - 14:17:00    Titel:

Es geht um was praktisches, nämlich um die Implementation eines Wurzel-Rechners. Dieser Rechner sollte aber nur eine Zahl ausspucken, wenn das Ergebnis natürlich ist oder zumindest nicht irrational.

Beispiel:
sqrt(16). Ergebnis: 4
sqrt(2). Ergebnis: sqrt(2) (kein Ergebnis da irrational).
sqrt(6.25). Ergebnis: 2.5.

Da kann ich aber schlecht das heronische Verfahren benutzen, da es zwar die Wurzel annähern, mir aber nicht sagen kann, ob das Ergebnis irrational ist.

Ich hoffe, du verstehst jetzt mein Anliegen Wink
algebrafreak
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 28.10.2004
Beiträge: 4143
Wohnort: Passau

BeitragVerfasst am: 23 Jul 2005 - 14:25:42    Titel:

In welcher Programmierumgebung machst Du es?
fas
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 26.05.2005
Beiträge: 2086

BeitragVerfasst am: 23 Jul 2005 - 14:35:56    Titel:

In .NET, obwohl es eigentlich nichts zur Sache tut Wink

Gruss
algebrafreak
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 28.10.2004
Beiträge: 4143
Wohnort: Passau

BeitragVerfasst am: 23 Jul 2005 - 15:06:47    Titel:

Es ist schön, dass Du es beurteilen kannst Smile Also eine pragmatische Lösung ist die folgende. In deiner Programmiersprache hast Du die Funktion pow(a,b), die a^b ausrechnet. Ich gehe davon aus, dass Du eine Zahl in einen ganzzahligen Bruch umwandeln kannst. Gegeben also p und q mit der Semantik p/q mit p,q in Z. Gesucht ist (p/q)^(1/n).

a) Berechne a = pow(p,1/n)
b) Berechne b = pow(q,1/n)
c) Besimme eine natürliche Zahl u mit u <= a <= u+1
d) Besimme eine natürliche Zahl v mit v <= b <= v+1
e) Berechne u^n, (u+1)^n, v^n, (v+1)^n (in ganzen Zahlen). Ist unter den Nenner bzw. Zähler-Zahlen p bzw. q dabei, so ist deine Wurzel rational. Sonst nicht.
fas
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 26.05.2005
Beiträge: 2086

BeitragVerfasst am: 23 Jul 2005 - 15:16:43    Titel:

Hi,

algebrafreak hat folgendes geschrieben:
Es ist schön, dass Du es beurteilen kannst Smile


Kann ich tatsächlich Wink Denn:

Ich darf keine von der Programmierumgebung mitgelieferten Funktionen benutzen, da diese nur mit begrenzt langen Zahlen hantieren können.

Ich bin eben dabei, ein Computeralgebrasystem zu programmieren. Das funktioniert schon ganz gut, und jetzt komm ich zur Programmierung der Potenzen, und bei diesen muss ich ja Wurzeln ziehen (z.B. 16^(1/3)).

Da es sich um ein Algebraprogramm handelt, muss ich eben Wurzeln, die irrational (oder Notfalls Kommastellen haben), symbolisch (also so wie sie eingegeben wurde) zurückgeben, und die anderen ausrechnen.

Ich dachte daran, die Heron-Schleife einfach eine gewisse Zahl von Durchgängen machen zu lassen und dann zu schauen. Aber das ist nunmal nicht so genau Rolling Eyes

Liebe Grüsse[/b]
algebrafreak
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 28.10.2004
Beiträge: 4143
Wohnort: Passau

BeitragVerfasst am: 23 Jul 2005 - 15:32:27    Titel:

Und das hättest Du als allererstes hinschreiben sollen. Wenn Du ein CAS programmierst, dann hast Du bereits ein Faktorisierungsalgorithmus für ganze Zahlen implementiert, bevor Du angefangen hast mit rationalen Potenzfunktionen zu arbeiten. Faktorisiere einfach den Zähler und Nenner und Prüfe ob die Potenzen aller Faktoren durch n teilbar sind.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Mathe-Forum -> Irrationale Wurzeln
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum