Grafische Darstellung Funktion < Maple < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:31 So 27.03.2011 | Autor: | Stala |
Aufgabe | Schreibe eine Prozedur, die bei Eingabe einer Zahl x die Anzahl der Primzahlen bis x ausgibt, die beim Teilen durch 4 den Rest 1 hinterlassen. Plotte das Ergebnis der Prozedur zwischen 1 und 10000. |
Hallo Forum,
den ersten Teil der Aufgabe konnte ich selbst lösen, die Prozedur funktioniert tadellos.
Primzahlfunktion1 := proc (x)
local i, j, k, n;
n := floor(x);
j := 0;
for i from 1 to n do
if isprime(i) then if i mod 4 = 1 then
j := j+1;
else j := j +0;
fi;
fi;
do;
k := j;
end;
Wie schaffe ich es nun, dass die diese als Funktion grafisch darstelle?
Mit
plot(Primzahlfunktion1(x),x=1..10000)
erhalte ich nur eine Fehlermeldung
Woran liegt's?
Danke schon mal
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo Stala,
> Schreibe eine Prozedur, die bei Eingabe einer Zahl x die
> Anzahl der Primzahlen bis x ausgibt, die beim Teilen durch
> 4 den Rest 1 hinterlassen. Plotte das Ergebnis der Prozedur
> zwischen 1 und 10000.
>
>
> Hallo Forum,
> den ersten Teil der Aufgabe konnte ich selbst lösen, die
> Prozedur funktioniert tadellos.
>
> Primzahlfunktion1 := proc (x)
> local i, j, k, n;
> n := floor(x);
> j := 0;
> for i from 1 to n do
> if isprime(i) then if i mod 4 = 1 then
> j := j+1;
> else j := j +0;
> fi;
> fi;
> do;
> k := j;
> end;
>
> Wie schaffe ich es nun, dass die diese als Funktion
> grafisch darstelle?
>
> Mit
> plot(Primzahlfunktion1(x),x=1..10000)
Nach diesem Beispiel - Darstellung mit kartesischen Koordinaten muss das so lauten:
plot(Primzahlfunktion1,x=1..10000)
>
> erhalte ich nur eine Fehlermeldung
>
> Woran liegt's?
>
> Danke schon mal
>
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
Gruss
MathePower
|
|
|
|
|
Hallo,
seltsamerweise ist es mir mit Deiner Funktion auf nicht gelungen. Maple meckert, dass der Endwert der for-Schleife bekannt sein müsse, was er aber doch ist
Ich habe mir deshalb erlaubt, die Funktion neu zu schreiben (testet jetzt auch nur noch Zahlen i mit mod(i,4)=1); dann geht's plötzlich. Vieleicht kennt sich ja noch jemand mit den Interna von Maple besser aus und kann etwas mehr Licht in die Angelegenheit bringen.
1: | pf1 := proc (x)
| 2: | local i, j;
| 3: | if x < 5 then 0
| 4: | else
| 5: | j := 0;
| 6: | for i from 5 by 4 to floor(x) do
| 7: | if isprime(i) then j := j+1 end if
| 8: | end do;
| 9: | j
| 10: | end if
| 11: | end proc;
| 12: |
| 13: | pf1(10000);
| 14: |
| 15: | plot(pf1, 1 .. 10000); |
... seltsame Sache das...
Gruß,
Peter
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 23:19 Di 29.03.2011 | Autor: | Peter_Pein |
Ach stöhn...
ich vermute den Fehler gefunden zu haben; ob er bei Dir oder bei Maple liegt, liegt wohl im Age des Betrachters.
plot(f(x),x=bereich) wertet offenbar zunächst f(x) mit unbestimmtem x aus. Deshalb ist in Deiner Funktion n:=floor(x) erstmal unbestimmt, und die Auswertung setzt mit einem unbestimmten n als oberer Schleifengrenze fort.
Genauso gibt meine Funktion andere Fehler aus, die aber auf der selben Grundlage beruhen.
Langer Rede kurzer Unsinn:
plot('Primzahlfunktion1(x)',x=0..10000)
# beachte das Apostroph (die Apoströpherse ))
funzt unter Maple 14 einwandfrei.
In Deiner Funktion muss nur noch das die for-Schleife abschließende "do" in ein "od" oder "end do" gewandelt werden.
Wer hätte gedacht, dass man auf seit ca. 20 Jahren bestehende Fallen herintappt?
Nun ja, nu isses jelöst,
allet Jute,
det Peterle
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:58 So 03.04.2011 | Autor: | Stala |
Vielen Dank dir Peterle,
mit den Apostrophen funktioniert es tatsächlich, warum auch immer =)
|
|
|
|