Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия, Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Видео:Алгоритмы С#. Метод Ньютона для решения систем уравненийСкачать
Метод Ньютона (VBA)
02/04/11 44 Киев
Доброго времени суток! Возникла проблема с решением задачи по VBA. В общем сама задача: Написать языке VВА программу приближение корня уравнения f (x) = 0 методом Ньютона. Программ должна состоять из подпрограммы (Sub), реализует собственно метод Ньютона и двух функций (Function), которые возвращают значения функций f (x) и d (x) соответственно. Подпрограмму (SUB) и функции (FUNCTION) оформить как отдельные модули, сделав их видимыми во всем проекте.
Метод Ньютона предназначен для нахождения корня уравнений вида f (x) = 0, где f (x) — дифференцированная функция и d (x) — ее производная. Метод состоит в следующем. Выбирается начальное приближение корня x0. Для облегчения нахождения приближенного значения корня x0 уравнения f (x) = 0, это уравнение часто целесообразно представить в виде g (x) = t (x). Построить графики левой и правой частей и приближенно найти абсциссу точки, в которой графики пересекаются. Затем по формуле xk +1 = xk — f (xk) / d (xk) для k = 0, 1, 2, . по предварительному (k-ом) приближению исчисляется следующее ((k + 1)-е) . Процедура выполняется до тех пор, пока | xk + 1 — xk |> , где — некоторое достаточно малое число, например, 0,0001.
функция:
У меня вышло написать только 1 модуль:
Option Explicit Function f(x) As Double f = x ^ -2 + Sin(x) + 3
End Function Function d(x) As Double
d = -2 / x ^ 3 + Cos(x)
А остальное у меня не выходит. Расскажите как дальше, если можно с кусочками кода.
caesarus
02/04/11 44 Киев
Dim x1, E, x2, l As Double
x1 = Val(InputBox( «ââåñòè ïî÷. íàáë.» ))
E = Val(InputBox( «ââåñòè òî÷í³ñü» ))
x2 = x1 — f(x1) / d(x1)
Loop Until l «x2 =» & x2
Option Explicit Function d(x) As Variant
d(x) = -2 / x ^ 3 + Cos(x)
Option Explicit Function f(x) As Variant
f(x) = x ^ (-2) + Sin(x) + 3
но после ввода данных выходит сообщение типа: Out of stack space. И выделяет строчку с нач. функцией. Скажите, в чем тут причина?
Circiter
Заслуженный участник
26/07/09 1559 Алматы
lim0n
caesarus
02/04/11 44 Киев
Страница 1 из 1
[ Сообщений: 5 ]
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей
Видео:Метод Ньютона (метод касательных) Пример РешенияСкачать
Метод Ньютона в Excel
Как видно, процесс нахождения корней нелинейного уравнения методом Ньютона состоит из следующих этапов:
Получения шаблона.
Уточнение интервалов в ячейках B2 , B3 .
Замена в формуле ЕСЛИ запятую ( , ) на точку с запятой ( ; ).
Копирование строки итераций до требуемой точности (столбец E ).
Примечание: столбец A — номер итерации, столбец B — корень уравнения X , столбец C — значение функции F(X) , столбец D — значение первой производной dF(X) , столбец E — точность eps .
Видео:Решение нелинейного уравнения методом Ньютона (касательных) (программа)Скачать
Метод Ньютона VBA Excel
Нахождение корней методом Ньютона
Давайте рассмотрим простейший пример. Пусть f(x)=x*x-2. Тогда производная этой функции будет f’(x)=2x. Попробуем вообще обойтись без геометрических построений.
Очевидно, что графиком функции f(x)=x*x-2 будет парабола y=x*x, опущенная на 2 единицы вниз. Координаты вершины параболы в точке (0;-2). Парабола будет пересекать ось Х в двух точках х1=-корень(2) и корень(2), т.е. корни будут равны + -корень(2)
За начальное приближение Х0 возьмем значение=2.
Тогда начальное значение функции f(x)=f(2)=2. График производной является касательной к графику функции в заданной точке. (Не забывайте, что угол наклона касательной к графику равен тангенсу угла наклона).- Если из точки Х0=2 восстановить перпендикуляр до пересечения с графиком функции, то она пересечет график в точке (2,2). Ордината образует вертикальную сторону треугольника, а график производной будет являться гипотенузой. Третий катет – это отрезок Х0-Х1. Зная, что производная численно равна тангенсу наклону прямой, из полученного треугольника будем иметь f'(X0)=f(X0)/(X0-X1. Решая это уравнение получим координаты точки X1=X0-f(X0)//f'(X0). Производя послдовательные вычисления, соответственно заменяя Х0 на Х1, получим координаты точки Х2 и т.д. Процесс итераций закончим, если разница между новым значением Хк+1 и старым Хк станет меньше наперед заданного числа эпсилон, задающего точность вычислений.
Для нашего случая попробуем последователь вычислить все значения Х.
И уже на 4-ой итерации один из корней фактически найден. Для нахождения второго корня достаточно задать новое начальное значение = -2
Рисунок и теорию достаточно посмотреть, например, здесь http://www.bestreferat.ru/referat-258487.html или здесь
Примеры нахождения корней методом Ньютона, разобранные в примерах Обращаю ещё раз внимание на то, что необходимо определит в начале диапазон поиска корня, в чем помогает построение графика.
🎦 Видео
МЗЭ 2021 Лекция 11 Метод Ньютона для решения систем нелинейных уравненийСкачать
15 Метод Ньютона (Метод касательных) Ручной счет Численные методы решения нелинейного уравненияСкачать
Методы решения систем нелинейных уравнений. Метод Ньютона. Численные методы. Лекция 14Скачать