6.8 KiB
numpy sinh–双曲正弦,基于元素
原文:https://www.askpython.com/python-modules/numpy/numpy-sinh-hyperbolic-sine
你一定听说过双曲函数。如果没有,你可能熟悉三角函数,比如正弦、余弦、正切、余切、割线和余割,以及其他像斜边、底和垂线。
今天我们将学习正弦双曲函数。在开始之前,让我们了解一下什么是双曲函数。
什么是双曲函数?
双曲线函数也有点类似于 三角函数 。
普通三角函数和双曲函数之间的唯一区别是,三角函数定义圆(圆弧度或角度)内的值,而双曲函数定义双曲线而不是圆内的值。
这些点构成了单位双曲线的右半部分。下面描述了双曲函数的一些重要公式。让我们看看它们。
什么是双曲 sin 或 sinh?
这也是三个重要的双曲函数。今天我们要学习双曲正弦函数。
下面我们也可以用代码的形式来表示 sinh 函数。
sinh (x) = 1/2 * (np.exp(x) - np.exp(-x))
使用 numpy.sinh()
在我们的代码片段中,我们不打算用上面的(我们不打算用公式来写)。python 中的 NumPy 库提供了一个预定义的双曲正弦函数 NumPy.sin()。我们将使用相同的。在本教程中,我们将学习如何找到弧度和复数值的双曲正弦函数**。**
numpy.sinh()的语法
让我们快速看一下下面的语法。
numpy.sinh(x, out=None, where=True, casting='same_kind', order='K', subok : [bool, datatype])
在上面的语法中,我们传递一些参数,如下所示:
- x: 它可以是包含弧度值的变量,也可以是包含某个值的数组
- out: 存储结果的位置。如果提供了,它必须具有与输入 x 相似的形状。如果没有提供或没有提供,则返回新的值或结果。这是可选的。
- 当条件为真时,我们必须得到我们的结果或输出;当条件为假时,我们将得不到任何结果。这是可选的。y 默认其值为真。
- casting='same_kind': 表示只允许 float64 到 float32 的值或结果。该函数在此范围或数据类型中呼喊 cast 值。
- order = 'K': 它总是以 K 排序的形式产生一个输出数组。(注意:有四种类型的订单:{‘K’,‘C’,‘F’,‘A’})。这是可选的。
- subok:【bool,datatype】是否生成结果的子类。如果为真,则提供子类的名称。它返回一个与给定数组具有相同形状和类型的数组。也是可选的。
现在,我们将在代码片段中实现相同的方法或功能。
np.sinh()用于单输入
我们将传递给 x 的单个输入(即math.pi/3 ) 。将我们的结果加载到一个名为**output**的变量中并打印出来。
#importing required modules
import numpy as np
import math
output = np.sinh(math.pi/3)
output
上面的代码应该给出如下输出。
1.2493670505239751
np.sinh()用于多输入或数组
我们要以数组的形式给 x 传递五个输入(即0, math.pi / 2, math.pi, 3 * math.pi/2, 2 * math.pi)。并将我们的结果加载到一个名为another_output 的变量中并打印出来。
#providig multi input in the form of array
import numpy as np
import math
input = [0, math.pi / 2, math.pi, 3 * math.pi/2, 2 * math.pi]
another_output = np.sinh(input)
another_output
上面的代码应该给出如下输出。
array([ 0\. , 2.3012989 , 11.54873936, 55.6543976 ,
267.74489404])
提供可选的输出变量
让我们回忆一件小事。当我们讨论我们的NumPy.cosh() 方法的语法和参数时。有一个参数是“out”。它是一个存储结果的位置。如果提供了,它必须具有与输入 x 相似的形状。如果没有提供或没有提供,则返回新的值或结果。是可选的*。*在这个方法中,我们将看到如何尝试这个参数。
在这个代码片段中,我们将提供一个可选的输出变量,输出/结果将被加载到这个变量中。看看下面是如何实现的。
import numpy as np
import math
optional_output = np.array([0, 0, 0, 0, 0], dtype='d')
np.sinh(input, optional_output)
different_output = np.sinh(input)
您可以看到我们已经创建了一个名为“optional_output”的数组,它的形状与我们的输入数组相似。在我们的numpy.sinh() method,中,我们已经将这个数组作为“out”的值进行了传递。
得到的数组将被加载到这个数组中。通过打印相同的内容,我们可以得到我们的结果。
print(optional_output)
print(different_output)
[ 0\. 2.3012989 11.54873936 55.6543976 267.74489404]
[ 0\. 2.3012989 11.54873936 55.6543976 267.74489404]
np.sinh()用于复数输入
现在,在我们的最后一段代码中,我们将输入一个复数并得到双曲正弦结果。下面我们来快速看一下。
import numpy as np
import math
import cmath
a = 2.0
b = 3.0
z = complex(a,b)
c = np.sinh(z)
为了使用一个复杂变量,我们需要导入一个名为**cmath**的库。然后使用 complex() 方法准备好我们的复数,并在我们的 numpy.sinh() 方法中传递相同的内容,我们将得到我们的结果。让我们打印我们的结果。
print(z)
(2+3j)
print(c)
(-3.59056458998578+0.5309210862485197j)
在图表上绘制 Numpy.sinh()
import numpy as np
import math
import matplotlib.pyplot as plt
input = [0, math.pi / 2, math.pi, 3 * math.pi/2, 2 * math.pi]
output_array = np.sinh(input)
plt.xlabel("input")
plt.ylabel("output_array")
plt.plot(input, output_array, color = 'green', marker = "*")
众所周知,为了在图上绘制一些东西,我们需要导入一个名为 Matplotlib 的附加库。我们在函数实现中传递名为 input 的多值数组。我们把我们的输出加载到" output_array 中后,实现了我们的功能。毕竟,我们用输入和输出数组表示了我们的函数,并得到了下面的结果。
摘要
就这样,我们完成了今天的文章。我们学习了这个方法及其参数。我们通过传递各种值并获得预期的结果来练习我们的代码片段。这样,对于双曲余弦和双曲正切,我们也可以得到相同的结果。我们必须带着这些激动人心的话题再次造访。谢谢你。



