численные методы моделирования
.pdf110
Наименование |
KvadroExtInt |
|
|
Функция |
Вычисляет значение экстремума одномерной функции |
Синтаксис |
float KvadroExtInt( float (*)func( float ), float a, float b, |
Прототип в |
float eps ) |
emath.h |
|
Описание |
Подпрограмма, вычисляющая значение экстремума од- |
|
номерной функции func() методом квадратичной интер- |
|
поляции-экстраполяции на отрезке унимодальности от a |
|
до b и расчетной точностью – eps |
|
|
Наименование |
DelPol |
|
|
Функция |
Вычисляет значение экстремума одномерной функции |
Синтаксис |
float DelPol( float (*)func( float ), float a, float b, float eps ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение экстремума од- |
|
номерной функции func() методом деления отрезка по- |
|
полам на отрезке унимодальности от a до b и расчетной |
|
точностью – eps |
|
|
Наименование |
Au |
|
|
Функция |
Вычисляет значение экстремума одномерной функции |
Синтаксис |
float Au( float (*)func( float ), float a, float b, float eps ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение экстремума од- |
|
номерной функции func() методом золотого сечения на |
|
отрезке унимодальности от a до b и расчетной точно- |
|
стью – eps |
|
|
Наименование |
Fmin |
|
|
Функция |
Вычисляет значение экстремума одномерной функции |
Синтаксис |
float Fmin( float (*)func( float ), float a, float b, float eps ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение экстремума од- |
111
номерной функции func() комбинированным методом на отрезке унимодальности от a до b и расчетной точно- стью – eps
7.6. Библиотека подпрограмм поиска экстремума многомерной функ-
ции:
Наименование |
KvItn3d |
|
|
Функция |
Вычисляет значение экстремума многомерной функции |
Синтаксис |
void KvInt3d( float (*)func( float *), int n, float h, |
Прототип в |
float eps, float x[], float *f ) |
emath.h |
|
Описание |
Подпрограмма, возвращающая значение аргументов x[] |
|
и величину экстремума *f многомерной функции func() |
|
с числом переменных n методом квадратичной интерпо- |
|
ляции-экстраполяции с шагом h и расчетной точностью |
|
eps |
|
|
Наименование |
SkSpusk3d |
|
|
Функция |
Вычисляет значение экстремума многомерной функции |
Синтаксис |
void SkSpusk3d( float (*)func( float * ), int n, float h, |
Прототип в |
float eps, float x[], float *f ) |
emath.h |
|
Описание |
Подпрограмма, возвращающая значение аргументов x[] |
|
и величину экстремума *f многомерной функции func() |
|
с числом переменных n методом скоростного цикличе- |
|
ского спуска с шагом h и расчетной точностью eps |
|
|
Наименование |
Spusk3d |
|
|
Функция |
Вычисляет значение экстремума многомерной функции |
Синтаксис |
void Spusk3d( float (*)func( float * ), int n, float h, |
Прототип в |
float eps, float x[], float *f ) |
emath.h |
|
Описание |
Подпрограмма, возвращающая значение аргументов x[] |
|
и величину экстремума *f многомерной функции func() |
|
с числом переменных n методом скоростного спуска с |
|
шагом h и расчетной точностью eps |
112
7.7. Библиотека подпрограмм-функций по нелинейному сглаживанию данных:
Наименование |
sgl3 |
|
|
Функция |
Выполняет нелинейное сглаживание исходных данных |
Синтаксис |
void sgl3( float x[], int n, float y[] ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая нелинейное сглаживание |
|
по трем точкам исходного массива x[] с числом узлов – |
|
n, y[] – результирующий массив |
|
|
Наименование |
sgl5 |
|
|
Функция |
Выполняет нелинейное сглаживание исходных данных |
Синтаксис |
void sgl5( float x[], int n, float y[] ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая нелинейное сглаживание |
|
по пяти точкам исходного массива x[] с числом узлов – |
|
n, y[] – результирующий массив |
|
|
Наименование |
sgl7 |
|
|
Функция |
Выполняет нелинейное сглаживание исходных данных |
Синтаксис |
void sgl7( float x[], int n, float y[] ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая нелинейное сглаживание |
|
по семи точкам исходного массива x[] с числом узлов – |
|
n, y[] – результирующий массив |
7.8. Библиотека подпрограмм сортировки одномерного массива: |
|
Наименование |
Sort |
|
|
Функция |
Выполняет сортировку одномерного массива |
Синтаксис |
void Sort( float x[], int n ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая сортировку методом пу- |
|
зырька одномерного массива x[] с числом узлов – n |
113
Наименование |
Sort2 |
|
|
Функция |
Выполняет сортировку одномерных массивов |
Синтаксис |
void Sort2( float x[], float y[], int n ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая сортировку методом пу- |
|
зырька двух одномерных массивов x[] и y[] с числом уз- |
|
лов – n |
7.9. Библиотека подпрограмм функций по расчету систем линейных ал- гебраических уравнений:
Наименование |
GaussJordan |
|
|
Функция |
Выполняет расчет системы линейных алгебраических |
|
уравнений |
Синтаксис |
void GaussJordan( float a[], float b[], int n, float x[] ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая расчет коэффициентов |
|
при неизвестных x[] системы линейных алгебраических |
|
уравнений методом Гаусса-Жордана с исходной двух- |
|
мерной матрицей a[][], составленной из коэффициентов |
|
при неизвестных, b[] – массив известных правых частей, |
|
n – число уравнений (неизвестных) в системе |
|
|
Наименование |
Zeidel |
|
|
Функция |
Выполняет расчет системы линейных алгебраических |
Синтаксис |
уравнений |
void Zeidel( float a[], float b[], float z[], float eps, int n, |
|
Прототип в |
float x[] ) |
emath.h |
|
Описание |
Подпрограмма, выполняющая расчет коэффициентов |
|
при неизвестных x[] системы линейных алгебраических |
|
уравнений итерационным методом Зейделя с исходной |
|
двухмерной матрицей a[][], составленной из коэффици- |
|
ентов при неизвестных, b[] – массив известных правых |
|
частей, z[] – массив начальных приближений, eps – точ- |
|
ность вычислений, n – число уравнений в системе |
114
Наименование |
Gauss |
|
|
Функция |
Выполняет расчет системы линейных алгебраических |
|
уравнений |
Синтаксис |
void Gauss( float a[], float b[], int n, float x[] ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая расчет коэффициентов |
|
при неизвестных x[] системы линейных алгебраических |
|
уравнений методом Гаусса с исходной двухмерной мат- |
|
рицей a[][], составленной из коэффициентов при неиз- |
|
вестных, b[] – массив известных правых частей, n – чис- |
|
ло уравнений (неизвестных) в системе |
|
|
Наименование |
Gauss_Gl |
|
|
Функция |
Выполняет расчет системы линейных алгебраических |
|
уравнений |
Синтаксис |
void Gauss_Gl( float a[], float b[], int n, float x[] ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая расчет коэффициентов |
|
при неизвестных x[] системы линейных алгебраических |
|
уравнений методом Гаусса с выбором главного элемента |
|
с исходной двухмерной матрицей a[][], составленной из |
|
коэффициентов при неизвестных, b[] – массив извест- |
|
ных правых частей, n – число уравнений (неизвестных) в |
|
системе |
|
|
Наименование |
Forsythe |
Функция |
Выполняет расчет системы линейных алгебраических |
Синтаксис |
уравнений |
void Forsythe( float a[], float b[], int n, float x[], |
|
Прототип в |
float *obusl ) |
emath.h |
|
Описание |
Подпрограмма, выполняющая расчет коэффициентов |
|
при неизвестных x[] системы линейных алгебраических |
|
уравнений методом Форсайта с исходной двухмерной |
|
матрицей a[][], составленной из коэффициентов при не- |
|
известных, b[] – массив известных правых частей, |
|
|
115
|
n – число уравнений (неизвестных) в системе; obusl – |
|
степень обусловленности решения. |
|
|
Наименование |
Korney |
|
|
Функция |
Выполняет расчет системы линейных алгебраических |
|
уравнений |
Синтаксис |
void Korney( float a[], float b[], int n, int m, float x[] ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, выполняющая расчет коэффициентов |
|
при неизвестных x[] системы линейных алгебраических |
|
уравнений методом квадратных корней с исходной |
|
двухмерной переопределенной (m>n) матрицей a[][], со- |
|
ставленной из коэффициентов при неизвестных, b[] – |
|
массив известных правых частей, n – число неизвестных |
всистеме, m – число уравнений
7.10.Библиотека подпрограмм-функций предназначенных для решения нелинейных уравнений вида f (x) = 0:
Наименование |
Newton |
|
|
Функция |
Вычисляет корень трансцендентного уравнения f(x) = 0 |
Синтаксис |
float Newton(float (*)func( float ), float a, float b, float eps) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение корня трансцен- |
|
дентной функции func() методом Ньютона (касатель- |
|
ных) на отрезке локализации от a до b и расчетной точ- |
|
ностью – eps |
|
|
Наименование |
Kombi |
|
|
Функция |
Вычисляет корень трансцендентного уравнения f(x) = 0 |
Синтаксис |
float Kombi( float (*)func( float ), float a, float b, float eps ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение корня трансцен- |
|
дентной функции func() комбинированным методом |
|
(хорд-касательных) на отрезке локализации от a до b и |
|
расчетной точностью – eps |
116
Наименование |
Dihotom |
|
|
Функция |
Вычисляет корень трансцендентного уравнения f(x) = 0 |
Синтаксис |
float Dihotom( float (*)func( float ), float a, float b, |
Прототип в |
float eps ) |
emath.h |
|
Описание |
Подпрограмма, вычисляющая значение корня трансцен- |
|
дентной функции func() методом дихотомии (бисекции) |
|
на отрезке локализации от a до b и расчетной точностью |
|
– eps |
|
|
Наименование |
Zeroin |
|
|
Функция |
Вычисляет корень трансцендентного уравнения f(x) = 0 |
Синтаксис |
float Zeroin( float (*)func( float ), float a, float b, float eps ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение корня трансцен- |
|
дентной функции func() комплексным методом на от- |
|
резке локализации от a до b и расчетной точностью - eps |
|
|
Наименование |
Brent |
|
|
Функция |
Вычисляет корень трансцендентного уравнения f(x) = 0 |
Синтаксис |
float Brent( float (*)func( float ), float a, float b, float eps ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение корня трансцен- |
|
дентной функции func() методом Брента на отрезке ло- |
|
кализации от a до b и расчетной точностью – eps |
. |
|
Наименование |
AtkSt |
|
|
Функция |
Вычисляет корень трансцендентного уравнения f(x) = x |
Синтаксис |
float AtkSt( float (*)func( float ), float x0, float eps ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение корня трансцен- |
|
дентной функции func() методом Эйткена-Стиффенсона |
|
(f(x) = x) с начальным приближением x0 и расчетной |
117
точностью – eps
7.11. Библиотека подпрограмм для расчета систем нелинейных урав-
нений:
Наименование |
ModifNewton |
|
|
Функция |
Выполняет расчет системы нелинейных алгебраических |
Синтаксис |
уравнений |
void ModifNewton( int n, float x[], void (*)func(float *, |
|
Прототип в |
float *), float eps ) |
emath.h |
|
Описание |
Подпрограмма, выполняющая расчет коэффициентов |
|
при неизвестных x[] системы нелинейных алгебраиче- |
|
ских уравнений модифицированным методом Ньютона. |
|
n – число неизвестных в системе, x[] – массив начальных |
|
приближений и корней системы, func – функция с двумя |
|
входными параметрами, содержащей систему нелиней- |
|
ных уравнений, eps – расчетная точность |
|
|
Наименование |
ProstIteratio |
|
|
Функция |
Выполняет расчет системы нелинейных алгебраических |
Синтаксис |
уравнений |
void ProstIteratio( int n, float x[], void (*)func(float *, |
|
Прототип в |
float *), float eps ) |
emath.h |
|
Описание |
Подпрограмма, выполняющая расчет коэффициентов |
|
при неизвестных x[] системы нелинейных алгебраиче- |
|
ских уравнений модифицированным методом Ньютона. |
|
n – число неизвестных в системе, x[] – массив начальных |
|
приближений и корней системы, func – функция с двумя |
|
входными параметрами, содержащей систему нелиней- |
|
ных уравнений, eps – расчетная точность |
7.12. Библиотека подпрограмм для расчета специальных функций:
Наименование |
Gamma |
|
|
Функция |
Вычисляет значение гамма-функции |
Синтаксис |
float Gamma( float p, int *error ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение гамма-функции |
118
|
по параметру p. Переменная error – содержит код |
|
ошибки |
|
|
Наименование |
Bessel |
|
|
Функция |
Вычисляет значение функции Бесселя |
Синтаксис |
float Bessel( float p1, float p2, int *error ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение функции Бесселя |
|
по параметрам p1 и p2. Переменная error - содержит код |
|
ошибки вычислений |
|
|
Наименование |
Cosh |
|
|
Функция |
Вычисляет значение тригонометрического косинуса |
Синтаксис |
float Cosh( float p ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение тригонометриче- |
|
ского косинуса по параметру p |
|
|
Наименование |
Sinh |
|
|
Функция |
Вычисляет значение тригонометрического синуса |
Синтаксис |
float Sinh( float p ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение тригонометриче- |
|
ского синуса по параметру p |
|
|
Наименование |
ArcTanh |
|
|
Функция |
Вычисляет значение тригонометрического арктангенса |
Синтаксис |
float ArcTanh( float p ) |
Прототип в |
emath.h |
Описание |
Подпрограмма, вычисляющая значение тригонометриче- |
|
ского арктангенса по параметру p |
119
7.13. Библиотека суммарной статистической обработки данных:
Наименование |
SummaryStats |
|
|
|
Функция |
Определяет суммарную статистику данных |
|
||
Синтаксис |
void SummaryStats( float dataset[], int numobs, |
|||
|
|
int numcol, float minim[], |
||
|
|
float maxim[], float range[], |
||
|
|
float sumx[], float mean[], |
||
|
|
float variance[], float stddev[], |
||
Прототип в |
emath.h |
float semean[], float mode[] ) |
||
|
|
|
||
Описание |
Подпрограмма, определяющая суммарную статистику |
|||
|
данных представленных двумерным массивом dataset[] |
|||
|
с количеством строк numobs, столбцов – numcol. |
|||
|
Список выходных параметров: minim[] – массив мини- |
|||
|
мальных значений; maxim[] - массив максимальных зна- |
|||
|
чений; range[] – массив рангов; sumx[] – массив суммы |
|||
|
значений; mean[] – массив среднеарифметических зна- |
|||
|
чений; variance[] – массив коэффициент вариации |
|||
7.14. Библиотека расчета системы обыкновенных дифференциальных |
||||
уравнений: |
|
|
|
|
Наименование |
rkf |
|
|
|
Функция |
Подпрограмма расчета системы обыкновенных диффе- |
|||
Синтаксис |
рен-циальных уравнений |
|
|
|
void rkf( void (*func)(float x, float *y, float *fp), int n, |
||||
|
float xn, float xk, float h, float *y0, float *dx, |
|||
Прототип в |
float *dy, int *kol ) |
|
|
|
emath.h |
|
|
|
|
Описание |
Подпрограмма, расчета системы обыкновенных диффе- |
|||
|
ренциальных |
уравнений |
методом |
Рунге-Кутта- |
|
Фельберга с автоматическим выбором шага. Система |
|||
|
расчетных уравнений содержится в функции func c тре- |
|||
|
мя обязательными входными параметрами, n – число |
|||
|
уравнений в системе, xn, xk – начальное и конечное зна- |
|||
|
чение параметра по которому производится дифферен- |
|||
|
цирование, h – шаг дифференцирования, *y0 – массив |
|||
|
начальных значений рассчитываемых переменных. |
|||
|
Список выходных параметров: *dx – массив значений |
|||
|
параметра по которому выполнялось дифференцирова- |
|||
|
ние; *dy – двумерный массив результатов расчетов; kol |
|||
|
– количество данных в массивах *dx и *dy |
|