Решение уравнений методом хорд в маткаде

Метод хорд в маткаде

БлогNot. Методы решения нелинейных уравнений в MathCAD

Методы решения нелинейных уравнений в MathCAD

Реализуем для некоторого уравнения 4 наиболее популярных численных метода для решения нелинейных уравнений. При этом мы стремимся именно запрограммировать методы, а не воспользоваться встроенным инструментом Given. Find или функциями root , polyroot . Об этих способах решения почитайте, например, здесь.

Определим функцию уравнения f(x)=0 как функцию пользователя, интервал поиска решения зададим переменными a и b . Найти этот интервал можно, например, табличным или графическим методом:

Начальный интервал [a,b] должен быть таким, чтобы значения f(a) и f(b) имели противоположные знаки. Если искомый корень уравнения окажется единственным на интервале, то совсем хорошо 🙂

Логика метода дихотомии (возможно, более правильные названия – метод бисекции, метод половинного деления) довольно проста: если на концах выбранного интервала [a,b] знаки функции совпадают (произведение f(a)*f(b)>0 ), то вернуть результат «недопустимый интервал» (вернём в этом случае ответ «бесконечность»), в противном случае до тех пор, пока длина интервала не станет меньше заданной погрешности ε , будем находить середину текущего интервала c=(a+b)/2 , считать в ней значение функции и проверять, какую из половин отрезка [a,c] или [c,b] нужно отбросить для выполнения следующего шага – а именно, ту, в которой знак f(c) совпадает со знаком функции на левой или правой границе интервала (в листинге – проверка f(a)*f(c)>0 ). Для большей точности вернём середину «последнего» интервала [a,b] , меньшего ε :

В методе простой итерации исходное уравнение f(x)=0 представляется в эквивалентном виде φ(x)=x (что, вообще говоря, можно сделать бесконечным числом способов), а затем шаг метода выполняется по формуле xk+1 = φ(xk) , пока не будет достигнута заданная точность |xk+1-xk| . Если выбрать φ(x)=x-c*f(x) , то константу c целесообразнее всего искать методом релаксации, для которого c=2/(M+m) , где M – максимальное из значений первой производной на концах отрезка или в находящихся на нём точках перегиба функции (точках, где f”(x)=0 ), а m – минимальное из таких значений. Вот соответствующий расчёт в MathCAD:

Если заданной сходимости нет в течение 10000 шагов, в подпрограмме предусмотрен аварийный выход.

Численный метод Ньютона решения нелинейного уравнения основан на формуле вида xk+1 = xk-f(xk)/f'(xk) , обеспечивающей наилучшую сходимость, но требующей дополнительного вычисления производной на каждом шаге. Так как производные для MathCAD – не проблема, можно всё сделать «в лоб»:

