以下のコードを書きましたがうまく作動しません
cの関数の仕組みもあまり理解していないので厚かましいですが説明をお願いしたいです
c
1#include <stdio.h> 2#include <math.h> 3double f(double X_n){ 4 return 10*sin(X_n)+exp(X_n)//f(x) 5} 6double df(double X_n){ 7 return 10*cos(X_n)+exp(X_n);//f'(x) 8} 9//おそらく上の書き方が間違ってる?? 10int main(void){ 11 const int M=50;//最大反復回数 12 int N=0;//反復回数 13 double x0=1.0;//初期値 14 double X_n;//近似解を保存する数列(配列) 15 X_n=x0; 16 double epilon=1e-12;//許容誤差 17 for(int i=0;i<=M;i++){ 18 if (abs(f)<epilon){ 19 printf("%.12eで%d",X_n,N); 20 break; 21 }else{ 22 X_n=X_n-f/df; 23 N++; 24 } 25 } 26 return 0; 27}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/24 19:21
2020/05/24 19:34
2020/05/25 01:44
2020/05/25 02:01
2020/05/25 02:04 編集