-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMathExtendent.cs
More file actions
154 lines (129 loc) · 5.05 KB
/
MathExtendent.cs
File metadata and controls
154 lines (129 loc) · 5.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
using System;
using System.Collections.Generic;
namespace MathExtended
{
/// <summary>
/// Класс с функциями дополняющими Math
/// </summary>
public static class MathExtendent
{
/// <summary>
///Секанс
/// </summary>
/// <param name="x"></param>
/// <returns>Возвращает cэканс x</returns>
public static double Sec(double x)
{
return 1 / Math.Cos(x);
}
/// <summary>
/// Гиперболический секанс
/// </summary>
/// <param name="x"></param>
/// <returns></returns>
public static double Sch(double x)
{
return 1 / Math.Cosh(x);
}
/// <summary>
///Косеканс
/// </summary>
/// <param name="x"></param>
/// <returns>Возвращает коcеканс x</returns>
public static double Cosec(double x)
{
return 1 / Math.Sin(x);
}
/// <summary>
/// Гиперболический котангенс
/// </summary>
/// <param name="x"></param>
/// <returns>Котангенс x</returns>
public static double Ctgh(double x)
{
return 1 / Math.Tanh(x);
}
/// <summary>
/// Гиперболический косеканс
/// </summary>
/// <param name="x"></param>
/// <returns></returns>
public static double Csch(double x)
{
return 1 / Sch(x);
}
/// <summary>
/// Вычисляет алгебраическую сумму функции
/// </summary>
/// <param name="i">Индекс суммирования</param>
/// <param name="n">Верхняя граница</param>
/// <param name="func">Функция</param>
/// <returns><see cref="double"/> Алгебраическая сумма</returns>
public static double AlgebraicSum(double i, double n, Func<double, double> func)
{
double sum = 0;
for (; i <= n; i++)
{
sum += func(i);
}
return sum;
}
/// <summary>
/// Вычисляет алгебраическую сумму функции
/// </summary>
/// <param name="i">Индекс суммирования</param>
/// <param name="min">Нижняя граница</param>
/// <param name="max">Верхняя граница</param>
/// <param name="func">Функция</param>
/// <returns><see cref="double"/> Алгебраическая сумма</returns>
public static double AlgebraicSum(double i, double min, double max, Func<double, double> func)
{
double sum = 0;
for (; i <= max && i >= max; i++)
{
sum += func.Invoke(i);
}
return sum;
}
/// <summary>
/// Проводит табулирование функции
/// </summary>
/// <param name="x0">Начальное значение</param>
/// <param name="xk">Максимальное значение</param>
/// <param name="dx">Шаг</param>
/// <param name="func">Табулируемая функции</param>
/// <returns><see cref="TabulateResult"/> структура со значениями аргумента и функции</returns>
public static TabulateResult TabulateFunction(double x0, double xk, double dx, Func<double, double> func)
{
List<double> xValues = new List<double>();
List<double> yValues = new List<double>();
for (; x0 <= xk; x0 += dx)
{
xValues.Add(x0);
yValues.Add(func(x0));
}
return new TabulateResult(xValues.ToArray(), yValues.ToArray());
}
/// <summary>
/// Проводит табулирование функции
/// </summary>
/// <param name="x0">Начальное значение</param>
/// <param name="xk">Максимальное значение</param>
/// <param name="dx">Шаг</param>
/// <param name="func">Табулируемая функции</param>
/// <param name="xValuesArray">Массив для значений X</param>
/// <param name="yValuesArray">Массив для значений Y</param>
public static void TabulateFunction(double x0, double xk, double dx, Func<double, double> func, out double[] xValuesArray, out double[] yValuesArray)
{
List<double> xValues = new List<double>();
List<double> yValues = new List<double>();
for (; x0 <= xk; x0 += dx)
{
xValues.Add(x0);
yValues.Add(func(x0));
}
xValuesArray = xValues.ToArray();
yValuesArray = yValues.ToArray();
}
}
}