プロが教える店舗&オフィスのセキュリティ対策術

複素数のプログラムの組み方

今自分はy=exp(-jkx)という式のプロットをするプログラムを組んでいます。
しかしexpの()の中はdouble型しか定義できないということがわかったのでオイラーの
公式よりcos(kx)-isin(kx)と変換してプログラムを組んでいるのですがなぜか
y=xのグラフになってしまいます。isin(kx)の方に問題があると思いますが
#include <complex.h>もできています…
どなたか式の作り方を教えて頂けないでしょうか?
よろしくお願い致します。

A 回答 (2件)

double complex k, x;


だと仮定して,
double complex y = cexp(I * k * x);
でよいと思いますが。
または,<tgmath.h>をインクルードして,
double complex y = exp(I * k * x);
とか。

あと,問題点がプロットにあるのか式にあるのかちゃんと区別した方がよいですよ。
例えばprintfで出力した時に値が正しいことは確認していますか。
    • good
    • 0
この回答へのお礼

返事が遅れてしまい大変申し訳ございません。
ありがとうございました。

お礼日時:2010/06/14 04:03

complex.hを使ったことが無いので、ご質問の回答として適しているか分かりませんが、


複素平面上にプロットするなら、横軸x、縦軸yとはならないと思うのですが。
横軸はあくまで実軸、縦軸は虚軸。
    • good
    • 0
この回答へのお礼

返事が遅れてしまい大変申し訳ございません。
ありがとうございました。

お礼日時:2010/06/14 04:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!