電子書籍の厳選無料作品が豊富!

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

#define KMAX 20

void eval(float x,float *f,float *df)
{
float e;

e= exp(-x);
*f= x-e;
*df= 1+e;
return;
}

void main()
{
float x, eps, f, df, d;
int k;

scanf("%g%g", &x, &eps);
printf("Solution of f(x)=x-eps(-x)=0\n");
printf("Convergence criterion |f(x)|<%G\n\n", eps);
printf(" k\tx\t\tf(x)\t\tf'(x)\t\tcorrection\n");
for(k=0;k<KMAX;k++){
eval(x, &f, &df);
d= -f/df;
printf("%2d %15.6e %15.6e %15.6e %15.6e\n", k, x, f, df, d);
x += d;
if(fabs(f)<eps)
break;
}
if(k>=KMAX)
printf("divergent?\n");
printf("\nroot=%g\n", x);
}

この解における収束状況をグラフを書いて確かめたいのですがどうやって、何で書いたらいいのかわかりません。教えてください!このプログラムはC++で書いたNewton法です。

A 回答 (1件)

プログラムから、値を吐きだして


エクセルでグラフにするか
GNU Plotみたいなソフトを使うといいのでは
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!