Решение системы тригонометрических уравнений
Здравствуйте, Дорогие друзья! Сегодня мы рассмотрим задание из части С. Это система из двух уравнений. Уравнения довольно своеобразны. Здесь и синус, и косинус, да ещё и корни имеются. Необходимо умение решать квадратные уравнения и неравенства, простейшие тригонометрические уравнения. В представленном задании их подробные решения не представлены, это вы уже должны уметь делать. По указанным ссылкам можете посмотреть соответствующую теорию и практические задания.
Основная трудность в подобных примерах заключается в том, что необходимо полученные решения сопоставлять с найденной областью определения, здесь легко можно допустить ошибку из-за невнимательности.
Решением системы всегда является пара(ры) чисел х и у, записывается как (х;у). Обязательно после того как получили ответ делайте проверку. Для вас представлено три способа, нет, не способа, а три пути рассуждения, которыми можно пойти.
Решите систему уравнений:
ПЕРВЫЙ ПУТЬ!
Найдём область определения уравнения. Известно, что подкоренное выражение имеет неотрицательное значение:
Решая неравенство 6х – х2 + 8 ≥ 0 получим 2 ≤ х ≤ 4 (1).
Величины 2 и 4 это радианы, 1 радиан как мы знаем ≈ 57,2970
В градусах приближённо можем записать 114,5490 ≤ х ≤ 229,1880.
Решая неравенство 2 – y – у2 ≥ 0 получим – 2 ≤ у ≤ 1 (2).
В градусах можем записать – 114,5490 ≤ у ≤ 57,2970.
Решая неравенство sin x ≥ 0 получим, что
Решая неравенство cos y ≥ 0 получим, что
Рассмотрим первое уравнение:
1. Оно равно нулю при х = 2 или при х = 4, но 4 радиана не принадлежит определения выражения (3).
*Угол в 4 радиана (229,1880) лежит в третьей четверти, в ней значение синуса отрицательно. Поэтому
остаётся только корень х = 2.
Рассмотрим второе уравнении при х = 2.
При этом значении х выражение 2 – y – у2 должно быть равно нулю, так как
Решим 2 – y – у2 = 0, получим y = – 2 или y = 1.
Отметим, что при y = – 2 корень из cos y не имеет решения.
*Угол в –2 радиана (– 114,5490) лежит в третьей четверти, а в ней значение косинуса отрицательно.
Поэтому остаётся только y = 1.
Таким образом, решением системы будет пара (2;1).
2. Первое уравнение так же равно нулю при cos y = 0, то есть при
Но учитывая найденную область определения (2), получим:
Рассмотрим второе уравнение при этом у.
Выражение 2 – y – у2 при у = – Пи/2 не равно нулю, значит для того, чтобы оно имело решение должно выполнятся условие:
Решаем:
Учитывая найденную область определения (1) получаем, что
Таким образом, решением системы является ещё одна пара:
*Мы нашли область определения.
Далее начали рассматривать первое уравнение и учитывая область определения вычислили «по кругу» все множители в системе.
ВТОРОЙ ПУТЬ!
Найдём область определения для выражения:
Известно, что выражение под корнем имеет неотрицательное значение.
Решая неравенство 6х – х2 + 8 ≥ 0, получим 2 ≤ х ≤ 4 (2 и 4 это радианы).
Рассмотрим Случай 1:
Пусть х = 2 или х = 4.
Если х = 4, то sin x < 0. Если х = 2, то sin x > 0.
Учитывая то, что sin x ≠ 0, получается, что в этом случае во втором уравнении системы 2 – y – у2 = 0.
Решая уравнение получим, что y = – 2 или y = 1.
Анализируя полученные значения можем сказать, что х = 4 и y = – 2 не является корнями, так как получим sin x < 0 и cos y < 0 соответственно, а выражение стоящее под корнем должно быть ≥ 0 (то есть числом неотрицательным).
Видно, что х = 2 и y = 1 входят область определения.
Таким образом, решением является пара (2;1).
Рассмотрим Случай 2:
Пусть теперь 2 < х < 4, тогда 6х – х2 + 8 > 0. Исходя из этого можем сделать вывод, что в первом уравнении cos y должен быть равен нулю.
Решаем уравнение, получим:
Во втором уравнении при нахождении области определения выражения:
Получим:
2 – y – у2 ≥ 0
– 2 ≤ у ≤ 1
Из всех решений уравнения cos y = 0 этому условию удовлетворяет только:
При данном значении у, выражение 2 – y – у2 ≠ 0. Следовательно, во втором уравнении sin x будет равен нулю, получим:
Из всех решений этого уравнения интервалу 2 < х < 4 принадлежит только
Значит решением системы будет ущё пара:
*Область определения сразу для всех выражений в системе находить не стали, рассмотрели выражение из первого уравнения (2 случая) и далее уже по ходу определяли соответствие найденных решений с установленной областью определения. На мой взгляд не очень удобно, как-то путано получается.
ТРЕТИЙ ПУТЬ!
Он схож с первым, но есть отличия. Также сначала находится область определения для выражений. Затем отдельно решается первое и второе уравнение, далее находится решение системы.
Найдём область определения. Известно, что подкоренное выражение имеет неотрицательное значение:
Решая неравенство 6х – х2 + 8 ≥ 0 получим 2 ≤ х ≤ 4 (1).
Величины 2 и 4 это радианы, 1 радиан как мы знаем ≈ 57,297 0
В градусах приближённо можем записать 114,5490 ≤ х ≤ 229,1880.
Решая неравенство 2 – y – у2 ≥ 0 получим – 2 ≤ у ≤ 1 (2).
В градусах можем записать – 114,5490 ≤ у ≤ 57,2970.
Решая неравенство sin x ≥ 0 получим, что
Решая неравенство cos y ≥ 0 получим, что
Известно, что произведение равно нулю тогда, когда один из множителей равен нулю (и другие при этом не теряют смысла).
Рассмотрим первое уравнение:
Значит
Решением cos y = 0 является:
Решением 6х – х2 + 8 = 0 являются х = 2 и х = 4.
Рассмотрим второе уравнение:
Значит
Решением sin x = 0 является:
Решением уравнения 2 – y – у2 = 0 будут y = – 2 или y = 1.
Теперь учитывая область определения проанализируем
полученные значения:
Так как 114,5490 ≤ х ≤ 229,1880, то данному отрезку принадлежит только одно решение уравнения sin x = 0, это x = Пи.
Так как – 114,5490 ≤ у ≤ 57,2970, то данному отрезку принадлежит только одно решение уравнения cos y = 0, это
Рассмотрим корни х = 2 и х = 4.
Из того, что sin x ≥ 0, следует, что х = 4 не будет корнем, так как
sin 4 ≤ 0.
Рассмотрим корни y = – 2 и y = 1.
Из того, что cos x ≥ 0, следует, что у = –2 не будет корнем, так как
cos (– 2) ≤ 0.
Далее просто необходимо перебрать все возможные решения:
То есть подставить их в систему и проверить!
Верно!
Неверно, значит данная пара не является решением!
Неверно, значит данная пара не является решением!
Верно!
Таким образом, решением системы будут две пары чисел:
*Здесь учитывая найденную область определения мы исключили все полученные значения, не принадлежащие ей и далее перебрали все варианты возможных пар.
{2n}}{(2n)!}.
$$
Есть ли короткое умное доказательство того, что $\cos(x+y) = \cos x \cos y — \sin x \sin y$ для всех действительных $x,y$? Я могу доказать это, используя ряды произведений или показав, что обе части (с фиксированным $y$) являются решениями $f»(x) = -f(x)$, $f(0) = \cos y$, $f'(0) = — \sin у$. Кто-нибудь знает другие (желательно гладкие!) доказательства?
- реальный анализ
- тригонометрия
$\endgroup$
7
$\begingroup$
Новый ответ на старый вопрос. Этот, возможно, самый блестящий из всех, принадлежит Эрхарду Шмидту.
$\endgroup$
4
$\begingroup$
Это уже обсуждалось в вопросе.
2=C$ $ 92=0$ везде, что означает $f\equiv 0$. $\черный треугольник$.
PROP Пусть $f$ — функция со второй производной везде такая, что $f»+f=0$ и $f'(0)=a$, $f(0)=b$. Тогда $$f=a\sin+b\cos $$
P Пусть $g=f-a\sin+b\cos$. Тогда $g»+g=0$ и $g'(0)=0$, $g(0)=0$. Из леммы следует, что $g\equiv 0$, так что $f=a\sin+b\cos$. $\черный треугольник$.
Продифференцировать по одной переменной и использовать единственность решения ОДУ второй степени с начальными условиями.
То есть ваш косинус слева подтверждает $$f»+f=0$$ и $f'(0)=–\sin y$, $f»(0)=\cos y$. Тогда оно должно совпадать с единственным решением $$f'(0) \sin+f(0)\cos$$
$\endgroup$
2
$\begingroup$
Мне всегда было трудно запомнить эту формулу.
Но на самом деле это не очень нужно, потому что есть простой способ восстановить его из законов возведения в степень, примененных к комплексному возведению в степень:
$$e^{i(x + y)} = e^{ix} \cdot e^{iy}.
$$ 9{ix})$
$$\cos(x + y) = \cos(x)\cos(y) — \sin(x)\sin(y).$$
$\endgroup$
$\begingroup$
В детстве я выучил его геометрическим способом, и, вероятно, он выглядел как доказательство, которое можно увидеть здесь, в Википедии.
Отрезок $OP$ имеет длину $1$. У нас есть $\sin(\alpha + \beta) = PB = PR + RB = \cos(\alpha) \sin(\beta) + \sin(\alpha) \cos(\beta)$.
Затем, чтобы доказать тождество косинуса, мы можем использовать $\cos(\alpha + \beta) = \sin(\alpha + \beta + \pi/2)$ и использовать тождество синуса. 92$ унитарных векторов таких, что $$ \vec{u}=\big(\cos(x),\sin(x)\big)\quad \mbox{ и } \quad \vec{v}=\big(\cos(-y),\sin (-у)\большой) $$ Здесь $x$ и $-y$ — наименьший угол, образованный осью x и векторами $\vec{u}$ и $\vec{v}$ соответственно. Затем \начать{выравнивать} \cos\big(x+y\big) = & \cos\big(x-(-y)\big)\\ = & \frac{\vec{u}\bullet\vec{v}}{\|\vec{u}\|\cdot \|\vec{v}\|} \\ = & \vec{u}\bullet\vec{v}\\ = & \cos(x)\cdot\cos(-y)+\sin(x)\cdot\sin(-y)\\ = & \cos(x)\cdot\cos(y)-\sin(x)\cdot\sin(y)\\ \end{выравнивание} 9{ий} \\ &=& (\cos(x) + i\sin(x))(\cos(y) + i\sin(y)) \\ &=& (\cos(x)\cos(y) — \sin(x)\sin(y)) + i(\sin(x)\cos(y) + \sin(y)\cos(x) ) \\ \end{array}$$
Приравнивая действительную и мнимую части, получаем
$$\cos(x + y) = \cos(x)\cos(y) — \sin(x)\sin(y)$ $ $$\sin(x + y) = \sin(x)\cos(y) + \sin(y)\cos(x)$$
$\endgroup$
1
$\begingroup$
Предположим, мы знаем, что $\sin(x+y) = \sin x \cos y + \cos x \sin y$, тогда мы можем сделать это, чтобы получить доказательство:
$\cos (x + y) \\ = \sin (x + y + \frac{\pi}{2}) \\ = \sin x \cos (y + \frac{\pi}{2} ) + \cos x \sin (y + \frac{\pi}{2}) \\ = \sin x (-\sin y) + \cos x \cos y \\ = \cos x \cos y — \ sin x \sin y$
Кстати, оба имеют геометрическое доказательство.
$\endgroup$
taichi.lang.ops — документация taichi-api-docstring
- taichi.lang.ops.abs( x )
Вычислить абсолютное значение \(|x|\) x поэлементно.
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — входной скаляр или матрица.- Возвраты:
Абсолютное значение каждого элемента в формате x .
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Vector([-1.0, 0.0, 1.0]) >>> y = ti.abs(x) >>> напечатать(у) >>> >>> тест() [1,0, 0,0, 1,0]
- taichi.lang.ops.acos( x )
Тригонометрический арккосинус, поэлементный.
Обратное cos , так что если y = cos(x) , то x = acos(y) .
Для ввода x не в домене [-1, 1] эта функция возвращает nan , если она вызывается в области taichi, или вызывает исключение, если она вызывается в области python.

