Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Решение одного нелинейного уравнения

Название: Решение одного нелинейного уравнения
Раздел: Рефераты по математике
Тип: реферат Добавлен 16:18:33 21 ноября 2009 Похожие работы
Просмотров: 247 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Реферат

на тему:

Решение одного нелинейного уравнения

Введение

Данная лабораторная работа включает в себя четыре метода решения одного нелинейного уравнения.

Использующиеся методы решения одного нелинейного уравнения:

Метод половинного деления.

Метод простой итерации.

Метод Ньютона.

Метод секущих.

Также данная лабораторная работа включает в себя: описание метода, применение метода к конкретной задаче (анализ), код программы решения вышеперечисленных методов на языке программирования MicrosoftVisualC++ 6.0.

Описание метода:

Пусть задана функция f (x) действительного переменного. Требуется найти корни уравнения f (x) =0 (1) или нули функции f (x).

Нули f (x) могут быть как действительными, так и комплексными. Поэтому наиболее точная задача состоит в нахождении корней уравнения (1), расположенных в заданной области комплексной плоскости. Можно рассматривать также задачу нахождения действительных корней, расположенных на заданном отрезке.

Задача нахождения корней уравнения (1) обычно решается в 2 этапа. На первом этапе изучается расположение корней и проводится их разделение, т.е. выделяются области в комплексной области, содержащие только один корень. Тем самым находятся некоторые начальные приближения для корней уравнения (1). На втором этапе, используя заданное начальное приближение, строится итерационный процесс, позволяющий уточнить значение отыскиваемого корня.

Численные методы решения нелинейных уравнений являются, как правило, итерационными методами, которые предполагают задание достаточно близких к искомому решению начальных данных.

Существует множество методов решения данной задачи. Но мы рассмотрим наиболее используемые методы решения по поиску корней уравнения (1): метод половинного деления (метод бисекции), метод касательных (метод Ньютона), метод секущих и метод простой итерации.

Теперь отдельно по каждому методу:

1. Метод половинного деления (метод бисекции)

Более распространенным методом нахождения корней нелинейного уравнения является метод деления пополам. Предположим, что на интервале [a, b] расположен лишь один корень x уравнения (1). Тогда f (a) и f (b) имеют различные знаки. Пусть для определения f (a) >0, f (b) <0. Положим x0= (a + b) /2 и вычислим f (x0). Если f (x0) <0, то искомый корень находится на интервале [a, x0], если же f (x0) >0, то x принадлежит [x0, b]. Далее из двух интервалов [a, x0] и [x0, b] выбираем тот на границах, которого функция f (x) имеет различные знаки, находим точку x1 - середину выбранного интервала, вычисляем f (x1) и повторяем указанный процесс. В результате получаем последовательность интервалов, содержащих искомый корень x, причем длина каждого последующего интервала вдвое меньше, чем предыдущего. Процесс заканчивается, когда длина вновь полученного интервала станет меньше приближенной точности (>0), и в качестве корня x, приближенного принимается середина этого интервала.

2. Метод касательных (метод Ньютона)

Пусть начальное приближение x0 известно. Заменим f (x) отрезком ряда Тейлора

f (x) ≈ H1 (x) = f (x0) + (x - x0) f ' (x0) и за следующее приближение x1 возьмем корень уравнения H1 (x) = 0, т.е. x1=x0 - f (x0) / f ' (x0).

Вообще, если итерация xk известна, то следующее приближение xk+1 в методе Ньютона определяется по правилу xk+1=xk-f (xk) /f' (xk), k=0, 1, … (2)

Метод Ньютона называют также методом касательных, так как новое приближение xk +1 является абсциссой точки пересечения касательной, проведенной в точке (xk, f (xk)) к графику функции f (x) с осью Ox.

Особенность метода:

во-первых, метод имеет квадратичную сходимость, т.е. в отличие от линейных задач погрешность на следующей итерации пропорциональна квадрату погрешности на предыдущей итерации: xk+1-x=O ( (xk-x) ²);

