ios - 如何在 Objective-C 的方程式中使用 "i"作为虚数

标签 ios objective-c complex-numbers

<分区>

假设我想计算 Vout,其中 Vout = (Vin/((I*w*R*C)+1)); 其中“i”应定义为 sqrt(-1) 。我如何在 Objective-C 中做到这一点?

最佳答案

您可以 #include <complex.h>然后使用 _Complex_II宏(注意大写)。包含复杂值的变量类型用 _Complex 表示属性,也可以简单写成complex .

double complex c1 = 1.0 + 2.0 * I; // 1+2i
double complex c2 = 2.0 + 3.0 * I; // 2+3i
double complex sum = c1 + c2;
double complex mul = c1 * c2;

然后您可以使用 crealcimag获取复数的实部和虚部的函数。

所以在你的情况下:

double Vin = 20; // in Volts
double w = 60; // frequency of your sinusoidal source (60Hz)
double R = 50; // 50 ohms
double C = 20e-6; // 20 µF
double complex invertZc = I*w*C; // Zc = 1/jwC, invertZc = jwC
double complex Vout = Vin / (1. + R*invertZc); // Vout = Vin * 1.0 / (1+Zr/Zc)

请注意,所有这些都是由 the GNU C language (see here) 提供的,并且不是 Objective-C 本身的特定部分,而是来自 GNU C(Objective-C 是 C 的超集)及其扩展(Xcode 使用的 GCC 和 LLVM 编译器支持)

关于ios - 如何在 Objective-C 的方程式中使用 "i"作为虚数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19957903/

相关文章:

iphone - 如何向 iOS 应用程序添加蓝牙键盘支持?

ios - didEndEditingRowAt 未使用自定义 tableview 单元格调用

c++ - C++ 中的小数点 ('.' 是多少,我可以做一个吗?

iphone - 如何使用ntimer显示秒?

objective-c - "id (*IMP)(id, SEL, ...) "中的第二个参数是做什么用的?

swift - 在 Accelerate Framework 中将复数 (__CLPK_complex) 提升为指数

c++ - 为什么 `ccos` 、 `csqrt` 、 `cpow` 不被识别?

ios - 如何从.tmx TileMap文件获取SpriteKit PhysicsBodies

ios - AVAudioSessionSilenceSecondaryAudioHintNotification 何时触发?

ios - NSUserDefaults 或 NSCache - 存储数据的最佳方式