前提・実現したいこと
ニュートン法を用いて、tanh(x)-1/2x=0の解を出す。
発生している問題・エラーメッセージ
何度繰り返しても、答えがnumと出力されます。
解は0より大きい数で表したいです。
該当のソースコード
#include <stdio.h> #include <math.h> double f(double m){ double f; f=tanh(m)-(1/2*m); return f; } double df(double m){ double f; f=(1/(cosh(m)*cosh(m)))-(1/2); return f; } void main(void) { double x0,xn,E=1.0e-6; printf("Calculates the newton.\n"); printf("Input the number: "); scanf("%lf",&x0); if(x0==0){ printf("error\n"); } xn=x0+1; while(fabs(f(x0))>E){ x0=xn; xn=-1*f(x0)/df(x0)+x0; } printf("x=%lf",xn); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/22 10:18