No.18355![]() |
Eulerの公式 投稿者---さやか(2004/11/24 22:35:19) |
||
初心者です。 Eulerの公式の実数部がゼロの式 exp(ix)=cos(x)+isin(x) について、今は複素数を無視して実数出力のプログラムを組んだつもりが それさえも構文エラーになってコンパイルできません。 #include<iostream.h> #include<math.h> double main() { double x; cout << "Input x: "; cin >> x; cout <<"cos(x)+isin(x) = "<< cos(x)+sin(x)<<; return (0); } ちなみにc だったらできたんです。 #include<stdio.h> #include<math.h> main() { double x; printf("Input x: "); scanf("%lf", &x); printf("cos(x)+isin(x) = %f ", cos(x)+sin(x)); どなたかご教授ください。 |
No.18356![]() |
Re:Eulerの公式 投稿者---ぽこ(2004/11/24 22:59:30) |
||
>それさえも構文エラーになってコンパイルできません。 コンパイルエラーの場合はエラーメッセージを"そのまま"載せることを お勧めします。 #double main()って、、実際のソースコードは違いますよね? |
No.18357![]() |
Re:Eulerの公式 投稿者---monkey(2004/11/24 23:04:41) |
||
最後の << が余分なのでは? cout <<"cos(x)+isin(x) = "<< cos(x)+sin(x)<<; |
No.18364![]() |
Re:Eulerの公式 投稿者---επιστημη(2004/11/25 10:16:19) |
||
>初心者です。 >Eulerの公式の実数部がゼロの式 >exp(ix)=cos(x)+isin(x) >について、今は複素数を無視して実数出力のプログラムを組んだつもりが >それさえも構文エラーになってコンパイルできません。 標準C++なら複素数がすんなり扱えます。 #include <iostream> #include <complex> int main() { double x = 3.1416/6.0; // 半径1,偏角π/6 std::complex<double> z = std::polar(1.0, x); std::cout << "(cos(x), isin(x)) = " << z; return 0; } |
No.18394![]() |
Re:Eulerの公式 投稿者---かずま(2004/11/25 20:26:40) |
||
> Eulerの公式の実数部がゼロの式 > exp(ix)=cos(x)+isin(x) > について、今は複素数を無視して実数出力のプログラムを組んだつもりが オイラーの公式 exp(i*x) = cos(x) + i*sin(x) の実数部がゼロとは どういう意味ですか? 右辺の複素数表現のうち、cos(x) が実数部、sin(x) が虚数部だと私は 理解しているのですが、違うのですか? #include <iostream> #include <complex> int main() { using namespace std; const complex<double> i(0, 1); double x; while (cin >> x) { cout << " exp(i * x) = " << exp(i * x) << '\n'; cout << "cos(x) + i*sin(x) = " << cos(x) + i*sin(x) << '\n'; } } |
No.18396![]() |
Re:Eulerの公式 投稿者---さやか(2004/11/26 01:53:05) |
||
みなさんありがとうございます! c++は複素数を扱う場合にとても便利ですね! かずまさんのご指摘の > exp(ix)=cos(x)+isin(x) > について今は複素数を無視して実数出力のプログラムを組んだつもりが というのは、複素数の扱いがわからなかったので実際は exp(ix)=cos(x)+isin(x) ですがc++初心者の私はとりあえず cos(x)+sin(x) の出力を目指したという意味だったんです。まぎらわしくてすいません。 これからもっと勉強していきたいと思います。 返信くださったみなさん親切にありがとうございました。 |