- •Реферат
- •Оглавление
- •Решение нелинейного уравнения
- •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.1 Вычисление определенных интегралов методом прямоугольников
Требуется найти приближенное значение определенного интеграла
.
Точное значение этого интеграла равно площади фигуры, снизу ограниченной отрезком осиOX, сверху - кривой , слева - отрезком от точки (a,0) до точки (a, f(a)), справа - отрезком от точки (b,0) до точки (b, f(b)). Приближенное значение интеграла вычисляется при замене площади теоретической фигуры суммой элементарных фигур простой конфигурации. Все численные методы вычисления определенного интеграла основаны на разбиении отрезка интегрирования наn одинаковых по длине отрезков с шагом разбиения
Приближенное значение интеграла определяется суммой слева
или суммой справа
.
2.1.2. Вычисление определенных интегралов методом трапеций
Функция в методе трапеций аппроксимируется на каждом шагеинтегрирования отрезком прямой линии, проходящей через точкии. Интеграл определяется как сумма площадей трапеций с высотойh и основаниями и. В этом случае формула для вычисления приближенного значения интеграла имеет вид
.
2.1.3. Вычисление определенных интегралов методом Симпсона
Метод Симпсона (метод парабол) основан на аппроксимации подынтегральной функции на каждом шаге,i=0, 2, 4, 6,... параболой, проходящей через три соседние точки: ,,. Число шагов интегрирования в методе Симпсона должно быть четным. Тогда количество узлов будет нечетным. Приближенное значение интеграла в методе Симпсона вычисляется по формуле
.
2.1.4. Блок-схема алгоритма
Начало
Заставка
Введите количество разбиений
Введите пределы интегрирования
a, b
n
h =
x=a, x<b-0.1*h, x=x+h
sumLeft=sumLeft+f(x)
A
A
x=a+h, x<0.1*h+b, x=x+h
sumRight=sumRight+f(x)
Левая сумма sumLeft
Правая сумма sumRight
x=a, x<b-0.1*h, x=x+h
s=0.5*(f(x)+f(x+h))
sumTrap=sumTrap+s
Значение интеграла
(метод трапеций)
sumTrap*h
Средняя сумма
В
В
i=1, i<n, i=i+1
x=a+i*h
s=s+f(x)
simpson=(h/3)*(f(a)+f(b)+4*s+2*f(0))
Значение интеграла
(метод Симпсона),
simpson
Конец
2.1.6. Код программы:
#include <math.h>
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
double F(double x)
{
double F;
F= exp(tan(x/3.3));
return F;
}
int main()
{
cout<<"Dubrovskiy K.V., R-100101, Variant 5"<<endl;
cout<<"exp(tan(x/3.3)), {x, 0,2}"<<endl; //Заданный интеграл
double zpl, zpp, zt, zs, h, a, b, n, i;
char l='y';
do
{
zpl=0; zpp=0; zt=0; zs=0;
cout<<"Vvedite n:"<<endl;
cin>>n;
a=0; b=2;
h=(b-a)/n;
cout<<"\nh="<<h<<"\n"<<endl;
cout<<"\nMetod pryamougolnikov:"<<endl;
for (i=0; i<=(n-1); i++)
{
zpl+=F(a+i*h);
}
zpl=zpl*h;
cout<<"Sleva: "<<zpl<<endl;
for (i=1; i<=n; i++)
{
zpp+=F(a+i*h);
}
zpp=zpp*h;
cout<<"Sprava: "<<zpp<<endl;
cout<<"Srednee: "<<(zpp+zpl)/2<<endl;
cout<<"\nMetod trapezii:"<<endl;
for (i=1; i<=n-1; i++)
{
zt+=F(a+i*h);
}
zt=zt*h+h*(F(a)+F(b))/2;
cout<<zt<<endl;
cout<<"\nMetod Simpsona:"<<endl;
for (i=1; i<=(n/2)-1; i++)
{
zs+=2*F(a+2*i*h);
}
for (i=1; i<=n/2; i++)
{
zs+=4*F(a+(2*i-1)*h);
}
zs=(zs+F(a)+F(b))*h/3;
printf("%.8f", zs);
cout<<"\nHotite izmenut' n? Y/N"<<endl;
cin>>l;
}while (l=='y');
_getch();
return(0);
}