Видно, что сходимость метода – на 2 порядка выше (погрешность найденного решения

Наконец, существует метод хорд, в котором кривая f(x) заменяется прямой линией (хордой), стягивающей точки (a, f(a)) и (b, f(b)) . Формула этого метода зависит от знака выражения f(a)*f”(a) , то есть, имеет два варианта:
Если f(a)*f”(a)>0 , то x =b , xk+1=a-(f(a)(xk-a))/(f(xk)-f(a))
Если f(a)*f”(a) , то x =a , xk+1=xk-(f(xk)*(b-xk))/(f(b)-f(xk))

Вот примерная реализация на MathCAD, как и в предыдущих двух случаях, контролируется максимальное число итераций, равное 10000:

Видно, что сходимость метода оказалась в нашем случае не столь высока.

Подсчитать, сколько шагов какому методу потребовалось, можете сами, немного поменяв выдачу подпрограмм.

Скачать этот пример в формате .xmcd (107 Кб)

05.09.2013, 15:07; рейтинг: 72153

В этом методе нелинейная функция f(x) на отделенном промежутке

[a,b] заменяется хордой, проходящей через точки (a,f(a))и (b,f(b))

Рис.2.4. Метод хорд. Неподвижен правый конец промежутка b

Уравнение хорды: . Найдем точку пересечения хорды с горизонтальной осью. Полагая и , получим

.

Точку x1 принимаем за новую границу отрезка, где содержится корень. Через эту точку с координатами (x1,f(x1)) и соответствующую границу предыдущего интервала (b,f(b)) опять проводим хорду, находим и т.д., получая последовательность x1,x2,x3,…xn,…, сходящуюся к корню уравнения.

Вторая производная сохраняет постоянный знак на . Следовательно, возможны два случая. Если f(b)·f «(b)>0, то хорда имеет правый фиксированный конец, причем последовательность x ,x1,…xn приближается к корню слева. За начальное приближение x , естественно, берут a

; ; ;

.

Рис.2.5. Метод хорд. Неподвижен левый конец промежутка a

Если f(a)·f «(a)>0, то хорда имеет левый фиксированный конец, причем последовательность x ,x1,…xn … приближается к корню справа. За начальное приближение x , берут b

; ; ;

.

Для оценки точности можно воспользоваться формулой

,

где -точный корень, – приближенный корень, , на промежутке [a,b]. Считаем до тех пор пока, не выполнится условие . Если имеет место неравенство , то счет можно прекратить, когда.

Пример 2.4. Найти методом хорд корень уравнения x 4 -x-1=0

Решение находим, используя пакет Mathcad.

Функция монотонна на промежутках (-∞, 0.63), (0.63, ∞) и меняет на концах промежутков знак. Уравнение имеет два корня. Сузим промежутки отделения корней методом проб, т.е. подстановкой.

Первый корень принадлежит промежутку (-1,-0.5)

Второй корень принадлежит промежутку (1,1.5)

Будем находить корень на промежутке (-1,-0.5)

Вторая производная всюду положительна, функция положительна в точке a = -1, значит, этот конец неподвижен.

-максимальное, a -минимальное значение модуля производной на промежутке

так как , множитель

нужно учитывать при оценке точности решения,

Нашли корень исходного уравнения с точностью .

Рис. 2.6. Вычисления в Mathcad, реализующие метод хорд для примера 2.4

2.2.3. Метод Ньютона – метод касательных

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

Ограничимся двумя членами ряда и так как , то:

.

Учитывая найденную поправку hn:,получим (n=0,1,2,…).

Рис.2.7 Метод касательных. Начальное приближение x =b

По-другому этот метод называется методом касательных. Если в точке провести касательную к функции f(x) , то ее пересечение с осью ОХ и будет новым приближением x1 корня уравнения

Хорошим начальным приближением является то значение, для которого выполнено неравенство . Погрешность вычислений Счет можно прекратить, когда

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

Пример 2.5. Найти методом Ньютона корень уравнения x 4 -x-1=0,

1-я производная
2-я производная положительна
один корень лежит на промежутке (-1.-0.5), второй на промежутке (1.1.5) Уточним левый корень методом Ньютона

Нашли корень исходного уравнения -0.7245 с точность 0.00007.

Рис. 2.8. Вычисления в Mathcad, реализующие метод касательных для примера 2.5

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

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

В отличие от метода половинного деления, метод хорд предлагает, что деление рассматриваемого интервала будет выполняться не в его середине, а в точке пересечения хорды с осью абсцисс (ось – Х). Следует отметить, что под хордой понимается отрезок, который проведен через точки рассматриваемой функции по концам рассматриваемого интервала. Рассматриваемый метод обеспечивает более быстрое нахождение корня, чем метод половинного деления, при условии задания одинакового рассматриваемого интервала.

Геометрически метод хорд эквивалентен замене кривой хордой, проходящей через точки и (см. рис.1.).

Рис.1. Построение отрезка (хорды) к функции .

Уравнение прямой (хорды), которая проходит через точки А и В имеет следующий вид:

Данное уравнение является типовым уравнением для описания прямой вы декартовой системе координат. Наклон кривой задается по ординате и абсциссе с помощью значений в знаменателе и , соответственно.

Для точки пресечения прямой с осью абсцисс записанное выше уравнение перепишется в следующем виде:

В качестве нового интервала для прохождения итерационного процесса выбираем один из двух или , на концах которого функция принимает значения разных знаков. Противоположность знаков значений функции на концах отрезка можно определить множеством способов. Один из множества этих способов — умножение значений функции на концах отрезка и определение знака произведения путём сравнения результата умножения с нулём:

или .

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

.

Рис.2. Пояснение к определению погрешности расчета.

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

Алгоритм нахождения корня нелинейного уравнения по методу хорд

1. Найти начальный интервал неопределенности одним из методов отделения корней. З адать погрешность расчета (малое положительное число ) и начальный шаг итерации ( ) .

2. Найти точку пересечения хорды с осью абсцисс:

3. Необходимо найти значение функции в точках , и . Далее необходимо проверить два условия:

– если выполняется условие , то искомый корень находится внутри левого отрезка положить , ;

– если выполняется условие , то искомый корень находится внутри правого отрезка принять , .

В результате находится новый интервал неопределенности, на котором находится искомых корень уравнения:

4. Проверяем приближенное значение корня уравнения на предмет заданной точности, в случае:

– если разность двух последовательных приближений станет меньше заданной точности , то итерационный процесс заканчивается. Приближенное значение корня определяется по формуле:

– если разность двух последовательных приближений не достигает необходимой точности , то необходимо продолжить итерационный процесс и перейти к п.2 рассматриваемого алгоритма.

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

Вариант решения нелинейного уравнения в программном комплексе MathCAD .

Результаты расчетов, а именно динамика изменения приближенного значения корня, а также погрешности расчета от шага итерации представлены в графической форме (см. рис.1).

Рис.1. Результаты расчета по методу хорд

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

Примечание:

Модификацией данного метода является метод ложного положения ( False Position Method ), который отличается от метода секущих только тем, что всякий раз берутся не последние 2 точки, а те точки, которые находятся вокруг корня.

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

Случай №1: 0,

Из первого условия получается, что неподвижной стороной отрезка является – сторона a .

Случай №2: 0″ w />

Из второго условия получается, что неподвижной стороной отрезка является – сторона b .

В общем виде, для выявления неподвижного конца можно записать следующее условие: 0″ w /> , где или .

Рис. 3. Примеры убывающей или возрастающей функции

Таким образом, в зависимости от вида функции получаются два выражения для упрощения поиска корня функции:

– если функция соответствует первому случаю (см. рис. 3), тогда формула будет иметь следующий вид:

, где k =0,1,2,…

– если функция соответствует второму случаю (см. рис. 3), тогда формула будет иметь следующий вид:

, где k =0,1,2,…

Случай сводится к рассматриваемому , если уравнение записать в форме: .

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

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

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

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

В отличие от метода половинного деления, метод хорд предлагает, что деление рассматриваемого интервала будет выполняться не в его середине, а в точке пересечения хорды с осью абсцисс (ось — Х). Следует отметить, что под хордой понимается отрезок, который проведен через точки рассматриваемой функции по концам рассматриваемого интервала. Рассматриваемый метод обеспечивает более быстрое нахождение корня, чем метод половинного деления, при условии задания одинакового рассматриваемого интервала.

Геометрически метод хорд эквивалентен замене кривой хордой, проходящей через точки и (см. рис.1.).

Рис.1. Построение отрезка (хорды) к функции .

Уравнение прямой (хорды), которая проходит через точки А и В имеет следующий вид:

Данное уравнение является типовым уравнением для описания прямой вы декартовой системе координат. Наклон кривой задается по ординате и абсциссе с помощью значений в знаменателе и , соответственно.

Для точки пресечения прямой с осью абсцисс записанное выше уравнение перепишется в следующем виде:

В качестве нового интервала для прохождения итерационного процесса выбираем один из двух или , на концах которого функция принимает значения разных знаков. Противоположность знаков значений функции на концах отрезка можно определить множеством способов. Один из множества этих способов — умножение значений функции на концах отрезка и определение знака произведения путём сравнения результата умножения с нулём:

или .

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

.

Рис.2. Пояснение к определению погрешности расчета.

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

Алгоритм нахождения корня нелинейного уравнения по методу хорд

1. Найти начальный интервал неопределенности одним из методов отделения корней. З адать погрешность расчета (малое положительное число ) и начальный шаг итерации ( ) .

2. Найти точку пересечения хорды с осью абсцисс:

3. Необходимо найти значение функции в точках , и . Далее необходимо проверить два условия:

— если выполняется условие , то искомый корень находится внутри левого отрезка положить , ;

— если выполняется условие , то искомый корень находится внутри правого отрезка принять , .

В результате находится новый интервал неопределенности, на котором находится искомых корень уравнения:

4. Проверяем приближенное значение корня уравнения на предмет заданной точности, в случае:

— если разность двух последовательных приближений станет меньше заданной точности , то итерационный процесс заканчивается. Приближенное значение корня определяется по формуле:

— если разность двух последовательных приближений не достигает необходимой точности , то необходимо продолжить итерационный процесс и перейти к п.2 рассматриваемого алгоритма.

Пример решения уравнений методом хорд

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

Вариант решения нелинейного уравнения в программном комплексе MathCAD .

Результаты расчетов, а именно динамика изменения приближенного значения корня, а также погрешности расчета от шага итерации представлены в графической форме (см. рис.1).

Рис.1. Результаты расчета по методу хорд

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

Примечание:

Модификацией данного метода является метод ложного положения ( False Position Method ), который отличается от метода секущих только тем, что всякий раз берутся не последние 2 точки, а те точки, которые находятся вокруг корня.

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

Случай №1: 0,

f»(a)>0″ width=»158″ height=»20″ border=»0″ />

Из первого условия получается, что неподвижной стороной отрезка является – сторона a .

Случай №2: 0″ width=»158″ height=»20″ border=»0″ />

Из второго условия получается, что неподвижной стороной отрезка является – сторона b .

В общем виде, для выявления неподвижного конца можно записать следующее условие: 0″ width=»122″ height=»20″ border=»0″ /> , где или .

Рис. 3. Примеры убывающей или возрастающей функции

Таким образом, в зависимости от вида функции получаются два выражения для упрощения поиска корня функции:

— если функция соответствует первому случаю (см. рис. 3), тогда формула будет иметь следующий вид:

, где k =0,1,2,…

— если функция соответствует второму случаю (см. рис. 3), тогда формула будет иметь следующий вид:

, где k =0,1,2,…

Случай сводится к рассматриваемому , если уравнение записать в форме: .

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

Решение нелинейных уравнений и систем уравнений в пакете MathCAD

Решение нелинейных уравнений

Вычисление корней численными методами включает два основных этапа:

· уточнение корней до заданной точности.

Рассмотрим эти два этапа подробно.

Отделение корней нелинейного уравнения

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

Пример. Дано алгебраическое уравнение

.

Определить интервалы локализации корней этого уравнения.

Пример. Дано алгебраическое уравнение

.

Определить интервалы локализации корней этого уравнения.

На рисунке приведен график функции , построенный в MathCAD . Видно, что в качестве интервала изоляции можно принять интервал . Однако уравнение имеет три корня. Следовательно, можно сделать вывод о наличии еще двух комплексных корней. ¨

Уточнение корней нелинейного уравнения

Для уточнения корня используются специальные вычислительные методы такие, как метод деления отрезка пополам, метод хорд, метод касательных (метод Ньютона) и многие другие.

Функция root . В MathCAD для уточнения корней любого нелинейного уравнения (не обязательно только алгебраического) введена функция root , которая может иметь два или четыре аргумента, т.е. или , где – имя функции или арифметическое выражение, соответствующее решаемому нелинейному уравнению, – скалярная переменная, относительно которой решается уравнение, – границы интервала локализации корня.

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

Заметим, что для вычисления всех трех корней использовался прием понижения порядка алгебраического уравнения, рассмотренный в п. 8.1.1. ¨

Функция root с двумя аргументами требует задания (до обращения к функции) переменной начального значения корня из интервала локализации.

Пример 8.1.5. Используя функцию root , вычислить изменения корня нелинейного уравнения при изменении коэффициента а от 1 до 10 с шагом 1.

Функция polyroots . Для вычисления всех корней алгебраического уравнения порядка (не выше 5) рекомендуется использовать функцию polyroots . Обращение к этой функции имеет вид polyroots (v) , где v – вектор, состоящий из n +1 проекций, равных коэффициентам алгебраического уравнения, т.е. . Эта функция не требует проведения процедуры локализации корней.

Пример. Используя функцию polyroots , найти все три корня уравнения , включая и два комплексных

Блок Given . При уточнении корня нелинейного уравнения можно использовать специальный вычислительный блок Given , имеющий следующую структуру:

Решаемое уравнение задается в виде равенства, в котором используется «жирный» знак равно, вводимый с палитры Логичес­кий .

Ограничения содержат равенства или неравенства, которым должен удовлетворять искомый корень.

Функция Find уточняет корень уравнения, вызов этой функции имеет вид Find ( x ), где x – переменная, по которой уточняется корень. Если корня уравнения на заданном интервале не существует, то следует вызвать функцию Minerr ( x ), которая возвращает приближенное значение корня.

Для выбора алгоритма уточнения корня необходимо щелкнуть правой кнопкой мыши на имени функции Find ( x ) и в появившемся контекстном меню (см. рисунок) выбрать подходящий алгоритм.

Аналогично можно задать алгоритм решения и для функции Minerr ( x ).

Использование численных методов в функциях Find ( x ), Minerr ( x ) требует перед блоком Given задать начальные значения переменным, по которым осуществляется поиск корней уравнения.

Пример. Используя блок Given , вычислите корень уравнения в интервале отделения .

Решение систем уравнений

В зависимости от того, какие функции входят в систему уравнений, можно выделить два класса систем:

· алгебраические системы уравнений;

· трансцендентные системы уравнений.

Среди алгебраических систем уравнений особое место занимают системы линейных алгебраических уравнений (СЛАУ).

Системы линейных алгебраических уравнений

Системой линейных алгебраических уравнений (СЛАУ) называется система вида:

В матричном виде систему можно записать как

,

где – матрица размерности , – вектор с проекциями.

Для вычисления решения СЛАУ следует использовать функцию lsolve , обращение к которой имеет вид: lsolve (А, b ), где А – матрица системы, – вектор правой части.

Решение систем нелинейных уравнений

MathCAD дает возможность находить решение системы уравнений численными методами, при этом максимальное число уравнений в MathCAD 2001 i доведено до 200.

Для решения системы уравнений необходимо выполнить следующие этапы.

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

Пример. Дана система уравнений:

Определить начальные приближения для решений этой системы.

Видно, что система имеет два решения: для первого решения в качестве начального приближения может быть принята точка (-2, 2), а для второго решения – точка (5, 20). ¨

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

Функция Find вычисляет решение системы уравнений с заданной точностью, и вызов этой функции имеет вид Find ( x ), где x – список переменных, по которым ищется решение. Начальные значения этим переменным задаются в блоке . Число аргументов функции должно быть равно числу неизвестных.

Следующие выражения недопустимы внутри блока решения:

· ограничения со знаком ¹ ;

· дискретная переменная или выражения, содержащие дискретную переменную в любой форме;

· блоки решения уравнений не могут быть вложены друг в друга, каждый блок может иметь только одно ключевое слово Given и имя функции Find (или Minerr ).

Пример. Используя блок Given , вычислить все решения системы предыдущего примера. Выполнить проверку найденных решений.

Пример. Используя функцию , вычислите решение системы уравнений


источники:

http://simenergy.ru/math-analysis/solution-methods/42-chord-method

http://pers.narod.ru/study/mathcad/07.html