matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMapleFaktorisierung von Polynomen
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "Maple" - Faktorisierung von Polynomen
Faktorisierung von Polynomen < Maple < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Maple"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Faktorisierung von Polynomen: Korrektur von Code
Status: (Frage) beantwortet Status 
Datum: 15:49 Fr 15.01.2010
Autor: Dani13

Aufgabe
Die quadratfreie Faktorisierung von Polynomen über Zp: diesen algorithmus sollte in in maple implementieren:

SQUAREFREE(f(x))
INPUT: a monic polynomial f(x) e Fq(x) of degree > 1, where Fq has quaractaristic p.
OUTPUT: the square-free factorisation of f(x)
1. set i<-- 1, F<--1 and compute f´(x).
2. if f´(x) =0 then set f(x) [mm] =f(x)^1/p [/mm] and [mm] F<--SQUAREFREE(f(x))^p. [/mm]
        otherwise  do the following:
   a. compute g(x) <--gcd(f(x),f´(x)) and h(x)<-- f(x)/g(x).
   b. while h(x) ≠1 do the following:
                compute h1(x)<--gcd(h(x),g(x)) and l(x) <--h(x)/h1(x).
                set [mm] F<--F*l(x)^i, [/mm] i<-- i+1, h(x)<--h1(x) and g(x)<--(g(x)/h1(x)).
  c. If g(x) ≠ 1 then set g(x)<-- [mm] g(x)^1/p [/mm] and [mm] F<--F*(SQUAREFREE(g(x)))^p. [/mm]
3. return F.

Hallo, ich bin Maple anfängerin (und auch programmieranfängerin), was man vermutlich bei dem Code da merkt, jedenfalls hab ich jetzt mal das versucht:

faktorisierung := proc(b::polynom,x::symbol)
local i, f, h1, h, f1, g, l, F;
F:=1;
f1:=diff(f,x);
if f1 = 0
then [mm] f=f^1/2 [/mm]
else
g:=gcd(f,f1) ; h=f/g
end if;
for i while h <> 1 do
h1:=gcd(h,g); l:=h/h1;
if l<>1 then
[mm] F=F*l^i [/mm] end if;
h=h1; g=g/h1 end do;
g*F
end proc:


nach 4 stunden die ich daran gesessen bin, weiss ich nun wirklich nicht mehr weiter und hoffe sehr irgendjemand kann mir helfen das zu verbessern...

ganz lieben dank schon im voraus
dani
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Faktorisierung von Polynomen: Antwort
Status: (Antwort) fertig Status 
Datum: 19:26 Fr 15.01.2010
Autor: pi-roland

Hallo,

leider hab ich nicht wirklich viel Ahnung von Maple und was dein Programm machen soll, ist mir auch nicht ganz klar, aber es wäre vielleicht sinnvoll, wenn du angeben könntest, was eigentlich nicht funktioniert.
Trotzdem habe ich eine Idee, was ein Problem sein könnte:


> faktorisierung := proc(b::polynom,x::symbol)
>  local i, f, h1, h, f1, g, l, F;
>  F:=1;
>  f1:=diff(f,x);

Wo wird denn f auf die Funktion gesetzt? Irgendwie musst du doch aus dem Polynom b, was übergeben wird, f machen.

>  if f1 = 0
>  then [mm]f=f^1/2[/mm]
> else
>  g:=gcd(f,f1) ; h=f/g

Auch hier ist laut Aufgabenstellung f(x) usw. zu nehmen und nicht nur f.

>  end if;
>  for i while h <> 1 do

>  h1:=gcd(h,g); l:=h/h1;
>  if l<>1 then
>  [mm]F=F*l^i[/mm] end if;
>  h=h1; g=g/h1 end do;
>  g*F
>  end proc:
>  
>
> nach 4 stunden die ich daran gesessen bin, weiss ich nun
> wirklich nicht mehr weiter und hoffe sehr irgendjemand kann
> mir helfen das zu verbessern...
>
> ganz lieben dank schon im voraus
>  dani

So wie ich das sehe, muss f eine Funktion sein. Die soll sicherlich übergeben werden.
Was für mich als "Alle-Sprachen-Außer-Deutsch-Nichtversteher" wünschenswert ist, wäre ein kleines Beispiel, mit Werten (Zahlen, Polynomen, was auch immer) die in die Funktion hineinkommen sollen und der dazugehörigen Ausgabe (also das was du erhalten willst - nicht das was dein Programm zur Zeit liefert). Im nächsten Schritt ist es natürlich sinnvoll zu wissen, was dein Programm liefert... ;-)
Viel Erfolg,

Roland.

Bezug
                
Bezug
Faktorisierung von Polynomen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:16 Fr 15.01.2010
Autor: Dani13

Aufgabe
weitere idee:
faktorisierung := proc(f::polynom,x::symbol)
local i, h1, f1, g, F,h,l;
F:=1;
f1:=diff(f,x);
if f1 = 0
then F:=f^(1/p)
else
g:=gcd(f,f1); h:=(f/g);
for i while h <> 1 do
h1:=gcd(h,g); l:=(h/h1);
if l<>1 then
[mm] F:=F*l^i [/mm] end if;
h:=h1; g:=(g/h1) end do;
end if;
g*F
end proc:

hallo roland

so, hab jetz nochmal weiter daran gearbeitet, wie oben ersichtlich

der hintergrund dieser aufgabenstellung ist dass ein polynom vom n-ten grad also zum Bsp: [mm] x^4+3x³+2x².... [/mm] in die form (x-3)*(x-2),....
gebracht wird, also dass keine quadrate bei den x mehr vorhanden sind, so hab ich das jedenfalls verstanden,...

im moment macht mein programm eigentlich gar nichts, also es wird auf kein fehler angezeigt, also es gibt mir wenn ich eingebe:
f := [mm] x^4+2*x^3-41*x^2-42*x+360 [/mm]

dieselben werte wieder zurück...

immer noch für hilfe sehr dankbar.. :)

Bezug
                        
Bezug
Faktorisierung von Polynomen: Antwort
Status: (Antwort) fertig Status 
Datum: 21:19 Fr 15.01.2010
Autor: pi-roland

Hallo,

aus deinen Ausführungen wurde ich dann doch nicht so richtig schlau. Doch es existiert ein wikipedia-Artikel, der - obwohl auf englisch - mir verraten konnte, was gemeint ist:

Das Problem sind die Nullstellen von Polynomen. Nun kann man ein Polynom einfach so schreiben, dass die Nullstellen gleich ablesbar sind (z.B.: f(x)=(x-2)*(x-4)*(x+12)) aber so ist es ja nicht immer gegeben. Das spezielle an deinem Algorithmus ist, dass es keine doppelte (bzw. n-fache) Nullstelle gibt (wie es bei f(x)=(x-2)*(x-2)*(x+4)) der Fall wäre.

Nun würde ich dir empfehlen den Pseudocode des Algorithmus an einem konkreten Beispiel nachzuvollziehen. Denn dann erkennst du was der Reihe nach gemacht wird. Ein einfaches Beispiel [mm] (f(x)=x^2+2x) [/mm] sollte vielleicht schon genügen.
Wenn du per Hand auf die Faktorisierung kommst, dann sollte es auch mit Maple nicht mehr schwer sein.

Was mir an deiner Funktion noch auffiel: Gibt es in maple kein "return"? Wie wird denn das Ergebnis zurückgegeben?
Hoffe es hilft trotzdem ein wenig weiter...
Viel Erfolg noch,

Roland.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Maple"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]