exp 函数的数值计算方法

本文探讨了如何通过迭代方法和CORDIC算法来计算exp函数,特别是针对16位整数的情况。通过构造系数矩阵将乘法问题转化为加法和移位操作,适合FPGA和DSP实现。提供的C程序代码展示了如何用这两种方法计算exp函数,并给出了计算结果的对比。

这个问题是21icbbs 上的一个网友提出的,我第一反应就是迭代。在很多场合下,比如计算热电流thermal current,或是其他一些使用如下公式的应用:

         y(t) = K * (1 - exp(-t / T)))                                                           (1)

         y(t) = K * exp(-t / T))                                                                   (2)

    where T is the time constant of the system and K is the magnitude.

 

公式(1),(2)不能直接应用在实际计算中,因为 t并没有确切的数值。 (1) 微分后得:

       dy = - K * exp(-t / T)) /T =  ( K - K*(1 – exp(-t/T))) / T

      =  (K – y) / T                                                                               (3)

(2) 微分后得:

         dy = - K * exp(-t / T)) /T = - y /T                                               (4)    

 

当 K=0, 则 (3)成为 (4)。假设采样时间为 Ts, 把(3 转成迭代方程:

        y(k+1) = y(k) + Ts/T * (K – y(k))                                                 (5)

  

只要知道初始值 y(0) 就可计算,与时间 t 无关。如果在 s domain ,转换则更简单:把 s = (1- z)/Ts

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值