RK2(FUN,H,X1,Y1,K,N,VEC)
где FUN – имя внешней подпрограммы-функции, в которой описано решаемое дифференциальное уравнение. Обязательно описать при помощи оператора EXTERNAL;
Н – шаг интегрирования;
Х1, Y1 – начальные значения Xo, Yo;
K – количество шагов между двумя сохраняемыми значениями;
N – количество значений;
VEC – результирующий вектор-столбец, длиной N.
При помощи параметра K вычисления можно производить для всех значений, а сохранять только одно из 3, 4, …. То есть можно будет построить график, например из 10 точек, но при расчётах будет использовано 200 точек. Точность расчетов сохраняется, а график выводится приближённо.
С Подпрограмма-функция вычисления дифференциального уравнения
FUNCTION FUN(X,Y)
FUN=2.*SIN(X)+SQRT(3.)*COS(Y)
RETURN
END
C Головная программа
DIMENSION VEC(1000)
EXTERNAL FUN
WRITE (6,*)’Введите значения Xo, Yo, Xк, dx’
READ (5,*) X0,Y0,XK,DX
K=10
При K=10 будет сохранять каждое 10 значение.
N=((XK–X0)/DX+1)/K
Происходит вычисление общего количества сохраняемых точек, где (XK–X0)/DX+1) – количество всех точек при расчёте.
CALL RK2(FUN,DX,X0,Y0,K,N,VEC)
После возврата из подпрограммы RK2 мы имеем заполненный массив VEC в количестве N элементов.
WRITE (6,*) (VEC(I), I=1,N)Грубый вывод на экран массива с результатами расчета
C Построение графика и вывод результатов расчёта на экран
Дата добавления: 2015-06-10; просмотров: 637;