www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de