Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <iomanip>
- #include <math.h>
- using namespace std;
- double func(double x) {
- return log(x) - 5 * pow(sin(x), 2);//твоя функция
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- double a, b;
- int m, n;
- cout << "Введите a, b, m : ";//границы и кол-во точек
- cin >> a >> b >> m;
- double **apk = new double*[m];
- for (int i = 0; i < m; i++) {
- apk[i] = new double[2];
- }
- for (int i = 0; i < m; i++) {
- apk[i][0] = a + (b - a) / (m - 1)*i;//знач х
- apk[i][1] = func(apk[i][0]);// знач у
- }
- cout << setw(15) << "X" << setw(15) << "y(X)" << endl;
- for (int i = 0; i < m; i++) {
- cout << setw(15) << apk[i][0] << setw(15) << apk[i][1] << endl;
- }
- for (int i = 0; i < 35; i++)cout << "ХУЙ";//не забудь поменять ))
- cout << endl;
- cout << setw(15) << "X" << setw(15) << "y(X)" << setw(15) << "P(X)" << setw(15) << "delta" << endl;
- for (double x = a; x <= b; x += (b - a) / 20.) {//проходим от границы к границе с шагом, чтобы было 20 шагов
- double p;
- for (int i = 0; i < m - 1; i++) {
- if (x >= apk[i][0] && x < apk[i + 1][0]) {//находим между какими х находится х на эом шаге
- p = func(apk[i][0]) + ((func(apk[i + 1][0]) - func(apk[i][0])) / (apk[i + 1][0] - apk[i][0]))*(x - apk[i][0]);// формула прямой по двум точкам, и находим точку на этой прямой для нашего х
- }
- }
- cout << setw(15) << x << setw(15) << func(x) << setw(15) << p << setw(15) << fabs(func(x) - p) << endl;//выводим
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement