Bonjour à toutes et à tous,
Voilà, actuellement en Master 1 de Physique, je dois suivre des cours de programmation en C/C++.
Ayant changé d'Université en septembre, j'arrive dans une faculté où les étudiants en Licence 3 Physique ont appris la programmation en C/C++, ce qui n'était pas mon cas dans mon ancienne fac. Autant dire que je suis un peu perdu, malgré que je bosse avec les pdf de cours.
Nous devons programmer un script sur la méthode des trapèzes. J'ai réussi à définir la surface d'un sous intervalle de ma fonction que j'ai découpé en N sous intervalles de longueur h.
Néanmoins, il faudrait que je puisse généraliser cela en faisant la somme des sous-intervalles.
Mathématiquement, je sais comment faire, mais je n'arrive pas à le retranscrire en programmation.
Je pense qu'il faille que je j'utilise des vecteurs, en sommant avec des indices i et une boucle for, mais j'aurais besoin d'un petit coup de pouce avec explications svp.
Voici mon code actuel :
En vous remerciant d'avance,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 #include <iostream> #include <cmath> using namespace std ; #include <cstdlib> #include <vector> #include "matprod.h" #include <fstream> #include <stdlib.h> #define PI 3.14159265 #define DEBUG_MSG cerr << "DEBUG (" << __FILE__ << ", l." << __LINE__ << ") " // Création de la fonction f(x) //double f(double x) { //return f(x) = sqrt(x); // f(x) = racine carrée (x) //} int main() { int i,n; double a,b,h,s1,x; a = 1.0; /* Borne inférieure de l'intervalle */ b = 2.0; /* Borne supérieure de l'intervalle */ n = 10; /* Nombre d'itération */ h = (b-a)/n; /* subdivision de la fonction en n sous intervalles de longueur h */ cout<<"J'ai découpé mon intervalle en N intervalles de longueur h = "<<h<<endl; // On souhaite intégrer notre courbe dans un premier temps entre xmin = a et xmin + h s1 = (sqrt(a + h) + sqrt(a))/2; cout<<"La surface de mon premier trapèze est de "<<s1<<endl; return 0; }
Partager