tanh

本文详细介绍了双曲正切函数tanh()的用法及其在数学中的意义。包括tanh()函数的定义、参数说明、返回值解释,并通过示例代码展示了如何在C语言中使用tanh()函数计算特定数值的双曲正切。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头文件:#include <math.h>

tanh() 用来求一个数的双曲正切值,其原型为:
    double tanh(double x);

【参数】x 为双曲正切上的某点。

【返回值】返回 x 的双曲正切值,取值范围为 -1 到 1。

双曲正切的定义为 sinh(x)/cosh(x),即


双曲正切曲线示意图:



注意,使用 GCC 编译时请加入-lm。

请看下面的代码:
   
  1. #include <math.h>
  2. main(){
  3. double answer = tanh(0.5);
  4. printf("tanh(0.5) = %f\n", answer);
  5. }
#include <math.h>
main(){
    double answer = tanh(0.5);
    printf("tanh(0.5) = %f\n", answer);
}
输出结果:
tanh(0.5) = 0.462117
### 关于tanh函数的定义、用法和实现 #### 定义 双曲正切函数(Hyperbolic Tangent Function),简称 `tanh`,是一个常见的数学函数,在机器学习领域被广泛用于神经网络中的激活函数。它的表达式如下: \[ \tanh(x) = \frac{\mathrm{e}^x - \mathrm{e}^{-x}}{\mathrm{e}^x + \mathrm{e}^{-x}} \] 该函数的特点是非线性映射,能够将输入压缩到 (-1, 1) 的范围内[^1]。 #### 导数公式 `tanh` 函数的导数可以通过以下公式表示: \[ \frac{d}{dx}\tanh(x) = 1 - \tanh^2(x) \] 这一特性使得它在反向传播算法中非常有用,因为它可以直接通过自身的平方来计算梯度[^3]。 #### MATLAB 中的实现 以下是基于 MATLAB 编写的 `tanh` 和其导数的可视化代码: ```matlab x = -10:0.001:10; tanh_values = (exp(x) - exp(-x))./(exp(x) + exp(-x)); tanh_derivative = 1 - tanh_values.^2; figure; plot(x, tanh_values, 'r', x, tanh_derivative, 'b--'); grid on; title('tanh函数(实线)及其导数(虚线)'); legend('tanh原函数', 'tanh导数'); set(gcf, 'NumberTitle', 'off'); set(gcf, 'Name', 'tanh函数(实线)及其导数(虚线)'); ``` 这段代码展示了如何绘制 `tanh` 函数以及其导数图像,并设置了图形窗口的相关属性以便更清晰地观察两者的差异[^1]。 #### Python 中的手动实现 如果希望在 Python 中手动实现 `tanh` 函数而不依赖内置方法,则可以采用以下方式: ```python import math def tanh(x): return (math.exp(x) - math.exp(-x)) / (math.exp(x) + math.exp(-x)) x = 0.5 y = tanh(x) print(y) ``` 此脚本定义了一个简单的 `tanh` 计算逻辑并测试了给定值 \( x = 0.5 \)[^2]。 #### 特点与应用场景 作为激活函数之一,`tanh` 具有以下几个显著优点: - 输出范围位于 [-1, 1],相比 Sigmoid 更加对称; - 能够有效缓解梯度消失问题; - 对某些类型的模型来说表现优于其他非线性变换。 然而需要注意的是,当输入绝对值较大时,`tanh` 的饱和区域可能导致训练过程中出现收敛速度减慢的现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值