/*************************************************** Integration of f(x) by simple end-point approximation Write a program that will approximate the integral of f(x) = (x*sin(x) - 1)*log(x), where "log" is the natural logarithm. The bounds of integration should be supplied by the user, as well as the number of rectangles used in the approximation. We'll discuss the simple approximation scheme we'll use in class. Note: The integral of f(x) from 2.5 to 3.5 is approximately -0.8147741401. Note: Both log() and sin() are functions in cmath. ***************************************************/ #include <iostream> #include <string> #include <cmath> using namespace std; int main() { // Read a and b double a, b; char c; cout << "Enter integrations bounds (a,b): "; cin >> c >> a >> c >> b >> c; // Read n int n; cout << "Enter n, the number of steps: "; cin >> n; // Compute width of rectangles double w = (b - a)/n; // Initialize integral value I to zero double I = 0.0; // L O O P ! for(int i = 0; i < n; i++) { // Compute evaluation point x double x = a + i*w; // Compute fucntion value at x double fx = (x*sin(x) - 1) * log(x); // Add area of rectangle to I I = I + fx * w; } // Write out answer cout << "Integral is approximately: " << I << endl; return 0; }