Лабораторная работа №1 «Численное решение нелинейных уравнений»
Вид материала | Лабораторная работа |
СодержаниеЦель работы Принцип работы метода половинного деления Исходные данные Описание пользовательских функций Листинг программы |
- Решение систем нелинейных уравнений, 119.58kb.
- Решение систем нелинейных алгебраических уравнений, 20.84kb.
- Нахождение первых интегралов нелинейных дифференциальных уравнений является одной, 31.75kb.
- Лабораторная работа 5 Вариант 11 Цель работы, 15.18kb.
- Численное решение уравнений лапласа и пуассона, 16.19kb.
- Решение алгебраических уравнений высоких степеней. Решение нелинейных уравнений методом, 9.13kb.
- Точные решения некоторых нелинейных эволюционных уравнений, встречающихся при описании, 28.05kb.
- Программа «приближенные методы вычисления корней нелинейных уравнений», 65.49kb.
- Тема задания, 96.02kb.
- Программа решения системы линейных уравнений по методу Гаусса 7 2 Программа решения, 230.48kb.
Министерство образования и науки Российской Федерации
Государственное образовательное учреждение
высшего профессионального образования
«Тамбовский государственный технический университет»
Кафедра «Информационные системы и защита информации»
Лабораторная работа №1
«Численное решение нелинейных уравнений»
Выполнил: студент гр. ИС−31 Налич П.А.
Проверил: Елисеев А.И.
Тамбов, 2011
Цель работы: нахождение корня нелинейного уравнения принадлежащего заданному отрезку с заданной степенью точности тремя методами.
Методические указания
Пусть задана функция
![](images/294991-nomer-236e44ec.gif)
![](images/294991-nomer-m35fd74ce.gif)
Эта задача разделяется на два этапа:
— локализация корней, т.е. нахождение таких отрезков на оси Х, на каждом из которых находится только один корень;
— вычисление корня, принадлежащего заданному отрезку с заданной степенью точности.
Для решения задачи локализации корней нет каких-либо рекомендаций, кроме утверждения о том, что если на концах некоторого отрезка
![](images/294991-nomer-m693097f3.gif)
![](images/294991-nomer-22870aec.gif)
![](images/294991-nomer-m4b24f924.gif)
![](images/294991-nomer-m31418a70.gif)
![](images/294991-nomer-m693097f3.gif)
![](images/294991-nomer-21d9defc.gif)
При решении практических задач очень часто отрезок
![](images/294991-nomer-m693097f3.gif)
Принцип работы метода половинного деления
Разделим исходный отрезок
![](images/294991-nomer-m7fc4be82.gif)
![](images/294991-nomer-m4dc51e1f.gif)
![](images/294991-nomer-47fd58f9.gif)
![](images/294991-nomer-7fafc4d6.gif)
![](images/294991-nomer-m68370d86.gif)
![](images/294991-nomer-570f7c1d.gif)
![](images/294991-nomer-m5f49748b.gif)
Выбранный отрезок принимаем за
![](images/294991-nomer-m693097f3.gif)
Исходные данные
Нелинейная функция —
![](images/294991-nomer-m5d31f23e.gif)
![](images/294991-nomer-1620b6ce.gif)
Описание пользовательских функций
double f(double x) {} — возвращает значение функции в точке x.
Входные параметры:
— double x — точка, в которой необходимо найти значение функции.
Листинг программы
#include
#include
#include
double f(double x)
{
return (atan(x)-1/(3*x*x*x));
}
main()
{
double a, b, c, epsilon;
int i;//счетчик кол-ва итераций
a = 0;//координаты исходного отрезка
b = 1;
epsilon = 1e-3;//заданная точность
cout << "Промежуточные значения" << endl;
while (b - a > epsilon){//проверка достижения заданной точности
i++;
c = (a + b) / 2;//вычисление середины текущего отрезка
cout << c <
if(f(b) * f(c) < 0)
a = c;
else
b = c;
}
cout << "Количество итераций " << i << endl;
cout << "Приближенное значение корня " << (a + b) / 2 << endl;
getch();
}
Результат выполнения программы
![](images/294991-nomer-m6b79dde8.gif)
Принцип работы метода простых итераций
…
Принцип работы метода Ньютона
…
Вывод