「収束の種類」(理系への数学2008年5月号)

プログラム

ニュートン法のプログラム

表3と表4の出力に用いたCプログラム(文字コードはUTF-8)

#include <stdio.h>
#include <math.h>
#define EPS 1.0e-15
#define NMAX 30
double f(double);
double df(double);

int main(void)
{
  int n = 0;
  double x,fx;

  printf("初期値を入力してください。");
  scanf("%lf",&x);

  fx = f(x);
  printf("-------------------------------------\n");
  printf("%3s %10s %18s \n","nu","x_nu","f(x_nu)");
  printf("-------------------------------------\n");
  printf("%3d %20.15f %8.2g\n",n,x,fx);
  while(fabs(fx) > EPS && n < NMAX){
    x = x - fx/df(x);
    fx = f(x);
    n++;
    printf("%3d %20.15f %8.2g\n",n,x,fx);
  }
  printf("-------------------------------------\n");

  return 0;
}

double f(double x)
{
  double y;

  y = -2.0 + x * (5.0 + x * (-4.0 + x));

  return y;
}

double df(double x)
{
  double y;

  y= 5.0 + x * (-8.0 + 3.0 * x);

  return y;
}

文字コードEUC-JPによるプログラム

gcc version 4.0.1 (Apple Computer, Inc. build 5250) によるコンパイルと実行

$ cc -Wall -lm newton.c
$ ./a.out
初期値を入力してください。2.1
-------------------------------------
 nu       x_nu            f(x_nu) 
-------------------------------------
  0    2.100000000000000     0.12
  1    2.015384615384615    0.016
  2    2.000452488687783  0.00045
  3    2.000000408936907  4.1e-07
  4    2.000000000000334  3.3e-13
  5    2.000000000000000        0
-------------------------------------

演習問題解答例

|ρ|≦1 (p.9)

(3.2)の証明

(3) ⇒ (5) (p.9)

(3)から(5)の導出


メールアドレス 長田直樹 <osada "at" cis.twcu.ac.jp> (スパム防止のため@を"at"で置き換えています。)
Last modified: Fri Apr 18 20:50:23 JST 2008
Valid HTML 4.01 Strict