Newton 法もしくは数値微分を利用した割線法を用いることによりaのn乗根を計算するプログラム
Posted: 2015年5月17日(日) 17:33
整数値n と小数値a を与えたとき,Newton 法もしくは数値微分を利用した割線法を用いることによりa のn乗根を計
算するプログラムを作れ.
という問題を解いています。
以下が自分の作成したプログラムですが、上手く動きません。
ご指摘お願いします。(Newton法を勘違いしているかも知れません・・・・。)
算するプログラムを作れ.
という問題を解いています。
以下が自分の作成したプログラムですが、上手く動きません。
ご指摘お願いします。(Newton法を勘違いしているかも知れません・・・・。)
#include<stdio.h>
//累乗計算関数
double calc(int a, int b){
if(b==0){
return 1;
}else{
return a*calc(a,b-1);
}
};
int main (void){
double a,x;
int n;
//数値入力
printf("Compute n th root of a:\n");
printf("n=");
scanf("%d",&n);
printf("a=");
scanf("%lf",&a);
//計算
x=3-(calc(3,n)-a)/(n*3);
while(1){
if(calc(x,n)-a<0){
break;
}
x=x-(calc(x,a))/(n*x);
//表示
printf("%lf\n",x);
return 0;
}