スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Newton法

Newton法により 2の平方根を求めるソース。
f(x) = x * x -2 とおき、f(x)=0の解を求める。


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#define EPS 1.0e-10
#define LOOP_MAX 20
void newton(double x);
double funcx(double x);
double dfuncx(double x);

main(void){

double initial_num;

puts("input initial number");
scanf("%lf", &initial_num);
newton(initial_num);

return 0;
}

void newton(double x){

//answer
double newx;
int loop_cnt;

for(;;){
loop_cnt++;
//calculate new x
newx = x - funcx(x)/dfuncx(x);
printf("an approximate value= %f\n", newx);
//check convergence
if(fabs(newx - x) < EPS)
break;
if(LOOP_MAX < loop_cnt){
puts("time out.");
exit(EXIT_FAILURE);
}
//renew x
x = newx;
}
printf("answer = %f\n", newx);

}

// f(x)
double funcx(double x){
return x * x - 2;

}

// df(x)/dx
double dfuncx(double x){
return 2 * x;

}


スポンサーサイト
プロフィール

tjnet777

Author:tjnet777
Solaris, VPNのサポート業務を1年

金融系SIerで業務アプリの開発、メンテを3年半

離職して大学院大学 1年生

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。