- Параметров:
x (Союз [
примитивные_типы,Матрица]) — скаляр или матрица с элементами в [-1, 1].- Возвраты:
Арккосинус каждого элемента в x , в радианах и в замкнутом интервале [0, pi] . Это скаляр, если x является скаляром.
Пример:
>>> из математического импорта пи >>> ti.acos(ti.Matrix([-1.0, 0.0, 1.0])) * 180/пи [180., 90., 0.]
- taichi.lang.ops.asin( x )
Тригонометрический арксинус, поэлементный.
Инверсия sin , так что если y = sin(x) , то x = asin(y) .
Для ввода x не в домене [-1, 1] эта функция возвращает nan , если она вызывается в области taichi, или вызывает исключение, если она вызывается в области python.
- Параметров:
x (Союз [
примитивные_типы,Матрица]) — скаляр или матрица с элементами в [-1, 1].
- Возвраты:
Обратный синус каждого элемента в x , в радианах и в замкнутом интервале [-pi/2, pi/2] .
Пример:
>>> из математического импорта пи >>> ti.asin(ti.Matrix([-1.0, 0.0, 1.0])) * 180/пи [-90., 0., 90.]
- taichi.lang.ops.atan2( x1 , x2 )
Поэлементный арктангенс x1/x2 .
- Параметры:
x1 (Союз[
примитивные_типы,Матрица]) – y-координаты.x2 (Объединение[
примитивные_типы,Матрица]) – x-координаты.
- Возвраты:
Углы в радианах, в диапазоне [-pi, pi] . Это скаляр, если и x1 , и x2 являются скалярами.
Пример:
>>> из математического импорта пи >>> @ti.
kernel
>>> деф тест():
>>> x = ti.Matrix([-1.0, 1.0, -1.0, 1.0])
>>> y = ti.Matrix([-1.0, -1.0, 1.0, 1.0])
>>> z = ti.atan2(y, x) * 180/пи
>>> напечатать (г)
>>>
>>> тест()
[-135,0, -45,0, 135,0, 45,0]
- taichi.lang.ops.atomic_add( x , y )
Атомарно вычислить x + y , сохранить результат в x , и вернуть старое значение x .
x должен быть объектом с возможностью записи, константными выражениями или скалярами не допускаются.
- Параметры:
x (Союз[
примитивные_типы,Матрица]) — Вход.y (Союз[
примитивные_типы,Матрица]) — Вход.
- Возвраты:
Старое значение x .
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Vector([0, 0, 0]) >>> y = ti.
Vector([1, 2, 3])
>>> z = ti.atomic_add(x, y)
>>> print(x) # [1, 2, 3] новое значение x
>>> print(z) # [0, 0, 0], старое значение x
>>>
>>> ti.atomic_add(1, x) # вызовет TaichiSyntaxError
- taichi.lang.ops.atomic_and( x , y )
Атомарно вычислить побитовое И x и y поэлементно. Сохраните результат в формате x и верните старое значение x .
x должен быть объектом с возможностью записи, константными выражениями или скалярами не допускаются.
- Параметры:
x (союз[
примитивные_типы,Матрица]) – Вход. Когда оба являются матрицами, они должны иметь одинаковую форму.y (Союз[
примитивные_типы,Матрица]) — Вход. Когда оба являются матрицами, они должны иметь одинаковую форму.
- Возвраты:
Старое значение x .

Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Vector([-1, 0, 1]) >>> y = ti.Vector([1, 2, 3]) >>> z = ti.atomic_and(x, y) >>> print(x) # [1, 0, 1] новое значение x >>> print(z) # [-1, 0, 1], старое значение x >>> >>> ti.atomic_and(1, x) # вызовет TaichiSyntaxError
- taichi.lang.ops.atomic_max( x , y )
Атомарно вычислить максимум x и y поэлементно. Сохраните результат в формате x и верните старое значение x .
x должен быть объектом с возможностью записи, константными выражениями или скалярами не допускаются.
- Параметры:
x (союз[
примитивные_типы,Матрица]) – Вход.y (Союз[
примитивные_типы,Матрица]) — Вход.
- Возвраты:
Старое значение x .

