123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- using System;
- namespace Task3
- {
- class Program
- {
- static void Main(string[] args)
- {
- double a = 0;
- double b = Math.Round(Math.PI / 3, 5);
- int n = 10;
- int m = n / 2;
- double h = (b - a) / n;
- //awd
- double[,] arr1 = new double[n+1, 2]; // массив для x и f(x)
- //hellpo
- arr1[0, 0] = a; // первое значение x
- arr1[0, 1] = Math.Round(Math.Sin(2 * a + 1), 6); // первое значение f(x)
- for (int i = 1; i < n+1; i++) // Нахождение f(x)
- {
- arr1[i, 0] = Math.Round(a + h, 6);
- arr1[i, 1] = Math.Round(Math.Sin(2 * arr1[i, 0] + 1), 6);
- a += h;
- }
- for (int i = 0; i<n+1; i++) // Вывод массива
- {
- for (int j = 0; j<2; j++)
- {
- Console.Write($"{arr1[i, j]}\t");
- }
- Console.WriteLine();
- }
- Console.WriteLine("Интеграл:");
- double amountA = 0, amountB = 0;
- for (int i = 1; i < n;) // Нахождение интеграла
- {
- amountA += arr1[i, 1];
- i+=2;
- if (i >= n)
- {
- for (int j = 2; j<n;)
- {
- amountB += arr1[j, 1];
- j += 2;
- }
- }
- }
- double integral = (h*n) / (6 * m) * ((arr1[0, 1] + arr1[n, 1]) + 2 *amountB + 4 * amountA);
- integral = Math.Round(integral, 6);
- Console.WriteLine(integral);
-
- // ПОВТОРЕНИЕ ДЕЙСТВИЙ, НО N УМНОЖЕН ВДВОЕ
- a = 0;
- b = Math.Round(Math.PI / 3, 5);
- n = 20;
- m = n / 2;
- h = (b - a) / n;
- arr1 = new double[n+1,2];
- arr1[0, 0] = a;
- arr1[0, 1] = Math.Round(Math.Sin(2 * a + 1), 6);
- for (int i = 1; i < n + 1; i++)
- {
- arr1[i, 0] = Math.Round(a + h, 6);
- arr1[i, 1] = Math.Round(Math.Sin(2 * arr1[i, 0] + 1), 6);
- a += h;
- }
- for (int i = 0; i < n + 1; i++)
- {
- for (int j = 0; j < 2; j++)
- {
- Console.Write($"{arr1[i, j]}\t");
- }
- Console.WriteLine();
- }
- Console.WriteLine("Интеграл:");
- amountA = 0;
- amountB = 0;
- for (int i = 1; i < n;)
- {
- amountA += arr1[i, 1];
- i += 2;
- if (i >= n)
- {
- for (int j = 2; j < n;)
- {
- amountB += arr1[j, 1];
- j += 2;
- }
- }
- }
- double integral2 = (h * n) / (6 * m) * ((arr1[0, 1] + arr1[n, 1]) + 2 * amountB + 4 * amountA);
- integral2 = Math.Round(integral2, 6);
- Console.WriteLine(integral2);
- Console.WriteLine("Погрешность: ");
- decimal inaccuracy = (decimal)(Math.Abs(integral2 - integral) / 15); // Нахождение погрешности
- Console.WriteLine(Math.Round(inaccuracy, 6));
- }
- }
- }
|