Учебно-методический комплекс по дисциплине «Информационные технологии в экономике» - shikardos.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Учебно-методический комплекс по дисциплине «Информационные компьютерные... 1 135.7kb.
Учебно-методический комплекс по дисциплине 080503. 65 соответствует... 5 633.02kb.
Учебно-методический комплекс Для студентов, обучающихся по специальности... 5 1367.29kb.
Учебно-методический комплекс анатомия цнс учебно-методический комплекс... 1 230.5kb.
Учебно-методический комплекс направление подготовки специалиста:... 3 487.67kb.
Учебно-методический комплекс по дисциплине правовая защита информации 4 933.09kb.
Учебно-методический комплекс учебной дисциплины «Литературы народов... 1 277.27kb.
Учебно-методический комплекс дисциплины менеджмент Направление подготовки... 3 725.34kb.
Учебно-методический комплекс дисциплины 2 739.29kb.
Учебно-методический комплекс по учебной дисциплине Теория государства... 14 6458.41kb.
Учебно-методический комплекс по дисциплине социальная антропология... 2 693.58kb.
Сравнение массивов и выборки по одному или нескольким условиям 1 167.56kb.
- 4 1234.94kb.
Учебно-методический комплекс по дисциплине «Информационные технологии в экономике» - страница №1/1


Министерство образования и науки РФ

Ставропольский государственный аграрный университет

Экономический факультет

 

Кафедра Информационных систем и технологий



 

Учебно-методический комплекс

по дисциплине «Информационные технологии в экономике»

 

 



 

 

 

 

 

Методическое пособие

к лабораторному занятию


 

по учебной дисциплине:

«Информационные технологии в экономике»

 

 

Для студентов специальности:



080100.62 Экономика (бакалавр)

 

 



 

Лабораторное занятие №15.


Решение нелинейных алгебраических уравнений

и систем в Mathcad




 

 

 



Обсуждена на заседании кафедры ПИ

«___» 201__ года

Протокол №___

 

 



 
 

 

 



 

Ставрополь 2011



ЛАБОРАТОРНАЯ РАБОТА № 15
Решение нелинейных алгебраических уравнений

и систем в Mathcad



Цель работы – научиться использовать численные методы для решения нелинейных алгебраических уравнений и систем.
Методические рекомендации
1. Функция root

Функция root используется для определения значения корня уравнения f(x) = 0 в одном из двух вариантов:



  • root(f(x),x);

  • root(f(x),x,a,b).

где

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

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

a,bграницы интервала, содержащего корень уравнения.

Для первого варианта использования функции root необходимо переменной х предварительно присвоить значение начального приближения к корню. Для второго варианта нужно предварительно установить границы а и b интервала, внутри которого имеется корень уравнения. Поиск корня этой функцией производится методом секущих. Значения функции на концах интервала f(a) и f(b) при этом должны иметь разные знаки.



Для определения корней этим методом необходимо:

  • выполнить локализацию корней, например, графически, чтобы определить начальные приближенные значения корней или интервалы на которых находятся эти корни;

  • выбрать точность решения;

  • использовать функцию root в одном из двух вариантов для нахождения точного значения каждого корня.

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

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


Пример.

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

Определим заданную функцию (вместо этого можно записывать соответствующее выражение непосредственно внутри функции root),
f(x):=x3 – 4.5x2 – 7 x +10
Отделяем корни (находим приближенные значения корней или границы интервалов) с помощью графика (рис.1), установив диапазон изменения переменной x от –3 до 6 для лучшего отображения корней. По графику определяем начальное приближение для нахождения первого корня равное -2 и используем первый вариант применения функции. Для определения второго корня принимаем интервал от 0 до 3, и используем для разнообразия второй вариант функции. Для определения третьего корня принимаем начальное приближение равное 5 и используем первый вариант функции.
рис

Рис. 1 – График для отделения корней


Первый корень: x := –2 root(f(x),x) = -1.909

Второй корень: root(f(x),x,0,3) = 0.961

Третий корень: x := 5 root(f(x),x) = 5.448
2. Функция polyroots

Все корни полинома (в том числе и комплексные) можно определить при помощи функции polyroots(v), где v – вектор коэффициентов полинома.

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

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


Пример.

Используем уже определенную выше функцию f(x).

В качестве демонстрации используем символьное вычисление коэффициентов полинома, хотя в данном случае легко и без этого записать вектор коэффициентов,

v := f(t) coeffs, t
Обратите внимание, что для символьных преобразований использована переменная t, а не х. Дело в том, что выше мы уже присвоили численное значение переменной х, которое и было бы подставлено в функцию. В результате, вместо коэффициентов полинома мы бы тогда получили просто значение функции в точке х.

Определяем значения корней, которые совпадают с определенными ранее с помощью функции roots,



polyroots(v)=
3. Вычислительный блок Given – Find

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



  • Given - ключевое слово;

  • система уравнений, записанная логическими операторами (панель Логический) в виде равенств и, возможно, неравенств;

  • Find(x,y,z...) – встроенная функция для решения системы относительно переменных x,y,z, ...

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

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

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

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

Функция Find реализует один из следующих градиентных методов:


  • сопряженных градиентов;

  • Левенберга-Марквардта;

  • квази-Ньютоновский.

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

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


Пример.

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

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

f1(x,y) := x4 + y2 – 3

f2(x,y) := x2 + 2y3 + 2

Задаем начальные приближения переменным



x : = 1 y : = 1

Решаем систему.



Given

f1(x,y) = 0 (знак равенства вводится с использованием панели Логический)
f2(x,y) = 0

V : = Find(x,y)

V =

Проверяем правильность решения (переменным x и y соответствуют элементы V0 и V1 вектора V).


f1(V0 ,V1) = -3.283x10-7 f2(V0 ,V1) = 1.31x10-6
Результаты проверки показывают, что решение найдено с достаточной точностью. Тем не менее, найдено только одно решение, а при других начальных приближениях можно найти и другие решения системы.
Задание по работе
Определите корни заданных уравнений или системы уравнений, приняв значение k равным номеру своего варианта. Оформите лабораторную работу и сохраните результаты выполнения в своей папке на диске.

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

a) x = cos(k·x); б)

в) 2x3 + k·x2 – 2x + 100 = 0 г) x3k·x2 + 8x – 20 = 0
Задание 2. Решите уравнения из задания 1 в) и г) при помощи функции polyroots, а также символьных вычислений. Сравните полученные результаты.

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

а) б)


Вопросы к лабораторной работе № 15


  1. Каким образом определяется значение корня уравнения f(x) = 0 при помощи функции root. Приведите примеры для двух вариантов использования функции.

  2. Как выбрать начальное приближение при численном решении алгебраического уравнения?

  3. Каким образом задается точность решения алгебраического уравнения?

  4. Как влияет выбор точности решения алгебраического уравнения на результат решения?

  5. Как определяются корни полинома функцией polyroots. Приведите примеры.

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

  7. Как выполняется установка параметров решения системы нелинейных уравнений?

Доцент кафедры Информационных систем и технологий



К.т.н. Д.В.Шлаев