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

Вычисление многомерных интегралов

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

Простейший метод оценки многомерных интегралов заключается в сведении этих интегралов к произведению одномерных интегралов.

Рассмотрим двумерный интеграл вида

(7.25)

где пределы y1* и y2*, вообще говоря, являются функциями от x: y1*= y1*(x), y2*= y2*(x).

Определим функцию g(x) как внутренний интеграл по y:

(7.26)

Запишем исходный интеграл в виде:

(7.27)

Тогда алгоритм вычисления двухмерного интеграла выглядит следующим образом:

  1. разбиваем интервал (x1*,x2*) на n малых отрезков x, а интервал (y1*,y2*) на m отрезков y;

  2. для текущего xi= xi-1+x вычисляем y1*(xi) и y2*(xi);

  3. вычисляем g(xi):

(7.28)

  1. вычисляем Fn:

(7.29)

Пояснение. Для вычисления одномерных интегралов в этой схеме использован метод прямоугольников.

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

Задание

Вычислите интеграл из предыдущего задания методом Монте-Карло.

7.5 Технология программирования вычислительных задач

ЭВМ в первую очередь предназначены для решения вычислительных задач. Вычислительные задачи можно решать, используя:

  • специальные математические пакеты;

  • программы, написанные на каком-либо алгоритмическом языке в конкретной системе программирования.

Математические пакеты

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

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

Примеры математических пакетов:

EUREKA, STATGRAPH, MATHEMATICA, MATLAB, MATHCAD.

Системы программирования на основе алгоритмических языков

Системы программирования включают три основные программы:

  • текстовый редактор для набора текста программы;

  • транслятор, переводящий исходный текст в машинный код;

  • редактор связей.

Программа пишется на основе разработанного алгоритма и правил конкретного языка программирования. Существуют различные подходы к разработке программ. Простейшим способом программирования является «восходящее» программирование, когда каждый шаг алгоритма записывается последовательно в программе. Такой способ используется для написания небольших программ объемом несколько десятков операторов, решающих несложные задачи

Написать программу, состоящую из нескольких сотен или тысяч операторов, таким способом весьма сложно или вообще невозможно. В этом случае эффективным способом является структурное программирование: исходная задача разбивается на отдельные независимые подзадачи; разработка программы ведется отдельно для каждой подзадачи – такие фрагменты программ называются подпрограммами, или процедурами. Затем программа собирается из этих частей.

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

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

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

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

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