求复数的指数
Find exponential of a complex number
本文关键字:指数 更新时间:2023-10-16
我想计算一个复数的指数,比如2+3i
。
我已经知道这个公式
exp(iz)=cos(z)+isin(z)
OpenCV中是否有内置函数?如果是,你能举个例子向我解释一下吗?
complex.h
中声明的cexp( )
函数有什么问题?为什么要使用OpenCV而不是标准库?
#include <complex.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
double complex z = 2 + 3*I;
double complex w = cexp(z);
printf("%f + %fin", creal(w), cimag(w));
return 0;
}
如果你的目标平台不提供复杂的类型或操作,你可以使用以下快速而肮脏的解决方案:
struct mycomplex { double real; double imag; }
struct mycomplex my_exp(struct mycomplex z) {
struct mycomplex w;
w.real = exp(z.real)*cos(z.imag);
w.imag = exp(z.real)*sin(z.imag);
return w;
}
最后,由于您使用的是MSVC,一个非常基本的C++示例:
#include <complex>
#include <iostream>
int main(int argc, char *argv[]) {
auto z = std::complex<double>(2,3);
auto w = std::exp(z);
std::cout << w << std::endl;
return 0;
}
我认为您要查找的函数是atan2
。例如,对于数字2+3i
,您可以将角度计算为
T = atan2( 3.0, 2.0 );
我不认为c中有任何内置函数可以解决这个问题。事实上,当我们在c中进行FFT变换时,我们使用了基本的cos+jsin版本
相关文章:
- 使用简单类型列表实现的指数编译时间.为什么
- 如何从组合指数中找到仓位
- 正在读取 obj 文件!(指数)
- C++:快速模块化指数
- 在C++不使用 POW 的情况下处理负指数
- 比较向量中的元素时所花费的时间呈指数级增长
- 如何将包含指数的 QString 转换为C++中的双倍?
- 将数字提高到一个巨大的指数
- 负指数是否必然意味着未定义的行为
- 整数的指数速记
- 在矩阵逆变器上工作,由于某种原因,我的指数循环不起作用
- 自定义提升多精度指数中的位数
- 如何计算复矩阵的指数
- 用C++打印指数形式的素数分解
- 为什么Regex(c++)需要指数时间
- 指数近似不适合小输入或大输入
- 如果 std::numeric_limits<float>::is_iec559 为真,这是否意味着我可以以明确定义的方式提取指数和尾数?
- 在 c++ 中创建具有指数分布的随机数(可视化标准)
- 使用双精度运算的快速 SSE 低精度指数
- C ++指数计算器错误