Библиотека численных методов на языке Fortran 90. Численное дифференцирование
Автор cайта:
Владимир
Потемкин

fortran-90@yandex.ru
Язык программирования Фортран

Численное дифференцирование

>DF10. Вычисление множества значений производной для функции, заданной таблично в неравноотстоящих точках.

>DF12. Вычисление множества значений производной для функции, заданной таблично в равноотстоящих точках по трем точкам.

>DF13. Вычисление множества значений производной для функции, заданной таблично в равноотстоящих точках по пяти точкам.

>DF16. Вычисление значения производной в середине интервала для функции, заданной таблично в неравноотстоящих точках.

>DF18. Вычисление значения производной в середине интервала для функции, заданной таблично в равноотстоящих точках по трем точкам.

>DF19. значения производной в середине интервала для функции, заданной таблично в равноотстоящих точках по пяти точкам.

DF10

Программа DF10 вычисляет множество значений производной dy1, dy2, ..., dyn в заданных точках x1, x2, ..., xn для таблично-заданной функции yi=y(xi), i=1, 2, ..., n. В каждой точке xi производная заданной функции считается как производная от интерполяционного многочлена Лагранжа второй степени, построенного по трем последовательным точкам (xi-1, yi-1), (xi, yi), (xi+1, yi+1).
Искомые значения производных вычисляются по формулам:

formula

 

Вызов программы

CALL DF10(X, Y, DY, Error)

Параметры программы

X, Y - входные параметры;
DY, Error - выходные параметры;

Real X(1:N), Y(1:N) - массивы, задающие значения аргумента и функции. Массив X должен быть упорядочен в возрастающем порядке;
Real DY(1:N) - массив, содержащий вычисленные значения производной. При вызове массив можно совмещать в памяти с массивом X или Y;
Integer Error - индикатор ошибки. В процессе выполнения программы параметр принимает значение 0, если N>=3 и значение 65, если N<3. В последнем случае вычисления не производятся.

<

 

Вернуться к оглавлению    Скачать DF10

DF12

Программа DF12 вычисляет множество значений производной dy1, dy2, ..., dyn в заданных равноотстоящих точках x1, x2, ..., xn с шагом h=xi-xi-1 (i=2, ..., n) для таблично-заданной функции yi=y(xi), i=1, 2, ..., n. В каждой точке xi производная заданной функции считается как производная от интерполяционного многочлена Лагранжа второй степени, построенного по трем последовательным точкам (xi-1, yi-1), (xi, yi), (xi+1, yi+1).
Искомые значения производных вычисляются по формулам:

formula

 

Вызов программы

CALL DF12(Y, H, DY, Error)

Параметры программы

Y, H - входные параметры;
DY, Error - выходные параметры;

Real Y(1:N) - массив, задающий значение функции;
Real H - шаг изменения аргумента. Если заданные значения функции соответствуют возрастающим значениям аргумента, то H>0, в противном случае H<0;
Real DY(1:N) - массив, содержащий вычисленные значения производной. При вызове массив можно совмещать в памяти с массивом Y;
Integer Error - индикатор ошибки. В процессе выполнения программы параметр принимает значение 0, если N>=3 и значение 65, если N<3 или H=0. В этих случаях вычисления не производятся.

 

Вернуться к оглавлению    Скачать DF12

DF13

Программа DF13 вычисляет множество значений производной dy1, dy2, ..., dyn в заданных равноотстоящих точках x1, x2, ..., xn с шагом h=xi-xi-1 (i=2, ..., n) для таблично-заданной функции yi=y(xi), i=1, 2, ..., n. В каждой точке xi производная заданной функции считается как производная от интерполяционного многочлена Лагранжа четвертой степени, построенного по пяти последовательным точкам (xk, yk), k=i-2, i-1, i, i+1, i+2.
Искомые значения производных вычисляются по формулам:

formula

 

Вызов программы

CALL DF13(Y, H, DY, Error)

Параметры программы

Y, H - входные параметры;
DY, Error - выходные параметры;

Real Y(1:N) - массив, задающий значение функции;
Real H - шаг изменения аргумента. Если заданные значения функции соответствуют возрастающим значениям аргумента, то H>0, в противном случае H<0;
Real DY(1:N) - массив, содержащий вычисленные значения производной. При вызове массив можно совмещать в памяти с массивом Y;
Integer Error - индикатор ошибки. В процессе выполнения программы параметр принимает значение 0, если N>=5 и значение 65, если N<5 или H=0. В этих случаях вычисления не производятся.

 

