Математика

Решение уравнения y=F(x) методом Ньютона (касательных)

Метод Ньютона позволяет решить уравнение y=f(x), зная начальное приближение и производную f’(x). Метод состоит в построении итерационной последовательности xn+1=xn-f(xn)/f’(xn). Определим условия сходимости метода.

Функция f(x) должна быть определена и дважды дифференцируема на отрезке [a, b], причём f(a)f(b)<0, а производные f’(x), f’’(x) сохраняют знак на отрезке [a, b]. Это означает, что функция должна иметь на отрезке [a, b] только один корень и монотонно убывать или возрастать. В противном случае алгоритм не работает. Изобразим алгоритм решения уравнения графически. В качестве примера возьмём уравнение x3-3x-2e-x=0. Построим график. Выберем в качестве начального приближения точку 1,2.

Далее...

Решение уравнения f(x)=0 методом простых итераций (последовательных приближений)

Метод простых итераций решения уравнения f(x)=0 состоит в замене исходного уравнения эквивалентным ему уравнением x=φ(x) и построении последовательности xn+1=φ(xn), сходящейся при n→∞.

Достаточным условием сходимости является наличие числа q такого, что | φ’(x)|≤q<1 на отрезке [a, b], причём чем оно меньше, тем быстрее сходится алгоритм. В качестве начального приближения можно выбрать любое число, лежащее на этом промежутке. Принцип работы алгоритма наглядно продемонстрирован на рисунке. Синим цветом обозначена функция φ(x), красным y=x. Стрелка выходит из точки, которая выбрана в качестве начального приближения, после чего она через несколько итераций приходит к корню уравнения. Тогда класс, решающий уравнение методом последовательных приближений, будет выглядеть следующим образом:

Далее...

Приближённое решение уравнения F(x)=0 методом бисекций

В этой серии статей я постараюсь перевести на C# код, представленный в книге "Лабораторный практикум по высшей математике", которую я однажды рекомендовал обществу. Если у меня хватит терпения, после окончания работ должна получиться полная математическая библиотека.

Итак, в чём суть метода бисекций? Я постараюсь, насколько это возможно, избежать сухих формул, приведённых в книге, и описать это простым языком. Допустим, у нас есть уравнение F(x) = 0, причём известен отрезок [a,b] такой, что f(a)*f(b)<0, то есть, на всём отрезке функция непрерывно возрастает или убывает. Тогда можно точно сказать, что корень находится на этом отрезке и его можно найти методом деления пополам.

Метод бисекций - простой и надёжный метод поиска простого корня уравнения f(x)=0. Он сходится для любых непрерывных функций f(x), В том числе недифференцируемых. Для получения каждых трёх верных десятичных знаков необходимо совершить около 10 итераций.

Если на отрезке [a,b] находится несколько корней уравнения, то процесс сходится к одному из них. Метод неприменим для отыскания кратных корней четного порядка. В случае кратных корней нечётного порядка он менее точен.

Далее...

Лабораторный практикум по высшей математике. Рецензия

Программистам время от времени приходится решать математические задачи. Задачи бывают различные: от обычного решения уравнения до задачи Коши. Особенно это связано с физическими движками игр, а также с разработкой математических пакетов. Книга "Лабораторный практикум по высшей математике" представляет собой набор готовых решений типовых математических задач на легендарном Фортране. Вот некоторые из задач:

Далее...