Probleme mit Programm
-
Hallo,
ich bin neu und kenne mich überhaupt nicht mit c++ aus. Muß aber eine Aufgabe in c++ programmieren. Vielleicht gibt es jemanden der Lust und Zeit hat mir zu helfen? Die Aufgabe ist aus dem Gebiet der Stochastik:Für unabhängige und idntisch verteilte Zufallsvariablen X1,X2,... mit beschränkter Dichte f und eine beschränkte reellwertige Funktion g folgt aus dem Gestz der großen Zahlen, dass
1/n*Summe von j=1 bis n (g(Xj)) geht gegen Integral von g(x)*f(x) dx.
Berechne approximativ den Wert der Integrale
Integral von 0 bis 2 (e(-x2/2) und Integr. von o bis unendlich (cos(x)*e^(-2x)dx.
Ich habe keine geroße Hoffnung dass mich jemand versteht aber vielleich kann mir jemand sagen wie ich an so was drangehe und wie man das aufschreiben könnte.
Viele Grüße Samatron
-
Samatron schrieb:
1/n*Summe von j=1 bis n (g(Xj)) geht gegen Integral von g(x)*f(x) dx.
Berechne approximativ den Wert der Integrale
Integral von 0 bis 2 (e(-x2/2) und Integr. von o bis unendlich (cos(x)*e^(-2x)dx.
hm, damit kenne ich mit auch nicht aus, aber die funktionen kriegt man mit c++ locker hin.
[cpp]
#include <vector>
using std::vector;float sum(const vector<float>& x)
{
float sum(0.0);
for(size_t i = 0; i < x.size(); ++i)
sum += x[ i ]; // edit: hier stand mal [ i ] (ohne spaces)
return sum;
}// ...
float result = 1.0 / sum(xValues);
// hier noch ein funktionsbeispiel:
#include <cmath>
using std::cos; // ???// f(x) = e(-x2/2)
float f(float x) { e(-x2.0/2.0) }
// afaik gibt es keinen unterschied zwischen 0.0 und 0.0f.[/cpp]
*ungestestet*
cosinus und evtl. auch die eulersche zahl sind in <cmath> definiert.
die funktionsabläufe dazwischen müsstest du dann ProGgEn.mfg
-
Ich hab mir jetzt nichts alles angeschaut, aber das
terraner schrieb:
// f(x) = e^(-x^2/2) float f(float x) { e^(-x^2.0/2.0) }
wird nicht funktionieren.
Mal abgesehen davon, dass hier ein return fehlt und ich nicht weiss, wo du e herbekommst, solltest du dir nochmal die Bedeutung des ^ Operators anschaun.
-
terraner schrieb:
// afaik gibt es keinen unterschied zwischen 0.0 und 0.0f.
0.0 ist vom Typ double und 0.0f vom Typ float.
Außerdem sieht 0.0 aus wie ein Smilie - 0.0f hingegen nicht.
-
groovemaster schrieb:
Ich hab mir jetzt nichts alles angeschaut, aber das
terraner schrieb:
// f(x) = e^(-x^2/2) float f(float x) { e^(-x^2.0/2.0) }
wird nicht funktionieren.
Mal abgesehen davon, dass hier ein return fehlt und ich nicht weiss, wo du e herbekommst, solltest du dir nochmal die Bedeutung des ^ Operators anschaun.*no-brainer nr. 2 heute abend*
ich weiß natürlich, dass "^" normalerweise für potenzen steht bzw. für bitops...
ich sagte bereits, dass ich mir nicht sicher bin, ob e nicht vielleicht doch in <cmath> definiert ist.
btw: e = eulersche zahl, oder habe ich da etwas missverstanden?// f(x) = e^(-x^2/2) double f(double x) { return (pow( e, ( pow(x, 2.0)/2.0))); }
so, jetzt ist es hoffentlich richtig.
Außerdem sieht 0.0 aus wie ein Smilie - 0.0f hingegen nicht.
mfg