C言語 ニュートン法
何をすればいいかよくわからなくて躓きました
わかる方どうかお願いします
問
以下に示すプログラムで、x1 = x0 - f (x0) / f '(x0)を用いて、方程式の左辺関数 f (x) (= x 2 - a ) およびその導関数 f '(x) を独立させろ。
入力変数 a はグローバル変数としてよい。
導関数 f '(x)はプログラム内ではdfと表記することとする。
また、適切なコメントも追加すること。
/*
newton.c: ニュートン法
*/
#include <stdio.h> // printf, fprintf, fgets, sscanf
#include <math.h> // fabs
double newton(double x, double (*f)(double), double (*df)(double), double eps)
{
int n;
double a = 0, x, x0, err, eps = 1.0e-10;
printf("# n, x, err\n");
printf("%4d, % .15e\n", n, x);
do {
n++;
x0 = x;
x = (x0 + a/x0) / 2;
err = fabs(x-x0);
printf("%4d, % .8e, % .8e\n", n, x, err);
} while (err > eps);
return x;
}
int main(void)
{
double a = 0, x, x0, err, eps = 1.0e-10;
char s[128];
fprintf(stderr, " a = "); fgets(s, 128, stdin); sscanf(s, "%lf", &a);
while (a <= 0.0) {
fprintf(stderr, "'a' には正の数を入れてください。\n");
fprintf(stderr, " a = "); fgets(s, 128, stdin); sscanf(s, "%lf", &a);
}
x = (a + 1.0) / 2.0;
printf("\n# sqrt(%e) = % .15e\n", a, x);
return 0;
}
補足
すいません>< えと、一番の問題の延長みたいな・・感じです; 一番の問題について F(x)= とおきかえて、ときなさいという主旨です・・ わかりにくくてごめんなさい・・ しかも、すぐに返信してくださってありがとうございます!