- •Реферат
- •Оглавление
- •Решение нелинейного уравнения
- •1.1.1. Решение уравнения методом итераций
- •1.1.2 Сущность метода итераций
- •1.1.3. Блок-схема алгоритма (задача №1)
- •1.1.5. Примеры работы программы
- •Решение уравнения методом половинного деления
- •Сущность метода половинного деления
- •Блок-схема программы.
- •Код программы №2
- •1.2.4. Примеры работы программы
- •2.1. Вычисление определённого интеграла
- •2.1.1 Вычисление определенных интегралов методом прямоугольников
- •2.1.2. Вычисление определенных интегралов методом трапеций
- •2.1.5. Примеры работы программы
- •3.1. Вычисление Дифференциального уравнения методом Эйлера
- •3.1.1. Блок-схема алгоритма
- •4.1. Вывод
- •5. Библиографический список
2.1.5. Примеры работы программы
Пределы интегрирования |
Количество разбиений |
Левая сумма |
Правая сумма |
Средняя сумма |
Метод трапеций |
Метод Симпсона |
[0; 2] |
10 |
2,272075 |
2,92072 |
2,82073 |
2,82073 |
2,81876286 |
[0; 2] |
20 |
2,76926 |
2,86924 |
2,81925 |
2,81925 |
2,81875465 |
[0; 2] |
40 |
2,79388 |
2,8437 |
2,81888 |
2,8188 |
2,81875412 |
[0; 2] |
60 |
2,80214 |
2,83547 |
2,81881 |
2,81881 |
2,1875410 |
[0; 2] |
80 |
2,80629 |
2,83128 |
2,81879 |
2,81879 |
2,81875409 |
В результате выполнения программы с разным числом разбиений средняя сумма и значение метода трапеций совпадают. Метод Симпсона является наиболее точным при меньшем числе разбиений.
3.1. Вычисление Дифференциального уравнения методом Эйлера
Используя метод Эйлера, вычислить таблицу из (n+1) приближенных значений решения дифференциального уравнения вида, удовлетворяющего начальному условиюна отрезке [0,1] для различных чисел разбиения отрезка интегрирования (10, 20, ..., 500).
Метод Эйлера является самым простым и наименее точным. Он применяется для ориентировочных расчетов. Приращение в этом методе определяется по формуле
,
т.е. функция y на аппроксимируется линейной функцией с угловым коэффициентом. Из формул (26) и (27) следует формула Эйлера
.
3.1.1. Блок-схема алгоритма
Начало
Заставка
Введите число разбиений
n
i=1, i<=n+1, i=i+1
i=1
x=x+h
y2=y2+h*f(x,y2)
y=0.2
y=y+h*f(a,y)
x, y
x, y
Конец
3.1.2. Код программы:
#include <math.h>
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
double F(double x, double y)
{
double F;
F= 0.2*x+y*y;
return F;
}
int main()
{
cout<<"Dubrovskiy K.V., R-100101, Variant 5"<<endl;
cout<<"y'=0.2*x+y^2; y(0)=0,1"<<endl; //Данное уравнение
double h, a, b, n, i, x, y;
char re;
do
{
cout<<"Vvedite n:"<<endl;
cin>>n;
a=0; b=1;
h=(b-a)/n;
x=a; y=0.1;
cout<<"\nh="<<h<<endl;
cout<<"\nTablica znachenii:\n"<<endl;
cout<<"x="<<x<<"; y="<<y<<";"<<endl; x+=h;
for (i=1; i<=n; i++)
{
y+=h*F(x,y);
cout<<"x="<<x<<"; y="<<y<<";"<<endl;
x+=h;
}
cout<<"\nDo you want change steps number? Y/N"<<endl;
cin>>re;
}while (re=='y');
_getch();
return(0);
}
Ломаная Эйлера для данного дифференциального уравнения имеет вид:
4.1. Вывод
За время проведения вычислительной практики я приобрёл новые навыки в составлении и отладки программ, составленных на языке C++. Так же я познакомился с новыми математическими методами решения некоторых задач. Данная работа дала возможность познакомиться с новыми методами программирования решения сложных математических методов.
В результате проделанной работы мною были разработаны четыре консольных программы для решения определённых математических задач, которые в будущем помогут мне проводить вычисления в математике.