Компьютерное моделирование в физических исследованиях



бет7/11
Дата27.05.2024
өлшемі0.55 Mb.
#501968
1   2   3   4   5   6   7   8   9   10   11
Министерство науки и высшего образования РФ (Восстановлен)

F = 11 /(x, y)dydx,

** xi У1

(25)
Рассмотрим двумерный интеграл вида
где пределы yi* и y2*, вообще говоря, являются функциями от x: y*= yi*(x), У2 = У2 (x).
Определим функцию g(x) как внутренний интеграл по у:
*
У2


(26)
g(x) = J f (x, y)(fy.
*
У1
Запишем исходный интеграл в виде
*
x2
F g (x)dx.
*
xi
Тогда алгоритм вычисления двухмерного интеграла выглядит следующим образом:

  1. разбиваем интервал (хД х2*) на n малых отрезков Ах, а интервал (y\ , у2*) - на m отрезков Ау;

  2. для текущего Xi= х^+Ах вычисляем y1^(xi) и y2*(xi);







  3. *
    y2 m-1

    g(X) = j f(x, y)(y ~ £ f(x,, y)Ay;

    *
    У1

    j=0

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



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

n-1
Fn =Z g (xi)Ax■ (29)
,=1
Пояснение. Для вычисления одномерных интегралов в этой схеме использован метод прямоугольников.
Как уже отмечалось, классические методы непригодны при вычислении интегралов большой кратности. Большей эффективностью будет обладать при решении таких задач метод Монте-Карло. Предлагаем вам самостоятельно разработать алгоритм вычисления двухмерного интеграла этим методом (например, с использованием вычисления выборочного среднего).
Задание
Вычислите интеграл из предыдущего задания методом Монте-Карло.



  1. ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ ВЫЧИСЛИТЕЛЬНЫХ

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

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

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

Математические пакеты для ЭВМ - это специализированные пакеты программ, предназначенные для решения математических задач и ориентированные на пользователей, не имеющих квалификации программиста.
Особенности математических пакетов заключаются в том, что, составляя и реализуя алгоритм решения конкретной задачи, пользователь оформляет свой документ в привычной математической форме. Математические пакеты позволяют решать системы линейных и нелинейных алгебраических уравнений, вычислять интегралы, производные функций, решать дифференциальные уравнения, неравенства, выполнять аппроксимацию и интерполяцию функций, производить вычисления с векторами и матрицами, осуществлять статистические расчеты. Результаты расчетов могут отображаться в виде таблиц, графиков и рисунков, выводиться на печать или сохраняться в памяти ЭВМ для последующего использования.
Примеры математических пакетов: EUREKA, STATGRAPH,
MATHEMATICA, MATHLAB, MATHCAD.
Системы программирования включают три основные программы:

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

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

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

Программа пишется на основе разработанного алгоритма и правил конкретного языка программирования. Существуют различные подходы к разработке программ. Простейшим способом программирования является «восходящее» программирование, когда каждый шаг алгоритма записывается последовательно в программе. Такой способ используется для написания небольших программ объемом несколько десятков операторов, решающих несложные задачи.
Написать программу, состоящую из нескольких сотен или тысяч операторов, таким способом весьма сложно или вообще невозможно. В этом случае эффективным способом является структурное программирование: исходная задача разбивается на отдельные независимые подзадачи; разработка программы ведется отдельно для каждой подзадачи - такие фрагменты программ называются подпрограммами, или процедурами. Затем программа собирается из этих частей.
В целях облегчения процесса программирования разработчиками систем программирования создаются библиотеки стандартных процедур и функций, решающих наиболее часто встречающиеся задачи. Пользователь имеет возможность также создавать собственные библиотеки процедур и функций. Такие библиотеки (пользовательские и стандартные) называются модулями. Модули транслируются отдельно от основной программы и подключаются к ней в процессе трансляции основной программы.
Поскольку существуют физические ограничения памяти ЭВМ на объем выполняемой программы, то при решении сложных задач создаются программные комплексы, или пакеты программ, представляющие собой набор взаимодействующих программ различного назначения. В таком комплексе имеется основная программа, называемая программой-диспетчером, которая осуществляет управление вычислительным процессом, вызывая по мере надобности ту или иную программу комплекса.
При разработке программы очень важно уделить внимание созданию пользовательского интерфейса. Под пользовательским интерфейсом программы будем понимать совокупность программных средств, позволяющих человеку вести диалог с работающей программой, а также обеспечивающих представление результатов расчетов в форме, максимально удобной для восприятия, вывод этих результатов на различные внешние устройства ЭВМ (на экран, принтер, графопостроитель, диск и т. д.).
Весьма эффективным способом представления результатов вычислений является их визуализация в виде рисунков, графиков, мультипликации. Поэтому желательно, а в ряде случаев необходимо использование графических средств языков программирования. Следует отметить, что при разработке коммерческих программ наиболее трудоемкой частью является разработка пользовательского интерфейса.

  1. Точность компьютерного эксперимента

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

  1. Переход от объекта к математической модели.

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

  1. Переход от математической модели к численному методу.

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

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

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

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

  1. Переход от вычислительного алгоритма к решению задачи на ЭВМ.

Дискретная модель представляет собой систему большого числа алгебраических уравнений. Входные данные этой системы задаются в ЭВМ не точно, а с округлением, что связано с особенностями представления чисел в ЭВМ. В памяти ЭВМ числа представляются в двоичной системе, т.е. в виде совокупности двоичных разрядов. Для записи каждого числа в ЭВМ отводится фиксированное число двоичных разрядов (разрядная сетка). Например, для хранения числа с плавающей запятой отводится 48 двоичных разрядов. Это приводит к тому, что, во-первых, существуют минимальное и максимальное числа Ммин и Ммакс; во-вторых, числа в диапазоне [Ммин, Ммакс] представлены в ЭВМ не все, а лишь некоторые. В результате этого при вводе некоторого числа а это число заменяется на его округленное значение а*, ближайшее к а, которое представлено в ЭВМ. Величину |а - а*|/|а| будем называть погрешностью округления, или вычислительной погрешностью.
В процессе проведения вычислений с округленными числами погрешности могут накапливаться, так как выполнение каждой из арифметических операций вносит некоторую погрешность.
Вычислительный алгоритм называют устойчивым, если в процессе его работы погрешности возрастают незначительно, и неустойчивым - в противном случае. При использовании неустойчивых алгоритмов накопление погрешностей округления приводит в процессе счета к переполнению арифметического устройства ЭВМ.
Итак, следует различать три вида погрешностей:

  • погрешности модели;

  • погрешности метода;

  • вычислительные погрешности.

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



Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   11




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет