Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа N5.doc
Скачиваний:
14
Добавлен:
31.05.2015
Размер:
465.92 Кб
Скачать

P(xf(Лабораторная работа №5

Тема: Численные методы решения нелинейных уравнений и оптимизация функций.

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

Используемые программные средства: пакет MathCAD.

Теоретические сведения.

  1. Решение уравнения с одним неизвестным.

Метод простых итераций.

Пусть задана непрерывная функция f(x) и требуется найти корни уравнения

(1)

Уравнение (1) заменим эквивалентным ему уравнением

(2)

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

(3)

Процесс итераций сходится  , если выполнено условиена отрезке [ab], содержащем корень .

Метод Ньютона.

Пусть дано уравнение f(x) = 0 ,корень которого  отделен. Суть метода состоит в том, что дуга кривойзаменяется касательной к ней и за приближение корня берется абсцисса точки пересечения касательной с осьюOX.

В методе касательных (n+1)-е приближение вычисляется по формуле ,, в которой за нулевое приближениепринимается такое значение из отрезка [ab], для которого выполняется условие .

Оценка абсолютной погрешности определяется формулой , где.

Средства пакета MathCAD для решения нелинейных уравнений вида .

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

  • root (f(х),х);

  • root(f(х),х,а,b);

где f(х) – скалярная функция, определяющая уравнение ;

х – скалярная переменная, относительно которой решается уравнение;

а, b – границы интервала, внутри которого происходит поиск корня.

Первый тип функции root требует дополнительного задания начального значения (guess value) переменной х. Для этого нужно предварительно присвоить этой переменной некоторое число, в окрестности которого будет производиться поиск корня. Таким образом, присвоение начального значения требует априорной информации о примерной локализации корня. Отделить корень можно, построив график функции f(х) и с помощью опции Trace (см. лабораторную работу № 3) определить примерно абсциссу пересечения графиком оси ОХ.

Пример 1.

Рассмотрим уравнение sin(x) = 0, корни которого известны заранее.

Примем начальное значение .

Решение.

Поиск корня уравнения в заданном интервале.

Когда root имеет четыре аргумента, следует помнить о двух ее особенностях:

  • внутри интервала [а,b] не должно находиться более одного корня, иначе будет найден один из них, заранее неизвестно, какой именно;

  • значения f(а) и f(b) должны иметь разный знак, иначе будет выдано сообщение об ошибке.

Пример 2.

Найти корень уравнения из интервала.

Решение.

Поиск мнимых корней уравнения.

Если уравнение не имеет действительных корней, но имеет мнимые, то их также можно найти.

Пример 3.

Решить уравнение .

Решение.

Замечание. Явный вид функции f(х) может быть определен непосредственно в теле функции root.

Корни полинома

Если функция f(х) является полиномом, то все его корни можно определить, используя встроенную функцию polyroots(v), где v – вектор, составленный из коэффициентов полинома.

Поскольку полином n-й степени имеет ровно n корней (некоторые из них могут быть кратными), вектор v должен состоять из n+1 элементов. Результатом действия функции polyroots является вектор, составленный из n корней рассматриваемого полинома. При этом не требуется вводить какое-либо начальное приближение, как для функции root.

Пример 4.

Найти корни полинома

Решение.

  1. Задаём полином .

  1. Определяем вектор коэффициентов полинома

  1. Находим вектор корней полинома

Следует обратить внимание, что численный метод вместо двух из трех действительных единичных корней (иными словами, кратного корня 1) выдает два мнимых числа. Однако малая мнимая часть этих корней находится в пределах погрешности, определяемой константой TOL, и не должна вводить пользователей в заблуждение. В данном случае следует помнить, что корни полинома могут быть комплексными, и ошибка вычислений может сказываться как на действительной, так и на комплексной части искомого корня.

Замечание. Иногда исходный полином имеется не в развернутом виде, а, например, как произведение нескольких полиномов. В этом случае определить все его коэффициенты можно, выделив его и выбрав в меню Symbolics (Символика) пункт Expand (Разложить). В результате символьный процессор MathCAD сам преобразует полином в нужную форму, пользователю надо будет только корректно ввести ее в аргументы функции polyroots.

Символьное решение уравнений.

Некоторые уравнения можно решить точно с помощью символьного процессора MathCAD. Делается это очень похоже на численное решение систем уравнений с применением вычислительного блока (см. пункт «Средства пакета MathCad для решения систем уравнений»). Присваивать неизвестным начальные значения нет необходимости.

Пример 5 .

Given

Find

Вместо знака равенства после функции Find в листингах следует стрелка - знак символьных вычислений, который можно ввести с панели Symbolic (Символика) или, нажав клавиши <Ctrl>+<.>. При этом уравнения должны иметь вид логических выражений (знаки равенства нужно вводить с помощью панели Booleans (Булевы операторы) – жирные знаки равенства).

С помощью символьного процессора решить уравнение с одним неизвестным можно и другим способом:

  1. Введите уравнение, пользуясь панелью Booleans (Булевы операторы) или нажав клавиши <Ctrl>+<.> для получения логического знака равенства.

  2. Щелчком мыши выберите переменную, относительно которой требуется решить уравнение.

  3. Выберите в меню Symbolics (Символика) пункт Variable/Solve (Переменная/Решить).

После строки с уравнением появится строка с решением или сообщение о невозможности символьного решения этого уравнения.

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