Пример:
>>> @ti.kernel >>> деф тест(): >>> х = 1 >>> у = 2 >>> z = ti.atomic_max(x, y) >>> print(x) # 2 новое значение x >>> print(z) # 1, старое значение x >>> >>> ti.atomic_max(1, x) # вызовет TaichiSyntaxError
- taichi.lang.ops.atomic_min( x , y )
Атомарно вычислить минимум x и y поэлементно. Сохраните результат в формате x и верните старое значение x .
x должен быть объектом с возможностью записи, константными выражениями или скалярами не допускаются.
- Параметры:
x (союз[
примитивные_типы,Матрица]) – Вход.y (Союз[
примитивные_типы,Матрица]) — Вход.
- Возвраты:
Старое значение x .

Пример:
>>> @ti.kernel >>> деф тест(): >>> х = 2 >>> у = 1 >>> z = ti.atomic_min(x, y) >>> print(x) # 1 новое значение x >>> print(z) # 2, старое значение x >>> >>> ti.atomic_min(1, x) # вызовет TaichiSyntaxError
- taichi.lang.ops.atomic_or( x , y )
Атомарно вычислить побитовое ИЛИ x и y поэлементно. Сохраните результат в формате x и верните старое значение
x .x должен быть объектом с возможностью записи, константными выражениями или скалярами не допускаются.
- Параметры:
x (союз[
примитивные_типы,Матрица]) – Вход. Когда оба являются матрицами, они должны иметь одинаковую форму.y (Союз[
примитивные_типы,Матрица]) — Вход. Когда оба являются матрицами, они должны иметь одинаковую форму.
- Возвраты:
Старое значение x .
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Vector([-1, 0, 1]) >>> y = ti.Vector([1, 2, 3]) >>> z = ti.atomic_or(x, y) >>> print(x) # [-1, 2, 3] новое значение x >>> print(z) # [-1, 0, 1], старое значение x >>> >>> ti.atomic_or(1, x) # вызовет TaichiSyntaxError
- taichi.lang.ops.atomic_sub( x , y )
Атомарно вычесть x на y , сохранить результат в x , и вернуть старое значение x .
x должен быть объектом с возможностью записи, константными выражениями или скалярами не допускаются.
- Параметры:
x (Союз[
примитивные_типы,Матрица]) — Вход.y (Союз[
примитивные_типы,Матрица]) — Вход.
- Возвраты:
Старое значение x .
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Vector([0, 0, 0]) >>> y = ti.Vector([1, 2, 3]) >>> z = ti.atomic_sub(x, y) >>> print(x) # [-1, -2, -3] новое значение x >>> print(z) # [0, 0, 0], старое значение x >>> >>> ti.atomic_sub(1, x) # вызовет TaichiSyntaxError
- taichi.lang.ops.atomic_xor( x , y )
Атомарно вычислить побитовое XOR x и y поэлементно. Сохраните результат в формате x и верните старое значение x .
x должен быть объектом с возможностью записи, константными выражениями или скалярами не допускаются.
- Параметры:
x (союз[
примитивные_типы,Матрица]) – Вход. Когда оба являются матрицами, они должны иметь одинаковую форму.
y (Союз[
примитивные_типы,Матрица]) — Вход. Когда оба являются матрицами, они должны иметь одинаковую форму.
- Возвраты:
Старое значение x .
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Vector([-1, 0, 1]) >>> y = ti.Vector([1, 2, 3]) >>> z = ti.atomic_xor(x, y) >>> print(x) # [-2, 2, 2] новое значение x >>> print(z) # [-1, 0, 1], старое значение x >>> >>> ti.atomic_xor(1, x) # вызовет TaichiSyntaxError
- taichi.lang.ops.bit_cast( obj , dtype )
Скопируйте и приведите скаляр к указанному типу данных с его базовым биты сохранились. Должен вызываться в области тайчи.
Эта функция эквивалентна reinterpret_cast в C++.
- Параметры:
объект (
примитивные_типы) – Входной скаляр.
тип (
примитивные_типы) — Целевой тип данных должен иметь биты той же точности, что и входные данные (поэтому f32 -> f64 не допускается).
- Возвраты:
Копия obj , приведенная к указанному типу данных dtype .
Пример:
>>> @ti.kernel >>> деф тест(): >>> х = 3,14 >>> y = ti.bit_cast(x, ti.i32) >>> print(y) # 1078523331 >>> >>> z = ti.bit_cast(y, ti.f32) >>> print(z) # 3.14
- taichi.lang.ops.bit_shr( x1 , x2 )
Элементы в x1 сдвинуты вправо на количество битов в x2 . Оба x1 , x2 должны иметь целочисленный тип.
- Параметры:
x1 (Объединение[
примитивные_типы,Матрица]) — Входные данные.x2 (Союз[
примитивные_типы,Матрица]) — Количество битов, которые нужно удалить справа от x1 .
- Возвраты:
Возврат x1 с битами, сдвинутыми вправо на x2 раз. Это скаляр, если и x1 , и x2 являются скалярами.
- Пример::
>>> @ti.kernel >>> функция main(): >>> x = ti.Matrix([7, 8]) >>> y = ti.Matrix([1, 2]) >>> печать (ti.bit_shr (х, у)) >>> >>> главная() [3, 2]
- taichi.lang.ops.cast( obj , dtype )
Скопируйте и приведите скаляр или матрицу к указанному типу данных. Должен вызываться в области Taichi.
- Параметры:
объект (Объединение [
примитивные_типы,Матрица]) — входной скаляр или матрица.dtype (
примитивные_типы) — примитивный тип, определенный впримитивные_типы.
- Возвраты:
Копия obj , приведенная к указанному типу данных dtype .

Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Matrix([0, 1, 2], ti.i32) >>> y = ti.cast(x, ti.f32) >>> напечатать(у) >>> >>> тест() [0,0, 1,0, 2,0]
- taichi.lang.ops.ceil( x , dtype=Нет )
Вернуть потолок ввода поэлементно.
Потолком скаляра x является наименьшее целое число k , такое что k >= x .
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — входной скаляр или матрица.dtype — (
примитивные_типы): возвращаемый тип, по умолчанию Нет . Если установлено значение None , перенастроенное значение будет иметь тот же тип, что и x .
- Возвраты:
Верхний предел каждого элемента в x , с типом возвращаемого значения dtype .

Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Matrix([3.14, -1.5]) >>> y = ti.ceil(x) >>> print(y) # [4.0, -1.0]
- taichi.lang.ops.cos( x )
Тригонометрический косинус, поэлементный.
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — Угол в радианах.- Возвраты:
Косинус каждого элемента x .
Пример:
>>> из математического импорта пи >>> x = ti.Matrix([-pi, 0, pi/2.]) >>> ti.cos(x) [-1., 1., 0.]
- taichi.lang.ops.exp( x )
Вычислить экспоненту всех элементов в x поэлементно.
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — входной скаляр или матрица.- Возвраты:
Поэлементная экспонента x .

Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Matrix([-1.0, 0.0, 1.0]) >>> y = ti.exp(x) >>> напечатать(у) >>> >>> тест() [0,367879, 1.000000, 2.718282]
- taichi.lang.ops.floor( x , dtype=None )
Вернуть пол ввода поэлементно. Полом скаляра x является наибольшее целое число k , такое что k <= x .
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — входной скаляр или матрица.dtype — (
примитивные_типы): возвращаемый тип, по умолчанию Нет . Если установлено значение None , перенастроенное значение будет иметь тот же тип, что и x .
- Возвраты:
Пол каждого элемента размером x с типом возвращаемого значения dtype .

