我現在正在編寫一個簡單的DFT算法,我想在復指數中使用複數i。我看到有人使用#include<complex>
和#include<cmath>
,然後他們使用過載符號I
,如exp(2*I)
。但它似乎不適用於我的Visual Studio編譯器。那麼,誰能給出一個使用復指數的簡單例子?謝謝!如何在C++中使用複數「i」
4
A
回答
4
這裏是一個簡短的完整的例子:
#include <iostream>
#include <complex>
#include <cmath>
using namespace std;
typedef complex<double> dcomp;
main() {
dcomp i;
dcomp a;
double pi;
pi = 2 * asin(1);
i = -1;
i = sqrt(i);
a = exp(2*pi*i);
cout << "i is " << i << "and Euler was right: e(i pi) = " << a << endl;
}
測試使用g ++
+0
非常棒,謝謝! – Cancan
3
你可以找到細節here
一個簡單的方法是
#include <complex>
using std::complex;
const double pi = 3.1415;
void foo()
{
complex<double> val(polar(1, pi/2.0); Create a complex from its olar representation
}
1
在下面的代碼C++顯示了一個用於實現虛數j的宏。衆所周知,在編程中,術語i和j通常用作計數器變量。我使用大寫字母J來表示虛數以避免混淆。
/* dcomplex.h
#ifndef DCOMPLEX_H_
#define DCOMPLEX_H_
#define J dcomplex(0.0,1.0)
typedef std::complex<double> dcomplex;
#endif /* DCOMPLEX_H_ */
使用該宏,則虛數f] [與複合物一起庫]可以在主代碼中使用。其用途的一個例子如下所示:
....
....
#include <complex>
#include "dcomplex.h"
....
....
tmp = tmp + t[n]*exp((2.0*PI*(double)n*(double)l/(double)tab_size)*J);
....
....
其中TMP,T [n]爲複雜類型的變量,j是虛數。變量n,l和tab_size是整數類型。常量PI是衆所周知的常量3.14 ...函數exp()被重載以處理複數。 [注:此代碼示例是一個簡單的DFT的一部分]
使用這個宏,代碼更易讀..
5
我得到這個問題最近也找到了未來的讀者一個簡單的方法:
剛使用<complex>
庫像以下
#include <iostream>
#include <complex>
using namespace std ;
int main(int argc, char* argv[])
{
const complex<double> i(0.0,1.0);
cout << i << endl ;
return(0) ;
}
相關問題
- 1. C++:如何在函數中使用%i?
- 2. 如何在C中使用unwrap函數和iota(複數中的「i」)?
- 3. 如何在Lua中使用I ++和++ I從C中獲取
- 4. 如何在C++中使用複數?
- 5. 如何在I/O多路複用中寫入數據塊?
- 6. 如何使用文件I/O C++
- 7. 如何使用(i)
- 8. 如何在項目中使用i-reports?
- 9. 如何在C#中使用重複?
- 10. Perforce命令行:如何在「p4 client -i」中使用-i標誌?
- 11. 在cassandra 0.8.2 sstableleader中如何使用-i或--ignore選項?
- 12. C++如何使用「循環(n)」來表示「for(int i = 0; i <n; i ++)」?
- 13. 如何讓「i + = x」作爲「i ++」使用?
- 14. C++如何使用any_of在函數中查找重複數字?
- 15. 如何在Numpy/Theano中表達c [i,j,k] = a [i,j] * b [i,k]?
- 16. 如何在c中使用C++函數?
- 17. out [i] = *(a_mat + i)在C中做什麼?
- 18. 如何在python 3中使用參數myscript.py -i input.txt?
- 19. 如何在Tensorflow的C++ API中使用複雜數據類型?
- 20. 如何在QtScript中使用C++ std複數
- 21. 如何在地圖中使用複數C++
- 22. 在Ruby中,有沒有辦法使用| i,j |來替代「arr.sort {| i | Math.cos(i)* Math.sin(i)}」。並重復兩次?
- 23. 如何在Mac上使用C I/O重定向?
- 24. 如何使用C文件I/O在Ubuntu上創建文件
- 25. 在Cython中使用C++複雜函數
- 26. 如何在java中使用複數?
- 27. 無法理解在C/C++中使用++ i的輸出
- 28. 如何用C++編譯c複數11
- 29. 如何在c中使用mmap()函數
- 30. 如何在c中使用substring函數?
您可以創建一個複雜的變量,併爲它分配值'開方(-1)' – Floris
不過,說真的,我很好奇,如果存在這樣一個方便的重載符號。我的意思是創建C++的人應該考慮一下,對吧? :P但你的想法絕對是好的 – Cancan
@加拿大:這個符號將是一個複雜的,複雜的或複雜的? ;)順便說一句,'複雜 {0,1}'也可以。 –
syam