diff options
author | justanothercatgirl <sotov@twistea.su> | 2024-12-06 15:08:31 +0300 |
---|---|---|
committer | justanothercatgirl <sotov@twistea.su> | 2024-12-06 15:08:31 +0300 |
commit | a470c304199866aa1f3d39ff22ec30734f03d617 (patch) | |
tree | b08858e91b39fc108f2ab9b83c03ef7f881711ba /include | |
parent | 24b8430fa7a9a81b88c5c172c99bbc9a520ff4ba (diff) |
сделал 8 задание))))task8
Diffstat (limited to 'include')
-rw-r--r-- | include/diffeq.h | 22 | ||||
-rw-r--r-- | include/equations.h | 10 | ||||
-rw-r--r-- | include/types.h | 29 |
3 files changed, 61 insertions, 0 deletions
diff --git a/include/diffeq.h b/include/diffeq.h new file mode 100644 index 0000000..51f85e6 --- /dev/null +++ b/include/diffeq.h @@ -0,0 +1,22 @@ +#ifndef T8_DIFFEQ_H +#define T8_DIFFEQ_H +#include <types.h> + +/* + * `eqfs` - Массив функций + * `init` - массив начальных условий f_n(a) = init[n] (значение функций в начале интервала!) + * `files` = массив файлов, в который записывать получившиеся приближения + * `n` - количество уравнений ( и начальных условий ) ( и переменных ) + * `a` - начало интервала решения ( по t? ) + * `b` - конец интервала решения ( по t? ) + * `dt` - шаг по времени + */ +void difeq_solve_euler(eqf_t *eqfs, f64 *init, const char **files, usz n, f64 a, f64 b, f64 dt); + +/* + * То же самое, что и прошлая функция, только использует не метод эйлера, а метод рунге-кутты. + * Аргументы все точно такие же + */ + void difeq_solve_RK(eqf_t *eqfs, f64 *init, const char **files, usz n, f64 a, f64 b, f64 dt); + +#endif /* T8_DIFFEQ_H */ diff --git a/include/equations.h b/include/equations.h new file mode 100644 index 0000000..48936fb --- /dev/null +++ b/include/equations.h @@ -0,0 +1,10 @@ +#ifndef T8_EQUATIONS_H +#define T8_EQUATIONS_H +#include <types.h> + +f64 f1(f64* argv, usz argc, f64 t); +f64 f2(f64* argv, usz argc, f64 t); +f64 f3(f64* argv, usz argc, f64 t); +f64 f4(f64* argv, usz argc, f64 t); + +#endif /* T8_EQUATIONS_H */ diff --git a/include/types.h b/include/types.h new file mode 100644 index 0000000..c83c9bd --- /dev/null +++ b/include/types.h @@ -0,0 +1,29 @@ +#ifndef T8_TYPES_H +#define T8_TYPES_H + +#include <stdint.h> +#include <stddef.h> + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +typedef int8_t i8; +typedef int16_t i16; +typedef int32_t i32; +typedef int64_t i64; + +typedef float f32; +typedef double f64; + +typedef size_t usz; +typedef ptrdiff_t isz; + +#if __SIZEOF_LONG_DOUBLE__ == 16 +typedef long double f128; +#endif + +typedef f64(*eqf_t)(f64*, usz, f64); + +#endif |