- Пример::
>>> @ti.kernel >>> деф тест(): >>> x = ti.Matrix([-1.1, 2.2, 3.]) >>> y = ti.floor(x, ti.f64) >>> print(y) # [-2.000000000000, 2.000000000000, 3.000000000000]
- taichi.lang.ops.log( x )
Вычисление натурального логарифма по элементам.
Натуральный логарифм log является обратной экспоненциальной функцией, так что log(exp(x)) = x . Натуральный логарифм — это логарифм по основанию e .
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — входной скаляр или матрица.- Возвраты:
Натуральный логарифм x по элементам.
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Vector([-1.0, 0.0, 1.0]) >>> y = ti.log(x) >>> напечатать(у) >>> >>> тест() [-нан, -инф, 0,000000]
- taichi.
lang.ops.max( *args ) Вычислить максимум аргументов поэлементно.
Эта функция не влияет на один аргумент, даже если он похож на массив. Когда в args есть как скалярные, так и матричные аргументы, матрицы должны иметь ту же форму, и скаляры будут транслироваться в ту же форму, что и матрица.
- Параметры:
аргументы — (Список [
примитивные_типы,Матрица]): ввод.- Возвраты:
Максимум входов.
Пример:
>>> @ti.kernel >>> определение foo(): >>> x = ti.Vector([0, 1, 2]) >>> y = ti.Vector([3, 4, 5]) >>> z = ti.max(x, y, 4) >>> print(z) # [4, 4, 5]
- taichi.lang.ops.min( *args )
Вычислить минимум аргументов поэлементно.
Эта функция не влияет на один аргумент, даже если он похож на массив. Когда в 9 есть как скалярные, так и матричные аргументы0143 args , матрицы должны иметь ту же форму, и скаляры будут транслироваться в ту же форму, что и матрица.

