如何在 C 中使用解包函数和 iota(复数"i")?
How to use unwrap function and iota( "i" in complex numbers ) in C?
我正在用C语言开发代码来获取系统的种群谱。在此频谱中,我需要解开函数以执行系统的进一步步骤。
- 谁能告诉我,如何在我的代码中使用解包功能?
- 如何在代码中使用 iota(复数中的"i"(?
- 最后如何使用 gsl fft 函数来执行函数的傅里叶变换?
我已经在下面提到的代码中正确声明了所有参数,这是我需要您帮助的唯一代码段。
- 在 ph1 的函数中,我需要解开 phi
- 在 D 和 N 的函数中,我使用 iota 作为"i"请帮助我如何使用它?
- 最后,我想使用 gsl 执行 S 的 fft。怎么能做到呢?
这是代码:
double dt = 0.01;
double N1 = 11;
double Fs = 1 / dt;
a = dt * (N1 - 1);
double dx = 1 / a;
double N;
for (m = 1; m <= N1; m++) {
double t1 = (m - 1) * dt;
//double i = sqrt(-1);
D = pow((cos(om * t1 / 2)), 2) + ((2 * i * sin(om * t1) / om * (Q2 + pow(om, 2) * Q1)) -
(16 * D1 * ((pow(sin(om * t1 / 2), 2))));
double phi = 1 / tan(pow((cos(om * t1 / 2)), 2) + ((2 * sin(om * t1) / om) * (Q2 + pow(om, 2) * Q1)) / (-16 * D1 * ((pow(sin(om * t1 / 2), 2)))));
double a = abs(D);
//printf("%f and %fn",phi,a);
double ph1 = unwrap(phi); /*How to use unwrap function*/
}
for (m = 1; m <= N1; m++) {
double t1 = (m - 1) * dt;
N = ((i * cos(om * t1 / 2)) * ((pow(Gdot, 2) + pow((om * Gc), 2)) / om) - (4 * sin(om * t1 / 2)) * (Q2 * pow(Gc, 2) + Q1 * pow(Gdot, 2) - (Q1dot * Gdot * Gc))); /* How to use iota */
double Ds = sqrt(a) * exp(i * ph1 / 2);
double Ds1 = (a) * exp(i * ph1);
//Ns(m) = (b) * exp(i * ps1);
double E = ((sin(om * t1 / 2)) / Ds1) * N;
double S = (exp(-E)) / (Ds);
double b = (pow(p0, 2) + pow((q0 * om), 2)) / (2 * om);
double S1 = (exp(-i * om * t1 / 2)) * exp(b * (exp(-i * om * t1) - 1));
fft(S); /* How to calculate fft using gsl*/
}
重新格式化你的代码,是一些问题:
D = pow((cos(om * ...
行中似乎缺少括号。- 缺少许多变量声明(
m
,D
...
您应该为您的问题发布一个完整的可编译示例,并学习对代码进行空格和缩进以使其可读。
C99 和 C11 扩展了对复数算术的支持。 您应该将复杂变量定义为:
#include <complex.h>
complex double D;
-1
的虚根被定义为I
(发音为ai,而不是iota(。
确定哪些变量是复杂的,并这样定义它们,对数学函数使用复杂版本(在其名称的开头添加c
,例如ccos()
,csin()
...(避免使用pow
来平方值,改用x * x
。
相关文章:
- 向量保持复数的运算符重载
- C++矩阵类运算符使用 std::common_type_t 和复数的实现
- 加、乘、除、减复数的问题 C++ - 运算符重载
- 有没有办法修改'operator->',以便'z->im'返回复数的虚部
- 在 C++ 中重复数组中的整数元素的次数
- 运算符重载 % 为复数的模数
- 重载运算符C++,复数?
- C++正确书写和打印复数精度 (cout) 的问题?
- 使用运算符重载的两个复数的总和
- 有没有办法访问复数类C++私有成员变量?
- 如何在 c++ 中创建复数向量?
- 如何从复数返回实数
- 如何在不混淆字段的情况下声明复数?
- 如何计算2d数组中的重复数?(C++)
- 在Rcpp(和RcppArmadillo)中,如何检查vec是否包含复数
- 如何在C++中打印复数
- 复数的算术运算
- 在并行算法中使用 ranges::view::iota
- 在C++中创建复数数组
- 如何在 C 中使用解包函数和 iota(复数"i")?