Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Исследование RC-генератора синусоидальных колебаний

                           |
|PRAV         |Подпрограмма.   |Подпрограмма, возвращающая значения           |
|             |                |производных.                                  |
|N            |Целый.          |Порядок решаемой системы.                     |
|XN           |Вещественный.   |Исходный массив начальной точки шага.         |
|XK           |Вещественный.   |Результирующий массив конечной точки шага.    |
|F            |Вещественный.   |Массив возвращаемых подпрограммой РRAV        |
|             |                |производных.                                  |
|TN           |Вещественный.   |Начальное на шаге значение независимой        |
|             |                |переменной.                                   |
|K            |Целый.          |Номер переменной.                             |
|J            |Целый.          |Номер частичного приращения.                  |
|T            |Вещественный.   |Независимая переменная.                       |
|H            |Вещественный.   |Задаваемая величина шага.                     |
|P            |Вещественный    |Массив размера (4,2), содержащий необходимые  |
|             |                |для вычисления и накопления приращений        |
|             |                |константы (0,.5,.5,1,6,3,3,6)                 |
|R            |Вещественный    |Рабочий массив размера (N,3)                  |

Блок-схема алгоритма изображена на Рисунке 2. Номер переменной записан как
верхний индекс.
    В цикле с номерами блоков 2, 3, 4, 5 обнуляются второй и третий столбцы
рабочего массива R.
    Внешний цикл с номерами блоков 6 - 18 вычисляет производные в четырех
им формируемых точках и накапливает средневзвешенное значение приращений в
третьем столбце рабочего массива R. Вдоль столбца расположены значения,
соответствующие всем N искомым переменным.
     Блок 7 задает в цикле последовательно значения независимой переменной
: TN,  TN+0.5H,  TN+0.5H,  TN+H .Константы 0,  0.5,  0.5 и 1 содержатся в
первом столбце массива Р.
      Цикл 8 - 11 записывает в первый столбец рабочего массива значения
переменных для вычисления производных. Для этого к начальному значению
переменной прибавляется сначала нулевое приращение, затем половина
приращения, получаемого на шаге со значением производной в начальной точке,
потом половина приращения, получаемого на шаге с значением производной во
второй точке, и , наконец, полное приращение, получаемое на шаге со
значением производной в третьей точке.
      В блоке 12 выполняется обращение к подпрограмме вычисления
производных. Подпрограмме передается значение независимой переменной и
первый столбец рабочего массива, содержащий значения зависимых переменных в
задаваемой точке. Подпрограмма возвращает массив F значений производных.
      В цикле 13 - 16 во второй столбец рабочего массива по вычисленным
значениям производных записываются приращения, а в третьем столбце
накапливаются суммы четырех приращений с весовыми коэффициентами 1/6,  1/3,
 1/3,  1/6 .  Константы  6,  3,  3,  6 для этого хранятся во втором столбце
массива Р.
      В цикле 19 - 22 полученные приращения прибавляются к начальной точке
и результат записывается в выходной массив.
      В блоке 23 вычисляются производные в конечной точке шага.



        3 Блок - схема алгоритма одного шага по методу Рунге - Кутта


                                    [pic]


                                  Рисунок 2


              4 Подпрограмма одного шага по методу Рунге-Кутта.


      SUBROUTINE SH(TN,H,XN,XK,F,PRAV,N,R)
      DIMENSION XN(N),XK(N),F(N),P(4,2),R(N,3)
      DATA P/0.,.5,.5,1.,6.,3.,3.,6./
      DO 1 K=1,N
      R(K,2)=0.
    1 R(K,3)=0.
       DO 4 J=1,4                                                    !
Начало внешнего цикла определения 4-х приращений
       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). Так случается в
начале интервала интегрирования и тогда, когда предыдущий шаг оказался
неудачным и из-за большой погрешности величина шага умень
12345След.
скачать работу

Исследование RC-генератора синусоидальных колебаний

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