Вернуться к оглавлению    Скачать DF13

DF16

Программа DF16 вычисляет значение производной dy в заданной точке x для таблично-заданной функции yi=y(xi), i=1, 2, ..., n. Производная функции считается как производная от интерполяционного многочлена Лагранжа второй степени, построенного по трем последовательным точкам (xi-1, yi-1), (xi, yi), (xi+1, yi+1).
Искомое значение производной вычисляется по формуле:

dy = [-t•yi + (t-hi-1)•(hi+1/hi)•yi-1 + (t+hi+1)•(hi-1/hi)•yi+1]/(hi-1•hi+1)

где hi-1 = xi-xi-1, hi = xi+1-xi-1, hi+1 = xi+1-xi, t = 2x - xi-1 - xi+1.

 

Вызов программы

CALL DF16(X, Y, XX, DY, Error)

Параметры программы

X, Y, XX - входные параметры;
DY, Error - выходные параметры;

Real X(1:N), Y(1:N) - массивы, задающие значения аргумента и функции. Массив X должен быть упорядочен в возрастающем порядке;
Real XX - значение аргумента, в котором требуется вычислить значение производной;
Real DY - вычисленное значение производной;
Integer Error - индикатор ошибки. В процессе выполнения программы параметр принимает значение 0, если N>=3 и значение 65, если N<3. В этом случае вычисления не производятся.

 

Вернуться к оглавлению    Скачать DF16

DF18

Программа DF18 вычисляет значение производной dy в заданной точке x для функции yi=y(xi), заданной таблично в равноотстоящих точках x1 ... xn с шагом h = xi-xi-1, i=2, ..., n. Производная функции считается как производная от интерполяционного многочлена Лагранжа второй степени, построенного по трем последовательным точкам (xi-1, yi-1), (xi, yi), (xi+1, yi+1).
Искомое значение производной вычисляется по формуле:

dy = [-2p•yi + (p - ½)•yi-1 + (p + ½)•yi+1]/h,   i=2, ..., n-1

где p=(x-xi)/h.

 

Вызов программы

CALL DF18(X, Y, XX, DY, Error)

Параметры программы

X, Y, XX - входные параметры;
DY, Error - выходные параметры;

Real X(1:N), Y(1:N) - массивы, задающие значения аргумента и функции. Массив X заполнен равноотстоящими значениями аргумента;
Real XX - значение аргумента, в котором требуется вычислить значение производной;
Real DY - вычисленное значение производной;
Integer Error - индикатор ошибки. В процессе выполнения программы параметр принимает значение 0, если N>=3 и значение 65, если N<3. В последнем случае вычисления не производятся.

 

Вернуться к оглавлению    Скачать DF18

DF19

Программа DF19 вычисляет значение производной dy в заданной точке x для функции yi=y(xi), заданной таблично в равноотстоящих точках x1 ... xn с шагом h = xi-xi-1, i=2, ..., n. Производная функции считается как производная от интерполяционного многочлена Лагранжа второй степени, построенного по пяти последовательным точкам (xk, yk), k=i-1, i-1, i, i+1, i+2.
Искомое значение производной вычисляется по формуле:

dy = [(1/12)•(2p3-3p2-p+1)•yi-2 - (1/6)•(4p3-3p2-8p+4)•yi-1 +
+ (1/2)•(2p3-5p)•yi - (1/6)•(4p3+3p2-8p-4)•yi+1 + (1/12)•(2p3+3p2-p-1)•yi+2]/h
,   i=3, ..., n-2


где p=(x-xi)/h.

 

Вызов программы

CALL DF19(X, Y, XX, DY, Error)

Параметры программы

X, Y, XX - входные параметры;
DY, Error - выходные параметры;

Real X(1:N), Y(1:N) - массивы, задающие значения аргумента и функции. Массив X заполнен равноотстоящими значениями аргумента;
Real XX - значение аргумента, в котором требуется вычислить значение производной;
Real DY - вычисленное значение производной;
&Integer Error - индикатор ошибки. В процессе выполнения программы параметр принимает значение 0, если N>=5 и значение 65, если N<5. В последнем случае вычисления не производятся.

 

Вернуться к оглавлению    Скачать DF19