Решение нелинейных уравнений
Поиск корня нелинейного уравнения и корней многочлена, решение численными методами с заданной погрешностью. Функция 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, и возвращает вектор неизвестных, при котором заданная функция имеет максимальное или минимальное значение соответственно. Внутри блока могут быть различные ограничительные условия в виде равенств или неравенств. Число условий ограничено только памятью ПК, т.е. практически почти не ограничено.
Перед блоком решения надо задать начальные значения искомых переменных. Чем они ближе к верному решению, тем быстрее будет получен правильный результат.
Подобные документы
Разработка с использованием приложения Mathcad алгоритма и программы решения нелинейного уравнения методами касательных, половинного деления и хорд. Решение с помощью ее заданных нелинейных уравнений. Создание графической иллюстрации полученных решений.
курсовая работа [665,7 K], добавлен 22.08.2013Решение в среде Microsoft Excel с помощью программной модели "Поиск решения" транспортной задачи, системы нелинейных уравнений, задачи о назначениях. Составление уравнения регрессии по заданным значениям. Математические и алгоритмические модели.
лабораторная работа [866,6 K], добавлен 23.07.2012Этапы численного решения нелинейных уравнений заданного вида: отделение (изоляция, локализация) корней уравнения аналитическим или графическим способами, уточнение конкретного выделенного корня методом касательных (Ньютона). Решение в системе MathCad.
курсовая работа [271,6 K], добавлен 22.08.2012Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.
курсовая работа [435,8 K], добавлен 15.06.2013Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.
курсовая работа [1,4 M], добавлен 15.08.2012Сравнительный анализ итерационных методов решения нелинейных алгебраических и трансцендентных уравнений. Простейший алгоритм отделения корней нелинейных уравнений. Метод половинного деления. Геометрический смысл метода Ньютона. Метод простой итерации.
реферат [95,0 K], добавлен 06.03.2011Исследование количества, характера и расположения корней. Определение их приближенных значений итерационными методами: половинного деления (дихотомии) и хорд. Тексты программ. Решение уравнений на языках программирования Borland Delfi и Turbo Pascal.
курсовая работа [500,3 K], добавлен 15.06.2013Методика и основные этапы построения ранжированных переменных, сферы и особенности их практического применения. Порядок построения графиков в декартовой системе. Приведение примеров решение нелинейных уравнений и их систем при помощи решающего блока.
контрольная работа [364,4 K], добавлен 27.03.2011Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.
курсовая работа [1,6 M], добавлен 20.01.2010Математический алгоритм вычисления корней нелинейного уравнения и его решение методом касательных. Особенности программной реализации решения таких уравнений. Процедура подготовки и решения задачи на ЭВМ, характеристика алгоритма и структуры программы.
курсовая работа [96,6 K], добавлен 02.06.2012