Project 1 / Functions - A Newton Scanner

Project 1

Please develop the function ScanForRoots to scan a given function f(x) for it’s roots using the newton’s algorithm.

The Interface

The program should read the following input parameters from an input file. The file’s format is given as follows.

  • [max number of roots to find]
  • [lower bound: lb] [upper bound: up] [step width: sw]
  • [precision eps] [stepwidth h] [max iteration: ix]

The program should search the root of a function with the starting position x0. The starting position x0 should be taken from the interval which is described by the parameters ub, lb and sw read from the input file. The found roots of the function should be saved in an dynamical array, which should be a parameter of the function ScanForRoots The size of the array should be set by a parameter, which is read from the input file.

An example data file is given below.

  • 10
  • -10. +10. 0.1
  • e-7 0.01 100


In the project a reasonable interval should be selected to be able to check the quality of the developed software.

The Function ScanForRoots

So the interface to ScanForRoots is the following.

integer function ScanForRouts(f,lb,ub,sw,eps,h,maxit,roots)

Parameter

Type Comment

f

function function to analyse

lb

real(8)

lower bound of search interval

ub

real(8)

upper bound of search interval

sw

real(8)

step width for the starting position x0

eps

real(8)

precision for the newton algorithm

maxit

integer

maximal number of iteration for one root search

roots

real(8)

one indexed array for the found roots

The return value of ScanForRoots should give the number of found roots. The roots should not be stored multiple.

The main program which should call ScanForRoots should do the following.

  • open, read and close the input file ScanForRoots.inp.
  • call ScanForRoots1 to search for the function’s roots.
  • write a little report which gives a list of the found roots
citation generator
citaion generator
make money online