Исследование RC-генератора синусоидальных колебаний
| Категория реферата: Рефераты по математике
| Теги реферата: класс, контрольные работы по алгебре
| Добавил(а) на сайт: Nizamutdinov.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
T=TN+P(J,1)*H ! Задание независимой переменной.
DO 2 K=1,N ! Цикл задания массива значений зависимых переменных.
2 R(K,1)=XN(K)+P(J,1)*R(K,2)
CALL PRAV(T,R,F,N) ! Вычисление производных в заданной точке.
DO 3 K=1,N ! Цикл вычисления и накопления частичных приращений.
R(K,2)=H*F(K)
3 R(K,3)=R(K,3)+R(K,2)/P(J,2)
4 CONTINUE
DO 5 K=1,N
5 XK(K)=XN(K)+R(K,3) ! Вычисление переменных в конечной точке.
CALL PRAV(TN+H,XK,F,N) ! Вычисление производных в конечной точке.
RETURN
END
5 Описание алгоритма метода Рунге - Кутта с автоматическим выбором шага
Блок -схема алгоритма приведена на Рисунке 3.
В алгоритме используются следующие идентификаторы
Таблица 5
|Имя |Тип |Назначение |
|PRAV |Подпрограмма|Подпрограмма, возвращающая значения производных. |
| |. | |
|OUT |Подпрограмма|Подпрограмма, составляемая Пользователем для вывода |
| |. |результатов. |
|N |Целый. |Порядок решаемой системы. |
|X |Вещественный|Массив размера (N,4). |
| |. | |
|R |Вещественный|Рабочий массив размера (N,3). |
| |. | |
|F |Вещественный|Массив размера (N,4). |
| |. | |
|TN |Вещественный|Начальное на шаге значение независимой переменной. |
| |. | |
|TK |Вещественный|Конец интервала интегрирования. |
| |. | |
|T |Вещественный|Независимая переменная. |
| |. | |
|HМ |Вещественный|Задаваемая величина максимального шага. |
| |. | |
|E |Вещественный|Задаваемое значение абсолютной погрешности. |
| |. | |
|EH |Вещественный|Погрешность, вычисленная на шаге. |
| |. | |
|IER |Целый. |Выходной код ошибки. |
|H |Вещественный|Текущий шаг. |
| |. | |
|HB |Вещественный|Удвоенный шаг. |
| |. | |
|T |Вещественный|Текущее значение независимой переменной. |
| |. | |
|T1 |Вещественный|T1=T+H |
| |. | |
|T2 |Вещественный|T2=T+2H |
| |. | |
|KP |Целый. |Признак достижения конца интервала интегрирования. |
|KLP |Целый. |Признак вывода последовательно двух вычисленных точек. |
|K |Целый. |Индекс. |
Второй столбец массива Х должен содержать весовые коэффициенты
погрешности, на которые умножаются найденные погрешности каждой
интегральной переменной, чтобы после сложения этих произведений получить
общий критерий погрешности системы и сравнить его с заданной погрешностью.
Во втором столбце они задаются с целью удобства ввода. Первый столбец
массива Х заполняется начальными условиями, а затем , подряд, вводятся
весовые коэффициенты. Алгоритм начинается с переписывания весовых
коэффициентов в четвертый столбец массива F (блоки 2,3). Номера столбцов
обозначены нижним индексом, а номера строк - верхним. После задания
начальных значений параметров (4) вызывается подпрограмма вычисления
производных (5) в начальной точке интервала интегрирования и начальная
точка с производными в ней передается подпрограмме вывода (40). Затем
начинается основной цикл выполнения шагов интегрирования. Задается шаг, равный максимальному (6), и выполняются шаги из точки Т в точку Т1 и из
точки Т1 в точку Т2. Результаты записываются, соответственно, во второй и
третий столбцы массивов X и F. Затем, для проверки точности выполняется
удвоенный шаг из точки Т в точку Т2. Результаты этого шага записываются в
четвертый столбец массива Х и в первый столбец массива F . В цикле (13,
14) накапливается критерий погрешности ЕН, как сумма взятых с весами
погрешностей по каждому из уравнений. Погрешность каждой переменной
вычисляется как 1/15 модуля разности между значениями этой переменной, вычисленными с разными шагами. Далее выполняется анализ критерия (15) и в
зависимости от его значения шаг увеличивается, уменьшается или остается
прежним. Если текущая погрешность ЕН не больше заданной Е , то
результаты шага выводятся (25). При этом, если выполнялось два малых шага
(КLР=1), то выводятся и результаты предыдущего шага (23). Так случается в
начале интервала интегрирования и тогда, когда предыдущий шаг оказался
неудачным и из-за большой погрешности величина шага уменьшена вдвое. После
вывода двух шагов признак KLP сбрасывается в ноль (24). Выполненный шаг
может быть последним на интервале (КР=1), тогда осуществляется выход из
подпрограммы(26, 27). В блоке 28 выполняется проверка, может ли быть
выполнен удвоенный шаг без выхода за пределы интервала? Если нет, то в
(29) «взводится» признак конца интервала и устанавливается величина
удвоенного шага равной оставшейся части интервала. В блоке 33 и цикле 34-35
последняя вычисленная точка делается начальной для выполнения двух малых
шагов Н и контрольного удвоенного НВ. Соответственно, в 36 устанавливается
признак двух шагов (KLP=1) и осуществляется возврат на блок 6 . Если
«дошагивание» не нужно, то в 30 проверяется, является ли точность расчетов
завышенной и в 31 можно ли удвоить малый шаг? При завышенной точности шаг
можно удвоить, если он не превзойдет максимального НМ и удвоенный шаг не
выведет за пределы интервала интегрирования. Если увеличение шага
допустимо, то блок 32 это выполняет и далее все производится как при
дошагивании, но без взвода признака конца. Если увеличение шага
недопустимо, то в цикле 37, 38 выполняется подготовка к продолжению
расчетов с прежним шагом. Из трех последних точек средняя делается
начальной для выполнения контрольного шага удвоенной величины НВ, а
последняя , - начальной для очередного малого шага Н.
6 Блок - схема алгоритма метода Рунге - Кутта с автоматическим выбором шага
[pic] Рисунок 3
7 Подпрограмма метода Рунге - Кутта с автоматическим выбором шага
Подпрограмма ARK позволяет решать произвольную систему N-го порядка с автоматическим выбором шага интегрирования. Эта подпрограмма обращается: к подпрограмме одного шага- SH, к подпрограмме вычисления правых частей системы, к подпрограмме вывода.
Подпрограмма SH записана в универсальном виде и приведена выше.
Головной вызывающий модуль, а также подпрограммы правых частей и вывода
Пользователь должен составить самостоятельно.
В главном модуле оператором EXTERNAL должны быть объявлены имена
подпрограмм правых частей и вывода. Оператором DIMENSION должны быть
объявлены массивы - фактические параметры подпрограммы ARK. Эти массивы, по
желанию, могут объявляться как одномерные или как двухмерные. Размеры
массивов (N,4),(N,3),(N,4), где N-порядок системы. Формальные имена этих
массивов в подпрограмме ARK, соответственно, X,R,F. В главном модуле первые
N элементов массива, соответствующего X, заполняются начальными условиями, а следующие N элементов заполняются весовыми коэффициентами погрешности. В подпрограммах правых частей и вывода в первых N элементах массива, соответствующего X, при входе содержатся текущие значения всех N переменных
системы и не должны там переопределяться. Первые N элементов массива, соответствующего F, должны заполняться в подпрограмме правых частей
вычисляемыми там значениями правых частей системы.
Формальными параметрами в подпрограмме правых частей должны быть параметры (T,X,F,N), где T-независимая переменная системы.
Рекомендуем скачать другие рефераты по теме: реферат на тему работа курсовые работы, изложение 4.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата