###前提・実現したいこと
xを0から2πまで動かしたとき、cos(x)+cos(y)=0 をyについて解きたいです。
###発生している問題・エラーメッセージ
xを動かしてもyが動きません。
###該当のソースコード
C++
1#include <iostream> 2#include <iomanip> 3#include <cmath> 4#include <complex> 5using namespace std; 6 7double f(double x,double y){ 8 return cos(x)+cos(y); 9} 10 11class bisection{ 12 int i; 13public: 14 bisection(); 15 double m; 16 double x; 17 double operator()(double(*func)(double ,double),double a,double b,double eps=1.e-12,int Nmax=50){ 18 for ( i= 1;i<=Nmax;i++) { 19 m = (a + b) /2.; 20 if (func(x,m) > 0) 21 b = m; 22 else 23 a = m; 24 if (func(x,m) == 0 || fabs(a - b) < eps) { 25 return m; 26 break; 27 } 28 } 29 30 if (i > Nmax) 31 cout << "bisection cannot slove it" << endl; 32 return m; 33 } 34}; 35 36int main(){ 37 bisection ob; 38 int N=100; 39 double dx=6.28/N; 40 for(int i=0;i<N;i++){ 41 double x=i*dx; 42 ob(f,0.,6.28); 43 cout << x << " " <<ob.m<< endl; 44 } 45 return 0; 46} 47
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
コードが汚く見にくいかと思いますが、回答宜しくお願いします。
より洗練されたコーディングの仕方があればそちらも教えていただけるとありがたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。