Численные методы решения трансцендентных уравнений

курсовая работа

8. Метод хорд и касательных

Применяется только в том случае, когда f(X) и f(X) не изменяют знака на отрезке [a,b], т.е. функция f(X) на отрезке [a,b] монотонна и не имеет точек перегиба.

Суть метода та же самая - построение последовательности вложенных отрезков, содержащих корень, однако отрезки строятся по-другому. На каждом шаге через концы дуги графика функции f(X) на очередном отрезке проводят хорду и из одного конца проводят касательную. Точки пересечения этих прямых с осью Оx и образуют следующий отрезок. Процесс построения прекращают при выполнении того же условия:

(| b - a | < 2е). (19)

Для того, чтобы отрезки получались вложенными, нужно проводить ту касательную из конца, которая пересекает ось ОХ на отрезке [a,b]. Перебрав четыре возможных случая, легко увидеть, что касательную следует проводить из того конца, где знак функции совпадает со знаком второй производной.

Также несложно заметить, что касательная проводится либо все время из правого, либо все время из левого конца. Будем считать для определенности, что этот конец - b .

Формулы, употребляемые в методе, хорошо известны из аналитической геометрии:

Уравнение хорды, проходящей через точки (a,f(a)) и (b,f(b)):

трансцендентное уравнение дихотомия

y = f(a)+(x-a)*(f(b)-f(a))/(b-a),

откуда точка пересечения с осью Оx:

x= a - f(a) *(b-a)/(f(b)-f(a)).

Уравнение касательной, проходящей через точку (b,f(b)): y=f(b)+f(b)(x-b), откуда точка пересечения с осью Оx:

x= b - f(b)/f(b).

При составлении алгоритма снова естественно использовать для концов отрезка только две переменные a и b и писать:

a= a - f (a) *(b-a)/ (f (b)-f (a)) (20)

b= b - f(b)/f(b) (21)

Однако, в этом случае важен порядок формул (20) и (21).

Пример. Необходимо комбинированным методом уточнить корень 0;1 уравнения: х 3 - 3 х +1 = 0, с точностью 10 -3 (табл. 6) .

,

.

Таблица 6

n

x n

f(x n)

0

0

1

1

-0,5

-3

-0,3333

1

-1

1

0,3333

0,1667

0,0371

-0,0150

-2,6667

-0,0139

0,5

-0,3750

2

0,3472

0,0011

0,0003

-0,0001

-2,6384

-0,0001

0,3483

0,0027

3

0,3473

0

0,3473

< . 0,347 .

8. Заключение

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

9. Литература

1. Вычислительная техника и программирование: Учеб. для техн. вузов/ А.В. Петров, В.Е. Алексеев, А.С. Ваулин и др. - М.: Высш. шк., 1990г. 479 стр. ISBN: 1522608, 1522607.

2. Гусев В.А., Мордкович А.Г. - Математика: Справ. материалы: Кн. для учащихся. - 2-е изд. - М.: Просвещение, 1990г. - 416 стр. ISBN 5-09-001292-X.

3. Березин В.Л., Харитонова К.Ю. «Просмотрщик решений трансцендентных уравнений и его применение в задачах волоконной оптики», Сб. науч. тр. Механика. Математика, Саратов: Изд-во Сарат. ун-та, 2004г. 168-170 стр.

4. Мак-Кракен Д., Дорн У. Численные методы и программирование на ФОРТРАНе. - М.: Мир, 1977г. - 584 стр.

5. Демидович Б.П., Марон И.А. «Основы вычислительной математики». - М.: Наука, 1970г. - 664 стр.

6. http://www.simumath.net/library/book.html?code=Alg_Equations_introduction

7. http://habrahabr.ru/post/132366/

8. Пантилеев, Киреев «Численные методы в примерах и задачах». Издательство: Высшая школа. Год: 2008. 480 стр.. ISBN: 978-5-06-004763-9,5-06-004763-6.

9. Д.П.Костомаров, А.П.Фаворский «Вводные лекции по численным методам». Санкт-Петербургский государственный электротехнический университет "ЛЭТИ". Серия: Классический университетский учебник. Издательство: М.: Логос. Переплет: твердый; 184 стр.; 2004 г. ISBN: 5-94010-286-7.

10. Приложение

Листинг программы для решения трансцендентного уравнения

Находит лишь один корень, т.к. удаление других корней не реализовано.

uses crt;

var

x, a, b, c, eps: real;

function f(y: real):real; //функция

begin

f := y*y*y-y+1; //заданное уравнение

end;

begin

ClrScr;

Writeln(Введите требуемую точность); //ввод точности вычисления

readln(eps);

Writeln(Введите a); //задание интервала

readln(a);

Writeln(Введите b); //задание интервала

readln(b);

c := (a+b)/2;

while abs(b-a) > eps do

begin

if f(a)*f(c) < 0 then b := c //проверка значения

else a := c;

c := (a+b)/2; //разбитие отрезка

end;

x := (a+b)/2;

Writeln(x = , x:6:10);

Readln;

end.

Блок схема программы:

Делись добром ;)