0% found this document useful (0 votes)
100 views1 page

Newtons Method of Root Finding SciLab Co PDF

This document describes the Newton-Raphson method for finding the root of a polynomial function. It outlines the algorithm which takes a function f(x) and its derivative f'(x) to iteratively find better approximations of the root by calculating x(i+1) = x(i) - f(x(i))/f'(x(i)). It provides examples of implementing the necessary functions to evaluate a polynomial and its derivative, and uses these functions in the main program to apply Newton's method to find a root.

Uploaded by

Miguel Hinojosa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views1 page

Newtons Method of Root Finding SciLab Co PDF

This document describes the Newton-Raphson method for finding the root of a polynomial function. It outlines the algorithm which takes a function f(x) and its derivative f'(x) to iteratively find better approximations of the root by calculating x(i+1) = x(i) - f(x(i))/f'(x(i)). It provides examples of implementing the necessary functions to evaluate a polynomial and its derivative, and uses these functions in the main program to apply Newton's method to find a root.

Uploaded by

Miguel Hinojosa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

0001 // NEWTON RAPHSON

0002 // Finding the root of any given polynomial


0003
0004 // Algorithm
0005 // Given the function f(x), solve for the first derivative f'(x).
0006 // Assume an initial value for f(xi).
0007 // Repeat:
0008 // a. Substitute xi to the function f(xi) and f'(xi).
0009 // b. Solve for the next value of xi:
0010 // x(i+1) = xi - f(xi)/f'(xi)
0011 // c. Until abs(f(xi)) < e or abs(x(i+1) - xi) < e.
0012
0013 // EXAMPLE
0014 // polynomial = [ 1 5 -6]
0015 // test point = - 3
0016 // root = -6
0017
0018 funcprot(0); //INITIALIZE FUNCTIONS
0019
0020 // DERIVATIVE OF A POLYNOMIAL TEST FUNCTION
0021 function [newpoly]=derivativepoly(polynomial)
0022 terms = length(polynomial); //DETERMINE NUMBER OF TERMS
0023 base = terms - 1; //BASE TERM
0024 element = 1; //ELEMENT NUMBER
0025 while element ~= terms
0026 newpoly(1,element) = polynomial(1,element) * base;
0027 element = element + 1; //INCREMENT ELEMENT
0028 base = base - 1; //DECREMENT BASE TERM
0029 end
0030 endfunction
0031
0032 //POLYNOMIAL EVALUATION FUNCTION
0033 function [sumpoly]=evalpoly(polynomial, point)
0034 terms = length(polynomial); //DETERMINE NUMBER OF TERMS
0035 power = terms - 1; //HIGHEST POWER WOULD BE
0036 element = 1; sumpoly = 0; //INITIALIZE SUM = 0;
0037 while element ~= terms + 1
0038 base = point**power; //POWER OF THE VARIABLE
0039 sumpoly = sumpoly + polynomial(1,element) * base;
0040 element = element + 1; //INC ELEMENT
0041 power = power - 1; //DEC POWER
0042 end
0043 endfunction
0044
0045 // NEWTON'S METHOD OF ROOT FINDING MAIN PROG
0046 disp("NEWTON''S METHOD OF ROOT FINDING a.k.a Newton Raphson")
0047 polynomial = input("Enter polynomial coefficients: "); //ENTER POLYNOMIAL
0048 x = input("Enter test point: "); //TEST POINT
0049 root = evalpoly(polynomial,x); //FIRST EVALUATION
0050 newpoly = derivativepoly(polynomial); //FIRST DERIVATIVE
0051 while abs(root) > 10**-15 //LOOP STARTS UNTIL ROOT ~ 0
0052 num = evalpoly(polynomial,x) //NUMERATOR
0053 den = evalpoly(newpoly,x); //DENOMINATOR
0054 x = x - num/den; //NEW X
0055 root = evalpoly(polynomial,x); //EVALUATE NEW X
0056 end
0057
0058 disp(x, "One root is: ") //DISPLAY ROOT

You might also like