Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Modelirovanie_v_nauchno_tekhnicheskikh_issledov...doc
Скачиваний:
16
Добавлен:
25.09.2019
Размер:
383.49 Кб
Скачать

7.4 Вычислительный алгоритм. Введение в численные методы

Для реализации конкретной математической модели необходимо составить алгоритм ее решения на ЭВМ.

Алгоритмом называется конечная последовательность однозначно понимаемых элементарных действий (шагов), направленная на решение конкретной задачи.

Перечислим основные свойства алгоритма:

    1. дискретность – алгоритм должен состоять из отдельных, конечных во времени шагов;

    2. однозначность – каждый шаг алгоритма должен быть однозначно понимаем;

    3. конечность – алгоритм должен приводить к решению задачи за конечный промежуток времени;

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

В компьютерном моделировании под методом (алгоритмом) будем понимать:

  • формулировку исходной математической модели в виде дискретной задачи;

  • собственно разработку вычислительного алгоритма для решения этой задачи на ЭВМ.

Что означает термин “дискретная задача”? Это значит, что исходная математическая модель должна быть сформулирована в виде, пригодном для решения на ЭВМ. Например: если исходная задача сформулирована в виде дифференциального уравнения или системы дифференциальных уравнений, то для численного решения на ЭВМ ее необходимо заменить системой линейных или разностных алгебраических уравнений. В этом случае говорят, что проведена дискретизация исходной математической задачи.

Формулировкой дискретных задач и составлением вычислительных задач занимается раздел прикладной математики, называемый “Численные методы”.

Базовые понятия численных методов

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

y=y(x) y=y(xi)=y(i)=yi i=1,2..n

y y

х x1 xn

Рис. 7.2

Разностью первого порядка будем называть результат вычитания двух соседних значений y:

yi=yi+1-yi (правая разность), (7.4)

yi=yi-yi-1 (левая разность). (7.5)

Предположим, что надо вычислить сумму значений

yn =x1+ x2+…+ xn= . (7.6)

Тогда вычисления организуются следующим образом. Задается начальное значение y0=0, а затем последовательно, начиная с i=1, находятся числа yi, связанные реккурентным соотношением

yi= yi-1+xi, i=1, 2, …n. (7.7)

Для вычисления произведения вида

yn =x1*x2*…* xn= (7.8)

достаточно задать начальное значение у0=1 и воспользоваться реккурентным соотношением

yi= yi-1*xi, i=1, 2, …n. (7.9)

Уравнения (7.7) и (7.9) являются частным случаем линейного разностного уравнения первого порядка:

уi=qi*yi-1+fi , i=1,2,…n, (7.10)

где qi, fi - заданные числа, а уi – искомые значения.

Для данного уравнения рассматривается задача нахождения всех уi при заданном значении у0 . Ясно, что решение этой задачи существует и оно единственно.

Численное решение линейных дифференциальных уравнений

Рассмотрим уравнение вида

, (7.11)

где y(x) – неизвестная функция; g(x) – заданная функция.

Уравнение вида (7.11) называют дифференциальным уравнением первого порядка, поскольку в него входит только первая производная неизвестной функции y=y(x).

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

Типичный метод численного решения дифференциальных уравнения включает в себя преобразование дифференциального уравнения в алгебраическое разностное. Пусть нам необходимо найти решение уравнения (7.11) в точке x=xk. Положим, что при x=x0 функция y(x) принимает значение y0. Разобьем интервал (x0,xk) на n интервалов шириной x. Поскольку уравнение (7.11) описывает скорость изменения функции y(x) в точке x0, то можно найти приближенное значение функции y в близлежащей точке x1=x0+x, если x мало. Будем считать в первом приближении, что функция g(x) постоянна на отрезке (x0,x1). В этом случае приближенное значение y(x1) определяется выражением

y(x1)=y1y(x0)+y=y(x0)+g(x0)*x.

Определив y1, мы можем повторить эту процедуру и найти значение y в точке x2=x1+x:

y(x2)=y2y(x1)+y=y(x1)+g(x1)*x.

Очевидным образом это правило можно обобщить и вычислить значение функции в любой точке xi=xi-1+x, в том числе в интересующей нас точке xn=xk по итерационной формуле

y(xi)=yiy(xi-1)+y=y(xi-1)+g(xi-1)*x, i=1, 2…n. (7.12)

Итак, выполнив n шагов вычислений по формуле (7.12), мы получаем решение уравнения (7.11).

Задание

Используя метод Эйлера, решите численно дифференциальное уравнение dy/dx=2x в точке x=2 c начальными условиями x0=1, y0=1.

Выберите шаг x=0.1. Вычислив приближенное решение y(x), сравните его с точным решением уравнения и вычислите относительную ошибку.

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