Cześć, mam do napisania wielowątkowy program, który oblicza całkę numeryczną za pomocą metody trapezów. Napisałem program ale bez użycia wielowątkowości.
#include <iostream>
#include <cmath>
using namespace std;
int numberOfIterations;
double s;
double dx;
double fun(double x){
return sin(x)*cos(x);
}
double trapezoidField(double xp,int i, double dx){
return fun(xp+i*dx);
}
double integral(double xp, double xk){
dx = (xk - xp)/numberOfIterations;
for (int i = 1; i < numberOfIterations; i++) {
s+=trapezoidField(xp,i,dx);
}
return s = (s+(fun(xp)+fun(xk))*0.5)*dx;
}
int main() {
numberOfIterations = 50;
double xp=5,xk=10;
cout << "Wartosc calki wynosi : " << integral(xp,xk) << endl;
return 0;
}
Napisałem funkcję, która liczy jedno pole trapezu z zamiarem napisania, że jeden wątek liczy jeden trapez, tylko na tym się zatrzymałem i nie wiem za bardzo jak dalej to ugryźć.