Calcul intégral à l'aide de façon analytique et les méthodes de Simpson
- frenchcookie
- Born


- Inscription: Déc 06, 2012
- Messages: 1
- Status: Offline
Salut
J'ai problème avec mon programme. Je suis en train de calculer analytiquement la valeur de l'intégrale avec deux ensemble différent de paramètres
et puis pour les deux j'ai calculer la valeur à l'aide de la règle de Simpson.
Je ne sais pas comment faire pour modifier mon code pour calculer un) avec règle de Simpson, parce que maintenant tous les résultats sont le même n et je ne sais pas pourquoi, après n = 15 tous mes résultats sont 0.
Je lisais à propos de la double représentation et j'étais analysant la règle de Simpson et mon analytiquement code pour integral, mais je ne peut pas comprendre pourquoi il y a 0, car le calculer avec Mathematica pour améliorer mes résultats et il donne
mes quelques numéros pas 0.
Pour l'instant, j'ai ce code, les résultats de la section b) et analytiquement d'un) sont ok attendre n > 15 où j'ai 0.
J'ai problème avec mon programme. Je suis en train de calculer analytiquement la valeur de l'intégrale avec deux ensemble différent de paramètres
et puis pour les deux j'ai calculer la valeur à l'aide de la règle de Simpson.
Je ne sais pas comment faire pour modifier mon code pour calculer un) avec règle de Simpson, parce que maintenant tous les résultats sont le même n et je ne sais pas pourquoi, après n = 15 tous mes résultats sont 0.
Je lisais à propos de la double représentation et j'étais analysant la règle de Simpson et mon analytiquement code pour integral, mais je ne peut pas comprendre pourquoi il y a 0, car le calculer avec Mathematica pour améliorer mes résultats et il donne
mes quelques numéros pas 0.
Pour l'instant, j'ai ce code, les résultats de la section b) et analytiquement d'un) sont ok attendre n > 15 où j'ai 0.
CPP Code: [ Select ]
#include <iomanip>
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
const int N = 1;
double f(double x)
{
double dx, b=2.0, z, p;
int n;
for(n=1;n<=20;n++){
p=1 - (pow(10.0, (-n)));
z=1/(pow(x, p));
return z;}
}
double fx(double x)
{
double n;
double p=0.5;
double b=1 + (pow(10.0, (-n)));
double dx=(b-1)/N;
double z=dx/(pow(x, p));
return z;
}
int main()
{
ofstream PLIK;
double a, b, s1,s2,s3,s4,x, p; int i;
int n;
s1=0;s3=0;
s2=0;s4=0;
cout.unsetf(ios::floatfield);
cout.precision(16);
PLIK.open("RESULTS.txt");
cout << "ANALYTICALLY." << endl;
PLIK<<"ANALYTICALLY A<<endl;
cout << "SECTION A:" << endl; // Podpunkt pierwszy
for (n = 1; n <= 20; n++)
{
a=1.0; b=2.0;
cout << n << " ";
p = 1 - pow(10.0, (-n));
s1 = (pow(b, (1 - p)) - (pow(a, (1 - p))))/(1 - p);
cout <<s1<<" " << endl;
PLIK<<s1<<setprecision(16)<<" "<<endl;
}
PLIK<<"ANALYTICALLY B"<<endl;
cout << "ANALYTICALLY " << endl;
cout << "SECTION B:" << endl; // Podpunkt drugii
for (n = 1; n <= 20; n++)
{
a=1.0; p=0.5;
cout << n << " ";
b = 1 + pow(10.0, (-n));
s2 = (pow(b, (1 - p)) - (pow(a, (1 - p))))/(1 - p);
cout << s2<<" " << endl;
PLIK<<s2<<setprecision(16)<<" "<<endl;
}
PLIK<<"SIMPSON A"<<endl;
cout << "SIMPSON RULE" << endl;
cout << "SECTION A" << endl;
for (n = 1; n <= 20; n++)
{
p=1 - (pow(10.0, (-n)));
a=1.0;
cout << n << " ";
b=2.0;
s3 = (b-a)/ 6 * (f(a) + (4*(f((a+b)/2)))+f(b));
cout << s3<<" " << endl;
PLIK<<s3<<setprecision(16)<<" "<<endl;
}
PLIK<<"SIMPSON B"<<endl;
cout << "SIMPSON RULE " << endl;
cout << "SECTION B" << endl;
for (n = 1; n <= 20; n++)
{
a=1.0;p=0.5;
cout << n << " ";
b=1 + pow(10.0, (-n));
s4 = (b-a)/ 6 * (fx(a) + (4*(fx((a+b)/2)))+fx(b));
cout << s4 << " " << endl;
PLIK<<s4<<setprecision(16)<<" "<<endl;
}
PLIK.close();
cout<<endl;
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
const int N = 1;
double f(double x)
{
double dx, b=2.0, z, p;
int n;
for(n=1;n<=20;n++){
p=1 - (pow(10.0, (-n)));
z=1/(pow(x, p));
return z;}
}
double fx(double x)
{
double n;
double p=0.5;
double b=1 + (pow(10.0, (-n)));
double dx=(b-1)/N;
double z=dx/(pow(x, p));
return z;
}
int main()
{
ofstream PLIK;
double a, b, s1,s2,s3,s4,x, p; int i;
int n;
s1=0;s3=0;
s2=0;s4=0;
cout.unsetf(ios::floatfield);
cout.precision(16);
PLIK.open("RESULTS.txt");
cout << "ANALYTICALLY." << endl;
PLIK<<"ANALYTICALLY A<<endl;
cout << "SECTION A:" << endl; // Podpunkt pierwszy
for (n = 1; n <= 20; n++)
{
a=1.0; b=2.0;
cout << n << " ";
p = 1 - pow(10.0, (-n));
s1 = (pow(b, (1 - p)) - (pow(a, (1 - p))))/(1 - p);
cout <<s1<<" " << endl;
PLIK<<s1<<setprecision(16)<<" "<<endl;
}
PLIK<<"ANALYTICALLY B"<<endl;
cout << "ANALYTICALLY " << endl;
cout << "SECTION B:" << endl; // Podpunkt drugii
for (n = 1; n <= 20; n++)
{
a=1.0; p=0.5;
cout << n << " ";
b = 1 + pow(10.0, (-n));
s2 = (pow(b, (1 - p)) - (pow(a, (1 - p))))/(1 - p);
cout << s2<<" " << endl;
PLIK<<s2<<setprecision(16)<<" "<<endl;
}
PLIK<<"SIMPSON A"<<endl;
cout << "SIMPSON RULE" << endl;
cout << "SECTION A" << endl;
for (n = 1; n <= 20; n++)
{
p=1 - (pow(10.0, (-n)));
a=1.0;
cout << n << " ";
b=2.0;
s3 = (b-a)/ 6 * (f(a) + (4*(f((a+b)/2)))+f(b));
cout << s3<<" " << endl;
PLIK<<s3<<setprecision(16)<<" "<<endl;
}
PLIK<<"SIMPSON B"<<endl;
cout << "SIMPSON RULE " << endl;
cout << "SECTION B" << endl;
for (n = 1; n <= 20; n++)
{
a=1.0;p=0.5;
cout << n << " ";
b=1 + pow(10.0, (-n));
s4 = (b-a)/ 6 * (fx(a) + (4*(fx((a+b)/2)))+fx(b));
cout << s4 << " " << endl;
PLIK<<s4<<setprecision(16)<<" "<<endl;
}
PLIK.close();
cout<<endl;
- #include <iomanip>
- #include <iostream>
- #include <cmath>
- #include <fstream>
- using namespace std;
- const int N = 1;
- double f(double x)
- {
- double dx, b=2.0, z, p;
- int n;
- for(n=1;n<=20;n++){
- p=1 - (pow(10.0, (-n)));
- z=1/(pow(x, p));
- return z;}
- }
- double fx(double x)
- {
- double n;
- double p=0.5;
- double b=1 + (pow(10.0, (-n)));
- double dx=(b-1)/N;
- double z=dx/(pow(x, p));
- return z;
- }
- int main()
- {
- ofstream PLIK;
- double a, b, s1,s2,s3,s4,x, p; int i;
- int n;
- s1=0;s3=0;
- s2=0;s4=0;
- cout.unsetf(ios::floatfield);
- cout.precision(16);
- PLIK.open("RESULTS.txt");
- cout << "ANALYTICALLY." << endl;
- PLIK<<"ANALYTICALLY A<<endl;
- cout << "SECTION A:" << endl; // Podpunkt pierwszy
- for (n = 1; n <= 20; n++)
- {
- a=1.0; b=2.0;
- cout << n << " ";
- p = 1 - pow(10.0, (-n));
- s1 = (pow(b, (1 - p)) - (pow(a, (1 - p))))/(1 - p);
- cout <<s1<<" " << endl;
- PLIK<<s1<<setprecision(16)<<" "<<endl;
- }
- PLIK<<"ANALYTICALLY B"<<endl;
- cout << "ANALYTICALLY " << endl;
- cout << "SECTION B:" << endl; // Podpunkt drugii
- for (n = 1; n <= 20; n++)
- {
- a=1.0; p=0.5;
- cout << n << " ";
- b = 1 + pow(10.0, (-n));
- s2 = (pow(b, (1 - p)) - (pow(a, (1 - p))))/(1 - p);
- cout << s2<<" " << endl;
- PLIK<<s2<<setprecision(16)<<" "<<endl;
- }
- PLIK<<"SIMPSON A"<<endl;
- cout << "SIMPSON RULE" << endl;
- cout << "SECTION A" << endl;
- for (n = 1; n <= 20; n++)
- {
- p=1 - (pow(10.0, (-n)));
- a=1.0;
- cout << n << " ";
- b=2.0;
- s3 = (b-a)/ 6 * (f(a) + (4*(f((a+b)/2)))+f(b));
- cout << s3<<" " << endl;
- PLIK<<s3<<setprecision(16)<<" "<<endl;
- }
- PLIK<<"SIMPSON B"<<endl;
- cout << "SIMPSON RULE " << endl;
- cout << "SECTION B" << endl;
- for (n = 1; n <= 20; n++)
- {
- a=1.0;p=0.5;
- cout << n << " ";
- b=1 + pow(10.0, (-n));
- s4 = (b-a)/ 6 * (fx(a) + (4*(fx((a+b)/2)))+fx(b));
- cout << s4 << " " << endl;
- PLIK<<s4<<setprecision(16)<<" "<<endl;
- }
- PLIK.close();
- cout<<endl;
Attachments:
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Décembre 6th, 2012, 4:47 am
Page 1 sur 1
Pour répondre à ce sujet, vous devez vous connecter ou vous enregistrer. Il est gratuit.
Afficher de l'information
- Total des messages de ce sujet: 1 message
- Utilisateurs parcourant ce forum: Kurthead+1 et 164 invités
- Vous ne pouvez pas poster de nouveaux sujets
- Vous ne pouvez pas répondre aux sujets
- Vous ne pouvez pas éditer vos messages
- Vous ne pouvez pas supprimer vos messages
- Vous ne pouvez pas joindre des fichiers
