各項の縦軸の値を出力したい
f(x)=2Σ(((-1)^n+1)/n)+sin(nx)のnの値を入力し、各(x,y)を出力したいのですが、xの出力はうまくいくもののyの値がnanになってしまいます。
各項termを出力し、項をちゃんと計算できていることは確認できたのですが、、、
(c++です)
発生している問題・エラーメッセージ
yの値がnanになってしまう
出力の一部です
x:2.55841,y:nan
x:2.65841,y:nan
x:2.75841,y:nan
x:2.85841,y:nan
x:2.95841,y:nan
x:3.05841,y:nan
該当のソースコード
#include<iostream> #include<stdio.h> #include<math.h> using namespace std; double term(int i,double x){//n番目の項 double r=100; double j = i; if(i%2==0){ /* cout << "before interm" << r << endl; cout << "sin(i*x):" << sin(i * x) << endl; cout << "j:" << j << endl; cout << "i:" << i << endl;*/ r = (-1) * (sin(i * x)) / j; // cout << "after interm:" << r << endl; return r; }else if(i%2==1){ r = sin(i * x)/i; return r; }else return r; } int main(){ double y = 0; int n; cin >> n; for (double x = -M_PI; x < M_PI;x+=0.1){//横軸 for (int i = 0; i < n;i++){ //cout << "term:" << term(i, x) << endl; //cout << "sin:" << sin(i * x) << endl; y = y + term(i, x);//縦軸 } y = y * 2; cout << "x:" << x << ",y:" << y << endl; y = 0; } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。