aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorjustanothercatgirl <sotov@twistea.su>2024-12-06 15:08:31 +0300
committerjustanothercatgirl <sotov@twistea.su>2024-12-06 15:08:31 +0300
commita470c304199866aa1f3d39ff22ec30734f03d617 (patch)
treeb08858e91b39fc108f2ab9b83c03ef7f881711ba /include
parent24b8430fa7a9a81b88c5c172c99bbc9a520ff4ba (diff)
сделал 8 задание))))task8
Diffstat (limited to 'include')
-rw-r--r--include/diffeq.h22
-rw-r--r--include/equations.h10
-rw-r--r--include/types.h29
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