во-вторых, такая быстрая сходимость метода Ньютона гарантируется лишь при очень хороших, т.е. близких к точному решению, начальных приближениях. Если начальное приближение выбрано неудачно, то метод может сходиться медленно, либо не сойдется вообще.

3. Метод секущих

Этот метод получается из метода Ньютона заменой f' (xk) разделенной разностью f (xk) - f (xk-1) /xk-xk-1, вычисленной по известным значениям xk и xk-1. В результате получаем итерационный метод , k=1, 2, … (3), который в отличие от ранее рассмотренных методов является двухшаговым, т.е. новое приближение xk+1 определяется двумя предыдущими итерациями xk и xk-1. В методе необходимо задавать два начальных приближения x0 и x1.

Геометрическая интерпретация метода секущих состоит в следующем. Через точки (xk-1, f (xk-1)), (xk, f (xk)) проводится прямая, абсцисса точки пересечения этой прямой с осью Ox и является новым приближением xk+1. Иначе говоря, на отрезке [xk-1, xk] функция f (x) интерполируется многочленом первой степени и за очередное приближение xk+1 принимается корень этого многочлена.

4. Метод простой итерации

Этот метод заключается в замене уравнения (1) эквивалентным ему уравнением вида (4) после этого строится итерационный процесс (5). При некотором заданном значении для приведения выражения (1) к требуемому виду (4) можно воспользоваться простейшим приёмом

, .

Если в выражении (4) положить, можно получить стандартный вид итерационного процесса для поиска корней нелинейного уравнения:

.

Иначе можно получить уравнение (4) следующим способом: левую и правую часть уравнения (1) умножить на произвольную константу  и прибавить к левой и правой части х, т.е. получаем уравнение вида: (6), где .

На заданном отрезке [a; b] выберем точку х0 - нулевое приближение - и найдем: х1 = f (x0 ), потом найдем: х2 = f (x1 ), и т.д. Таким образом, процесс нахождения корня уравнения сводится к последовательному вычислению чисел: хn = f (xn-1 ) n = 1,2,3… Если на отрезке [a; b] выполнено условие: |f ' (x) |<=q<1 то процесс итераций сходится, т.е. . Процесс итераций продолжается до тех пор, пока |xn - xn-1 |<=, где  - заданная абсолютная погрешность корня х. При этом будет выполняться: .

Применение метода к конкретной задаче (анализ).

Дано уравнение вида x² - ln (1+x) - 3 = 0 при x [2,3]. Задача состоит в том, чтобы решить это нелинейное уравнение 4 известными способами: метод половинного деления, метод касательных, метод секущих и метод простой итерации.

Изучив методы и применив их к данному уравнению приходим к такому выводу: при решении данного уравнения 4 известными способами результат одинаков во всех случаях. Но количество итераций при прохождении метода значительно отличается. Зададим приближенную точность = . Если в случае половинного деления количество итераций составляют 20, при методе простых итераций равно 6, при методе секущих они составляют 5, а при методе касательных их количество равно 4. Из полученного результата видно, что более эффективным методом является метод касательных. В свою очередь метод половинного деления является более неэффективным, затрачивающий больше времени на выполнение, но являющийся самым простым из всех перечисленных методов при исполнении. Но не всегда результат будет таковым. Подставляя другие нелинейные уравнения в программу, в результате получается, что при методе простой итерации при разных видах уравнений количество итераций колеблется. Количество итераций может быть значительно больше, чем в методе половинного деления и меньше, чем в методе касательных.

Листинг программы:

1. Метод половинного деления

#include <stdio. h>

#include <math. h>

#include <conio. h>

#define e 0.000001

double func (double x)

{

return ( ( ( (x*x) - (log (1+x))) - 3));

}

void main ()

{

FILE *res;

res=fopen ("bisekciy. txt","w");

int x1,x2;

double x;

int k;

k=0;

x1=2;

x2=3;

x=0;

double a,b,c;

a=x1;

b=x2;

while (fabs (a-b) >e)

{

c= (a+b) /2;

if ( (func (c) *func (a)) <0) b=c;

else a=c;

k++;

}

printf ("Funkciya prinimaet znachenie na intervale: [%d,%d] \n",x1,x2);

printf ("Otvet:%f\n",a);

printf ("Kol-vo iteraciy:%d \n",k);

printf ("Takge smotri otvet v file bisekciy. txt\n");

fprintf (res,"Результат решения уравнения методом половинного деления! \n");

fprintf (res,"Корень уравнения x =%f\nКоличество итераций =%d",a,k);

fclose (res);

getch ();

}

