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

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 31.05.2010
Размер файла 83,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

5

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

Поиск корня нелинейного уравнения

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

Эта функция возвращает с заданной точностью значение переменной, при котором выражение равно 0. функция реализует вычисления итерационным методом, причем перед ее применением надо задать начальное значение переменной. Это особенно полезно, если возможно несколько решений. Тогда выбор решения определяется заданием начального значения переменной.

Как известно, кубическое уравнение обязательно имеет хотя бы один действительный корень x1. Он найден вначале функцией root. Два других корня могут оказаться как действительными, так и комплексными. Функция root может отыскивать любые корни. Для поиска второго корня x2 первый исключается делением F(x) на (x-x1). Соответственно для поиска третьего корня x3 нужно повторить процедуру деления. При этом F(x) делится на (x-x2). Эту процедуру можно распространить и на поиск корней полиномов более высокой степени, однако надо помнить, что найти корни полинома можно гораздо проще - используя операцию символьных вычислений.

В системе MathCAD 2000 возможности функции root расширены, и она может записываться в виде root (Выражение, Имя_переменной, a, b)

Здесь a и b- пределы интервала изоляции корня. такое применение функции root позволяет избежать вывода корней, не представляющих интереса при решении задач. При таком использовании функции нет необходимости задавать начальное значение x, поскольку эта переменная определена в заданном интервале [a,b]. Например,

Выражение, корень которого находится функцией root, может быть представлен в виде F(x) или даже F1(x)-F2(x), если решается уравнение

F1(x)=F2(x).

Поиск всех корней многочлена

Для поиска корней обычного полинома p(x) степени n MathCAD поддерживает функцию polyroots(V). Она возвращает вектор всех корней многочлена степени n, коэффициенты которого находятся в векторе V, имеющим длину n+1.

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

Функция root в составе функции пользователя

Функцию root можно использовать и в составе функций пользователя, что нередко позволяет получать довольно простые решения. Рассмотрим пример.

Недостатком функции root является невозможность решения с ее помощью систем нелинейных уравнений. Эта функция предназначена для одиночных уравнений.

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

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

Начальные условия

Given

Уравнения

Ограничительные условия

Выражения с функциями Find, Minerr, Maximize, Minimize

Начальные условия определяют начальные значения искомых переменных и задаются в виде var:=value, т.е. обычным присваиванием переменным заданных значений. Если переменных несколько, то используется векторное представление для начальных условий. Уравнения задаются в виде expr_left=expr_right c применением жирного знака равенства между левой и правой частями каждого уравнения. Ограничительные условия обычно задают в виде неравенств или равенств, которые должны удовлетворяться при решении системы уравнений.

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

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

В блоке используется одна из следующих двух функций:

Find (V1, V2…Vn)- возвращает значение одной или ряда переменных для точного решения;

Minerr (V1, V2…Vn)- возвращает значение одной или ряда переменных для приближенного решения;

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

Ввод ограничений при решении систем нелинейных уравнений

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

Для их задания используются логические операторы.

Оператор

Клавиши

Значение оператора

e1>e2

e1 >e2

e1 больше e2

e1<e2

e1 <e2

e1 меньше e2

e1>=e2

e1 Ctrl) e2

e1 больше или равно e2

e1e2

e1 Ctrl( e2

e1 меньше или равно e2

e1e2

e1 Ctrl # e2

e1 не равно e2

e1=e2

e1 Ctrl= e2

e1 равно e2

Примеры решения нелинейных уравнений

Функции Find и Minerr могут использоваться для решения одного или ряда уравнений.

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

Рассмотрим пример решения системы нелинейных уравнений с помощью функции Minorr.

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

Решение задач оптимизации

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

Функции maximize и minimize

Для поиска значений переменных x1,x2,…xn, при которых некоторая функция f(x1,x2,…xn) имеет максимальное или минимальное значение, используется функция maximize(f, x1,x2,…xn) и minimize(f, x1,x2,…xn).

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

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

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.