Практическая работа по "Численному методу в программировании "
Автор: Исл Крутой чел • Ноябрь 20, 2022 • Практическая работа • 1,391 Слов (6 Страниц) • 161 Просмотры
Федеральное государственное образовательное бюджетное учреждение
высшего образования
«Финансовый университет при Правительстве РФ»
КОЛЛЕДЖ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ
Практическая работа № 8
по дисциплине ЕН.04 Численные методы в программировании
Выполнил студент
Болоцкий Дмитрий
Группа 3ПКС-320
Вариант: 6
Проверил: преподаватель
____________ ___________
оценка подпись
Москва, 2022
Тема: Вычисление интегралов методами численного интегрирования.
Вычислить значение определенного интеграла аналитически (если это возможно) и численно тремя методами для N = 10. Результаты расчета представить в виде таблицы, сделать выводы:
Листинг:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
cout << "формула x + cos(y/2)\n";
cout << " Метод Эйлера\n";
cout << "границы:от -2 до 1\n";
float a = -2;
float b= -1;
float h = 0.1;
float y = 3;
cout << "шаг равен " << h<<endl;
cout << "y0 равен " << y<<endl;
float mas[11][5];
cout<<"i ti yi y(ан) R(i)"<<endl;
for (int i = 0; i < 11; ++i)
{
for (int j = 0; j < 5; ++j)
{
mas[0][0] = i, mas[0][1] =a, mas[0][2] = 3, mas[0][3]=y, mas[0][4]=mas[0][3]-mas[0][2],
mas[1][0] = i, mas[1][1] =mas[0][1]+h, mas[1][2] =mas[0][2]+0.1*(mas[0][1]+cos((mas[0][2])/2)), mas[1][3]=mas[0][2]+0.05*(mas[0][1]+cos((mas[0][2])/2)), mas[1][4]=mas[1][3]-mas[1][2],
mas[2][0] = i, mas[2][1] =mas[1][1]+h, mas[2][2] =mas[1][2]+0.1*(mas[1][1]+cos((mas[1][2])/2)), mas[2][3]=mas[1][2]+0.05*(mas[1][1]+cos((mas[1][2])/2)), mas[2][4]=mas[2][3]-mas[2][2],
mas[3][0] = i, mas[3][1] =mas[2][1]+h, mas[3][2] =mas[2][2]+0.1*(mas[2][1]+cos((mas[2][2])/2)), mas[3][3]=mas[2][2]+0.05*(mas[2][1]+cos((mas[2][2])/2)), mas[3][4]=mas[3][3]-mas[3][2],
mas[4][0] = i, mas[4][1] =mas[3][1]+h, mas[4][2] =mas[3][2]+0.1*(mas[3][1]+cos((mas[3][2])/2)), mas[4][3]=mas[3][2]+0.05*(mas[3][1]+cos((mas[3][2])/2)), mas[4][4]=mas[4][3]-mas[4][2],
mas[5][0] = i, mas[5][1] =mas[4][1]+h, mas[5][2] =mas[4][2]+0.1*(mas[4][1]+cos((mas[4][2])/2)), mas[5][3]=mas[4][2]+0.05*(mas[4][1]+cos((mas[4][2])/2)), mas[5][4]=mas[5][3]-mas[5][2],
mas[6][0] = i, mas[6][1] =mas[5][1]+h, mas[6][2] =mas[5][2]+0.1*(mas[5][1]+cos((mas[5][2])/2)), mas[6][3]=mas[5][2]+0.05*(mas[5][1]+cos((mas[5][2])/2)), mas[7][4]=mas[6][3]-mas[6][2],
mas[7][0] = i, mas[7][1] =mas[6][1]+h, mas[7][2] =mas[6][2]+0.1*(mas[6][1]+cos((mas[6][2])/2)), mas[7][3]=mas[6][2]+0.05*(mas[6][1]+cos((mas[6][2])/2)), mas[7][4]=mas[7][3]-mas[7][2],
mas[8][0] = i, mas[8][1] =mas[7][1]+h, mas[8][2] =mas[7][2]+0.1*(mas[7][1]+cos((mas[7][2])/2)), mas[8][3]=mas[7][2]+0.05*(mas[7][1]+cos((mas[7][2])/2)), mas[8][4]=mas[8][3]-mas[8][2],
mas[9][0] = i, mas[9][1] =mas[8][1]+h, mas[9][2] =mas[8][2]+0.1*(mas[8][1]+cos((mas[8][2])/2)), mas[9][3]=mas[8][2]+0.05*(mas[8][1]+cos((mas[8][2])/2)), mas[9][4]=mas[9][3]-mas[9][2],
mas[10][0] = i, mas[10][1] =mas[9][1]+h, mas[10][2] =mas[9][2]+0.1*(mas[9][1]+cos((mas[9][2])/2)), mas[10][3]=mas[9][2]+0.05*(mas[9][1]+cos((mas[9][2])/2)), mas[10][4]=mas[10][3]-mas[10][2],
cout << mas[i][j] << " ";
}
cout << endl;
}
cout << "Rmax= "<< 0.096463<<endl;
cout << " Модифицированный метод Эйлера: " << endl;
float mas1[11][7];
cout<<"i ti yi (h/2)f(t,y) t(i+1/2) y(i+1/2) hf(i+1/2)"<<endl;
for (int i = 0; i < 11; ++i)
{
for (int j = 0; j < 7; ++j)
{
mas1[0][0] = i, mas1[0][1] =a, mas1[0][2] = 3, mas1[0][3]=0.05*(mas1[0][1]+cos((mas1[0][2])/2)), mas1[0][4]=a+0.05, mas1[0][5]=mas1[0][3]+mas1[0][2],
...