std/complex
SourceEditЭтот модуль реализует комплексные числа и базовые математические операции над ними.
Комплексные числа в настоящее время являются обобщенными для 64-битных или 32-битных чисел с плавающей точкой.
Пример:
import std/complex from std/math import almostEqual, sqrt let z1 = complex(1.0, 2.0) z2 = complex(3.0, -4.0) assert almostEqual(z1 + z2, complex(4.0, -2.0)) assert almostEqual(z1 - z2, complex(-2.0, 6.0)) assert almostEqual(z1 * z2, complex(11.0, 2.0)) assert almostEqual(z1 / z2, complex(-0.2, 0.4)) assert almostEqual(abs(z1), sqrt(5.0)) assert almostEqual(conjugate(z1), complex(1.0, -2.0)) let (r, phi) = z1.polar assert almostEqual(rect(r, phi), z1)
Импорты
- math, strformat
Типы
Complex[T] = object re*, im*: T
- Комплексное число, состоящее из вещественной и мнимой части. Source Edit
Проц
func `$`(z: Complex): string
- Возвращает строковое представление
zв формате"(re, im)".Пример:
doAssert $complex(1.0, 2.0) == "(1.0, 2.0)"
Исходный код Редактировать func `*`[T](x, y: Complex[T]): Complex[T]
- Перемножает два комплексных числа. Исходный код Редактировать
func `*`[T](x: Complex[T]; y: T): Complex[T]
- Перемножает комплексное число и действительное число. Исходный код Редактировать
func `*`[T](x: T; y: Complex[T]): Complex[T]
- Перемножает действительное число и комплексное число. Исходный код Редактировать
func `*=`[T](x: var Complex[T]; y: Complex[T])
- Перемножает
xнаy. Исходный код Редактировать func `+`[T](x, y: Complex[T]): Complex[T]
- Складывает два комплексных числа. Исходный код Редактировать
func `+`[T](x: Complex[T]; y: T): Complex[T]
- Складывает комплексное число и действительное число. Исходный код Редактировать
func `+`[T](x: T; y: Complex[T]): Complex[T]
- Складывает действительное число и комплексное число. Исходный код Редактировать
func `+=`[T](x: var Complex[T]; y: Complex[T])
- Складывает
yкx. Исходный код Редактировать func `-`[T](x, y: Complex[T]): Complex[T]
- Вычитает два комплексных числа. Исходный код Редактировать
func `-`[T](x: Complex[T]; y: T): Complex[T]
- Вычитает действительное число из комплексного числа. Исходный код Редактировать
func `-`[T](x: T; y: Complex[T]): Complex[T]
- Вычитает комплексное число из действительного числа. Исходный код Редактировать
func `-`[T](z: Complex[T]): Complex[T]
- Унарный минус для комплексных чисел. Исходный код Редактировать
func `-=`[T](x: var Complex[T]; y: Complex[T])
- Вычитает
yизx. Исходный код Редактировать func `/`[T](x, y: Complex[T]): Complex[T]
- Делит два комплексных числа. Исходный код Редактировать
func `/`[T](x: Complex[T]; y: T): Complex[T]
- Делит комплексное число на действительное число. Исходный код Редактировать
func `/`[T](x: T; y: Complex[T]): Complex[T]
- Делит действительное число на комплексное число. Исходный код Редактировать
func `/=`[T](x: var Complex[T]; y: Complex[T])
- Делит
xнаyна месте. Исходный код Редактировать func `==`[T](x, y: Complex[T]): bool
- Сравнивает два комплексных числа на равенство. Исходный код Редактировать
func abs[T](z: Complex[T]): T
- Возвращает абсолютное значение
z, т. е. расстояние от (0, 0) доz. Исходный код Редактировать func abs2[T](z: Complex[T]): T
- Возвращает квадрат абсолютного значения
z, т. е. квадрат расстояния от (0, 0) доz. Это более эффективно, чемabs(z) ^ 2. Исходный код Редактировать func almostEqual[T: SomeFloat](x, y: Complex[T]; unitsInLastPlace: Natural = 4): bool
-
Проверяет, являются ли два комплексных значения почти равными, используя машинный эпсилон.
Два комплексных значения считаются почти равными, если их вещественные и мнимые компоненты почти равны.
unitsInLastPlace— максимальное количество единиц в последнем разряде допустимой разницы при сравнении двух чисел. Чем больше значение, тем больше допускается погрешность. Значение0означает, что два числа должны быть точно одинаковыми, чтобы считаться равными.Машинный эпсилон должен быть масштабирован до величины используемых значений и умножен на требуемую точность в ULP, если разница не является субнормальной.
Исходный код Редактировать func arccos[T](z: Complex[T]): Complex[T]
- Возвращает обратный косинус
z. Исходный код Редактировать func arccosh[T](z: Complex[T]): Complex[T]
- Возвращает обратный гиперболический косинус
z. Исходный код Редактировать func arccot[T](z: Complex[T]): Complex[T]
- Возвращает обратную котангенс
z. Исходный код Редактировать func arccoth[T](z: Complex[T]): Complex[T]
- Возвращает обратную гиперболическую котангенс
z. Исходный код Редактировать func arccsc[T](z: Complex[T]): Complex[T]
- Возвращает обратную косеканс
z. Исходный код Редактировать func arccsch[T](z: Complex[T]): Complex[T]
- Возвращает обратную гиперболическую косеканс
z. Исходный код Редактировать func arcsec[T](z: Complex[T]): Complex[T]
- Возвращает обратную секанс
z. Исходный код Редактировать
proc formatValue(result: var string; value: Complex; specifier: string)
- Стандартная реализация форматирования для
Complex. Не имеет особого смысла вызывать её напрямую, но её существование требуется макросом&. Для комплексных чисел добавляется специальный спецификатор 'j', который форматирует значение как (A+Bj), как в математике. Source Edit func ln[T](z: Complex[T]): Complex[T]
- Возвращает (главное значение) натурального логарифма
z. Source Edit func rect[T](r, phi: T): Complex[T]
- Возвращает комплексное число с полярными координатами
rиphi.result.re = r * cos(phi)result.im = r * sin(phi)См. также:
- polar func для обратной операции
func sech[T](z: Complex[T]): Complex[T]
- Возвращает гиперболический секанс
z. Исходный код Изменить func sgn[T](z: Complex[T]): Complex[T]
- Возвращает фазу
zв виде комплексного числа единичной длины или 0, еслиzравно 0. Исходный код Изменить func sin[T](z: Complex[T]): Complex[T]
- Возвращает синус
z. Исходный код Изменить func sinh[T](z: Complex[T]): Complex[T]
- Возвращает гиперболический синус
z. Исходный код Изменить func sqrt[T](z: Complex[T]): Complex[T]
- Вычисляет (главное) квадратный корень из комплексного числа
z. Исходный код Изменить func tan[T](z: Complex[T]): Complex[T]
- Возвращает тангенс
z. Исходный код Изменить func tanh[T](z: Complex[T]): Complex[T]
- Возвращает гиперболический тангенс
z. Исходный код Изменить
Шаблоны
template im(arg: float32): Complex32
- Возвращает
argкак мнимое число (complex32(0, arg)). Исходный код Изменить template im(arg: float64): Complex64
- Возвращает
argкак мнимое число (complex64(0, arg)). Исходный код Изменить template im(arg: typedesc[float32]): Complex32
- Возвращает мнимую единицу (
complex32(0, 1)). Исходный код Изменить template im(arg: typedesc[float64]): Complex64
- Возвращает мнимую единицу (
complex64(0, 1)). Исходный код Изменить
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/complex.html