掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
C++で複素数の四則演算を行うには? (ID:63237)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
行列の数値計算をするときに、複素数の正確な計算結果を必要としています。 サンプルとして書いたプログラムが次のとおりです。 #include<stdio.h> #include<stdlib.h> #include<math.h> #include<malloc.h> #include<iostream> #include<complex> using namespace std; int main() { complex<double> *z1,*z2,*z3; int i,j; int N=3; int M=3; z1 = (complex<double> *)calloc(N*N,sizeof(complex<double>)); z2 = (complex<double> *)calloc(N*N,sizeof(complex<double>)); z3 = (complex<double> *)calloc(N*N,sizeof(complex<double>)); for(i=0;i<N;i++){ z1[i*N+i] = complex<double>(1.0,1.0); } for(i=0;i<N;i++){ z2[i*N+i] = complex<double>(1.0,1.0); } for(i=0;i<N;i++){ for(j=0;j<N;j++){ z[i*N+j] = z1[i*N+j] * z2[i*N+j]; } } for(i=0;i<N;i++){ for(j=0;j<M;j++) cout << " " << z[i*M+j] ; cout << endl; } free(z1); free(z2); free(z3); return 0; } <実行結果> (1,0) (-1.#IND,-1.#IND) (-1.#IND,-1.#IND) (-1.#IND,-1.#IND) (1,0) (-1.#IND,-1.#IND) (-1.#IND,-1.#IND) (-1.#IND,-1.#IND) (1,0) Press any key to continue
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.