2. Метод касательных (метод Ньютона)

#include <stdio. h>

#include <math. h>

#include <conio. h>

#define e 0.000001

double func (double x)

{

return ( ( ( (x*x) - (log (1+x))) - 3));

}

double dif (double x)

{

return ( (2*x) - (1/ (1+x)));

}

void main ()

{

FILE *res;

res=fopen ("kasatelnih. txt","w");

int x1,x2,k;

double a,b;

x1=2;

x2=3;

k=0;

a=x1;

b=x2;

while (fabs (a-b) >=e)

{

a=a-func (a) /dif (a);

b=b-func (b) /dif (b);

k++;

}

printf ("Funkciya prinimaet znachenie na intervale: [%d,%d] \n",x1,x2);

printf ("Otvet:%f\n",a);

printf ("Kol-vo iteraciy:%d \n",k);

printf ("Takge smotri otvet v file kasatelnih. txt\n");

fprintf (res,"Результат решения уравнения методом Ньютона! \n");

fprintf (res,"Корень уравнения x =%f\nКоличество итераций =%d",a,k);

fclose (res);

getch ();

}

3. Метод секущих

#include <stdio. h>

#include <math. h>

#include <conio. h>

#define e 0.000001

double func (double x)

{

return ( ( ( (x*x) - (log (1+x))) - 3));

}

void main ()

{

FILE *res;

res=fopen ("sekushih. txt","w");

int k=0,x1=2,x2=3;

double a,b,c;

a=x1;

b=x2;

while (fabs (a-b) >e)

{

c= (a*func (b) - b*func (a)) / (func (b) - func (a));

a=b;

b=c;

k++;

}

printf ("Funkciya prinimaet znachenie na intervale: [%d,%d] \n",x1,x2);

printf ("Otvet:%f\n",a);

printf ("Kol-vo iteraciy:%d \n",k);

printf ("Takge smotri otvet v file sekushih. txt\n");

fprintf (res,"Результат решения уравнения методом секущих! \n");

fprintf (res,"Корень уравнения x =%f\nКоличество итераций =%d",a,k);

fclose (res);

getch ();

}

4. Метод простой итерации

#include <stdio. h>

#include <math. h>

#include <conio. h>

#define e 0.000001

double func (double x)

{

return ( ( ( (x*x) - (log (1+x))) - 3));

}

double x_vir (double x)

{

return (sqrt (log (1+x) +3));

}

void main ()

{

FILE *res;

res=fopen ("itteraciy. txt","w");

int x1,x2,k;

double x;

k=0;

x1=2;

x2=3;

x=0;

double a,b,c;

a=x1;

b=x2;

while (fabs (a-b) >e)

{

b=x_vir (a);

c=b;

b=a;

a=c;

k++;

}

printf ("Funkciya prinimaet znachenie na intervale: [%d,%d] \n",x1,x2);

printf ("Otvet:%f\n",a);

printf ("Kol-vo iteraciy:%d \n",k);

printf ("Takge smotri otvet v file itteraciy. txt\n");

fprintf (res,"Результат решения уравнения методом простой итерации! \n");

fprintf (res,"Корень уравнения x =%f\nКоличество итераций =%d",a,k);

fclose (res);

}

Результаты расчета:

На интервале x [2,3] функции x² - ln (1+x) - 3 = 0 корень уравнения x = 2.026689. Количество итераций при приближенной точности = в методе половинного деления составляет 20, в методе касательных составляет 4, в методе секущих составляет 5 и в методе простых итераций составляет 6.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений07:21:45 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
16:49:31 25 ноября 2015

Работы, похожие на Реферат: Решение одного нелинейного уравнения

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(150781)
Комментарии (1840)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru