Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- #define all(x) x.begin(), x.end()
- #define rall(x) x.rbegin(), x.rend()
- //#define endl '\n'
- #define boostIO() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
- ll gcd(ll a, ll b) { return (b == 0 ? a : gcd(b, a % b)); }
- double f(double x) {
- return (3 * x - 6) / sqrt(x * x - 4 * x + 5);
- }
- signed main() {
- vector<double> y(7);
- double a = -1;
- double b = 1;
- for (int i = 0; i <= 6; ++i) {
- double x = a + (b - a) * i / 6;
- y[i] = f(x);
- cout << "f(" << x << ") = " << y[i] << endl;
- }
- {
- double sum = 0;
- for (int i = 1; i < 6; ++i) sum += y[i];
- double I = (b - a) / 6 * (accumulate(all(y), 0.0) - (y[0] + y[6]) / 2);
- cout << "I = " << I << endl;
- double del = fabs(-5.2442 - I);
- cout << "d = " << del << endl << endl;
- }
- {
- double q1 = 0, q2 = 0;
- for (int i = 1; i < 6; i += 2) q1 += y[i];
- for (int i = 2; i < 6; i += 2) q2 += y[i];
- double I = (b - a) / (3 * 6) * (y[0] + y[6] + 4 * q1 + 2 * q2);
- cout << "I = " << I << endl;
- double del = fabs(-5.2442 - I);
- cout << "d = " << del << endl << endl;
- }
- {
- vector<double> t(5), A(5);
- t[4] = 0.906179846;
- t[3] = 0.538469310;
- t[2] = 0;
- t[1] = -t[3];
- t[0] = -t[4];
- A[0] = A[4] = 0.236926885;
- A[1] = A[3] = 0.478628670;
- A[2] = 0.568888889;
- double sum = 0;
- for (int i = 0; i < 5; ++i) {
- double cur = A[i] * f((a + b) / 2 + (b - a) / 2 * t[i]);
- sum += cur;
- }
- double I = (b - a) / 2 * sum;
- cout << "I = " << I << endl;
- double del = fabs(-5.2442 - I);
- cout << "d = " << del << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment