E Fkt berechnen mit Anzahl der Summanden
-
andii schrieb:
mcr schrieb:
[latex]exp(x) = \sum_{i=0}^{n} z_i[/latex]
das hilft mir ja nicht viel?
Es tut mir Leid, dass du meinen Beitrag nicht komplett verstanden hast.
Du brauchst hierbei NICHT die Fakultät bestimmen!Der Knackpunkt liegt in dieser Zeile:
Ok, für die, die es immer noch nicht verstehen, mal ein wenig Pseudocode:
double summe = 0.; double summand = 1.; summe = summand; for i=0 to n do summand = summand * x / (i+1); summe = summe + summand; end return summe;
Nun bleib lediglich als Aufgabe übrig, diesen Pseudocode in C zu übersetzen.
Und wie ihr seht: hier wird weder die Potenz noch die Fakultät bestimmtGruß mcr
Ach übrigens, so ähnlich geht das dann auch mit dem sinus!
-
proggingmania schrieb:
Denn schlussletztendlichstallerletztestens mußt du ja die Fakultät berechnen, nicht wahr doch.
Wie zuvor geschrieben: deine Aussage ist falsch!
Gruß mcr
-
Ach Quatsch.
(i+1)! = i! * (i+1)
Toll und nu ? Ist i! etwa keine Fakultät ? Bekomme ich i! etwa durch, ich zitiere mal frei, "Vermeidung von großen Zahlen" ?
Ein x^1 kann ich auch nicht durch i! teilen, bevor ich i! habe.
So, und wenn ich bei i! nen 1.#INF00 wegen Werteüberschreitung kriege, kann ich mir auch die Berechnung von (i+1)! in die Haare schmieren.
Auch wenn i! ( sprich: i FAKULTÄT )vorher aus der Hutschachtel gezaubert kam.
-
proggingmania schrieb:
Ach Quatsch.
(i+1)! = i! * (i+1)
Toll und nu ? Ist i! etwa keine Fakultät ? Bekomme ich i! etwa durch, ich zitiere mal frei, "Vermeidung von großen Zahlen" ?
Ein x^1 kann ich auch nicht duchr i! teilen, bevor ich i! habe.
So, und wenn ich bei i! nen 1.#INF00 wegen Werteüberschreitung kriege, kann ich mir auch die Berechnung von (i+1)! in die Haare schmieren.
Auch wenn i! ( sprich: i FAKULTÄT )vorher aus der Hutschachtel genaubert kam.Hallo proggingmania,
ich habe da mal ein paar Fragen zu deiner Person:
-- Wie alt bist du?
-- Inwiefern hast du mit Programmieren und Mathematik zu tun?Ich kann dich leider nicht verstehen. Wenn du dir die Aufgabe ansiehst,
fällt dir auf, dass i! nicht benötigt wird. Schau dir mal meine Beiträge
an: Hier habe ich eine Möglichkeit aufgezeigt, wie man ohne die Berechnung
von i! auskommt. Ich habe sogar Pseudocode gepostet.Ich habe die exp(x) und sin(x) Berechnung implementiert und kam ohne
Probleme mit double aus.Bitte tu mir einen Gefallen und überleg dir, was du mir hier antwortest,
ich möchte nicht, dass das hier exskaliert.Aber ich muss dir Recht geben: i! und alleine zu berechnen
sprengt dir die normalen Datentypen. Aber hier wird der Quotient aus beiden
benötigt, dadurch bleiben die Zahlen im gebräuchlichen Wertebereich, wenn die
Reihenfolge clever gewählt ist.Gruß mcr
-
mcr schrieb:
Ich kann dich leider nicht verstehen. Wenn du dir die Aufgabe ansiehst,
fällt dir auf, dass i! nicht benötigt wird. Schau dir mal meine Beiträge
an: Hier habe ich eine Möglichkeit aufgezeigt, wie man ohne die Berechnung
von i! auskommt. Ich habe sogar Pseudocode gepostet.Hallo mcr,
Ich hatte die Definition von zi im Auge,mcr schrieb:
Sei definiert als:
D.h. wir betrachten uns hier mal den Schritt vom i-ten Summanden
zum (i+1)-ten.die auf der Berechnung von i! basiert.
Deinem Pseudocode habe ich leider zu wenig Beachtung geschenkt. Das habe ich heute nachgeholt, in der Tat läßt sich damit die direkte Berechnung der großen Zahlen vermeiden.
Sorry for any inconvenience.
Gruß,
p.
-
okay also ich schaffe es nicht alleine, ich komme nicht drauf wie das geht.
also der Sinus als Taylor:
x - (x^3 / 3!) + (x^5 / 5! ) - (x^7/7!) ...
wie man sieht wechseln die vorzeichen, da habe ich mir gedacht ich teile es auf in einen wert, wo alles abgezogen wird, und in einem wo alles addiert wird, und am ende verrechnen.
und mit dem 3! 5! 7!... komme ich überhaupt nicht klar, ich habs so probiert mit den ungeraden zahlen:
for(i=1;i<20;i=i+1) if (i/2 =! 0) {
aber das problem ist jetzt, das es dann mit den fakultäten ja nicht stimmt wenn ich sage n=n*i, dann hätte ich ja 1*1, 1*3, 1*3*5 usw..
HILFE
-
-
andii schrieb:
okay also ich schaffe es nicht alleine, ich komme nicht drauf wie das geht.
hast du den pseudocode von mcr nach C übersetzt? der sollte doch eigentlich funzen.
-
Wie willst du denn die Fakultät berechnen. Direkt, oder mit dieser Vermeidung von großen Zahlen Geschichte ?
Der Typ double macht ja erst bei (171)! den Klappmann, brauchbare Werte bekommt man bei der Sinusreihe schon bei ca. (13)!
-
pseudo-freak schrieb:
andii schrieb:
okay also ich schaffe es nicht alleine, ich komme nicht drauf wie das geht.
hast du den pseudocode von mcr nach C übersetzt? der sollte doch eigentlich funzen.
Hi, der angegebene Pseudocode ist nicht für die Sinus-Taylor-Entwicklung,
sondern für die E-Funktion gedacht. Aber es sollte nicht allzu schwer sein,
diesen Code umzuschreiben.Gruß mcr
-
Ok, bevor noch Fragen kommen:
Hier mal Pseudocode für die Sinus-Taylor-Entwicklung:
sin(x): double summe = x; double summand = x; for i=1 .. n do summand = summand * (x*x / ((2*i+1)*(2*i))); if (i%2 == 0) summe = summe + summand; else summe = summe - summand; end
So, ich glaube, nun habe ich zu viel geholfen.
Viel Spaß beim Implementieren.Gruß mcr
-
mcr schrieb:
Ok, bevor noch Fragen kommen:
Hier mal Pseudocode für die Sinus-Taylor-Entwicklung:
sin(x): double summe = x; double summand = x; for i=1 .. n do summand = summand * (x*x / ((2*i+1)*(2*i))); if (i%2 == 0) summe = summe + summand; else summe = summe - summand; end
So, ich glaube, nun habe ich zu viel geholfen.
Viel Spaß beim Implementieren.Gruß mcr
Das ist kein C++
-
O's -> Orienierungslosen
Kenner des Pascal schrieb:
Das ist kein C++
Hi Bruder !
Hier ist das ANSI C Forum.
-
Kenner der O's schrieb:
O's -> Orienierungslosen
Kenner des Pascal schrieb:
Das ist kein C++
Hi Bruder !
Hier ist das ANSI C Forum.Es ist auch kein ANSI C
-
Dürfte ich bitten hier weniger sinnfreies Zeugs zu entladen. Anderenfalls sehe ich mich gezwungen mich als "Kenner des Löschens" zu betätigen. Danke.
-
Tim schrieb:
Dürfte ich bitten hier weniger sinnfreies Zeugs zu entladen. Anderenfalls sehe ich mich gezwungen mich als "Kenner des Löschens" zu betätigen. Danke.
Jambo Bwana!
Tut das irgendjemandem weh, daß das einfach jetzt so versickert, außer Deiner aufrechten Sheriff- Seele? Einfach nochmal draufgeschimpft, das tut dem gequälten Ego gut, was, Tim?