Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algoritmy_all.doc
Скачиваний:
10
Добавлен:
27.04.2019
Размер:
1.65 Mб
Скачать
      1. Директива Given для решения системы уравнений

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

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

Given

«Уравнения»

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

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

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

Уравнения задаются в виде expr_left = expr_right с применением жирного знака равенства « = » между левой и правой частью каждого уравнения.

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

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

Команда Find(v1, v2, …, vn) = – возвращает значение одной или нескольких переменных для точного решения, а команда Minerr(v1, v2, …, vn) = – возвращает значение одной или нескольких переменных для приближенного решения.

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

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

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

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

      1. Решение дифференциальных уравнений

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

Метод Эйлера

Найдем приближенно решение уравнения у' = f(х, у) в точках х1 = х0+h, хn = х0+nh при начальном условии :

y(х0) = y0,

где h – постоянный шаг.

Обозначим y(xk) = уk. Учитывая, что

,

заданное уравнение запишем так:

.

Отсюда

yk+1 = yk+hf(xk,yk).

Полагая в этой формуле = 0,1,2,... находим последовательно величины у1,y2

Рисунок 2.1 – Метод Эйлера

По этим данным построим ломаную Эйлера,·которая приближенно заменяет интегральную кривую, проходящую через точку M0(x0,y0) (рис. 2.1).

Геометрически метод Эйлера означает, что через точку M0(x0,y0) проводим не интегральную кривую, а касательную к ней, которую и принимаем приближенно за интегральную кривую на участке от x0 до x1=x0+h. После этого за исходную точку берем M1(x1,y1) и поступаем так же, как и до этого.

Метод Эйлера прост, но точность его невелика. Если интервал {х0, х}, где ищется решение, разбит на n частей h=(x-x0)/n, то погрешность при вычислении ординат имеет порядок 1/h. Это означает, что для повышения точности в 10 раз (получения одного дополнительного десятичного знака) требуется увеличить число точек деления в десять раз. Последнее значительно увеличит объем вычислений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]