- Параметры:
аргументы — (Список [
примитивные_типы,Матрица]): ввод.- Возвраты:
Минимум входов.
Пример:
>>> @ti.kernel >>> определение foo(): >>> x = ti.Vector([0, 1, 2]) >>> y = ti.Vector([3, 4, 5]) >>> z = ti.min(x, y, 1) >>> print(z) # [0, 1, 1] 9{экспонента}\), поэлементно.Тип результата двух скалярных операндов определяется следующим образом: - Если показатель степени является целым числом, то тип результата принимает тип основания. - В противном случае тип результата следует за
В соответствии с приведенными выше правилами целочисленное значение, возведенное в отрицательное целочисленное значение, не может иметь осуществимый тип. Поэтому будет возбуждено исключение, если режим отладки или оптимизация пройдены. находятся на; в противном случае будет возвращено 1.
В следующих ситуациях результат не определен: - Отрицательное значение, увеличенное до нецелого значения.
- нулевое значение, увеличенное до неположительного значения. - Параметры:
-
-
база (Союз[
примитивные_типы,Матрица]) — Базы. -
экспонента (Союз[
примитивные_типы,Матрица]) — экспоненты.
-
- Возвраты:
-
основание возведено в степень . Это скаляр, если и основание , и показатель степени являются скалярами.
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Matrix([-2.0, 2.0]) >>> у = -3 >>> z = ti.pow(x, y) >>> напечатать (г) >>> >>> тест() [-0,125000, 0,125000]
- taichi.lang.ops.random( dtype=float )
Возвращает одно случайное число с плавающей запятой/целое число в соответствии с указанным типом данных. Должен вызываться в области тайчи.
Если требуется 964) если Требуется 64-битное целое число.

