Zum Inhalt springen

Mesrine

Mitglieder
  • Gesamte Inhalte

    8
  • Benutzer seit

  • Letzter Besuch

  1. Danke, jetzt is es mir klar! Gruß, Mesrine
  2. Übrigens klappt alles wenn ich n=80 nehme. Aber für n=100 kommt wieder #QNAN für den Integralwert
  3. Danke für deine Hilfe hier ist die (Gauss-Legendre) gauleg.cpp: void gauleg(double x1,double x2,double x[],double w[], int n) { int m,j,i; double z1,z,xm,xl,pp,p3,p2,p1; const double EPS=3.0e-7; m=(n+1)/2; xm=0.5*(x2+x1); xl=0.5*(x2-x1); for (i=1;i<=m;i++) { z=cos(3.141592654*(i-0.25)/(n+0.5)); do { p1=1.0; p2=0.0; for (j=1;j<=n;j++) { p3=p2; p2=p1; p1=((2.0*j-1.0)*z*p2-(j-1.0)*p3)/j; } pp=n*(z*p1-p2)/(z*z-1.0); z1=z; z=z1-p1/pp; } while (fabs(z-z1) > EPS); x=xm-xl*z; x[n+1-i]=xm+xl*z; w=2.0*xl/((1.0-z*z)*pp*pp); w[n+1-i]=w; } } Meines Erachtens füllt gauleg die arrays schon mit doubles aber ich kann sie irgendwie nicht miteinander multiplizieren.. Mesrine
  4. Hi, wahrscheinlich wiedermal einvollkommen triviales Problem für jemanden der sich auskennt mit C++: Ich habe ein problem bei einer numerischen integration und habe daher folgendes testprogramm geschrieben um mir die funktionsweise besser klar zu machen: #include <cstdlib> #include <iostream> #include "gauleg.cpp" /* gauleg ist eine funktion zur berechnung von stützstellen und gewichten für die numerische integration*/ using namespace std; double quad(double x) { double z2; z2=x*x; return z2; } int main() { const double xu =0.0; const double xo =1.0; const int n_max=100; int i; double gew[n_max], absc[n_max]; double z1; gauleg( xu, xo, absc, gew, n_max); z1=0.0; for(i=0;i<n_max;i++) { z1 += gew*quad(absc); cout<<"Gewichte: "<<gew<<endl; cout<<"Stuetzstellen: "<<absc<<endl; cout<<"Integral von x^2: "<<z1 <<endl; } system("Pause"); return 0; } Das Problem ist daß ich für z1 enweder #QNAN oder irgendwas mit exp (294) herausbekomme. QNAN lässt ja auf eine falsche var definition schliessen. Aber was ist hier genau das problem? Liegt es daran dass ich elemente eines Arrays miteinander mult will? Gruß, Mesrine
  5. OK ich seh es ein und werd dann einfach meine funktionen in eine .h datei reinschreiben. ist ja eigentlich kein besonderer aufwand. vielen dank für deine mühe diese einfachen dinge einem anfänger zu erklären. Grüße, Mesrine
  6. Danke nochmals habe das prob gefunden. Warum kann ich denn aber nicht einfach meine .cpp Datei mit meinen Funktionen ins Hauptprogramm einbinden? Muss man das über eine .h Datei machen?? Viele Grüße, Mesrine
  7. Danke euch vielmals. Werde zu den angesprochenen stichworten noch etwas lesen. Mesrine
  8. Hi, Ich nutze Dev-C++ und versuche ein C++ Programm zu schreiben in dem ich mehrere Funktionen aufrufe. In zwei dieser Funktionen, ich nenne sie mal "prog a" und prog b" schreibe ich in den Header: #include "std_norm_dist.cpp" und nutze diese Funktion dann innerhalb von prog a und prog b zum Berechnen von normalverteilten zufallsvariablen. Das Problem ist nun wenn ich in meinem Hauptprogramm die Funktionen prog a und prog b aufrufe dann bekomme ich von Dev C++ die Fehlermeldung: C:\..\std_norm_dist.cpp In function `long double std_norm_dist(long double)': C:\..\std_norm_dist.cpp redefinition of `long double std_norm_dist(long double)' 3 C:\..\std_norm_dist.cpp `long double std_norm_dist(long double)' previously defined here was muss ich tun um dieses Problem zu lösen? Vielen Dank für eure Hilfe im Voraus. Grüße, Mesrine

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...