- Параметры:
dtype (
примитивные_типы) — Тип требуемого случайного значения.- Возвраты:
Случайное значение типа dtype .
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.random(с плавающей запятой) >>> print(x) # 0.0
- >>> >>> y = ti.random(ti.f64) >>> print(y) # 0.716101627301 >>> >>> i = ti.random(ti.i32) >>> print(i) # -963722261 >>> >>> j = ti.random(ti.i64) >>> print(j) # 73412986184350777
- taichi.lang.ops.raw_div( x1 , x2 )
Вернуть x1 // x2 , если оба x1 , x2 являются целыми числами, иначе вернуть x1/x2 .
- Параметры:
x1 (Союз[
примитивные_типы,Матрица]) — Дивиденд.x2 (Объединение[
примитивные_типы,Матрица]) — Делитель.
- Возвраты:
Вернуть x1 // x2 , если оба x1 , x2 являются целыми числами, иначе вернуть x1/x2 .
Пример:
>>> @ti.kernel >>> функция main(): >>> х = 5 >>> у = 3 >>> print(raw_div(x, y)) # 1 >>> г = 4,0 >>> print(raw_div(x, z)) # 1.25
- taichi.lang.ops.raw_mod( x1 , x2 )
Возвращает остаток от x1/x2 поэлементно. Это функция C-style mod .
- Параметры:
x1 (Союз[
примитивные_типы,Матрица]) — Делимое.x2 (Союз[
примитивные_типы,Матрица]) — Делитель.
- Возвраты:
Остаток от x1 , разделенный на x2 .
Пример:
>>> @ti.
kernel
>>> функция main():
>>> print(ti.mod(-4, 3)) # 2
>>> print(ti.raw_mod(-4, 3)) # -1
- taichi.lang.ops.round( x , dtype=None )
Округлить до ближайшего целого числа поэлементно.
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — скаляр или матрица.dtype — (
примитивные_типы): возвращаемый тип, по умолчанию Нет . Если установлено значение None , перенастроенное значение будет иметь тот же тип, что и x .
- Возвраты:
Ближайшее целое число x с типом возвращаемого значения дтип .
Пример:
>>> @ti.kernel >>> деф тест(): >>> x = ti.Vector([-1.5, 1.2, 2.7]) >>> печать (ti.раунд (х)) [-2., 1., 3.]
- taichi.
lang.ops.rsqrt( x ) Обратная функция квадратного корня.
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — скаляр или матрица.- Возвраты:
Обратная величина sqrt(x) .
- taichi.lang.ops.select( cond , x1 , x2 )
Возвращает массив, составленный из элементов x1 или x2 , в зависимости от условий в конд .
- Параметры:
условие (Союз[
примитивные_типы,Матрица]) – Массив условий.x1 (Объединение[
примитивные_типы,Матрица]) — Массивы, из которых берутся выходные элементы.x2 (Объединение[
примитивные_типы,Матрица]) — Массивы, из которых берутся выходные элементы.
- Возвраты:
Выход в позиции k является k-м элементом x1 , если k-й элемент в cond равно True , иначе это k-й элемент x2 .
Пример:
>>> @ti.kernel >>> функция main(): >>> условие = ti.Matrix([0, 1, 0, 1]) >>> x = ti.Matrix([1, 2, 3, 4]) >>> y = ti.Matrix([-1, -2, -3, -4]) >>> print(ti.select(cond, x, y)) >>> >>> главная() [-1, 2, -3, 4]
- taichi.lang.ops.sin( x )
Тригонометрический синус, поэлементный.
- Параметры:
x (Объединение [
примитивные_типы,Матрица]) — Угол в радианах.- Возвраты:
Синус каждого элемента x .
Пример:
>>> из математического импорта пи >>> x = ti.Matrix([-pi/2., 0, pi/2.]) >>> ti.sin(x) [-1., 0., 1.]
- taichi.
2 = x . y имеет тот же тип, что и x .
Пример:
>>> x = ti.Matrix([1., 4., 9.]) >>> y = ti.sqrt(x) >>> г [1,0, 2,0, 3,0]
- taichi.lang.ops.tan( x )
Тригонометрическая функция тангенса, поэлементная.
Эквивалент ti.sin(x)/ti.cos(x) по элементам.
- Параметры:
x (Союз[
примитивные_типы,Матрица]) — Входной скаляр или матрица.- Возвраты:
Значения тангенса x .
Пример:
>>> из математического импорта пи >>> @ti.kernel >>> деф тест(): >>> x = ti.Matrix([-pi, pi/2, pi]) >>> y = ti.tan(x) >>> напечатать(у) >>> >>> тест() [-0.0, -22877334.0, 0.0]
- taichi.lang.ops.tanh( х )
Вычислить гиперболический тангенс x поэлементно.




kernel
>>> деф тест():
>>> x = ti.Matrix([-1.0, 1.0, -1.0, 1.0])
>>> y = ti.Matrix([-1.0, -1.0, 1.0, 1.0])
>>> z = ti.atan2(y, x) * 180/пи
>>> напечатать (г)
>>>
>>> тест()
[-135,0, -45,0, 135,0, 45,0]
Vector([1, 2, 3])
>>> z = ti.atomic_add(x, y)
>>> print(x) # [1, 2, 3] новое значение x
>>> print(z) # [0, 0, 0], старое значение x
>>>
>>> ti.atomic_add(1, x) # вызовет TaichiSyntaxError












lang.ops.max( *args )
- нулевое значение, увеличенное до неположительного значения. 

kernel
>>> функция main():
>>> print(ti.mod(-4, 3)) # 2
>>> print(ti.raw_mod(-4, 3)) # -1
lang.ops.rsqrt( x )
2 = x . y имеет тот же тип, что и x .