0% found this document useful (0 votes)
141 views

Numerical Analysis - I. Jacques and C. Judd

This document provides a summary of Scilab codes that accompany examples from the textbook "Numerical Analysis" by I. Jacques And C. Judd. There are over 150 Scilab codes presented in the document organized by chapter to illustrate numerical methods for linear algebraic equations, nonlinear equations, eigenvalues and eigenvectors, approximation theory, numerical differentiation and integration, and ordinary differential equations. The codes were created by Pragya Chordia And Shubham Mittal and cross-checked by Santosh Kumar to provide a hands-on companion for learning numerical analysis concepts from the textbook.

Uploaded by

deepika snehi
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)
141 views

Numerical Analysis - I. Jacques and C. Judd

This document provides a summary of Scilab codes that accompany examples from the textbook "Numerical Analysis" by I. Jacques And C. Judd. There are over 150 Scilab codes presented in the document organized by chapter to illustrate numerical methods for linear algebraic equations, nonlinear equations, eigenvalues and eigenvectors, approximation theory, numerical differentiation and integration, and ordinary differential equations. The codes were created by Pragya Chordia And Shubham Mittal and cross-checked by Santosh Kumar to provide a hands-on companion for learning numerical analysis concepts from the textbook.

Uploaded by

deepika snehi
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/ 110

Scilab Textbook Companion for

Numerical Analysis
by I. Jacques And C. Judd1

Created by
Pragya Chordia And Shubham Mittal
Int. MSc. App. Math. (Pursuing)
Mathematics
IIT Roorkee
College Teacher
Prof. Roshan Lal
Cross-Checked by
Santosh Kumar, IITB

May 19, 2016

1 Funded by a grant from the National Mission on Education through ICT,


http://spoken-tutorial.org/NMEICT-Intro. This Textbook Companion and Scilab
codes written in it can be downloaded from the ”Textbook Companion Project”
section at the website http://scilab.in
Book Description

Title: Numerical Analysis

Author: I. Jacques And C. Judd

Publisher: Chapman And Hall

Edition: 1

Year: 1987

ISBN: 0-412-27950-9

1
Scilab numbering policy used in this document and the relation to the
above book.

Exa Example (Solved example)

Eqn Equation (Particular equation of the above book)

AP Appendix to Example(Scilab Code that is an Appednix to a particular


Example of the above book)

For example, Exa 3.51 means solved example 3.51 of this book. Sec 2.3 means
a scilab code whose theory is explained in Section 2.3 of the book.

2
Contents

List of Scilab Codes 4

1 Introduction 6

2 Linear Algebric Equation 9

3 Non linear algebric equations 21

4 Eigenvalues and eigenvectors 36

5 Methods of approximation theory 54

6 Numerical Differntiation and Integration 81

7 Ordinary Differential Eqautions Initial value problem 96

8 Ordinary Differential Eqautions boundary value problem 106

3
List of Scilab Codes

Exa 1.1 Illustrating big errors caused by small errors . . . . . . 6


Exa 1.4 Calculating Induced instability through deflation method 8
Exa 2.1 Illutrates the effect of the partial pivoting . . . . . . . 9
Exa 2.2 Decomposition in LU form . . . . . . . . . . . . . . . 11
Exa 2.3 LU factorization method for solving the system of equa-
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Exa 2.4 LU factorisation method for solving the system of equa-
tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Exa 2.5 Choleski decomposition . . . . . . . . . . . . . . . . . 14
Exa 2.6 Jacobi method . . . . . . . . . . . . . . . . . . . . . . 15
Exa 2.7 Gauss Seidel method . . . . . . . . . . . . . . . . . . . 16
Exa 2.8 Successive over relaxation method . . . . . . . . . . . 17
Exa 2.9 Gauss Seidel and SOR method . . . . . . . . . . . . . 18
Exa 3.1 Bisection Method . . . . . . . . . . . . . . . . . . . . 21
Exa 3.2 False positioning method . . . . . . . . . . . . . . . . 23
Exa 3.3 fixed point iteration method . . . . . . . . . . . . . . . 24
Exa 3.4 Type of convergence . . . . . . . . . . . . . . . . . . . 26
Exa 3.5 Newton Method . . . . . . . . . . . . . . . . . . . . . 27
Exa 3.6 Secant Method . . . . . . . . . . . . . . . . . . . . . . 30
Exa 3.7 System of Non Linear Equations . . . . . . . . . . . . 32
Exa 3.8 System of Non Linear Equations . . . . . . . . . . . . 34
Exa 4.1 Power Method of finding largest Eigen value . . . . . . 36
Exa 4.2 Power Method of finding largest Eigen value . . . . . . 37
Exa 4.3 Convergence of Inverse Iteration . . . . . . . . . . . . 37
Exa 4.4 Deflation . . . . . . . . . . . . . . . . . . . . . . . . . 38
Exa 4.5 Threshold serial Jacobi Method . . . . . . . . . . . . . 39
Exa 4.6 The Gerchgorin circle . . . . . . . . . . . . . . . . . . 41
Exa 4.7 Sturm sequence property . . . . . . . . . . . . . . . . 43

4
Exa 4.8 Gerschgorins first theorem . . . . . . . . . . . . . . . . 44
Exa 4.9 Givens Method . . . . . . . . . . . . . . . . . . . . . . 46
Exa 4.10 Householder Matrix . . . . . . . . . . . . . . . . . . . 47
Exa 4.11 Householder methods . . . . . . . . . . . . . . . . . . 48
Exa 4.12 stable LR method . . . . . . . . . . . . . . . . . . . . 49
Exa 4.13 Orthogonal decomposition QR method . . . . . . . . . 49
Exa 4.14 Reduction to upper Hessenberg form . . . . . . . . . . 50
Exa 4.15 Redduction to upper Hessenberg form and calculating
eigen values . . . . . . . . . . . . . . . . . . . . . . . . 52
Exa 5.1 Lagranges Method of interpolation . . . . . . . . . . . 54
Exa 5.2 Theoritical bound on error . . . . . . . . . . . . . . . 55
Exa 5.3 Divided difference . . . . . . . . . . . . . . . . . . . . 56
Exa 5.4 Polynomial Interpolation Divided Differnce form . . . 57
Exa 5.5 Construction of Forward Difference Table . . . . . . . 58
Exa 5.6 Illustration of Newtons Forward Difference Formula . . 59
Exa 5.7 Illustration of Central Difference Formula . . . . . . . 60
Exa 5.8 Hermite Interpolation . . . . . . . . . . . . . . . . . . 62
Exa 5.9 Hermite cubic Interpolation . . . . . . . . . . . . . . . 63
Exa 5.10 Illustration cubic spline interpolation with equal differ-
ence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Exa 5.11 Illustration cubic spline interpolation with unequal dif-
ference . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Exa 5.12 Alternating way of constructing cubic splines . . . . . 68
Exa 5.13 Linear Least square aproximation method . . . . . . . 69
Exa 5.14 Quadratic Least square aproximation method . . . . . 72
Exa 5.15 Least square aproximation method with exponential func-
tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Exa 5.16 Least square approximation to continuous functions . 75
Exa 5.17 Gram Schmidt process for finding orthogonal functions 76
Exa 5.18 Gram Schmidt process for cubic polynomial least squares
approx . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Exa 6.1 Numerical Differentiation . . . . . . . . . . . . . . . . 81
Exa 6.2 Numerical Differentiation . . . . . . . . . . . . . . . . 82
Exa 6.3 Numerical Integration . . . . . . . . . . . . . . . . . . 83
Exa 6.4 Numerical Integration . . . . . . . . . . . . . . . . . . 85
Exa 6.5 Trapezoidal Rule . . . . . . . . . . . . . . . . . . . . . 86
Exa 6.6 Simpson Rule . . . . . . . . . . . . . . . . . . . . . . . 87
Exa 6.7 Rombergs Interpolation . . . . . . . . . . . . . . . . . 88

5
Exa 6.8 Rombergs Method . . . . . . . . . . . . . . . . . . . . 89
Exa 6.9 Simpsons Adaptive Quatrature . . . . . . . . . . . . . 90
Exa 6.10 Simpsons Adaptive Quatrature . . . . . . . . . . . . . 91
Exa 6.11 Gaussian Quadrature Rule . . . . . . . . . . . . . . . 94
Exa 6.12 Gaussian Quadrature Rule . . . . . . . . . . . . . . . 94
Exa 7.1 Eulers Method . . . . . . . . . . . . . . . . . . . . . . 96
Exa 7.2 Eulers trapezoidal predictor corrector pair . . . . . . . 97
Exa 7.3 Mid point formula . . . . . . . . . . . . . . . . . . . . 98
Exa 7.4 Illustraion of Taylor Series for approximation . . . . . 99
Exa 7.5 3 Step Adams Bashforth and 2 step Adam Moulton for-
mula . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Exa 7.10 Runge Kutta Methods . . . . . . . . . . . . . . . . . . 101
Exa 7.11 Eulers Methods . . . . . . . . . . . . . . . . . . . . . . 102
Exa 7.12 Eulers trapezoidal predictor corrector pair . . . . . . . 103
Exa 7.13 4 Stage Runge Kutta method . . . . . . . . . . . . . . 104
Exa 8.1 The finite difference method . . . . . . . . . . . . . . . 106

6
List of Figures

1.1 Illustrating big errors caused by small errors . . . . . . . . . 7

3.1 Bisection Method . . . . . . . . . . . . . . . . . . . . . . . . 22


3.2 False positioning method . . . . . . . . . . . . . . . . . . . . 24
3.3 Type of convergence . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Newton Method . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5 Secant Method . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.1 The Gerchgorin circle . . . . . . . . . . . . . . . . . . . . . . 42

5.1 Linear Least square aproximation method . . . . . . . . . . 71


5.2 Quadratic Least square aproximation method . . . . . . . . 73
5.3 Least square approximation to continuous functions . . . . . 77

6.1 Numerical Differentiation . . . . . . . . . . . . . . . . . . . . 82


6.2 Numerical Differentiation . . . . . . . . . . . . . . . . . . . . 84

7
Chapter 1

Introduction

Scilab code Exa 1.1 Illustrating big errors caused by small errors

1 // I l l u s t r a t i n g t h a t a s m a l l e r r o r i n d a t a p r o v i d e d
can r e s u l t i n b i g e r r o r s .
2 // w i t h o r i g i n a l e q u a t i o n s
3 //X+Y=2 & X+1.01Y=2.01
4 clear ;
5 clc ;
6 close () ;
7 A =[1 1;1 1.01];
8 B =[2 2.01] ’;
9 x=A\B;
10 disp (x , ’ S o l u t i o n s a r e : ’ )
11 x = linspace ( -0.5 ,1.5) ;
12 y1 =2 - x ;
13 y2 =(2.01 - x ) /1.01;
14 subplot (2 ,1 ,1) ;
15 plot (x , y1 )
16 plot (x , y2 , ’ r ’ )
17 xtitle ( ’ p l o t o f c o r r e c t e q u a t i o n s ’ , ’ x a x i s ’ , ’ y a x i s ’
)
18 // w i t h t h e e q u a t i o n s h a v i n g some e r r o r i n d a t a
19 //X+Y=2 & X+1.01Y=2.02

8
Figure 1.1: Illustrating big errors caused by small errors

20 A =[1 1;1 1.01];


21 B =[2 2.02] ’;
22 x=A\B;
23 disp (x , ’ S o l u t i o n s a r e : ’ )
24 subplot (2 ,1 ,2) ;
25 x = linspace ( -1 ,1) ;
26 y1 =2 - x ;
27 y2 =(2.02 - x ) /1.01;
28 plot (x , y1 )
29 plot (x , y2 , ’ r ’ )
30 xtitle ( ’ p l o t o f e r r o r h a v i n g e q u a t i o n s ’ , ’ x a x i s ’ , ’ y
axis ’)

9
Scilab code Exa 1.4 Calculating Induced instability through deflation method

1 // i l l u s t r a t i n g t h e i n d u c e d i n s t a b i l i t y t h r o u g h t h e
d e f l a t i o n method o f p o l y n o m i a l f a c t o r i s a t i o n .
2 clear ;
3 clc ;
4 close () ;
5 x = poly (0 , ’ x ’ ) ;
6 p3 = x ^3 -13* x ^2+32* x -20; // Given P o l y n o m i a l
7 roots ( p3 )
8 // s u p p o s e t h a t an e s t i m a t e o f i t s l a r g e s t z e r o i s
t a k e n a s 1 0 . 1 . Now d e v i d e p3 by ( x − 1 0 . 1 )
9 p2 = x ^2 -2.9* x +2.71; // t h e q u o t i e n t
10 roots ( p2 )
11 disp ( ’ i n d u c e d a l a r g e e r r o r i n r o o t s ’ )

10
Chapter 2

Linear Algebric Equation

Scilab code Exa 2.1 Illutrates the effect of the partial pivoting

1 // I l l u t r a t e s t h e e f f e c t o f t h e p a r t i a l p i v o t i n g
u s i n g 3 s i g n i f i c a n t // f i g u r e a r i t h m e t i c w i t h
rounding
2 // f i r s t done w i t h o u t p i v o t i n g and t h e n w i t h p a r t i a l
pivoting
3 clear ;
4 close () ;
5 clc ;
6 A
=[0.610 ,1.23 ,1.72;1.02 ,2.15 , -5.51; -4.34 ,11.2 , -4.25];

7 B =[0.792;12.0;16.3];
8 C =[ A , B ];
9 format ( ’ v ’ ,10) ;
10 n =3;
11 for k =1: n -1
12 for i = k +1: n
13 c = C (i , k ) / C (k , k ) ;
14 for j = k : n +1
15 C (i , j ) = C (i , j ) -c * C (k , j ) ;
16 end

11
17 end
18 end
19 x3 = C (3 ,4) / C (3 ,3) ;
20 x2 =( C (2 ,4) -C (2 ,3) * x3 ) / C (2 ,2) ;
21 x1 =( C (1 ,4) -C (1 ,3) * x3 - C (1 ,2) * x2 ) / C (1 ,1) ;
22 disp ([ x1 , x2 , x3 ] , ’ Answers w i t h o u t p a r t i a l p i v o t i n g :
’)
23
24
25 C =[ A , B ];
26 format ( ’ v ’ ,5) ;
27 n =3;
28 for k =1: n -1
29 m = max ( abs ( A (: , k ) ) ) ;
30 for l = k : n
31 if C (l , k ) == m
32 temp = C (l ,:) ;
33 C (l ,:) = C (k ,:) ;
34 C (k ,:) = temp ;
35 break ;
36 end
37 end
38 for i = k +1: n
39 c = C (i , k ) / C (k , k ) ;
40 for j = k : n +1
41 C (i , j ) = C (i , j ) -c * C (k , j ) ;
42 end
43 end
44 end
45 x3 = C (3 ,4) / C (3 ,3) ;
46 x2 =( C (2 ,4) -C (2 ,3) * x3 ) / C (2 ,2) ;
47 x1 =( C (1 ,4) -C (1 ,3) * x3 - C (1 ,2) * x2 ) / C (1 ,1) ;
48 disp ([ x1 , x2 , x3 ] , ’ Answers u s i n g p a r t i a l p i v o t i n g : ’)

12
Scilab code Exa 2.2 Decomposition in LU form

1 // I l l u s t r a t e s t h e d e c o m p o s i t i o n o f e v e r y m a t r i x i n t o
p r o d u c t o f l o w e r // and u p p e r t r i a n g u l a r m a t r i x
i f d i a g o n a l e l e m e n t s o f any one i s ’ 1 ’ // t h e n L
and U c o u l d u n i q u e l y be d e t e r m i n e d .
2 clear ;
3 close () ;
4 clc ;
5 format ( ’ v ’ ,5) ;
6 A = {4 , -2 ,2;4 , -3 , -2;2 ,3 , -1];
7 L (1 ,1) =1; L (2 ,2) =1; L (3 ,3) =1;
8 for i =1:3
9 for j =1:3
10 s =0;
11 if j >= i
12 for k =1: i -1
13 s = s + L (i , k ) * U (k , j ) ;
14 end
15 U (i , j ) = A (i , j ) -s ;
16 else
17 for k =1: j -1
18 s = s + L (i , k ) * U (k , j ) ;
19 end
20 L (i , j ) =( A (i , j ) -s ) / U (j , j ) ;
21 end
22 end
23 end
24 disp (L , ’ L = ’ )
25 disp (U , ’U = ’ )

Scilab code Exa 2.3 LU factorization method for solving the system of
equation

13
1 // A p p l y i n g LU f a c t o r i z a t i o n method f o r s o l v i n g t h e
system o f equation
2
3 clear ;
4 close () ;
5 clc ;
6 format ( ’ v ’ ,5) ;
7 A = {4 , -2 ,2;4 , -3 , -2;2 ,3 , -1];
8 for l =1:3
9 L (l , l ) =1;
10 end
11 for i =1:3
12 for j =1:3
13 s =0;
14 if j >= i
15 for k =1: i -1
16 s = s + L (i , k ) * U (k , j ) ;
17 end
18 // d i s p ( s , ’ sum : ’ ) ;
19 U (i , j ) = A (i , j ) -s ;
20 else
21 // s =0;
22 for k =1: j -1
23 s = s + L (i , k ) * U (k , j ) ;
24 end
25 L (i , j ) =( A (i , j ) -s ) / U (j , j ) ;
26 end
27 end
28 end
29 b =[6; -8;5];
30 c=L\b;
31 x=U\c;
32 disp (x , ’ S o l u t i o n o f e q u a t i o n s : ’ )

14
Scilab code Exa 2.4 LU factorisation method for solving the system of
equation

1 // A p p l i c a t i o n o f LU f a c t o r i s a t i o n method f o r s o l v i n g
the system o f equation
2 // I n t h i s c a s e A( 1 , 1 ) =0 s o t o a v o i d t h e d i v i s i o n by
0 we w i l l have t o i n t e r c h a n g e t h e r o w s .
3
4 clear ;
5 close () ;
6 clc ;
7 format ( ’ v ’ ,5) ;
8 A = {2 ,2 , -2 ,4;0 ,1 ,5 ,3;1 ,5 ,7 , -10; -1 ,1 ,6 , -5];
9 for l =1:4
10 L (l , l ) =1;
11 end
12 for i =1:4
13 for j =1:4
14 s =0;
15 if j >= i
16 for k =1: i -1
17 s = s + L (i , k ) * U (k , j ) ;
18 end
19 // d i s p ( s , ’ sum : ’ ) ;
20 U (i , j ) = A (i , j ) -s ;
21 else
22 // s =0;
23 for k =1: j -1
24 s = s + L (i , k ) * U (k , j ) ;
25 end
26 L (i , j ) =( A (i , j ) -s ) / U (j , j ) ;
27 end
28 end
29 end
30 b =[4; -6;14;0];
31 c=L\b;
32 x=U\c;
33 disp (x , ’ S o l u t i o n o f e q u a t i o n s : ’ )

15
Scilab code Exa 2.5 Choleski decomposition

1 // S o l v i n g t h e p r o b l e m u s i n g C h o l e s k i d e c o m p o s i t i o n
2 // D e c o m p o s i t i o n o f a m a t r i x ”A” t o L and L ’
3
4 clear ;
5 close () ;
6 clc ;
7 format ( ’ v ’ ,7)
8 A = [4 ,2 , -2;2 ,10 ,2; -2 ,2 ,3];
9 n = 3;
10 for i = 1: n
11 for j = 1: i
12 s =0;
13 if i == j
14 for k = 1: j -1
15 s = s + L (j , k ) * L (j , k ) ;
16 end
17 L (j , j ) = sqrt ( A (j , j ) -s ) ;
18 else
19 for k = 1: j -1
20 s = s + L (i , k ) * L (j , k ) ;
21 end
22 L (i , j ) = ( A (i , j ) -s ) / L (j , j ) ;
23 end
24 end
25 end
26 U = L ’;
27 disp (L , ’ Lower t r i a n g u l a r m a t r i x i s : ’ )
28 disp (U , ’ Upper t r i a n g u l a r m a t r i x i s : ’ )

16
Scilab code Exa 2.6 Jacobi method

1 // S o l v i n g t h e p r o b l e m u s i n g J a c o b i method
2 // t h e f i r s t c a s e i n c o n v e r g i n g and t h e 2 nd i s
d i v e r g i n g . . . . . drawback
3 // o f j a c o b i method
4 // t h e a n s i s c o r r e c t t o 2D p l a c e
5
6 clear ;
7 close () ;
8 clc ;
9 format ( ’ v ’ ,7) ;
10 x1 =[0 ,0];
11 x2 =[0 ,0];
12 x3 =[0 ,0];
13 x1 (1 ,2) =0.2*(6 -2* x2 (1 ,1) + x3 (1 ,1) ) ;
14 x2 (1 ,2) =0.16667*(4 - x1 (1 ,1) +3* x3 (1 ,1) ) ;
15 x3 (1 ,2) =0.25*(7 -2* x1 (1 ,1) - x2 (1 ,1) ) ;
16 i =1;
17 while ( abs ( x1 (1 ,1) - x1 (1 ,2) ) >0.5*10^ -2 | abs ( x2 (1 ,1) -
x2 (1 ,2) ) >0.5*10^ -2 | abs ( x3 (1 ,1) - x3 (1 ,2) )
>0.5*10^ -2 )
18 x1 (1 ,1) = x1 (1 ,2) ;
19 x2 (1 ,1) = x2 (1 ,2) ;
20 x3 (1 ,1) = x3 (1 ,2) ;
21 x1 (1 ,2) =0.2*(6 -2* x2 (1 ,1) + x3 (1 ,1) ) ;
22 x2 (1 ,2) =0.16667*(4 - x1 (1 ,1) +3* x3 (1 ,1) ) ;
23 x3 (1 ,2) =0.25*(7 -2* x1 (1 ,1) - x2 (1 ,1) ) ;
24 i = i +1;
25 end
26 disp ([ x1 ; x2 ; x3 ] , ’ Answers a r e : ’ )
27 disp (i , ’ Number o f I t e r a t i o n s : ’ )

17
28
29
30 x1 =[0 ,0];
31 x2 =[0 ,0];
32 x3 =[0 ,0];
33 x1 (1 ,2) =4 -6* x2 (1 ,1) +3* x3 (1 ,1) ;
34 x2 (1 ,2) =0.5*(6 -5* x1 (1 ,1) + x3 (1 ,1) ) ;
35 x3 (1 ,2) =0.25*(7 -2* x1 (1 ,1) - x2 (1 ,1) ) ;
36 i =1;
37 while ( abs ( x1 (1 ,1) - x1 (1 ,2) ) >0.5*10^ -2 | abs ( x2 (1 ,1) -
x2 (1 ,2) ) >0.5*10^ -2 | abs ( x3 (1 ,1) - x3 (1 ,2) )
>0.5*10^ -2 )
38 x1 (1 ,1) = x1 (1 ,2) ;
39 x2 (1 ,1) = x2 (1 ,2) ;
40 x3 (1 ,1) = x3 (1 ,2) ;
41 x1 (1 ,2) =(4 -6* x2 (1 ,1) +3* x3 (1 ,1) ) ;
42 x2 (1 ,2) =0.5*(6 -5* x1 (1 ,1) + x3 (1 ,1) ) ;
43 x3 (1 ,2) =0.25*(7 -2* x1 (1 ,1) - x2 (1 ,1) ) ;
44 i = i +1;
45 end
46 disp ([ x1 ; x2 ; x3 ] , ’ Answers a r e : ’ )
47 disp (i , ’ Number o f I t e r a t i o n s : ’ )

Scilab code Exa 2.7 Gauss Seidel method

1 // t h e p r o b l e m i s s o l v e d u s i n g Gauss−S e i d e l method
2 // i t i s f a s t c o n v e r g e n t a s compared t o j a c o b i method
3
4 clear ;
5 close () ;
6 clc ;
7 format ( ’ v ’ ,7) ;
8 x1 =[0 ,0];

18
9 x2 =[0 ,0];
10 x3 =[0 ,0];
11 x1 (1 ,2) =0.2*(6 -2* x2 (1 ,1) + x3 (1 ,1) ) ;
12 x2 (1 ,2) =0.16667*(4 - x1 (1 ,2) +3* x3 (1 ,1) ) ;
13 x3 (1 ,2) =0.25*(7 -2* x1 (1 ,2) - x2 (1 ,2) ) ;
14 i =1;
15 while ( abs ( x1 (1 ,1) - x1 (1 ,2) ) >0.5*10^ -2 | abs ( x2 (1 ,1) -
x2 (1 ,2) ) >0.5*10^ -2 | abs ( x3 (1 ,1) - x3 (1 ,2) )
>0.5*10^ -2 )
16 x1 (1 ,1) = x1 (1 ,2) ;
17 x2 (1 ,1) = x2 (1 ,2) ;
18 x3 (1 ,1) = x3 (1 ,2) ;
19 x1 (1 ,2) =0.2*(6 -2* x2 (1 ,1) + x3 (1 ,1) ) ;
20 x2 (1 ,2) =0.16667*(4 - x1 (1 ,2) +3* x3 (1 ,1) ) ;
21 x3 (1 ,2) =0.25*(7 -2* x1 (1 ,2) - x2 (1 ,2) ) ;
22 i = i +1;
23 end
24 disp ([ x1 ; x2 ; x3 ] , ’ Answers a r e : ’ )
25 disp (i , ’ Number o f I t e r a t i o n s : ’ )

Scilab code Exa 2.8 Successive over relaxation method

1 // The method u s e d t o s o l v e i s SOR( S u c c e s s i v e o v e r −


r e l a x a t i o n ) method
2 // o n l y m a r g i n a l improvement i s p o s s i b l e f o r t h i s
p a s t i c u l a r system s i n c e
3 // Gauss−S e i d e l i t e r a t i o n i t s e l f c o n v e r g e s q u i t e
rapidly
4
5 clear ;
6 close () ;
7 clc ;
8 format ( ’ v ’ ,7) ;

19
9 x1 =[0 ,0];
10 x2 =[0 ,0];
11 x3 =[0 ,0];
12 w =0.9;
13 x1 (1 ,2) = x1 (1 ,1) +0.2* w *(6 -5* x1 (1 ,1) -2* x2 (1 ,1) + x3 (1 ,1)
);
14 x2 (1 ,2) = x2 (1 ,1) +0.16667* w *(4 - x1 (1 ,2) -6* x2 (1 ,1) +3* x3
(1 ,1) ) ;
15 x3 (1 ,2) = x3 (1 ,1) +0.25* w *(7 -2* x1 (1 ,2) - x2 (1 ,2) -4* x3
(1 ,1) ) ;
16 i =1;
17 while ( abs ( x1 (1 ,1) - x1 (1 ,2) ) >0.5*10^ -2 | abs ( x2 (1 ,1) -
x2 (1 ,2) ) >0.5*10^ -2 | abs ( x3 (1 ,1) - x3 (1 ,2) )
>0.5*10^ -2 )
18 x1 (1 ,1) = x1 (1 ,2) ;
19 x2 (1 ,1) = x2 (1 ,2) ;
20 x3 (1 ,1) = x3 (1 ,2) ;
21 x1 (1 ,2) = x1 (1 ,1) +0.2* w *(6 -5* x1 (1 ,1) -2* x2 (1 ,1) + x3
(1 ,1) ) ;
22 x2 (1 ,2) = x2 (1 ,1) +0.16667* w *(4 - x1 (1 ,2) -6* x2 (1 ,1)
+3* x3 (1 ,1) ) ;
23 x3 (1 ,2) = x3 (1 ,1) +0.25* w *(7 -2* x1 (1 ,2) - x2 (1 ,2) -4* x3
(1 ,1) ) ;
24 i = i +1;
25 end
26 disp ([ x1 ; x2 ; x3 ] , ’ Answers a r e : ’ )
27 disp (i , ’ Number o f I t e r a t i o n s : ’ )

Scilab code Exa 2.9 Gauss Seidel and SOR method

1 // S o l v i n g f o u r l i n e a r s y s t e m o f e q u a t i o n s w i t h Gauss
−S e i d e l and SOR method
2 // t h e c o n v e r g e n c e i s much f a s t e r i n SOR method

20
3
4 clear ;
5 close () ;
6 clc ;
7 format ( ’ v ’ ,7) ;
8 x1 =[0 ,0];
9 x2 =[0 ,0];
10 x3 =[0 ,0];
11 x4 =[0 ,0];
12 x1 (1 ,2) = -0.33333*(1 - x2 (1 ,1) -3* x4 (1 ,1) ) ;
13 x2 (1 ,2) =0.16667*(1 - x1 (1 ,2) - x3 (1 ,1) ) ;
14 x3 (1 ,2) =0.16667*(1 - x2 (1 ,2) - x4 (1 ,1) ) ;
15 x4 (1 ,2) = -0.33333*(1 -3* x1 (1 ,2) - x3 (1 ,2) ) ;
16 i =1;
17 while ( abs ( x1 (1 ,1) - x1 (1 ,2) ) >0.5*10^ -2 | abs ( x2 (1 ,1) -
x2 (1 ,2) ) >0.5*10^ -2 | abs ( x3 (1 ,1) - x3 (1 ,2) )
>0.5*10^ -2 | abs ( x4 (1 ,1) - x4 (1 ,2) ) >0.5*10^ -2)
18 x1 (1 ,1) = x1 (1 ,2) ;
19 x2 (1 ,1) = x2 (1 ,2) ;
20 x3 (1 ,1) = x3 (1 ,2) ;
21 x4 (1 ,1) = x4 (1 ,2) ;
22 x1 (1 ,2) = -0.33333*(1 - x2 (1 ,1) -3* x4 (1 ,1) ) ;
23 x2 (1 ,2) =0.16667*(1 - x1 (1 ,2) - x3 (1 ,1) ) ;
24 x3 (1 ,2) =0.16667*(1 - x2 (1 ,2) - x4 (1 ,1) ) ;
25 x4 (1 ,2) = -0.33333*(1 -3* x1 (1 ,2) - x3 (1 ,2) ) ;
26 i = i +1;
27 end
28 disp ([ x1 ; x2 ; x3 ; x4 ] , ’ Answers a r e : ’ )
29 disp (i , ’ Number o f I t e r a t i o n s : ’ )
30
31
32 w =1.6;
33 x1 =[0 ,0];
34 x2 =[0 ,0];
35 x3 =[0 ,0];
36 x4 =[0 ,0];
37 x1 (1 ,2) = x1 (1 ,1) -0.33333* w *(1+3* x1 (1 ,1) - x2 (1 ,1) -3* x4
(1 ,1) ) ;

21
38 x2 (1 ,2) = x2 (1 ,1) +0.16667* w *(1 - x1 (1 ,2) -6* x2 (1 ,2) - x3
(1 ,1) ) ;
39 x3 (1 ,2) = x3 (1 ,1) +0.16667* w *(1 - x2 (1 ,2) -6* x3 (1 ,2) - x4
(1 ,1) ) ;
40 x4 (1 ,2) = x4 (1 ,1) -0.33333* w *(1 -3* x1 (1 ,2) - x3 (1 ,2) +3* x4
(1 ,1) ) ;
41 i =1;
42 while ( abs ( x1 (1 ,1) - x1 (1 ,2) ) >0.5*10^ -2 | abs ( x2 (1 ,1) -
x2 (1 ,2) ) >0.5*10^ -2 | abs ( x3 (1 ,1) - x3 (1 ,2) )
>0.5*10^ -2 | abs ( x4 (1 ,1) - x4 (1 ,2) ) >0.5*10^ -2)
43 x1 (1 ,1) = x1 (1 ,2) ;
44 x2 (1 ,1) = x2 (1 ,2) ;
45 x3 (1 ,1) = x3 (1 ,2) ;
46 x4 (1 ,1) = x4 (1 ,2) ;
47 x1 (1 ,2) = x1 (1 ,1) -0.33333* w *(1+3* x1 (1 ,1) - x2 (1 ,1)
-3* x4 (1 ,1) ) ;
48 x2 (1 ,2) = x2 (1 ,1) +0.16667* w *(1 - x1 (1 ,2) -6* x2 (1 ,2) -
x3 (1 ,1) ) ;
49 x3 (1 ,2) = x3 (1 ,1) +0.16667* w *(1 - x2 (1 ,2) -6* x3 (1 ,2) -
x4 (1 ,1) ) ;
50 x4 (1 ,2) = x4 (1 ,1) -0.33333* w *(1 -3* x1 (1 ,2) - x3 (1 ,2)
+3* x4 (1 ,1) ) ;
51 i = i +1;
52 end
53 disp ([ x1 ; x2 ; x3 ; x4 ] , ’ Answers a r e : ’ )
54 disp (i , ’ Number o f I t e r a t i o n s : ’ )

22
Chapter 3

Non linear algebric equations

Scilab code Exa 3.1 Bisection Method

1 // B i s e c t i o n Method
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;
6 b (1) =1; a (1) =0; k =5;
7 deff ( ’ [ f x ]= b i s e c ( x ) ’ , ’ f x =(x +1) . ˆ 2 . ∗ exp ( x . ˆ 2 − 2 )−1 ’ ) ;
8 x = linspace (0 ,1) ;
9 plot (x ,(( x +1) .^2) .*( exp ( x .^2 -2) ) -1) ;
10 // i n i n t e r v a l [ 0 , 1 ] c h a n g e s i t s s i g n t h u s h a s a r o o t
11 // k = no o f d e c i m a l p l a c e o f a c c u r a c y
12 // a = l o w e r l i m i t o f i n t e r v a l
13 // b = u p p e r l i m i t o f i n t e r v a l
14 // n = no o f i t e r a t i o n s r e q u i r e d
15 n = log2 ((10^ k ) *( b - a ) ) ;
16 n = ceil ( n ) ;
17 disp (n , ’ Number o f i t e r a t i o n s : ’ )
18 for i = 1: n -1
19 N(i) = i;
20 c ( i ) = ( a ( i ) + b ( i ) ) /2;
21 bs ( i ) = bisec ( c ( i ) ) ;

23
Figure 3.1: Bisection Method

22 if ( bisec ( b ( i ) ) * bisec ( c ( i ) ) <0)


23 a ( i +1) = c ( i ) ;
24 b ( i +1) = b ( i ) ;
25 else
26 b ( i +1) = c ( i ) ;
27 a ( i +1) = a ( i ) ;
28 end
29 end
30 N ( i +1) = i +1;
31 c ( i +1) = ( a ( i +1) + b ( i +1) ) /2;
32 bs ( i +1) = bisec ( c ( i ) ) ;
33 ann = [ N a b c bs ];
34 disp ( ann , ’ The T a b l e : ’ ) ;
35 disp ( c ( i ) , ’ The r o o t o f t h e f u n c t i o n i s : ’)

24
Scilab code Exa 3.2 False positioning method

1 // The s o l u t i o n u s i n g f a l s e p o s i t i o n method
2 clc ;
3 clear ;
4 close () ;
5 b (1) =1; a (1) =0; k =5; i =1;
6 format ( ’ v ’ ,9) ;
7 deff ( ’ [ f x ]= b i s e c ( x ) ’ , ’ f x =(x +1) ˆ2∗ exp ( x ˆ2 −2)−1 ’ ) ;
8 x = linspace (0 ,1) ;
9 plot (x ,(( x +1) .^2) .*( exp ( x .^2 -2) ) -1) ;
10 // i n i n t e r v a l [ 0 , 1 ] c h a n g e s i t s s i g n t h u s h a s a r o o t
11 // k = no o f d e c i m a l p l a c e o f a c c u r a c y
12 // a = l o w e r l i m i t o f i n t e r v a l
13 // b = u p p e r l i m i t o f i n t e r v a l
14 c ( i ) = ( a ( i ) * bisec ( b ( i ) ) -b ( i ) * bisec ( a ( i ) ) ) /( bisec ( b (
i ) ) - bisec ( a ( i ) ) ) ;
15 bs (1) = bisec ( c (1) ) ;
16 N (1) = 1;
17 a ( i +1) = c ( i ) ;
18 b ( i +1) = b ( i ) ;
19 while abs ( bisec ( c ( i ) ) ) >(0.5*(10^ - k ) )
20 i = i +1;
21 N(i)=i;
22 c ( i ) = ( a ( i ) * bisec ( b ( i ) ) -b ( i ) * bisec ( a ( i ) ) ) /(
bisec ( b ( i ) ) - bisec ( a ( i ) ) ) ;
23 bs ( i ) = bisec ( c ( i ) ) ;
24 if ( bisec ( b ( i ) ) * bisec ( c ( i ) ) <0)
25 a ( i +1) = c ( i ) ;
26 b ( i +1) = b ( i ) ;
27 else
28 b ( i +1) = c ( i ) ;

25
Figure 3.2: False positioning method

29 a ( i +1) = a ( i ) ;
30 end
31 end
32 a (10) =[]; b (10) =[];
33 ann = [ N a b c bs ];
34 disp ( ann , ’ The T a b l e : ’ ) ;
35 disp ( ’ The r o o t o f t h e f u n c t i o n i s b r a c k e t e d by
[0.647116 1] ’ );

26
Scilab code Exa 3.3 fixed point iteration method

1 //We have q u a d r a t i c e q u a t i o n xˆ2−2∗x−8=0 w i t h r o o t s


−2 and 4
2 // f o r s o l v i n g i t we u s e f i x e d p o i n t i t e r a t i o n method
f o r t h a t we r e a r r a n g e i t i n 3 ways .
3 // f i r s t way x =(2∗ x +8) ˆ ( 1 / 2 )
4 // h e r e x0 i s c h o s e n a r b i t r a r i l y
5
6 clear ;
7 clc ;
8 close () ;
9 format ( ’ v ’ ,5)
10 funcprot (0) ;
11 deff ( ’ [ f i x e d p o i n t ]= f x ( x ) ’ , ’ f i x e d p o i n t =(2∗ x +8) ˆ 0 . 5 ’
)
12 x0 =5;
13 while abs ( x0 - fx ( x0 ) ) >0.5*10^( -2)
14 x0 = fx ( x0 ) ;
15 end
16 disp ( x0 , ’ r o o t i s : ’ )
17
18 // s e c o n d way x =(2∗ x +8) / x
19
20 format ( ’ v ’ ,5)
21 funcprot (0) ;
22 deff ( ’ [ f i x e d p o i n t ]= f x ( x ) ’ , ’ f i x e d p o i n t =(2∗ x +8) / x ’ )
23 x0 =5;
24 while abs ( x0 - fx ( x0 ) ) >0.5*10^( -2)
25 x0 = fx ( x0 ) ;
26 end
27 disp ( x0 , ’ r o o t i s : ’ )
28
29 // t h i r d way x=(x ˆ2 −8) /2
30
31 format ( ’ v ’ ,10)
32 funcprot (0) ;
33 deff ( ’ [ f i x e d p o i n t ]= f x ( x ) ’ , ’ f i x e d p o i n t =(x ˆ2 −8) /2 ’ )

27
34 x0 =5;
35 for i =1:5
36 x0 = fx ( x0 ) ;
37 disp ( x0 , ’ v a l u e i s : ’ )
38 end
39 disp ( x0 , ’ As you can s e e t h a t t h e r o o t i s not
c o n v e r g i n g . So t h i s method i s n o t a p p l i c a b l e . ’ )

Scilab code Exa 3.4 Type of convergence

1 // c h e c k i n g f o r t h e c o n v e r g e n c e and d i v e r g e n c e o f
d i f f e r e n t f u n c t i o n s we a r e g e t t i n g a f t e r
rearrangement of the given quadratic equation x
ˆ2−2∗x −8=0.
2 // a f t e r f i r s t t y p e o f a r r a n g e m e n t we g e t a f u n c t i o n
gx =(2∗ x +8) ˆ ( 1 / 2 ) . f o r t h i s we have . .
3
4 clear ;
5 clc ;
6 close () ;
7 alpha =4;
8 I = alpha -1: alpha +1; // r e q u i r e d i n t e r v a l
9 deff ( ’ [ f 1 ]= gx ( x ) ’ , ’ f 1 =(2∗ x +8) ˆ ( 1 / 2 ) ’ ) ;
10 deff ( ’ [ f 2 ]= d i f f g x ( x ) ’ , ’ f 2 =(2∗ x +8) ˆ ( − 0 . 5 ) ’ ) ;
11 x = linspace (3 ,5) ;
12 subplot (2 ,1 ,1) ;
13 plot (x ,(2* x +8) ^(1/2) )
14 plot (x , x )
15 x0 =5;
16 if diffgx ( I ) >0
17 disp ( ’ E r r o r s i n two c o n s e c u t i v e i t e r a t e s a r e o f
same s i g n s o c o n v e r g e n c e i s m o n o t o n i c ’ )
18 end

28
19 if abs ( diffgx ( x0 ) ) <1
20 disp ( ’ So t h i s method c o n v e r g e s ’ )
21 end
22
23 // a f t e r s e c o n d t y p e o f a r r a n g e m e n t we g e t a f u n c t i o n
gx =(2∗ x +8) / x . f o r t h i s we have . .
24
25 deff ( ’ [ f 1 ]= gx ( x ) ’ , ’ f 1 =(2∗ x +8) / x ’ ) ;
26 deff ( ’ [ f 2 ]= d i f f g x ( x ) ’ , ’ f 2 =(−8) / ( x ˆ 2 ) ’ ) ;
27 x = linspace (1 ,5) ;
28 for i =1:100
29 y (1 , i ) =2+8/ x (1 , i ) ;
30 end
31 subplot (2 ,1 ,2) ;
32 plot (x , y )
33 plot (x , x )
34 x0 =5;
35 if diffgx ( I ) <0
36 disp ( ’ E r r o r s i n two c o n s e c u t i v e i t e r a t e s a r e o f
opposite sign so convergence i s o s c i l l a t o r y ’ )
37 end
38 if abs ( diffgx ( x0 ) ) <1
39 disp ( ’ So t h i s method c o n v e r g e s ’ )
40 end

Scilab code Exa 3.5 Newton Method

1 // Newton ’ s Method
2 // t h e f i r s t f e w i t e r a t i o n c o n v e r g e s q u i k c l y i n
n e g a t i v e r o o t a s compared t o p o s i t i v e r o o t
3 clc ;

29
Figure 3.3: Type of convergence

30
4 clear ;
5 close () ;
6 funcprot (0) ;
7 format ( ’ v ’ ,9) ;
8 deff ( ’ [ Newton ]= f x ( x ) ’ , ’ Newton=exp ( x )−x−2 ’ ) ;
9 deff ( ’ [ d i f f ]= gx ( x ) ’ , ’ d i f f =exp ( x ) −1 ’ ) ;
10 x = linspace ( -2.5 ,1.5) ;
11 plot (x , exp ( x ) -x -2)
12 // from t h e g r a p h t h e f u n c t i o n h a s 2 r o o t s
13 // c o n s i d e r i n g t h e i n i t i a l n e g a t i v e r o o t −10
14 x1 = -10;
15 x2 = x1 - fx ( x1 ) / gx ( x1 ) ;
16 i =0;
17 while abs ( x1 - x2 ) >(0.5*10^ -7)
18 x1 = x2 ;
19 x2 = x1 - fx ( x1 ) / gx ( x1 ) ;
20 i = i +1;
21 end
22 disp (i , ’ Number o f i t e r a t i o n s : ’ )
23 disp ( x2 , ’ The n e g a t i v e r o o t o f t h e f u n c t i o n i s : ’)
24
25
26 // c o n s i d e r i n g t h e i n i t i a l p o s i t i v e r o o t 10
27 x1 = 10;
28 x2 = x1 - fx ( x1 ) / gx ( x1 ) ;
29 i =0;
30 while abs ( x1 - x2 ) >(0.5*10^ -7)
31 x1 = x2 ;
32 x2 = x1 - fx ( x1 ) / gx ( x1 ) ;
33 i = i +1;
34 end
35 disp (i , ’ Number o f i t e r a t i o n : ’ )
36 disp ( x2 , ’ The p o s i t i v e r o o t o f t h e f u n c t i o n i s : ’)
37 // number o f i t e r a t i o n s s h o w i n g f a s t and s l o w
convergent

31
Figure 3.4: Newton Method

Scilab code Exa 3.6 Secant Method

1 // S e c a n t Method
2 // t h e f i r s t f e w i t e r a t i o n c o n v e r g e s q u i k c l y i n
n e g a t i v e r o o t a s compared t o p o s i t i v e r o o t
3 clc ;
4 clear ;
5 close () ;
6 funcprot (0) ;
7 format ( ’ v ’ ,9) ;
8 deff ( ’ [ S e c a n t ]= f ( x ) ’ , ’ S e c a n t=exp ( x )−x−2 ’ ) ;

32
9 x = linspace (0 ,1.5) ;
10 subplot (2 ,1 ,1) ;
11 plot (x , exp ( x ) -x -2) ;
12 plot (x ,0) ;
13 // from t h e g r a p h t h e f u n c t i o n h a s 2 r o o t s
14 // c o n s i d e r i n g t h e i n i t i a l n e g a t i v e r o o t −10
15 x0 = -10
16 x1 = -9;
17 x2 = ( x0 * f ( x1 ) - x1 * f ( x0 ) ) /( f ( x1 ) -f ( x0 ) ) ;
18 i =0;
19 while abs ( x1 - x2 ) >(0.5*10^ -7)
20 x0 = x1 ;
21 x1 = x2 ;
22 x2 = ( x0 * f ( x1 ) - x1 * f ( x0 ) ) /( f ( x1 ) -f ( x0 ) ) ;
23 i = i +1;
24 end
25 disp (i , ’ Number o f i t e r a t i o n s : ’ )
26 disp ( x2 , ’ The n e g a t i v e r o o t o f t h e f u n c t i o n i s : ’)
27
28
29 // c o n s i d e r i n g t h e i n i t i a l p o s i t i v e r o o t 10
30 subplot (2 ,1 ,2) ;
31 x = linspace ( -2.5 ,0) ;
32 plot (x , exp ( x ) -x -2) ;
33 plot (x ,0) ;
34 x0 = 10
35 x1 = 9;
36 x2 = ( x0 * f ( x1 ) - x1 * f ( x0 ) ) /( f ( x1 ) -f ( x0 ) ) ;
37 i =0;
38 while abs ( x1 - x2 ) >(0.5*10^ -7)
39 x0 = x1 ;
40 x1 = x2 ;
41 x2 = ( x0 * f ( x1 ) - x1 * f ( x0 ) ) /( f ( x1 ) -f ( x0 ) ) ;
42 i = i +1;
43 end
44 disp (i , ’ Number o f i t e r a t i o n : ’ )
45 disp ( x2 , ’ The p o s i t i v e r o o t o f t h e f u n c t i o n i s : ’)
46 // number o f i t e r a t i o n s s h o w i n g f a s t and s l o w

33
Figure 3.5: Secant Method

convergent
47
48 format ( ’ v ’ ,6)
49 // Order o f s e c a n t method ( p )
50 p = log (31.52439) / log (8.54952) ;
51 disp (p , ’ Order o f S e c a n t Method : ’)

Scilab code Exa 3.7 System of Non Linear Equations

34
1 // Non−L i n e a r E q u a t i o n
2 clc ;
3 clear ;
4 close () ;
5 funcprot (0) ;
6 format ( ’ v ’ ,9) ;
7 i = 1;
8 deff ( ’ [ f u n c 1 ]= f ( x , y ) ’ , ’ f u n c 1=xˆ2+yˆ2−4 ’ ) ;
9 deff ( ’ [ f u n c 2 ]= g ( x , y ) ’ , ’ f u n c 2 =2∗x−y ˆ2 ’ ) ;
10 deff ( ’ [ d i f f f x ]= f x ( x ) ’ , ’ d i f f f x =2∗x ’ ) ;
11 deff ( ’ [ d i f f f y ]= f y ( y ) ’ , ’ d i f f f y =2∗y ’ ) ;
12 deff ( ’ [ d i f f g x ]= gx ( x ) ’ , ’ d i f f g x =2 ’ ) ;
13 deff ( ’ [ d i f f g y ]= gy ( y ) ’ , ’ d i f f g y =−2∗y ’ ) ;
14 x1 ( i ) =1; y1 ( i ) =1;
15 J = [ fx ( x1 ( i ) ) , fy ( y1 ( i ) ) ; gx ( x1 ( i ) ) , gy ( y1 ( i ) ) ];
16 n =[ x1 ( i ) ; y1 ( i ) ] - inv ( J ) *[ f ( x1 ( i ) , y1 ( i ) ) ; g ( x1 ( i ) , y1 ( i )
) ];
17 x2 ( i ) = n (1 ,1) ; y2 ( i ) = n (2 ,1) ;
18 N (1) =i -1;
19 while ( abs ( x2 ( i ) - x1 ( i ) ) >0.5*10^ -7) | ( abs ( y2 ( i ) - y1 ( i
) ) >0.5*10^ -7)
20 i = i +1;
21 N ( i ) =i -1;
22 x1 ( i ) = x2 (i -1) ;
23 y1 ( i ) = y2 (i -1) ;
24 J = [ fx ( x1 ( i ) ) , fy ( y1 ( i ) ) ; gx ( x1 ( i ) ) , gy ( y1 ( i ) ) ];
25 n =[ x1 ( i ) ; y1 ( i ) ] - inv ( J ) *[ f ( x1 ( i ) , y1 ( i ) ) ; g ( x1 ( i ) ,
y1 ( i ) ) ];
26 x2 ( i ) = n (1 ,1) ; y2 ( i ) = n (2 ,1) ;
27 end
28 N ( i +1) = i ;
29 x1 ( i +1) = x2 ( i ) ;
30 y1 ( i +1) = y2 ( i ) ;
31 n = [ N x1 y1 ];
32 disp (n , ’ The v a l u e o f n x and y : ’ )

35
Scilab code Exa 3.8 System of Non Linear Equations

1 // Non−L i n e a r E q u a t i o n
2 clc ;
3 clear ;
4 close () ;
5 funcprot (0) ;
6 format ( ’ v ’ ,9) ;
7 deff ( ’ [ f u n c 1 ]= f ( x1 , x2 ) ’ , ’ f u n c 1 = −2.0625∗ x1 +2∗x2
− 0 . 0 6 2 5 ∗ x1 ˆ 3 + 0 . 5 ’ ) ;
8 deff ( ’ [ f u n c 2 ]= g ( x1 , x2 , x3 ) ’ , ’ f u n c 2=x3 −2∗x2+x1 − 0 . 0 6 2 5 ∗
x2 ˆ 3 + 0 . 1 2 5 ∗ x2 ∗ ( x3−x1 ) ’ ) ;
9 deff ( ’ [ f u n c 3 ]= h ( x2 , x3 , x4 ) ’ , ’ f u n c 3=x4 −2∗x3+x2 − 0 . 0 6 2 5 ∗
x3 ˆ 3 + 0 . 1 2 5 ∗ x3 ∗ ( x4−x2 ) ’ ) ;
10 deff ( ’ [ f u n c 4 ]= k ( x3 , x4 ) ’ , ’ f u n c 4 = −1.9375∗ x4+x3 − 0 . 0 6 2 5 ∗
x4 ˆ3 −0.125∗ x3 ∗ x4 +0.5 ’ ) ;
11 // d e f i n e t h e c o r r e s p o n d i n g p a r t i a l d i f f e r e n c i a t i o n
o f t h e f u n c t i o n = 16
12 deff ( ’ [ d i f f f x 1 ]= f x 1 ( x1 ) ’ , ’ d i f f f x 1 = −2.0625 −3∗0.0625∗
x1 ˆ2 ’ ) ;
13 deff ( ’ [ d i f f f x 2 ]= f x 2 ( x2 ) ’ , ’ d i f f f x 2 =2 ’ ) ;
14
15 deff ( ’ [ d i f f g x 1 ]= gx1 ( x2 ) ’ , ’ d i f f g x 1 =1 −0.125∗ x2 ’ ) ;
16 deff ( ’ [ d i f f g x 2 ]= gx2 ( x1 , x2 , x3 ) ’ , ’ d i f f g x 2 = −2 −3∗0.0625∗
x2 ˆ 2 + 0 . 1 2 5 ∗ ( x3−x1 ) ’ ) ;
17 deff ( ’ [ d i f f g x 3 ]= gx3 ( x2 ) ’ , ’ d i f f g x 3 =1+0.125∗ x2 ’ ) ;
18
19 deff ( ’ [ d i f f h x 2 ]= hx2 ( x3 ) ’ , ’ d i f f h x 2 =1 −0.125∗ x3 ’ ) ;
20 deff ( ’ [ d i f f h x 3 ]= hx3 ( x3 , x4 ) ’ , ’ d i f f h x 3 = −2 −0.0625∗3∗ x3
ˆ 2 + 0 . 1 2 5 ∗ x4 ’ ) ;
21 deff ( ’ [ d i f f h x 4 ]= hx4 ( x3 ) ’ , ’ d i f f h x 4 = 1 + 0 . 1 2 5 ∗ x3 ’ ) ;
22

36
23 deff ( ’ [ d i f f k x 3 ]= kx3 ( x4 ) ’ , ’ d i f f k x 3 =1 −0.125∗ x4 ’ ) ;
24 deff ( ’ [ d i f f k x 4 ]= kx4 ( x3 , x4 ) ’ , ’ d i f f k x 4
= −1.9375 −3∗0.0625∗ x4 ˆ2 −0.125∗ x3 ’ ) ;
25
26 x = [1.5 1.25 1.0 0.75] ’;
27 for i =1:6
28 N ( i ) =i -1;
29 x1 ( i ) = x (1) ; x2 ( i ) = x (2) ; x3 ( i ) = x (3) ; x4 ( i ) = x (4) ;
30 J = [ fx1 ( x (1) ) , fx2 ( x (2) ) ,0 ,0; gx1 ( x (2) ) , gx2 ( x (1) ,
x (2) ,x (3) ) , gx3 ( x (2) ) ,0;0 , hx2 ( x (3) ) , hx3 ( x (3) ,x
(4) ) , hx4 ( x (3) ) ;0 ,0 , kx3 ( x (4) ) , kx4 ( x (3) ,x (4) ) ];
31 x = x - inv ( J ) *[ f ( x (1) ,x (2) ) ; g ( x (1) ,x (2) ,x (3) ) ; h
( x (2) ,x (3) ,x (4) ) ; k ( x (3) ,x (4) ) ];
32 end
33 n = [ N x1 x2 x3 x4 ];
34 disp (n , ’ The v a l u e s o f N x1 x2 x3 x4 r e s p e c t i v e l y : ’
);

37
Chapter 4

Eigenvalues and eigenvectors

Scilab code Exa 4.1 Power Method of finding largest Eigen value

1 // The Power Method o f f i n d i n g l a r g e s t E i g e n v a l u e o f


given matrix
2 clear ;
3 clc ;
4 close () ;
5 A =[3 0 1;2 2 2;4 2 5]; // Given M a t r i x
6 u0 =[1 1 1] ’; // I n t i a l v e c t o r
7 v = A * u0 ;
8 a = max ( u0 ) ;
9 while abs ( max ( v ) -a ) >0.05 // f o r a c c u r a c y
10 a = max ( v ) ;
11 u0 = v / max ( v ) ;
12 v = A * u0 ;
13 end
14 format ( ’ v ’ ,4) ;
15 disp ( max ( v ) , ’ E i g e n v a l u e : ’ )
16 format ( ’ v ’ ,5) ;
17 disp ( u0 , ’ E i g e n v e c t o r : ’ )

38
Scilab code Exa 4.2 Power Method of finding largest Eigen value

1 // The Power Method o f f i n d i n g l a r g e s t E i g e n v a l u e o f


given matrix
2 clear ;
3 clc ;
4 close () ;
5 A =[3 0 1;2 2 2;4 2 5];
6 new_A =A -7* eye (3 ,3) ; // Given M a t r i x
7 u0 =[1 1 1] ’; // I n t i a l v e c t o r
8 v = new_A * u0 ;
9 a = max ( abs ( u0 ) ) ;
10 while abs ( max ( abs ( v ) ) -a ) >0.005 // f o r a c c u r a c y
11 a = max ( abs ( v ) ) ;
12 u0 = v / max ( abs ( v ) ) ;
13 v = new_A * u0 ;
14 end
15 format ( ’ v ’ ,5) ;
16 disp ( max ( v ) , ’ E i g e n v a l u e : ’ )
17 format ( ’ v ’ ,5) ;
18 disp ( u0 , ’ E i g e n v e c t o r : ’ )

Scilab code Exa 4.3 Convergence of Inverse Iteration

1 // C o n v e r g e n c e o f Inverse Iteration
2 clc ;
3 clear ;
4 close () ;

39
5 format ( ’ v ’ ,4) ;
6 A = [3 0 1;2 2 2; 4 2 5];
7 e1 = 7.00;
8 e2 = 1.02;
9 p = sum ( diag ( A ) ) -e1 - e2 ;
10 disp (A , ’A = ’ ) ;
11 A = A - p * eye (3 ,3) ;
12 disp (A , ’A−1.98 I = ’ ) ;
13 L = [1 0 0; 0.50 1 0; 0.26 0.52 1];
14 U = [4 2 3.02; 0 -.98 0.49; 0 0 -.03];
15 disp (L ,U , ’ The d e c o m p o s i t i o n o f A − 1 . 9 8 I ( L , U) : ’ ) ;
16 u = [1 ,1 ,1] ’;
17 I = inv ( U ) * inv ( L ) ;
18 for i = 1:3
19 v = inv ( U ) * inv ( L ) * u ;
20 disp ( max ( v ) ,v ,u ,i -1 , ’ The v a l u e s o f s u ( s ) v ( s +1)
and max ( v ( s +1) ) : ’ ) ;
21 u = v ./ max ( v ) ;
22 end
23 disp (u , ’ The E i g e n V e c t o r : ’ ) ;
24 ev = p +1/ max ( v ) ;
25 disp ( ev , ’ The a p p r o x e i g e n v a l u e : ’ );

Scilab code Exa 4.4 Deflation

1 // D e f l a t i o n
2 clc ;
3 clear ;
4 close () ;
5 A = [10 -6 -4; -6 11 2; -4 2 6];
6 P = [1 0 0; -1 1 0; -0.5 0 1];
7 disp (P ,A , ’ The A and t h e P( t r a n s f o r m a t i o n m a t r i x ) a r e
: ’ );

40
8 B = inv ( P ) * A * P ;
9 disp (B , ’ Hence B = ’ )
10 C = B;
11 C (1 ,:) = [];
12 C (: ,1) = [];
13 disp (C , ’ The d e f l a t e d m a t r i x : ’ ) ;
14 Y = spec ( C ) ;
15 disp (Y , ’ The m a t r i x A t h e r e f o r e h a s e i g e n v a l u e s : ’
);
16 e1 = [1/3 ,1 , -1/2] ’;
17 e2 = [2/3 ,1 ,1] ’;
18 disp ( e1 , e2 , ’ The e i g e n v a l u e s o f B a r e : ’ ) ;
19 x1 = P * e1 ;
20 x2 = P * e2 ;
21 disp (3/2.* x1 ,3/2.* x2 , ’ The e i g e n v e x t o r s o f t h e
o r g i n a l matrix A : ’ )

Scilab code Exa 4.5 Threshold serial Jacobi Method

1 // T h r e s h o l d s e r i a l J a c o b i Method
2 // t a k i n g t h r e s h o l d v a l u e s 0 . 5 and 0 . 0 5
3 clc ;
4 clear ;
5 close () ;
6 format ( ’ v ’ ,9) ;
7 A = [3 0.4 5;0.4 4 0.1;5 0.1 -2];
8 // f o r f i r s t c y c l e | 0 . 4 | < 0 . 5 t r a s n f o r m a t i o n
is
omitted
9 // | 5 | > 0 . 5 a z e r o i s c r e a t e d a t ( 1 , 3 )
10 // by t a k i n g t h e r o t a t i o n m a t r i x P1=[ c 0 s ; 0 1 0; − s
0 c ] ; where c=c o s and s=s i n
11 //O i s t h e t a
12 p =1; q =3;

41
13 O = 0.5* atan (2* A (p , q ) /( A (q , q ) -A (p , p ) ) ) ;
14 P1 = [ cos ( O ) 0 sin ( O ) ;0 1 0; - sin ( O ) 0 cos ( O ) ];
15 A1 = A ;
16 A2 = inv ( P1 ) * A * P1 ;
17 // a s a l l t h e o f f −d i a g o n a l s < 0 . 5 t h e f i r s t c y c l e i s
complete
18 disp ( diag ( A2 ) , ’ The e i g e n v a l u e s f o r c a s e 1 : ’ )
19
20 // s e c o n d c y c l e f o r 0 . 0 5
21 count =0;
22 EV = P1 ;
23 for i =1:3
24 for j = i +1:3
25 if A2 (i , j ) >0.05 then
26 p=i;q=j;
27 O = 0.5* atan (2* A2 (p , q ) /( A2 (q , q ) - A2 (p , p ) )
);
28 c = cos ( O ) ;
29 s = sin ( O ) ;
30 P = eye (3 ,3) ;
31 P (p , p ) = c ;
32 P (q , q ) = c ;
33 P (p , q ) = s ;
34 P (q , p ) = - s ;
35 A = inv ( P ) * A2 * P ;
36 disp ( EV , ’ v a l u e o f P∗ ’ )
37 EV = EV * P ;
38 count = count +1;
39 end
40 end
41 end
42 // e i g e n v a l u e s a r e t h e d i a g o n a l e l e m e n t s o f A and
t h e column o f P g i v e s e i g e n v e c t o r s
43 disp ( diag ( A ) , ’ E i g e n v a l u e s : ’ )
44 disp ( EV , ’ C o r r e s p o d i n g e i g e n v e c t o r s : ’ )

42
Scilab code Exa 4.6 The Gerchgorin circle

1 // The G e r c h g o r i n c i r c l e
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;
6 x = [0:.1:14];
7 plot2d (0 ,0 , -1 , ” 031 ” ,” ” ,[0 , -5 ,14 ,5]) ;
8 plot (x ,0) ;
9 A = [5 1 0; -1 3 1; -2 1 10];
10 disp (A , ’A = ’ ) ;
11 for i =1:3
12 disp ( A (i , i ) , ’ C e n t e r s a r e : ’ ) ;
13 radius = 0;
14 for j =1:3
15 if j ~= i then
16 radius = radius + abs ( A (i , j ) ) ;
17 end
18 end
19 disp ( radius , ’ R a d i u s : ’ ) ;
20 xarc ( A (i , i ) - radius , radius ,2* radius ,2* radius
,0 ,360*64) ;
21 end
22 disp ( ’ The f i g u r e i n d i c a t e s t h a t 2 o f t h e e i g e n v a l u e s
of A l i e i n s i d e the i n t e r s e c t e d region of 2
c i r c l e s , and t h e r e m a i n i n g e i g e n v a l u e i n t h e
o t h e r c i r c l e . ’ );

43
Figure 4.1: The Gerchgorin circle

44
Scilab code Exa 4.7 Sturm sequence property

1 // Sturm s e q u e n c e p r o p e r t y
2 clc ;
3 clear ;
4 close () ;
5 C =[2 ,4 ,0 ,0;4 ,10 ,3 ,0;0 ,3 ,9 , -1;0 ,0 , -1 ,5];
6 // f i n d t h e e i g e n v C l u e s l y i n g ( 0 , 5 )
7 p =0;
8
9 f (1) =1;
10 f (2) = C (1 ,1) -p ;
11 count = 0;
12 if f (1) * f (2) >=0 then
13 count = 1;
14 end
15 for r =3:5
16 br = C (r -2 ,r -1) ;
17 f ( r ) = - br ^2* f (r -2) +( C (r -1 ,r -1) -p ) * f (r -1) ;
18 if f ( r ) * f (r -1) >=0 then
19 count = count +1;
20 end
21 end
22 disp (f , ’ Sturm s e q u e n c e s ’ )
23 disp ( count , ’ Number o f e i g e n v a l u e s s t r i c k l y g r e a t e r
than 0 : ’ )
24
25 p =5;
26 f (1) =1;
27 f (2) = C (1 ,1) -p ;
28 count1 = 0;
29 if f (1) * f (2) >=0 then

45
30 count1 = 1;
31 end
32 for r =3:5
33 br = C (r -2 ,r -1) ;
34 f ( r ) = - br ^2* f (r -2) +( C (r -1 ,r -1) -p ) * f (r -1) ;
35 if f ( r ) * f (r -1) >=0 then
36 count1 = count1 +1;
37 end
38 end
39 disp (f , ’ Sturm s e q u e n c e s ’ )
40 disp ( count1 , ’ Number o f e i g e n v a l u e s s t r i c k l y g r e a t e r
than 5 : ’ )
41 disp ( count - count1 , ’ Number o f e i g e n v a l u e s b e t w e e n 0
and 5 : ’ )

Scilab code Exa 4.8 Gerschgorins first theorem

1 // G e r s c h g o r i n ’ s f i r s t t h e o r e m
2 clc ;
3 clear ;
4 close () ;
5 // f i n d t h e e i g e n v a l u e s l y i n g [ 0 , 4 ] w i t h an e r r o r o f
0.25
6 // t a k i n g p a t mid p o i n t o f t h e i n t e r v a l
7 C =[2 , -1 ,0; -1 ,2 , -1;0 , -1 ,1];
8 p =2;
9
10 f (1) =1;
11 f (2) = C (1 ,1) -p ;
12 count = 0;
13 if f (1) * f (2) >0 then
14 count = 1;
15 end

46
16 for r =3:4
17 br = C (r -2 ,r -1) ;
18 f ( r ) = - br ^2* f (r -2) +( C (r -1 ,r -1) -p ) * f (r -1) ;
19 if f ( r ) * f (r -1) >0 then
20 count = count +1;
21 // e l s e i f f ( r −1)==0 && f ( r −1) ∗ ??????
c h e c k f o r s i g n when f ( r )=z e r o
22 end
23 end
24 disp (f , ’ Sturm s e q u e n c e s ’ )
25 disp ( count , ’ Number o f e i g e n values s t r i c k l y greater
than 2 : ’)
26
27 p =1;
28 f (1) =1;
29 f (2) = C (1 ,1) -p ;
30 count1 = 0;
31 if f (1) * f (2) >0 then
32 count1 = 1;
33 end
34 for r =3:4
35 br = C (r -2 ,r -1) ;
36 f ( r ) = - br ^2* f (r -2) +( C (r -1 ,r -1) -p ) * f (r -1) ;
37 if f ( r ) * f (r -1) >0 then
38 count1 = count1 +1;
39 end
40 end
41 disp (f , ’ Sturm s e q u e n c e s ’ )
42 disp ( count1 , ’ Number o f e i g e n v a l u e s s t r i c k l y g r e a t e r
than 1 : ’ )
43
44 p =1.5;
45 f (1) =1;
46 f (2) = C (1 ,1) -p ;
47 count2 = 0;
48 if f (1) * f (2) >0 then
49 count2 = 1;
50 end

47
51 for r =3:4
52 br = C (r -2 ,r -1) ;
53 f ( r ) = - br ^2* f (r -2) +( C (r -1 ,r -1) -p ) * f (r -1) ;
54 if f ( r ) * f (r -1) >0 then
55 count2 = count2 +1;
56 end
57 end
58 disp (f , ’ Sturm s e q u e n c e s ’ )
59 disp ( count2 , ’ Number o f e i g e n v a l u e s s t r i c k l y g r e a t e r
than 1 . 5 : ’ )
60 disp ( p +0.25 , ’ E i g e n v a l u e l y i n g b e t w e e n [ 1 . 5 , 2 ] i e
w i t h an e r r o r o f 0 . 2 5 i s : ’ )

Scilab code Exa 4.9 Givens Method

1 // Given ’ s Method
2 // r e d u c e A1 t o t r i d i a g o n a l form
3 clc ;
4 clear ;
5 close () ;
6 format ( ’ v ’ ,7) ;
7 A1 = [2 -1 1 4; -1 3 1 2;1 1 5 -3;4 2 -3 6];
8 disp ( A1 , ’A = ’ )
9 // z e r o i s c r e a t e d a t ( 1 , 3 )
10 // by t a k i n g t h e r o t a t i o n m a t r i x X1=[ c 0 s ; 0 1 0; − s
0 c ] ; where c=c o s and s=s i n
11 //O i s t h e t a
12
13 count =0;
14 for i =1:(4 -2)
15 for j = i +2:4
16 if abs ( A1 (i , j ) ) >0 then
17 p = i +1; q = j ;

48
18 O = - atan ( A1 (p -1 , q ) /( A1 (p -1 , p ) ) ) ;
19 c = cos ( O ) ;
20 s = sin ( O ) ;
21 X = eye (4 ,4) ;
22 X (p , p ) = c ;
23 X (q , q ) = c ;
24 X (p , q ) = s ;
25 X (q , p ) = - s ;
26
27 A1 = X ’* A1 * X ;
28 disp ( A1 , ’ Ai = ’ ) ;
29 disp ( X , ’X = ’ ) ;
30 disp (O , ’ Theta = ’ ) ;
31 count = count +1;
32 end
33 end
34 end
35 disp ( A1 , ’ Reduced A1 t o t r i g o n a l m a t r i x i s : ’ )

Scilab code Exa 4.10 Householder Matrix

1 // H o u s e h o l d e r M a t r i x
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,7) ;
6 e = [1;0;0];
7 x = [ -1;1;4];
8 disp ( e , ’ e = ’ ) ;
9 disp ( x , ’ x = ’ ) ;
10 // c o n s i d e r i n g t h e p o s i t i v e k a c c o r d i n g t o s i g n
convention
11 k = sqrt (x ’* x ) ;

49
12 disp (k , ’ k = ’ ) ;
13 u = x - k * e ;
14 disp (u , ’ u = ’ ) ;
15 Q = eye (3 ,3) - 2* u *u ’/( u ’* u ) ;
16 disp (Q , ’ H o u s e h o l d e r M a t r i x : ’ )

Scilab code Exa 4.11 Householder methods

1 // H o u s e h o l d e r methods
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,7) ;
6 A = [2 -1 1 4; -1 3 1 2;1 1 5 -3;4 2 -3 6];
7 disp (A , ’A = ’ ) ;
8 n =4;
9 for r =1: n -2
10 x = A ( r +1: n , r ) ;
11 f = eye (n -r ,n - r ) ;
12 e = f (: ,1)
13 I = eye (r , r ) ;
14 O (1: n -r , r ) = 0;
15 // c a l c u l a t i n g Q
16 k = sqrt (x ’* x ) ;
17 u = x - k*e;
18 Q = eye (n -r ,n - r ) - 2* u *u ’/( u ’* u ) ;
19 // s u b s t i t u t i n g i n P
20 P (1: r ,1: r ) = I ;
21 P ( r +1: n ,1: r ) =0;
22 P (1: r , r +1: n ) =0;
23 P ( r +1: n , r +1: n ) = Q ;
24 A = P*A*P;
25 disp (A ,Q ,P , ’ The P Q and A m a t r i x a r e ; ’ )

50
26 end
27 C = A ;
28 disp (C , ’ The t r i d i a g o n a l m a t r i x by h o u s e h o l d e r method
is : ’)

Scilab code Exa 4.12 stable LR method

1 // s t a b l e LR method
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,7) ;
6 A = [2 1 3 1; -1 2 2 1;1 0 1 0; -1 -1 -1 1];
7 disp (A , ’A = ’ ) ;
8 for i = 1:6
9 [L ,R , P ]= lu ( A ) ;
10 A = R*P*L;
11 disp (A ,R ,L , ’ The L R and A m a t r i x a r e : ’ ) ;
12 end
13 disp (A , ’ The ( 1 , 1 ) and ( 4 , 4 ) e l e m e n t s have c o n v e r g e d
to r e a l e i g e n v a l u e s ’ )
14 X = [ A (2 ,2) A (2 ,3) ; A (3 ,2) A (3 ,3) ];
15 E = spec ( X ) ;
16 disp (E , ’ A l t h o u g h s u b m a t r i x t h e m s e l v e s a r e n o t
converging their eigen values converges . ’)

Scilab code Exa 4.13 Orthogonal decomposition QR method

1 // O r t h o g o n a l d e c o m p o s i t i o n − QR method

51
2 // r e d u c e A t o t r i d i a g o n a l form
3 clc ;
4 clear ;
5 close () ;
6 format ( ’ v ’ ,7) ;
7 A1 = [1 4 2; -1 2 0;1 3 -1];
8 disp ( A1 , ’A = ’ ) ;
9 // z e r o i s c r e a t e d i n l o w e r t r i a n g l e
10 // by t a k i n g t h e r o t a t i o n m a t r i x X1=[ c s 0; − s c 0 ; 0 0
1 ] ; where c=c o s and s=s i n
11 //O i s t h e t a
12
13 Q = eye (3 ,3) ;
14 for i =2:3
15 for j =1: i -1
16 p=i;q=j;
17 O = - atan ( A1 (p , q ) /( A1 (q , q ) ) ) ;
18 c = cos ( O ) ;
19 s = sin ( O ) ;
20 X = eye (3 ,3) ;
21 X (p , p ) = c ;
22 X (q , q ) = c ;
23 X (p , q ) = - s ;
24 X (q , p ) = s ;
25 A1 = X ’* A1 ;
26 Q = Q*X;
27 disp ( A1 ,X , ’ The X and A m a t r i x : ’ ) ;
28 end
29 end
30 R = A1 ;
31 disp (R ,Q , ’ Hence t h e o r i g i n a l m a t r i x can be
decomposed a s : ’ )

52
Scilab code Exa 4.14 Reduction to upper Hessenberg form

1 // R e d d u c t i o n t o u p p e r H e s s e n b e r g form
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,7) ;
6 A1 = [4 2 1 -3;2 4 1 -3;3 2 2 -3;1 2 1 0];
7 disp ( A1 , ’A = ’ ) ;
8 // t h e e l e m e n t w i t h l a r g e s t modulus b e l o w d i a g o n a l i n
f i r s t column n e e d t o be a t t h e t o p and t h e n
s i m i l a r l y f o r column 2
9 A1 = gsort ( A1 , ’ l r ’ ) ;
10 temp = A1 (: ,3) ;
11 A1 (: ,3) = A1 (: ,2) ;
12 A1 (: ,2) = temp ;
13 M1 = eye (4 ,4) ;
14 M1 (3 ,2) = A1 (3 ,1) / A1 (2 ,1) ;
15 M1 (4 ,2) = A1 (4 ,1) / A1 (2 ,1) ;
16 A2 = inv ( M1 ) * A1 * M1 ;
17 disp ( A2 , M1 , ’M1 and A2 : ’ )
18 A2 = gsort ( A2 , ’ l r ’ ) ;
19 temp = A2 (: ,3) ;
20 A2 (: ,3) = A2 (: ,4) ;
21 A2 (: ,4) = temp ;
22 M2 = eye (4 ,4) ;
23 M2 (4 ,3) = A2 (4 ,2) / A2 (3 ,2) ;
24 A3 = inv ( M2 ) * A2 * M2 ;
25 disp ( M2 , ’M2 = ’ ) ;
26 disp ( A3 , ’ Upper H e s s e n b e r g M a t r i x : ’ )
27
28
29 // f o r i =2: n
30 // M =e y e ( 4 , 4 ) ;
31 // f o r j= i +1: n
32 // M( j , i ) = A( j , )
33 // end
34 // end

53
Scilab code Exa 4.15 Redduction to upper Hessenberg form and calculat-
ing eigen values

1 // R e d d u c t i o n t o u p p e r H e s s e n b e r g form and
calculating eigen values
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,7) ;
6 A1 = [4 2 1 -3;2 4 1 -3;3 2 2 -3;1 2 1 0];
7 // t h e e l e m e n t w i t h l a r g e s t modulus b e l o w d i a g o n a l i n
f i r s t column n e e d t o be a t t h e t o p and t h e n
s i m i l a r l y f o r column 2
8 A1 = gsort ( A1 , ’ l r ’ ) ;
9 temp = A1 (: ,3) ;
10 A1 (: ,3) = A1 (: ,2) ;
11 A1 (: ,2) = temp ;
12 M1 = eye (4 ,4) ;
13 M1 (3 ,2) = A1 (3 ,1) / A1 (2 ,1) ;
14 M1 (4 ,2) = A1 (4 ,1) / A1 (2 ,1) ;
15 A2 = inv ( M1 ) * A1 * M1 ;
16
17 A2 = gsort ( A2 , ’ l r ’ ) ;
18 temp = A2 (: ,3) ;
19 A2 (: ,3) = A2 (: ,4) ;
20 A2 (: ,4) = temp ;
21 M2 = eye (4 ,4) ;
22 M2 (4 ,3) = A2 (4 ,2) / A2 (3 ,2) ;
23 A3 = inv ( M2 ) * A2 * M2 ;
24 H = A3 ;
25 disp (H , ’ Upper H e s s e n b e r g M a t r i x : ’ )
26 l =0;

54
27 for i =4: -1:1
28 K = H (1: i ,1: i ) ;
29 while abs ( K (i , i ) -l ) >0.005
30 l = K (i , i ) ;
31 [Q , R ]= qr (K - K (i , i ) * eye (i , i ) ) ;
32 K = R * Q + K (i , i ) * eye (i , i ) ;
33 end
34 l = 0;
35 EV ( i ) = K (i , i ) ;
36 end
37 disp ( EV , ’ E i g e n V a l u e s : ’ )

55
Chapter 5

Methods of approximation
theory

Scilab code Exa 5.1 Lagranges Method of interpolation

1 // C o n s t r u c t i o n o f t h e q u a d r a t i c i n t e r p o l a t i n g
p o l y n o m i a l t o t h e f u n c t i o n f ( x )=l n ( x ) by u s i n g
L a g r a n g e ’ s Method o f i n t e r p o l a t i o n .
2
3 close () ;
4 clear ;
5 clc ;
6 xi = linspace (2 ,3 ,3) ;
7 format ( ’ v ’ ,10) ;
8 y = [0.69315 0.91629 1.09861];
9 x = poly (0 , ’ x ’ ) ;
10
11 // F o l l o w i n g a r e t h e p o l y n o m i a l s
12
13 L0 = (x - xi (2) ) *( x - xi (3) ) /(( xi (1) - xi (2) ) *( xi (1) - xi (3)
));
14 L1 = (x - xi (1) ) *( x - xi (3) ) /(( xi (2) - xi (1) ) *( xi (2) - xi (3)
));
15 L2 = (x - xi (1) ) *( x - xi (2) ) /(( xi (3) - xi (1) ) *( xi (3) - xi (2)

56
));
16 p2 = L0 * y (1) + L1 * y (2) + L2 * y (3) ;
17 disp ( p2 , ’ The R e q u i r e d P o l y n o m i a l : ’)
18
19 // Showing t h e d i f f e r e n c e b e t w e e n a c t u a l and o b t a i n e d
value
20 format ( ’ v ’ ,8) ;
21 disp ( log (2.7) , ’ A c t u a l V a l u e o f P o l y n o m i a l a t x =2.7 ’ )
22 disp ( horner ( p2 ,2.7) , ’ O b t a i n e d V a l u e o f P o l y n o m i a l a t
x =2.7 ’ )
23
24 err = log (2.7) - horner ( p2 ,2.7) ;
25 disp ( err , ’ E r r o r i n a p p r o x i m a t i o n : ’)

Scilab code Exa 5.2 Theoritical bound on error

1 // T h e o r i t i c a l bound on e r r o r
2 // i t n e e d s S y m b o l i c T o o l b o x
3 // cd ˜\ D e s k t o p \ m a x i m a s y m b o l i c ;
4 // e x e c ’ s y m b o l i c . s c e ’
5 clc ;
6 clear ;
7 close () ;
8 syms x ;
9 fx = log ( x ) ;
10 n = 2;
11 x0 = 2;
12 x1 = 2.5;
13 x2 = 3;
14 diff1_fx = diff ( fx , x ) ;
15 diff2_fx = diff ( diff1_fx , x ) ;
16 diff3_fx = diff ( diff2_fx , x ) ;
17 // s o f x s a t i s f i e s t h e c o n t i n u i t y c o n d i t i o n s on [ 2 , 3 ]

57
18 x = poly (0 , ’ x ’ ) ;
19 eta = linspace (2 ,3 ,100) ;
20 // f x −p2x i s e q u a l t o
21 func = (x -2) *( x -2.5) *( x -3) *2/( factorial (3) * eta ^3) ;
22 min_func = (x -2) *( x -2.5) *( x -3) *2/( factorial (3) * min (
eta ) ^3) ;
23 disp ( min_func , ’ f u n c w i l l be l e s s t h a n o r e q u a l t o ’
);
24 x = 2.7;
25 max_error = abs ( horner ( min_func , x ) ) ;
26 disp ( max_error , ’ E r r o r d o e s n o t e x c e e d : ’ ) ;

Scilab code Exa 5.3 Divided difference

1 // D i v i d e d d i f f e r e n c e f o r t h e f u n c t i n = l n ( x )
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;
6 x = [1 1.5 1.75 2];
7 fx = [0 0.40547 0.55962 0.69315];
8 fab (1) = ( fx (2) - fx (1) ) /( x (2) -x (1) ) ;
9 fab (2) = ( fx (3) - fx (2) ) /( x (3) -x (2) ) ;
10 fab (3) = ( fx (4) - fx (3) ) /( x (4) -x (3) ) ;
11 fabc (1) = ( fab (2) - fab (1) ) /( x (3) -x (1) ) ;
12 fabc (2) = ( fab (3) - fab (2) ) /( x (4) -x (2) ) ;
13 fabcd (1) = ( fabc (2) - fabc (1) ) /( x (4) -x (1) ) ;
14 disp ( fx ’ , fab , fabc , fabcd , ’ D i v i d e d d i f f e r e n c e c o l u m n s
: ’)
15
16 //We can r e d r a w t h e t a b l e , t h e e x i s t i n g e n t r i e s d o e s
not change
17 x (5) =1.1;

58
18 fx (5) =0.09531;
19 fab (4) = ( fx (5) - fx (4) ) /( x (5) -x (4) ) ;
20 fabc (3) = ( fab (4) - fab (3) ) /( x (5) -x (3) ) ;
21 fabcd (2) = ( fabc (3) - fabc (2) ) /( x (5) -x (2) ) ;
22 fabcde (1) =( fabcd (2) - fabcd (1) ) /( x (5) -x (1) ) ;
23 disp ( fx ’ , fab , fabc , fabcd , fabcde , ’ D i v i d e d d i f f e r e n c e
c o l u m n s a f t e r a d d i t i o n o f an e n t r y : ’)

Scilab code Exa 5.4 Polynomial Interpolation Divided Differnce form

1 // P o l y n o m i a l I n t e r p o l a t i o n : D i v i d e d D i f f e r n c e form
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 x = [1 1.5 1.75 2];
7 fx = [0 0.40547 0.55962 0.69315];
8 fab (1) = ( fx (2) - fx (1) ) /( x (2) -x (1) ) ;
9 fab (2) = ( fx (3) - fx (2) ) /( x (3) -x (2) ) ;
10 fab (3) = ( fx (4) - fx (3) ) /( x (4) -x (3) ) ;
11 fabc (1) = ( fab (2) - fab (1) ) /( x (3) -x (1) ) ;
12 fabc (2) = ( fab (3) - fab (2) ) /( x (4) -x (2) ) ;
13 fabcd (1) = ( fabc (2) - fabc (1) ) /( x (4) -x (1) ) ;
14
15 x (5) =1.1;
16 fx (5) =0.09531;
17 fab (4) = ( fx (5) - fx (4) ) /( x (5) -x (4) ) ;
18 fabc (3) = ( fab (4) - fab (3) ) /( x (5) -x (3) ) ;
19 fabcd (2) = ( fabc (3) - fabc (2) ) /( x (5) -x (2) ) ;
20 fabcde (1) =( fabcd (2) - fabcd (1) ) /( x (5) -x (1) ) ;
21 disp ( fabcde , fabcd , fabc , fab , fx ’ , ’ D i v i d e d d i f f e r e n c e
columns : ’ )
22

59
23 x1 = poly (0 , ’ x1 ’ ) ;
24 p3x = fx (1) + fab (1) *( x1 - x (1) ) + fabc (1) *( x1 - x (1) ) *( x1 - x
(2) ) + fabcd (1) *( x1 - x (1) ) *( x1 - x (2) ) *( x1 - x (3) ) ;
25 p3 = horner ( p3x ,1.3) ;
26 disp ( p3 , ’ The i n t e r p o l a t e d v a l u e a t 1 . 3 u s i n g p3 ( x )
is : ’)
27
28 p4x = p3x + fabcde (1) *( x1 - x (1) ) *( x1 - x (2) ) *( x1 - x (3) )
*( x1 - x (4) ) ;
29 p4 = horner ( p4x ,1.3) ;
30 disp ( p4 , ’ The i n t e r p o l a t e d v a l u e a t 1 . 3 u s i n g p4 ( x )
is : ’)

Scilab code Exa 5.5 Construction of Forward Difference Table

1 // C o n s t r u c t i o n o f Forward D i f f e r e n c e T a b l e
2 close () ;
3 clear ;
4 clc ;
5 x = poly (0 , ’ x ’ ) ;
6 fx = (x -1) *( x +5) /(( x +2) *( x +1) ) ;
7 xi = linspace (0.0 ,0.8 ,9) ;
8 x0 = 0;
9 h = 0.1;
10 format ( ’ v ’ ,9) ;
11 // v a l u e s o f f u n c t i o n a t d i f f e r e n t x i ’ s
12 fi = horner ( fx , xi ) ;
13 // F i r s t o r d e r d i f f e r e n c e
14 for j = 1:8
15 delta1_fi ( j ) = fi ( j +1) - fi ( j ) ;
16 end
17 // S e c o n d o r d e r d i f f e r e n c e
18 for j = 1:7

60
19 delta2_fi ( j ) = delta1_fi ( j +1) - delta1_fi ( j ) ;
20 end
21 // T h i r d o r d e r d i f f e r e n c e
22 for j = 1:6
23 delta3_fi ( j ) = delta2_fi ( j +1) - delta2_fi ( j ) ;
24 end
25 // F o u r t h o r d e r d i f f e r e n c e
26 for j = 1:5
27 delta4_fi ( j ) = delta3_fi ( j +1) - delta3_fi ( j ) ;
28 end
29
30 disp ( fi , ’ V a l u e s of f (x) : ’)
31 disp ( delta1_fi , ’ F i r s t Order D i f f e r e n c e : ’)
32 disp ( delta2_fi , ’ S e c o n d Order D i f f e r e n c e : ’)
33 disp ( delta3_fi , ’ T h i r d Order D i f f e r e n c e : ’)
34 disp ( delta4_fi , ’ F o u r t h Order D i f f e r e n c e : ’)

Scilab code Exa 5.6 Illustration of Newtons Forward Difference Formula

1 // I l l u s t r a t i o n o f Newton ’ s Forward D i f f e r e n c e
Formula
2 close () ;
3 clear ;
4 clc ;
5 x = poly (0 , ’ x ’ ) ;
6 fx = (x -1) *( x +5) /(( x +2) *( x +1) ) ;
7 xi = linspace (0.0 ,0.8 ,9) ;
8 x0 = 0;
9 h = 0.1;
10 format ( ’ v ’ ,9) ;
11 // v a l u e s o f f u n c t i o n a t d i f f e r e n t x i ’ s
12 f0 = horner ( fx , xi ) ;
13 // F i r s t o r d e r d i f f e r e n c e

61
14 for j = 1:8
15 delta1_f0 ( j ) = f0 ( j +1) - f0 ( j ) ;
16 end
17 // S e c o n d o r d e r d i f f e r e n c e
18 for j = 1:7
19 delta2_f0 ( j ) = delta1_f0 ( j +1) - delta1_f0 ( j ) ;
20 end
21 // T h i r d o r d e r d i f f e r e n c e
22 for j = 1:6
23 delta3_f0 ( j ) = delta2_f0 ( j +1) - delta2_f0 ( j ) ;
24 end
25 // F o u r t h o r d e r d i f f e r e n c e
26 for j = 1:5
27 delta4_f0 ( j ) = delta3_f0 ( j +1) - delta3_f0 ( j ) ;
28 end
29 // C a l c u l a t i n g p4 ( 0 . 1 2 )
30 // x0+s ∗h =0.12
31 s = (0.12 - x0 ) / h ;
32 p4 = f0 (1) + delta1_f0 (1) * s + delta2_f0 (1) * s *( s -1) /
factorial (2) + delta3_f0 (1) * s *( s -1) *( s -2) /
factorial (3) + delta4_f0 (1) * s *( s -1) *( s -2) *( s -3) /
factorial (4) ;
33 disp ( p4 , ’ V a l u e o f p4 ( 0 . 1 2 ) ’ ) ;
34 // e x a c t v a l u e o f f ( 0 . 1 2 ) i s −1.897574 s o e r r o r
35 err = p4 - -1.897574;
36 disp ( err , ’ E r r o r i n e s t i m a t i o n ’ ) ;

Scilab code Exa 5.7 Illustration of Central Difference Formula

1 // I l l u s t r a t i o n o f C e n t r a l D i f f e r e n c e Formula
2 close () ;
3 clear ;
4 clc ;

62
5 xi = 0:0.2:1.2;
6 fi = sin ( xi ) ;
7 x0 = 0;
8 h = 0.2;
9 format ( ’ v ’ ,8) ;
10 // F i r s t o r d e r d i f f e r e n c e
11 delta1_fi = diff ( fi ) ;
12 // S e c o n d o r d e r d i f f e r e n c e
13 delta2_fi = diff ( delta1_fi ) ;
14 // T h i r d o r d e r d i f f e r e n c e
15 delta3_fi = diff ( delta2_fi ) ;
16 // F o u r t h o r d e r d i f f e r e n c e
17 delta4_fi = diff ( delta3_fi ) ;
18 // F i f t h o r d e r d i f f e r e n c e
19 delta5_fi = diff ( delta4_fi ) ;
20 // S i x t h o r d e r d i f f e r e n c e
21 delta6_fi = diff ( delta5_fi ) ;
22 disp ( fi , ’ V a l u e s o f f ( x ) : ’ )
23 disp ( delta1_fi , ’ F i r s t Order D i f f e r e n c e : ’ )
24 disp ( delta2_fi , ’ S e c o n d Order D i f f e r e n c e : ’ )
25 disp ( delta3_fi , ’ T h i r d Order D i f f e r e n c e : ’ )
26 disp ( delta4_fi , ’ F o u r t h Order D i f f e r e n c e : ’ )
27 disp ( delta5_fi , ’ F i f t h Order D i f f e r e n c e : ’ )
28 disp ( delta6_fi , ’ S i x t h Order D i f f e r e n c e : ’ )
29 // C a l c u l a t i n g p2 ( 0 . 6 7 )
30 xm = 0.6;
31 x = 0.67;
32 s = (x - xm ) /0.2;
33 p2 = fi (4) + { s *( delta1_fi (3) + delta1_fi (4) ) /2} + s * s
*( delta2_fi (3) ) /2;
34 disp ( p2 , ’ V a l u e o f p2 ( 0 . 6 7 ) : ’ ) ;
35 // C a l c u l a t i n g p4 ( 0 . 6 7 )
36 p4 = p2 + s *( s *s -1) *( delta3_fi (3) + delta3_fi (2) ) /12 +
s * s *( s *s -1) * delta4_fi (2) /24;
37 disp ( p4 , ’ V a l u e o f p4 ( 0 . 6 7 ) : ’ ) ;
38 // Exact v a l u e o f s i n ( 0 . 6 7 ) i s 0 . 6 2 0 9 9 s o e r r o r i n
estimation
39 err = 0.62099 -0.62098;

63
40 disp ( err , ’ E r r o r i n e s t i m a t i o n : ’ );

Scilab code Exa 5.8 Hermite Interpolation

1 // H e r m i t e I n t e r p o l a t i o n
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;
6 funcprot (0) ;
7 deff ( ’ [ LL0 ]= L0 ( x ) ’ , ’ LL0= 2∗ x ˆ2 −11∗ x+15 ’ ) ;
8 deff ( ’ [ LL1 ]= L1 ( x ) ’ , ’ LL1= −4∗x ˆ2+20∗ x−24 ’ ) ;
9 deff ( ’ [ LL2 ]= L2 ( x ) ’ , ’ LL2= 2∗ xˆ2−9∗x+10 ’ ) ;
10 deff ( ’ [ LL0d ]= L0d ( x ) ’ , ’ LL0d= 4∗ x−11 ’ ) ;
11 deff ( ’ [ LL1d ]= L1d ( x ) ’ , ’ LL1d= −8∗x+20 ’ ) ;
12 deff ( ’ [ LL2d ]= L2d ( x ) ’ , ’ LL2d= 4∗ x−9 ’ ) ;
13
14 disp ( ’ I n t h i s c a s e n = 2 . The l e g r a n g e s p o l y n o m i a l
and t h e i r d e r i v a t i v e . ’ ) ;
15 disp ( ’ L0 ( x ) =2∗x ˆ2 −11∗ x+15 L1 ( x )= −4∗x ˆ2+20x−24 L2 (
x ) =2xˆ2−9x+10 ’ ) ;
16 disp ( ’ L0d ( x ) =4∗x−11 L1d ( x )= −8∗x+20 L2d ( x ) =4∗x−9 ’ )
;
17
18 disp ( ’ r i ( x ) = [1 −2( x−x i ) L i d ( x i ) ] [ L i ( x ) ] ˆ 2 si (x) =
( x−x i ) [ L i ( x ) ] ˆ 2 ’ ) ;
19
20 deff ( ’ [ r r 0 ]= r 0 ( x ) ’ , ’ r r 0 =(1 −2∗(x −2) ∗ L0d ( 2 ) ) ∗ ( L0 ( x ) ) ˆ2
’ );
21 deff ( ’ [ r r 1 ]= r 1 ( x ) ’ , ’ r r 1 =(1 −2∗(x − 2 . 5 ) ∗ L1d ( 2 . 5 ) ) ∗ ( L1 ( x
) ) ˆ2 ’ ) ;
22 deff ( ’ [ r r 2 ]= r 2 ( x ) ’ , ’ r r 2 =(1 −2∗(x −3) ∗ L2d ( 3 ) ) ∗ ( L2 ( x ) ) ˆ2
’ );

64
23
24 deff ( ’ [ s s 0 ]= s 0 ( x ) ’ , ’ s s 0 =(x −2) ∗ L0 ( x ) ˆ2 ’ ) ;
25 deff ( ’ [ s s 1 ]= s 1 ( x ) ’ , ’ s s 1 =(x − 2 . 5 ) ∗ L1 ( x ) ˆ2 ’ ) ;
26 deff ( ’ [ s s 2 ]= s 2 ( x ) ’ , ’ s s 2 =(x −3) ∗ L2 ( x ) ˆ2 ’ ) ;
27
28 y = [ log (2) log (2.5) log (3) ];
29 yd = [0.500000 0.400000 0.333333];
30
31 deff ( ’ [ H5]=H( x ) ’ , ’ H5=r 0 ( x ) ∗ y ( 1 )+r 1 ( x ) ∗ y ( 2 )+r 2 ( x ) ∗ y
( 3 )+s 0 ( x ) ∗ yd ( 1 )+s 1 ( x ) ∗ yd ( 2 )+s 2 ( x ) ∗ yd ( 3 ) ’ ) ;
32 y2 = H (2.7) ;
33 disp ( y2 , ’ The c a l c u l a t e d v a l u e o f y ( 2 . 7 ) : ’ ) ;
34 act = log (2.7) ;
35 disp ( act , ’ The e x a c t v a l u e i s o f y ( 2 . 7 ) : ’ ) ;
36 err = act - y2 ;
37 disp ( err , ’ The e r r o r i s : ’ ) ;

Scilab code Exa 5.9 Hermite cubic Interpolation

1 // H e r m i t e c u b i c I n t e r p o l a t i o n
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;
6 funcprot (0) ;
7
8 x0 = -2; x1 = 0; x2 = 1;
9 y0 = 3; y1 = 1; y2 = -2;
10 y0d = -1; y1d = 0; y1d = 1;
11 h0 = 2;
12 h1 = 1;
13
14 deff ( ’ [ H3 0 ]= H30 ( x ) ’ , ’ H3 0=y0 ∗ ( ( x−x1 ) ˆ2/ h0 ˆ2+2∗( x−x0

65
) ∗ ( x−x1 ) ˆ2/ h0 ˆ 3 )+y1 ∗ ( ( x−x0 ) ˆ2/ h0 ˆ2 −2∗( x−x1 ) ∗ ( x−x0
) ˆ2/ h0 ˆ 3 )+y0d ∗ ( x−x0 ) ∗ ( x−x1 ) ˆ2/ h0ˆ2+ y1d ∗ ( ( x−x1 ) ∗ ( x
−x0 ) ˆ 2 ) / h0 ˆ2 ’ ) ;
15 deff ( ’ [ H3 1 ]= H31 ( x ) ’ , ’ H3 1=y1 ∗ ( ( x−x2 ) ˆ2/ h1 ˆ2+2∗( x−x1
) ∗ ( x−x2 ) ˆ2/ h1 ˆ 3 )+y2 ∗ ( ( x−x1 ) ˆ2/ h1 ˆ2 −2∗( x−x2 ) ∗ ( x−x1
) ˆ2/ h1 ˆ 3 )+y1d ∗ ( x−x1 ) ∗ ( x−x2 ) ˆ2/ h1ˆ2+ y2d ∗ ( ( x−x2 ) ∗ ( x
−x1 ) ˆ 2 ) / h1 ˆ2 ’ ) ;
16
17 disp ( ’H( x ) = x ˆ3/4+ xˆ2+1 on −2<=x<=0 ’ ) ;
18 disp ( ’ 7∗ x ˆ3 −10∗ xˆ2+1 on 0<=x<=1 ’ ) ;

Scilab code Exa 5.10 Illustration cubic spline interpolation with equal dif-
ference

1 // I l l u s t r a t i o n c u b i c s p l i n e i n t e r p o l a t i o n w i t h e q u a l
difference
2 // I t n e e d s S y m b o l i c T o o l b o x
3 clc ;
4 clear ;
5 close () ;
6 x = -1:1;
7 fx = x ^4;
8 y = fx ;
9 function y = myfunction ( x )
10 y = x ^4;
11 endfunction
12 diff_y = derivative ( myfunction , x ’) ;
13 diff_y0 = diff_y (1) ;
14 diff_y2 = diff_y (9) ;
15 // cd ˜/ D e s k t o p / m a x i m a s y m b o l i c
16 // e x e c s y m b o l i c . s c e
17 syms a0 b0 c0 d0 ;
18 x = poly (0 , ’ x ’ ) ;

66
19 s0x = a0 + b0 * x + c0 * x ^2+ d0 * x ^3;
20 syms a1 b1 c1 d1 ;
21 s1x = a1 + b1 * x + c1 * x ^2+ d1 * x ^3;
22 diff1_s0x = diff ( s0x , x ) ;
23 diff2_s0x = diff ( diff1_s0x , x ) ;
24 diff1_s1x = diff ( s1x , x ) ;
25 diff2_s1x = diff ( diff1_s1x , x ) ;
26 // from c o n d i t i o n ( i i )
27 x = -1;
28 eval ( s0x , x ) ;
29 // i t g i v e s e q u a t i o n a0−b0+c0−d0=1
30 x =1;
31 eval ( s1x , x ) ;
32 // i t g i v e s e q u a t i o n a1+b1+c 1+d1=1
33 x = 0;
34 eval ( s0x , x ) ;
35 // i t g i v e s e q u a t i o n a0=0
36 eval ( s1x , x ) ;
37 // i t g i v e s e q u a t i o n a1=0
38 // from c o n d i t i o n ( i i i )
39 x =0;
40 eval ( diff1_s0x , x ) ;
41 eval ( diff1_s1x , x ) ;
42 // i t g i v e s b0=b1 ;
43 // from c o n d i t i o n ( i v )
44 eval ( diff2_s0x ) ;
45 eval ( diff2_s1x ) ;
46 // i t g i v e s 2∗ c 0 =2∗ c 1
47 // A p p l y i n g boundary c o n d i t i o n s
48 x = -1;
49 eval ( diff1_s0x ) ;
50 // i t g i v e s b0 −2∗ c 0 +3∗d0=−4
51 x =1;
52 eval ( diff1_s1x ) ;
53 // i t g i v e s b1+2∗ c 1 +3∗d1=4
54 // M a t r i x form f o r t h e e q u a t i o n s
55 A =[1 -1 1 -1 0 0 0 0;
56 1 0 0 0 0 0 0 0;

67
57 0 0 0 0 1 0 0 0;
58 0 0 0 0 1 1 1 1;
59 0 1 0 0 0 -1 0 0;
60 0 0 1 0 0 0 -1 0;
61 0 1 -2 3 0 0 0 0;
62 0 0 0 0 0 1 2 3];
63 C =[1 0 0 1 0 0 -4 4];
64 B = inv ( A ) *C ’;
65 // i t i m p l i e s
66 a0 =0; b0 =0; c0 = -1; d0 = -2; a1 =0; b1 =0; c1 = -1; d1 =2;
67 // f o r −1<=x<=0
68 x = poly (0 , ’ x ’ ) ;
69 sx = eval ( s0x ) ;
70 disp ( sx , ’ f o r −1<=x<=0 s x = ’ ) ;
71 // f o r 0<=x<=1
72 sx = eval ( s1x ) ;
73 disp ( sx , ’ f o r 0<=x<=1 s x = ’ ) ;

Scilab code Exa 5.11 Illustration cubic spline interpolation with unequal
difference

1 // I l l u s t r a t i o n c u b i c s p l i n e i n t e r p o l a t i o n w i t h
unequal d i f f e r e n c e
2 clc ;
3 clear ;
4 close () ;
5 // w i t h f r e e boundary c o n d i t i o n s
6 xi = [0 1 3 3.5 5];
7 yi = [1.00000 0.54030 -0.98999 -0.93646 0.28366];
8 n = 4;
9 h0 = xi (2) - xi (1) ;
10 h1 = xi (3) - xi (2) ;
11 h2 = xi (4) - xi (3) ;

68
12 h3 = xi (5) - xi (4) ;
13 // A f t e r i m p o s i n g f r e e boundary c o n d i t i o n s t h e m a t r i x
we g e t
14 A = [2 1 0 0 0;
15 1 3 1/2 0 0;
16 0 1/2 5 2 0;
17 0 0 2 16/3 2/3;
18 0 0 0 2/3 4/3];
19 C = [ -1.37910 ; -2.52682 ; -0.50536 ; 2.26919 ;
1.62683] ;
20 format ( ’ v ’ ,8) ;
21 B = inv ( A ) * C ;
22 // i t g i v e s
23 diff1_y0 = -0.33966;
24 diff1_y1 = -0.69978;
25 diff1_y2 = -0.17566;
26 diff1_y3 = 0.36142;
27 diff1_y4 = 1.03941;
28 // c u b i c p o l y n o m i a l f o r 3<=x <=3.5
29 x = poly (0 , ’ x ’ )
30 s2x = yi (3) *[{( x -3.5) *( x -3.5) /(0.5*0.5) }+{2*( x -3) *( x
-3.5) *( x -3.5) /(0.5*0.5*0.5) }] + yi (4) *[{( x -3) *( x
-3) /(0.5*0.5) } -{2*( x -3.5) *( x -3) *( x -3)
/(0.5*0.5*0.5) }] + diff1_y2 *{( x -3) *( x -3.5) *( x
-3.5) /(0.5*0.5) } + diff1_y3 *{( x -3.5) *( x -3) *( x -3)
/(0.5*0.5) };
31 x = 3.14159;
32 disp ( horner ( s2x , x ) , ’ v a l u e o f s 2 x a t 3 . 1 4 1 5 9 : ’ ) ;
33 // w i t h clamped boundary c o n d i t i o n s
34 diff1_y0 = - sin (0) ;
35 diff1_y4 = - sin (5) ;
36 // m a t r i x form
37 A = [3 0.5 0;0.5 5 2 ; 0 2 16/3];
38 C = [ -2.52682 ; -0.50536 ; 1.62991];
39 B = inv ( A ) * C ;
40 // i t g i v e s
41 diff1_y1 = -0.81446;
42 diff1_y2 = -0.16691;

69
43 diff1_y3 = 0.36820;
44 s2x = yi (3) *[{( x -3.5) *( x -3.5) /(0.5*0.5) }+{2*( x -3) *( x
-3.5) *( x -3.5) /(0.5*0.5*0.5) }] + yi (4) *[{( x -3) *( x
-3) /(0.5*0.5) } -{2*( x -3.5) *( x -3) *( x -3)
/(0.5*0.5*0.5) }] + diff1_y2 *{( x -3) *( x -3.5) *( x
-3.5) /(0.5*0.5) } + diff1_y3 *{( x -3.5) *( x -3) *( x -3)
/(0.5*0.5) };
45 x = 3.14159;
46 disp ( horner ( s2x , x ) , ’ v a l u e o f s 2 x a t 3 . 1 4 1 5 9 : ’ ) ;

Scilab code Exa 5.12 Alternating way of constructing cubic splines

1 // A l t e r n a t i n g way o f c o n s t r u c t i n g c u b i c s p l i n e s
2 clc ;
3 clear ;
4 close () ;
5 // from e x a m p l e 5 . 1 1
6 xi = [0 1 3 3.5 5];
7 yi = [1.00000 0.54030 -0.98999 -0.93646 0.28366];
8 // f r e e boundary c o n d i t i o n s
9 // m a t r i x form
10 format ( ’ v ’ ,8) ;
11 A = [6 2 0; 2 5 1/2; 0 1/2 4];
12 B = 6*[ -0.30545 ; 0.87221 ; 0.70635];
13 C = inv ( A ) * B ;
14 c1 = C (1) ;
15 c2 = C (2) ;
16 c3 = C (3) ;
17 x = poly (0 , ’ x ’ ) ;
18 s2x = c2 *(3.5 - x ) *(3.5 - x ) *(3.5 - x ) /(6*0.5) + c3 *( x -3)
*( x -3) *( x -3) /(6*0.5) + { yi (3) /0.5+0.5* c2 /6}*(3.5 -
x ) + { yi (4) /0.5 + 0.5* c3 /6}*( x -3) ;
19 x = 3.14159;

70
20 val = horner ( s2x , x ) *( -1.00271) /( -0.90705) ;
21 disp ( val , ’ v a l u e o f s 2 x a t 3 . 1 4 1 5 9 : ’ ) ;
22 // clamped boundary c o n d i t i o n s
23 A = [2 1 0 0 0;
24 1 6 2 0 0;
25 0 2 5 1/2 0;
26 0 0 1/2 4 3/2;
27 0 0 0 3/2 3];
28 B = 6*[ -0.45970; -0.30545 ; 0.87221 ; 0.70635;
0.14551];
29 C = inv ( A ) * B ;
30 c0 = C (1) ;
31 c1 = C (2) ;
32 c2 = C (3) ;
33 c3 = C (4) ;
34 c4 = C (5) ;
35 s2x = c2 *(3.5 - x ) *(3.5 - x ) *(3.5 - x ) /(6*0.5) + c3 *( x -3)
*( x -3) *( x -3) /(6*0.5) + { yi (3) /0.5+0.5* c2 /6}*(3.5 -
x ) + { yi (4) /0.5 + 0.5* c3 /6}*( x -3) ;
36 x = 3.14159;
37 val = horner ( s2x , x ) *( -1.00227) /( -0.91030) ;
38 disp ( val , ’ v a l u e o f s 2 x a t 3 . 1 4 1 5 9 : ’ ) ;

Scilab code Exa 5.13 Linear Least square aproximation method

1 // L i n e a r L e a s t s q u a r e a p r o x i m a t i o n method
2 clc ;
3 clear ;
4 close () ;
5 xi = [ -5 -3 1 3 4 6 8];
6 yi = [18 7 0 7 16 50 67];
7 wi = [1 1 1 1 20 1 1];
8 format ( ’ v ’ ,7) ;

71
9 // R e p r e s e n t a t i o n o f e q u a t i o n i n m a t r i x form
10 W = [ sum ( wi ) sum ( wi .* xi ) ; sum ( wi .* xi ) sum ( wi .* xi .* xi
) ];
11 Y = [ sum ( wi .* yi ) ; sum ( wi .* yi .* xi ) ];
12 A = inv ( W ) * Y ;
13 a0 = A (1) ;
14 a1 = A (2) ;
15 x = poly (0 , ’ x ’ ) ;
16 p1x = a1 * x + a0 ;
17 disp ( p1x , ’ The a p p r o x i m a t i n g p o l y n o m i a l i s : ’ ) ;
18 x = linspace ( -5 ,8 ,1000) ;
19 p1x = a1 * x + a0 ;
20 subplot (2 ,1 ,1) ;
21 plot (x , p1x ) ;
22 plot ( xi , yi , ’ o ’ ) ;
23
24 wi = [1 1 1 1 1 1 1];
25 // R e p r e s e n t a t i o n o f e q u a t i o n i n m a t r i x form
26 W = [ sum ( wi ) sum ( wi .* xi ) ; sum ( wi .* xi ) sum ( wi .* xi .* xi
) ];
27 Y = [ sum ( wi .* yi ) ; sum ( wi .* yi .* xi ) ];
28 A = inv ( W ) * Y ;
29 a0 = A (1) ;
30 a1 = A (2) ;
31 x = poly (0 , ’ x ’ ) ;
32 p1x = a1 * x + a0 ;
33 disp ( p1x , ’ The a p p r o x i m a t i n g p o l y n o m i a l i s : ’ )
34 x = linspace ( -5 ,8 ,1000) ;
35 p1x = a1 * x + a0 ;
36 subplot (2 ,1 ,2) ;
37 plot (x , p1x ) ;
38 plot ( xi , yi , ’ o ’ ) ;

72
Figure 5.1: Linear Least square aproximation method

73
Scilab code Exa 5.14 Quadratic Least square aproximation method

1 // Q u a d r a t i c L e a s t s q u a r e a p r o x i m a t i o n method
2 clc ;
3 clear ;
4 close () ;
5 xi = [ -5 -3 1 3 4 6 8];
6 yi = [18 7 0 7 16 50 67];
7 wi = [1 1 1 1 20 1 1];
8 format ( ’ v ’ ,7) ;
9 // R e p r e s e n t a t i o n o f e q u a t i o n i n m a t r i x form
10 W = [ sum ( wi ) sum ( wi .* xi ) sum ( wi .* xi .* xi ) ; sum ( wi .* xi
) sum ( wi .* xi .* xi ) sum ( wi .* xi .* xi .* xi ) ; sum ( wi .* xi
.* xi ) sum ( wi .* xi .* xi .* xi ) sum ( wi .* xi .* xi .* xi .* xi )
];
11 Y = [ sum ( wi .* yi ) ; sum ( wi .* yi .* xi ) ; sum ( wi .* xi .* xi .*
yi ) ];
12 A = inv ( W ) * Y ;
13 a0 = A (1) ;
14 a1 = A (2) ;
15 a2 = A (3) ;
16 x = poly (0 , ’ x ’ ) ;
17 p1x = a2 * x ^2 + a1 * x + a0 ;
18 disp ( p1x , ’ The a p p r o x i m a t i n g p o l y n o m i a l i s : ’ ) ;
19 x = linspace ( -5 ,8 ,1000) ;
20 p1x = a2 * x ^2 + a1 * x + a0 ;
21 plot (x , p1x ) ;
22 plot ( xi , yi , ’ o ’ ) ;

74
Figure 5.2: Quadratic Least square aproximation method

75
Scilab code Exa 5.15 Least square aproximation method with exponen-
tial functions

1 // L e a s t s q u a r e a p r o x i m a t i o n method w i t h e x p o n e n t i a l
functions
2 clc ;
3 clear ;
4 close () ;
5 xi = [0 0.25 0.4 0.5];
6 yi = [9.532 7.983 4.826 5.503];
7 wi = ones (1 ,4) ;
8 // d a t a c o r r e s p o n d i n g t o l i n e a r i s e d p r o b l e m
9 Xi = [0 0.25 0.4 0.5];
10 Yi = [2.255 2.077 1.574 1.705];
11 wi = ones (1 ,4) ;
12 format ( ’ v ’ ,6) ;
13 // R e p r e s e n t a t i o n o f e q u a t i o n i n m a t r i x form
14 W = [ sum ( wi ) sum ( wi .* xi ) ; sum ( wi .* xi ) sum ( wi .* xi .* xi
) ];
15 Y = [ sum ( wi .* Yi ) ; sum ( wi .* Yi .* Xi ) ];
16 C = inv ( W ) * Y ;
17 A = C (1) ;
18 B = C (2) ;
19 a = exp (2.281) ;
20 b = B;
21 disp (a , ’ a = ’ ) ;
22 disp (b , ’ b = ’ ) ;
23 // So t h e non l i n e a r s y s t e m becomes
24 disp ( ’ 9.532 − a + 7 . 9 8 3 ∗ exp ( 0 . 2 5 ∗ b )−a ∗ exp ( 0 . 5 ∗ b ) + 4 . 8 2 6 ∗
exp ( 0 . 4 ∗ b )−a ∗ exp ( 0 . 8 ∗ b ) + 5 . 5 0 3 ∗ exp ( 0 . 5 ∗ b )−a ∗ exp ( b )
= 0 ’ );
25 disp ( ’ 1 . 9 9 6 ∗ a ∗ exp ( 0 . 2 5 ∗ b ) −0.25∗ a ∗ a ∗ exp ( 0 . 5 ∗ b ) + 1 . 9 3 0 ∗

76
a ∗ exp ( 0 . 4 ∗ b ) −0.4∗ a ∗ a ∗ exp ( 0 . 8 ∗ b ) + 2 . 7 5 2 ∗ a ∗ exp ( 0 . 5 ∗ b
) −0.5∗ a ∗ a ∗ exp ( b ) = 0 ’ ) ;
26 // A p p l y i n g Newtons Method we g e t
27 a = 9.731;
28 b = -1.265;
29 disp ( a , ’ a = ’ ) ;
30 disp ( b , ’ b = ’ ) ;

Scilab code Exa 5.16 Least square approximation to continuous functions

1 // L e a s t s q u a r e a p p r o x i m a t i o n t o c o n t i n u o u s f u n c t i o n s
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 deff ( ’ [ g ]= f ( x , y ) ’ , ’ g= −y ˆ2/(1+ x ) ’ ) ;
8 disp ( ’ a p p r o x i m a t i o n o f e ˆ x on [ 0 , 1 ] w i t h a u n i f o r m
w e i g h t w( x ) =1 ’ )
9 a11 = integrate ( ’ 1 ’ , ’ x ’ ,0 ,1) ;
10 a12 = integrate ( ’ x ’ , ’ x ’ ,0 ,1) ;
11 a13 = integrate ( ’ x ∗ x ’ , ’ x ’ ,0 ,1) ;
12 a14 = integrate ( ’ x ˆ3 ’ , ’ x ’ ,0 ,1) ;
13 a21 = integrate ( ’ x ’ , ’ x ’ ,0 ,1) ;
14 a22 = integrate ( ’ x ˆ2 ’ , ’ x ’ ,0 ,1) ;
15 a23 = integrate ( ’ x ˆ3 ’ , ’ x ’ ,0 ,1) ;
16 a24 = integrate ( ’ x ˆ4 ’ , ’ x ’ ,0 ,1) ;
17 a31 = integrate ( ’ x ˆ2 ’ , ’ x ’ ,0 ,1) ;
18 a32 = integrate ( ’ x ˆ3 ’ , ’ x ’ ,0 ,1) ;
19 a33 = integrate ( ’ x ˆ4 ’ , ’ x ’ ,0 ,1) ;
20 a34 = integrate ( ’ x ˆ5 ’ , ’ x ’ ,0 ,1) ;
21 a41 = integrate ( ’ x ˆ3 ’ , ’ x ’ ,0 ,1) ;
22 a42 = integrate ( ’ x ˆ4 ’ , ’ x ’ ,0 ,1) ;

77
23 a43 = integrate ( ’ x ˆ5 ’ , ’ x ’ ,0 ,1) ;
24 a44 = integrate ( ’ x ˆ6 ’ , ’ x ’ ,0 ,1) ;
25
26 c1 = integrate ( ’ exp ( x ) ’ , ’ x ’ ,0 ,1) ;
27 c2 = integrate ( ’ x ∗ exp ( x ) ’ , ’ x ’ ,0 ,1) ;
28 c3 = integrate ( ’ x ˆ2∗ exp ( x ) ’ , ’ x ’ ,0 ,1) ;
29 c4 = integrate ( ’ x ˆ3∗ exp ( x ) ’ , ’ x ’ ,0 ,1) ;
30
31 A = [ a11 a12 a13 a14 ; a21 a22 a23 a24 ; a31 a32 a33 a34
; a41 a42 a43 a44 ];
32 C = [ c1 ; c2 ; c3 ; c4 ];
33 ann = inv ( A ) * C ;
34 disp ( ann , ’ The c o e f f i c i e n t s a0 , a1 , a2 , a3 a r e
respectively : ’ );
35
36 deff ( ’ [ px ]= p3 ( x ) ’ , ’ px=ann ( 4 ) ∗ xˆ3+ann ( 3 ) ∗ xˆ2+ann ( 2 ) ∗ x
+ann ( 1 ) ’ ) ;
37 x = [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0] ’;
38 e = exp ( x ) ;
39 p = p3 ( x ) ;
40 err = e - p ;
41 ann = [ x e p err ];
42
43 disp ( ann , ’ D i s p l a y i n g t h e v a l u e o f x exp ( x ) p3 ( x ) exp
( x )−p3 ( x ) : ’ ) ;
44 plot (x , err ) ;
45 plot (x ,0) ;

Scilab code Exa 5.17 Gram Schmidt process for finding orthogonal func-
tions

78
Figure 5.3: Least square approximation to continuous functions

1 //Gram − Schmidt p r o c e s s f o r f i n d i n g o r t h o g o n a l
functions
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7
8 disp ( ’ The o r t h o g o n a l f u n c t i o n s : ’ )
9 x = poly (0 , ’ x ’ ) ;
10 ph0 = 1;
11
12 disp ( ph0 , ’ p h i 0 ( x ) = ’ ) ;
13 K1_0 = - integrate ( ’ x ’ , ’ x ’ ,0 ,1) / integrate ( ’ ph0 ˆ2 ’ , ’ x ’
,0 ,1) ;
14 ph1 = x + K1_0 * ph0 ;
15 disp ( ph1 , ’ p h i 1 ( x ) = ’ ) ;
16
17 K2_0 = - integrate ( ’ x ˆ2∗ ph0 ’ , ’ x ’ ,0 ,1) / integrate ( ’ ph0

79
ˆ2 ’ , ’ x ’ ,0 ,1) ;
18 disp ( K2_0 , ’K( 2 , 0 ) = ’ ) ;
19 K2_1 = - integrate ( ’ x ˆ 2 ∗ ( x − . 5 ) ’ , ’ x ’ ,0 ,1) / integrate ( ’ (
x − . 5 ) ˆ2 ’ , ’ x ’ ,0 ,1) ;
20 disp ( K2_1 , ’K( 2 , 1 ) = ’ ) ;
21 ph2 = x ^2 + K2_0 * ph0 + K2_1 * ph1 ;
22 disp ( ph2 , ’ p h i 2 ( x ) = ’ ) ;
23
24 K3_0 = - integrate ( ’ x ˆ3∗ ph0 ’ , ’ x ’ ,0 ,1) / integrate ( ’ ph0
ˆ2 ’ , ’ x ’ ,0 ,1) ;
25 disp ( K3_0 , ’K( 3 , 0 ) = ’ ) ;
26 K3_1 = - integrate ( ’ x ˆ 3 ∗ ( x − . 5 ) ’ , ’ x ’ ,0 ,1) / integrate ( ’ (
x − . 5 ) ˆ2 ’ , ’ x ’ ,0 ,1) ;
27 disp ( K3_1 , ’K( 3 , 1 ) = ’ ) ;
28 K3_2 = - integrate ( ’ x ˆ 3 ∗ ( xˆ2−x +1/6) ’ , ’ x ’ ,0 ,1) /
integrate ( ’ ( xˆ2−x +1/6) ˆ2 ’ , ’ x ’ ,0 ,1) ;
29 disp ( K3_2 , ’K( 3 , 2 ) = ’ ) ;
30 ph3 = x ^3 + K3_0 * ph0 + K3_1 * ph1 + K3_2 * ph2 ;
31 disp ( ph3 , ’ p h i 3 ( x ) = ’ ) ;

Scilab code Exa 5.18 Gram Schmidt process for cubic polynomial least
squares approx

1 //Gram − Schmidt p r o c e s s f o r c u b i c p o l y n o m i a l l e a s t
s q u a r e s approx
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7
8 disp ( ’ The o r t h o g o n a l functions : ’)
9 x = poly (0 , ’ x ’ ) ;

80
10 ph0 = 1;
11
12 disp ( ph0 , ’ p h i 0 ( x ) = ’ ) ;
13 K1_0 = - integrate ( ’ x ’ , ’ x ’ ,0 ,1) / integrate ( ’ ph0 ˆ2 ’ , ’ x ’
,0 ,1) ;
14 ph1 = x + K1_0 * ph0 ;
15 disp ( ph1 , ’ p h i 1 ( x ) = ’ ) ;
16
17 K2_0 = - integrate ( ’ x ˆ2∗ ph0 ’ , ’ x ’ ,0 ,1) / integrate ( ’ ph0
ˆ2 ’ , ’ x ’ ,0 ,1) ;
18 disp ( K2_0 , ’K( 2 , 0 ) = ’ ) ;
19 K2_1 = - integrate ( ’ x ˆ 2 ∗ ( x − . 5 ) ’ , ’ x ’ ,0 ,1) / integrate ( ’ (
x − . 5 ) ˆ2 ’ , ’ x ’ ,0 ,1) ;
20 disp ( K2_1 , ’K( 2 , 1 ) = ’ ) ;
21 ph2 = x ^2 + K2_0 * ph0 + K2_1 * ph1 ;
22 disp ( ph2 , ’ p h i 2 ( x ) = ’ ) ;
23
24 K3_0 = - integrate ( ’ x ˆ3∗ ph0 ’ , ’ x ’ ,0 ,1) / integrate ( ’ ph0
ˆ2 ’ , ’ x ’ ,0 ,1) ;
25 disp ( K3_0 , ’K( 3 , 0 ) = ’ ) ;
26 K3_1 = - integrate ( ’ x ˆ 3 ∗ ( x − . 5 ) ’ , ’ x ’ ,0 ,1) / integrate ( ’ (
x − . 5 ) ˆ2 ’ , ’ x ’ ,0 ,1) ;
27 disp ( K3_1 , ’K( 3 , 1 ) = ’ ) ;
28 K3_2 = - integrate ( ’ x ˆ 3 ∗ ( xˆ2−x +1/6) ’ , ’ x ’ ,0 ,1) /
integrate ( ’ ( xˆ2−x +1/6) ˆ2 ’ , ’ x ’ ,0 ,1) ;
29 disp ( K3_2 , ’K( 3 , 2 ) = ’ ) ;
30 ph3 = x ^3 + K3_0 * ph0 + K3_1 * ph1 + K3_2 * ph2 ;
31 disp ( ph3 , ’ p h i 3 ( x ) = ’ ) ;
32
33 deff ( ’ [ y ]= f ( x ) ’ , ’ y= exp ( x ) ’ ) ;
34 deff ( ’ [ p h i 0 ]= p h 0 ( x ) ’ , ’ p h i 0= h o r n e r ( ph0 , x ) ’ ) ;
35 deff ( ’ [ p h i 1 ]= p h 1 ( x ) ’ , ’ p h i 1= h o r n e r ( ph1 , x ) ’ ) ;
36 deff ( ’ [ p h i 2 ]= p h 2 ( x ) ’ , ’ p h i 2= h o r n e r ( ph2 , x ) ’ ) ;
37 deff ( ’ [ p h i 3 ]= p h 3 ( x ) ’ , ’ p h i 3= h o r n e r ( ph3 , x ) ’ ) ;
38 a0 = integrate ( ’ f ( x ) ∗ p h 0 ( x ) ’ , ’ x ’ ,0 ,1) / integrate ( ’
p h 0 ( x ) ˆ2 ’ , ’ x ’ ,0 ,1) ;
39 disp ( a0 , ’ a0 = ’ ) ;
40 a1 = integrate ( ’ f ( x ) ∗ p h 1 ( x ) ’ , ’ x ’ ,0 ,1) / integrate ( ’

81
p h 1 ( x ) ˆ2 ’ , ’ x ’ ,0 ,1) ;
41 disp ( a1 , ’ a1 = ’ ) ;
42 a2 = integrate ( ’ f ( x ) ∗ p h 2 ( x ) ’ , ’ x ’ ,0 ,1) / integrate ( ’
p h 2 ( x ) ˆ2 ’ , ’ x ’ ,0 ,1) ;
43 disp ( a2 , ’ a2 = ’ ) ;
44 a3 = integrate ( ’ f ( x ) ∗ p h 3 ( x ) ’ , ’ x ’ ,0 ,1) / integrate ( ’
p h 3 ( x ) ˆ2 ’ , ’ x ’ ,0 ,1) ;
45 disp ( a3 , ’ a3 = ’ ) ;
46
47 p3 = a0 * ph0 + a1 * ph1 + a2 * ph2 + a3 * ph3 ;
48 disp ( p3 , ’ p3 ( x ) ’ ) ;

82
Chapter 6

Numerical Differntiation and


Integration

Scilab code Exa 6.1 Numerical Differentiation

1 // N u m e r i c a l D i f f e r e n t i a t i o n
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;
6 deff ( ’ [ y ]= f ( x ) ’ , ’ y=exp (−x ) ’ ) ;
7
8 x0 = ones (: ,8) ;
9 h = [1 .2 .1 .02 .01 .002 .001 .0002];
10 x1 = 1+ h ;
11 f0 = f ( x0 ) ;
12 f1 = f ( x1 ) ;
13 dif = ( f1 - f0 ) ./ h ;
14 max_trun_err = exp ( -1) .* h /2;
15 act_err = abs ( - exp ( -1) - dif ) ;
16 answer = [h ’ f0 ’ f1 ’ dif ’ max_trun_err ’ act_err ’];
17 disp ( answer , ’ h f0 f1 f1
−f 0 / h he ˆ−1 | Actual Error | ’ );
18 x = (0:.0002:3) ;

83
Figure 6.1: Numerical Differentiation

19 plot (x , f ( x ) ) ;

Scilab code Exa 6.2 Numerical Differentiation

1 // N u m e r i c a l D i f f e r e n t i a t i o n
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;

84
6 deff ( ’ [ y ]= f ( x ) ’ , ’ y=exp (−x ) ’ ) ;
7 h = [1 .2 .1 .02 .01 .002 .001 .0002];
8 x0 = 1 - h ;
9 x1 = ones (: ,8) ;
10 x2 = 1+ h ;
11 f0 = f ( x0 ) ;
12 f1 = f ( x1 ) ;
13 f2 = f ( x2 ) ;
14 dif = ( f2 - f0 ) ./(2* h ) ;
15 max_trun_err = exp (h -1) .* h ^2/6;
16 act_err = abs ( - exp ( -1) - dif ) ;
17 answer = [h ’ f0 ’ f2 ’ dif ’ max_trun_err ’ act_err ’];
18 disp ( answer , ’ h f0 f2 f2−
f 0 /2 h h ˆ2∗ exp ( h−1) /6 | A c t u a l E r r o r | ’ ) ;
19 disp ( ’ t r u n c a t i o n e r r o r d o e s n o t e x c e e d h ˆ2∗ exp ( h−1)
/6 ’ )
20 x = (0:.0002:3) ;
21 plot (x , f ( x ) ) ;

Scilab code Exa 6.3 Numerical Integration

1 // N u m e r i c a l I n t e g r a t i o n
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;
6 funcprot (0) ;
7 deff ( ’ [ y ]= f ( x ) ’ , ’ y=x ∗ c o s ( x ) ’ ) ;
8
9 rec = %pi * f (0) /4;
10 disp ( rec , ’ R e t a n g u l a r Rule : ’ ) ;

85
Figure 6.2: Numerical Differentiation

11
12 trap = %pi *( f (0) + f ( %pi /4) ) /8;
13 disp ( trap , ’ T r a p e z o i d a l Rule : ’ ) ;
14
15 sip = %pi *( f (0) +4* f ( %pi /8) + f ( %pi /4) ) /(3*8) ;
16 disp ( sip , ’ Simpson ’ ’ s Rule : ’ ) ;
17
18 sip38 = %pi *3*( f (0) +3* f ( %pi /12) +3* f ( %pi /6) + f ( %pi /4) )
/(12*8) ;
19 disp ( sip38 , ’ Simpson ’ ’ s 3/8 Rule : ’ );
20
21 exact = integrate ( ’ x ∗ c o s ( x ) ’ , ’ x ’ ,0 , %pi /4) ;
22 disp ( exact , ’ The e x a c t v a l u e o f i n t e r g a t i o n i s : ’ ) ;
23 err = exact - rec ;
24 err (2) = exact - trap ;
25 err (3) = exact - sip ;
26 err (4) = exact - sip38 ;
27 disp ( err , ’ t h u s c o r r e s p o n d i n g e r r o r s a r e : ’ ) ;

86
Scilab code Exa 6.4 Numerical Integration

1 // Newton C o t e s f o r m u l a
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,9) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o PI /4 x ∗ c o s dx ’ ) ;
8 disp ( ’ b a s e d on open Newton−C o t e s f o r m u l a s ’ ) ;
9
10 deff ( ’ [ y ]= f ( x ) ’ , ’ y=x ∗ c o s ( x ) ’ ) ;
11
12 k = [0 1 2 3]
13
14 a = 0;
15 b = %pi /4;
16 h = ( ones (: ,4) *( b - a ) ) ./( k +2) ;
17 x0 = a + h ;
18 xk = b - h ;
19
20 k (1) = 2* h (1) * f ( h (1) ) ;
21 disp ( k (1) , ’ k=0 ’ ) ;
22
23 k (2) = 3* h (2) *( f ( h (2) ) + f (2* h (2) ) ) /2;
24 disp ( k (2) , ’ k=1 ’ ) ;
25
26 k (3) = 4* h (3) *(2* f ( h (3) ) -f (2* h (3) ) +2* f (3* h (3) ) ) /3;
27 disp ( k (3) , ’ k=2 ’ ) ;
28
29 k (4) = 5* h (4) *(11* f ( h (4) ) + f (2* h (4) ) + f (3* h (4) ) +11* f
(4* h (4) ) ) /24;

87
30 disp ( k (4) , ’ k=3 ’ ) ;
31
32 exact = integrate ( ’ x ∗ c o s ( x ) ’ , ’ x ’ ,0 , %pi /4) ;
33 disp ( exact , ’ The e x a c t v a l u e o f i n t e r g a t i o n i s : ’ ) ;
34 exact = ones (: ,4) * exact ;
35 err = exact - k ;
36 disp ( err ’ , ’ t h u s c o r r e s p o n d i n g e r r o r s a r e : ’ ) ;

Scilab code Exa 6.5 Trapezoidal Rule

1 // T r a p e z o i d a l Rule
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,10) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 2 e ˆ x dx ’ ) ;
8 disp ( ’ b a s e d on t r a p e z o i d a l r u l e ’ ) ;
9
10 deff ( ’ [ y ]= f ( x ) ’ , ’ y=exp ( x ) ’ ) ;
11
12 n = [1 2 4 8];
13
14 a = 0;
15 b = 2;
16 h = ( ones (: ,4) *( b - a ) ) ./ n ;
17
18 t (1) = h (1) *( f ( a ) + f ( b ) ) /2;
19 disp ( t (1) , ’ n=1 ’ ) ;
20
21 t (2) = h (2) *( f ( a ) + f ( b ) +2* f ( h (2) ) ) /2;
22 disp ( t (2) , ’ n=2 ’ ) ;
23

88
24 t (3) = h (3) *( f ( a ) + f ( b ) +2*( f ( h (3) ) + f (2* h (3) ) + f (3* h (3)
) ) ) /2;
25 disp ( t (3) , ’ n=4 ’ ) ;
26
27 t (4) = h (4) *( f ( a ) + f ( b ) +2*( f ( h (4) ) + f (2* h (4) ) + f (3* h (4)
) + f (4* h (4) ) + f (5* h (4) ) + f (6* h (4) ) + f (7* h (4) ) ) ) /2;
28 disp ( t (4) , ’ n=8 ’ ) ;
29
30 exact = integrate ( ’ exp ( x ) ’ , ’ x ’ ,0 ,2) ;
31 disp ( exact , ’ The e x a c t v a l u e o f i n t e r g a t i o n i s : ’ ) ;
32 exact = ones (4) * exact ;
33 err = exact - t ;
34 disp ( err , ’ t h u s c o r r e s p o n d i n g e r r o r s a r e : ’ ) ;

Scilab code Exa 6.6 Simpson Rule

1 // Simpson Rule
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,10) ;
6 funcprot (0) ;
7
8 deff ( ’ [ y ]= f ( x ) ’ , ’ y=exp ( x ) ’ ) ;
9
10 n = [1 2 4];
11
12 a = 0;
13 b = 2;
14 h = ( ones (: ,3) *( b - a ) ) ./(2* n ) ;
15
16 s (1) = h (1) *( f ( a ) + f ( b ) +4* f ( h (1) ) ) /3;
17 disp ( s (1) , ’ n=1 ’ ) ;

89
18
19 s (2) = h (2) *( f ( a ) + f ( b ) +2* f (2* h (2) ) +4*( f ( h (2) ) + f (3* h
(2) ) ) ) /3;
20 disp ( s (2) , ’ n=2 ’ ) ;
21
22 s (3) = h (3) *( f ( a ) + f ( b ) +2*( f (2* h (3) ) + f (4* h (3) ) + f (6* h
(3) ) ) +4*( f ( h (3) ) + f (3* h (3) ) + f (5* h (3) ) + f (7* h (3) ) ) )
/3;
23 disp ( s (3) , ’ n=4 ’ ) ;
24
25 exact = integrate ( ’ exp ( x ) ’ , ’ x ’ ,0 ,2) ;
26 disp ( exact , ’ The e x a c t v a l u e o f i n t e r g a t i o n i s : ’ ) ;
27 exact = ones (3) * exact ;
28 err = exact - s ;
29 disp ( err , ’ t h u s c o r r e s p o n d i n g e r r o r s a r e : ’ ) ;

Scilab code Exa 6.7 Rombergs Interpolation

1 // Romberg ’ s I n t e r p o l a t i o n
2 clc ;
3 clear ;
4 close () ;
5 exec ( ’C : \ U s e r s \ Pragya \ D e s k t o p \ s c i l a b \ t r a p . s c i ’ , -1) ;
6 format ( ’ v ’ ,10) ;
7 funcprot (0) ;
8 deff ( ’ [ y ]= f ( x ) ’ , ’ y=exp ( x ) ’ ) ;
9 a = 0;
10 b = 2;
11
12 t (1 ,1) = trap (f ,a ,b ,0 ,0) ;
13 disp ( t (1 ,1) , ’T ( 0 , 0 ) : ’ ) ;
14
15 t (2 ,1) = trap (f ,a ,b ,1 ,0) ;

90
16 disp ( t (2 ,1) , ’T ( 1 , 0 ) : ’ );
17
18 t (3 ,1) = trap (f ,a ,b ,2 ,0) ;
19 disp ( t (3 ,1) , ’T ( 2 , 0 ) : ’ ) ;
20
21 t (4 ,1) = trap (f ,a ,b ,3 ,0) ;
22 disp ( t (4 ,1) , ’T ( 3 , 0 ) : ’ ) ;
23
24 t (2 ,2) = trap (f ,a ,b ,1 ,1) ;
25 disp ( t (2 ,2) , ’T ( 1 , 1 ) : ’ ) ;
26
27 t (3 ,2) = trap (f ,a ,b ,2 ,1) ;
28 disp ( t (3 ,2) , ’T ( 2 , 1 ) : ’ ) ;
29
30 t (4 ,2) = trap (f ,a ,b ,3 ,1) ;
31 disp ( t (4 ,2) , ’T ( 3 , 1 ) : ’ ) ;
32
33 t (3 ,3) = trap (f ,a ,b ,2 ,2) ;
34 disp ( t (3 ,3) , ’T ( 2 , 2 ) : ’ ) ;
35
36 t (4 ,3) = trap (f ,a ,b ,3 ,2) ;
37 disp ( t (4 ,3) , ’T ( 3 , 2 ) : ’ ) ;
38
39 t (4 ,4) = trap (f ,a ,b ,3 ,3) ;
40 disp ( t (4 ,4) , ’T ( 3 , 3 ) : ’ ) ;
41
42 disp (t , ’ The c o r r e s p o n d i n g Romberg T a b l e i s : ’ );

Scilab code Exa 6.8 Rombergs Method

1 // Romberg ’ s Method
2 clc ;
3 clear ;

91
4 close () ;
5 exec ( ’C : \ U s e r s \ Pragya \ D e s k t o p \ s c i l a b \ t r a p . s c i ’ , -1) ;
6 format ( ’ v ’ ,10) ;
7 funcprot (0) ;
8 deff ( ’ [ y ]= f ( x ) ’ , ’ y=exp ( x ) ’ ) ;
9 a = 0;
10 b = 2;
11
12 t (1 ,1) = trap (f ,a ,b ,0 ,0) ;
13 disp ( t (1 ,1) , ’T ( 0 , 0 ) : ’ ) ;
14
15 t (2 ,1) =( t (1 ,1) +2*1* f (1) ) /2;
16 disp ( t (2 ,1) , ’T ( 1 , 0 ) : ’ ) ;
17
18 t (3 ,1) =( t (2 ,1) + f (1/2) + f (3/2) ) /2;
19 disp ( t (3 ,1) , ’T ( 2 , 0 ) : ’ ) ;
20
21 t (4 ,1) =( t (3 ,1) +.5*( f (1/4) + f (3/4) + f (5/4) + f (7/4) ) ) /2;
22 disp ( t (4 ,1) , ’T ( 3 , 0 ) : ’ ) ;

Scilab code Exa 6.9 Simpsons Adaptive Quatrature

1 // Simpson ’ s A d a p t i v e Q u a t r a t u r e
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,10) ;
6 funcprot (0) ;
7 deff ( ’ [ y ]= f ( x ) ’ , ’ y=exp ( x ) ’ ) ;
8 a = 0.5;
9 b = 1;
10 h = (b - a ) /2;
11 S1 = h *( f ( a ) +4* f (( a + b ) /2) + f ( b ) ) /3;

92
12 disp ( S1 , ’ S1 : ’ ) ;
13
14 S2 = h *( f ( a ) +4* f ((3* a + b ) /4) +2* f (( a + b ) /2) +4* f (( a +3* b )
/4) + f ( b ) ) /6;
15 disp ( S2 , ’ S2 : ’ ) ;
16
17 err = abs ( S2 - S1 ) /15;
18 disp ( err , ’ An e s t i m a t e o f t h e e r r o r i n S2 i s : ’ ) ;
19
20 act = integrate ( ’ exp ( x ) ’ , ’ x ’ ,.5 ,1)
21 act_err = abs ( act - S2 ) ;
22 disp ( act_err , ’ The A c t u a l e r r o r i n S2 i s : ’ ) ;

Scilab code Exa 6.10 Simpsons Adaptive Quatrature

1 // Simpson ’ s A d a p t i v e Q u a t r a t u r e
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,7) ;
6 funcprot (0) ;
7 deff ( ’ [ y ]= f ( x ) ’ , ’ y=exp ( −3∗ x ) ∗ s i n ( 3 ∗ x ) ’ ) ;
8 e = 0.0005;
9 a = 0;
10 b = %pi ;
11 h = (b - a ) /2;
12
13 S1 = h *( f ( a ) +4* f (( a + b ) /2) + f ( b ) ) /3;
14 disp ( S1 , ’ S1 : ’ ) ;
15 S2 = h *( f ( a ) +4* f ((3* a + b ) /4) +2* f (( a + b ) /2) +4* f (( a +3* b )
/4) + f ( b ) ) /6;
16 disp ( S2 , ’ S2 : ’ ) ;
17

93
18 err = abs ( S2 - S1 ) /15;
19 disp ( err , ’ | S2−S1 | >15 e s o [ 0 . %pi ] must be s u b d i v i d e d
’ );
20
21 a = ( a + b ) /2;
22 h = (b - a ) /2;
23 S1 = h *( f ( a ) +4* f (( a + b ) /2) + f ( b ) ) /3;
24 disp ( S1 , ’ S1 : ’ ) ;
25 S2 = h *( f ( a ) +4* f ((3* a + b ) /4) +2* f (( a + b ) /2) +4* f (( a +3* b )
/4) + f ( b ) ) /6;
26 disp ( S2 , ’ S2 : ’ ) ;
27 s = S2 ;
28 disp ( abs ( S2 - S1 ) , ’ | S2−S1 | <15 e /2 ’ ) ;
29
30 b = a;
31 a = 0;
32 h = (b - a ) /2;
33
34 S1 = h *( f ( a ) +4* f (( a + b ) /2) + f ( b ) ) /3;
35 disp ( S1 , ’ S1 : ’ ) ;
36 S2 = h *( f ( a ) +4* f ((3* a + b ) /4) +2* f (( a + b ) /2) +4* f (( a +3* b )
/4) + f ( b ) ) /6;
37 disp ( S2 , ’ S2 : ’ ) ;
38
39 err = abs ( S2 - S1 ) /15;
40 disp ( err , ’ | S2−S1 | >15 e s o i n t e r v a l must be s u b d i v i d e d
’ );
41
42 a = ( a + b ) /2;
43 h = (b - a ) /2;
44 S1 = h *( f ( a ) +4* f (( a + b ) /2) + f ( b ) ) /3;
45 disp ( S1 , ’ S1 : ’ ) ;
46 S2 = h *( f ( a ) +4* f ((3* a + b ) /4) +2* f (( a + b ) /2) +4* f (( a +3* b )
/4) + f ( b ) ) /6;
47 disp ( S2 , ’ S2 : ’ ) ;
48 s = s + S2 ;
49 disp ( abs ( S2 - S1 ) , ’ | S2−S1 | <15 e /4 ’ ) ;
50

94
51 b = a;
52 a = 0;
53 h = (b - a ) /2;
54
55 S1 = h *( f ( a ) +4* f (( a + b ) /2) + f ( b ) ) /3;
56 disp ( S1 , ’ S1 : ’ ) ;
57 S2 = h *( f ( a ) +4* f ((3* a + b ) /4) +2* f (( a + b ) /2) +4* f (( a +3* b )
/4) + f ( b ) ) /6;
58 disp ( S2 , ’ S2 : ’ ) ;
59
60 err = abs ( S2 - S1 ) /15;
61 disp ( err , ’ | S2−S1 | >15 e s o i n t e r v a l must be s u b d i v i d e d
’ );
62
63 a = ( a + b ) /2;
64 h = (b - a ) /2;
65 S1 = h *( f ( a ) +4* f (( a + b ) /2) + f ( b ) ) /3;
66 disp ( S1 , ’ S1 : ’ ) ;
67 S2 = h *( f ( a ) +4* f ((3* a + b ) /4) +2* f (( a + b ) /2) +4* f (( a +3* b )
/4) + f ( b ) ) /6;
68 disp ( S2 , ’ S2 : ’ ) ;
69 s = s + S2 ;
70 disp ( abs ( S2 - S1 ) , ’ | S2−S1 | <15 e /8 ’ ) ;
71
72 b = a;
73 a = 0;
74 h = (b - a ) /2;
75
76 S1 = h *( f ( a ) +4* f (( a + b ) /2) + f ( b ) ) /3;
77 disp ( S1 , ’ S1 : ’ ) ;
78 S2 = h *( f ( a ) +4* f ((3* a + b ) /4) +2* f (( a + b ) /2) +4* f (( a +3* b )
/4) + f ( b ) ) /6;
79 disp ( S2 , ’ S2 : ’ ) ;
80 disp ( abs ( S2 - S1 ) , ’ | S2−S1 | <15 e /8 ’ ) ;
81 s = s + S2 ;
82 disp ( s ) ;

95
Scilab code Exa 6.11 Gaussian Quadrature Rule

1 // G a u s s i a n Q u a d r a t u r e Rule
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,10) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 1 f ( x ) dx ’ ) ;
8 b = 1;
9 a = 0;
10 x = poly (0 , ’ x ’ ) ;
11 p = x ^2 - x +1/6;
12 x1 = roots ( p ) ;
13 A = [1 1; x1 ’];
14 //X = [ c 0 ; c 1 ] ;
15 B = [( b - a ) ;( b ^2 - a ^2) /2];
16 X = inv ( A ) * B ;
17 disp (X , ’ Are t h e c1 , c 2 c o n s t a n t s : ’ ) ;
18 disp ( x1 , ’ Are t h e c o r r e s p o n d i n g r o o t s ( x1 , x2 ) : ’ );
19 disp ( ’ c 0 ∗ f ( x0 )+c 1 ∗ f ( x1 ) ’ ) ;

Scilab code Exa 6.12 Gaussian Quadrature Rule

1 // G a u s s i a n Q u a d r a t u r e Rule
2 clc ;
3 clear ;
4 close () ;

96
5 format ( ’ v ’ ,10) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 2 exp ( x ) dx ’ ) ;
8 deff ( ’ [ y ]= f ( t ) ’ , ’ y=exp ( t +1) ’ ) ;
9 b = 1;
10 a = -1;
11 x = poly (0 , ’ x ’ ) ;
12 p = x ^4 - 6* x ^2/7+3/35;
13 x1 = roots ( p ) ;
14 A = [1 1 1 1; x1 ’;( x1 .^2) ’;( x1 .^3) ’];
15 B = [( b - a ) ;( b ^2 - a ^2) /2;( b ^3 - a ^3) /3;( b ^4 - a ^4) /4];
16 C = inv ( A ) * B ;
17 I = C (1) * f ( x1 (1) ) + C (2) * f ( x1 (2) ) + C (3) * f ( x1 (3) ) + C (4) * f
( x1 (4) ) ;
18 disp (I , ’ C a l c u l a t e d i n t e g r a t i o n : ’ ) ;
19 exact = integrate ( ’ exp ( x ) ’ , ’ x ’ ,0 ,2) ;
20 disp ( exact , ’ The e x a c t v a l u e o f i n t e r g a t i o n i s : ’ ) ;
21 err = exact - I ;
22 disp ( err , ’ E r r o r : ’ ) ;

97
Chapter 7

Ordinary Differential Eqautions


Initial value problem

Scilab code Exa 7.1 Eulers Method

1 // E u l e r ’ s Method
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 deff ( ’ [ g ]= f ( x , y ) ’ , ’ g= −y ˆ2/(1+ x ) ’ ) ;
8 y = 1;
9 x = 0;
10 h = 0.05;
11 while x <0.2
12 y = y - 0.05* y ^2/(1+ x ) ;
13 x = x + h;
14 disp (y ,x , ’ V a l u e o f y a t x : ’ ) ;
15 end
16 disp (y , ’ The c a l c u l a t e d v a l u e o f y ( 0 . 2 ) : ’ ) ;
17 x = 0.2;
18 act = 1/(1+ log (1+ x ) ) ;
19 disp ( act , ’ The e x a c t v a l u e i s o f y ( 0 . 2 ) : ’ ) ;

98
20 err = act - y ;
21 disp ( err , ’ The e r r o r i s : ’ );

Scilab code Exa 7.2 Eulers trapezoidal predictor corrector pair

1 // E u l e r ’ s t r a p e z o i d a l p r e d i c t o r −c o r r e c t o r p a i r
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 deff ( ’ [ g ]= f ( x , y ) ’ , ’ g= −y ˆ2/(1+ x ) ’ ) ;
8 y = 1;
9 x = 0;
10 h = 0.05;
11 i =0;
12 while x <0.2
13 y0 = y - 0.05* y ^2/(1+ x ) ;
14 disp ( y0 , ’ The Y0 : ’ )
15 y1 = y - h *( y ^2/(1+ x ) + y0 ^2/(1+ x + h ) ) /2;
16 disp ( y1 , ’ The Y1 : ’ )
17 y2 = y - h *( y ^2/(1+ x ) + y1 ^2/(1+ x + h ) ) /2;
18 disp ( y2 , ’ The Y2 : ’ )
19 y = y2 ;
20 x = x + h;
21 end
22 disp ( y2 , ’ The c a l c u l a t e d v a l u e o f y ( 0 . 2 ) : ’ ) ;
23 x = 0.2;
24 act = 1/(1+ log (1+ x ) ) ;
25 disp ( act , ’ The e x a c t v a l u e i s o f y ( 0 . 2 ) : ’ ) ;
26 err = act - y2 ;
27 disp ( err , ’ The e r r o r i s : ’ ) ;

99
Scilab code Exa 7.3 Mid point formula

1 // Mid−p o i n t f o r m u l a
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 deff ( ’ [ g ]= f ( x , y ) ’ , ’ g= −y ˆ2/(1+ x ) ’ ) ;
8 y0 = 1;
9 y1 = 0.95335;
10 x = 0.05;
11 h = 0.05;
12 i =0;
13 while x <0.2
14 y2 = y0 - 0.1* y1 ^2/(1+ x ) ;
15 disp ( y2 , ’ The Y : ’ )
16 y0 = y1 ;
17 y1 = y2 ;
18 x = x + h;
19 end
20 disp ( y2 , ’ The c a l c u l a t e d v a l u e o f y ( 0 . 2 ) : ’ ) ;
21 x = 0.2;
22 act = 1/(1+ log (1+ x ) ) ;
23 disp ( act , ’ The e x a c t v a l u e i s o f y ( 0 . 2 ) : ’ ) ;
24 err = act - y2 ;
25 disp ( err , ’ The e r r o r i s : ’ ) ;

100
Scilab code Exa 7.4 Illustraion of Taylor Series for approximation

1 // I l l u s t r a i o n o f T a y l o r S e r i e s f o r a p p r o x i m a t i o n
2 // I t n e e d s s y m b o l i c t o o l b o x
3 clc ;
4 clear ;
5 close () ;
6 cd ~/ Desktop / maxima_symbolic ;
7 exec symbolic . sce
8 y0 = 1;
9 x0 = 0;
10 y1_0 = - y0 ^2/(1+ x0 ) ;
11 y2_0 = (2* y0 ^3+ y0 ^2) /((1+ x0 ) ^2) ;
12 y3_0 = -(6* y0 ^4 + 6* y0 ^3 + 2* y0 ^2) /((1+ x0 ) ^3) ;
13 // s i m i l a r l y
14 y4_0 = 88;
15 y5_0 = -694;
16 y6_0 = 6578;
17 y7_0 = -72792;
18 syms r h ;
19 format ( ’ v ’ ,10) ;
20 yxr = 1 - r * h + ( y2_0 *( r * h ) ^2) / factorial (2) - ( y3_0
*( r * h ) ^3) / factorial (3) + ( y4_0 *( r * h ) ^4) / factorial
(4) - ( y5_0 *( r * h ) ^5) / factorial (5) +( y6_0 *( r * h ) ^6)
/ factorial (6) - ( y7_0 *( r * h ) ^7) / factorial (7) ;
21 yxr_5d = 1 - r * h + ( y2_0 *( r * h ) ^2) / factorial (2) + (
y3_0 *( r * h ) ^3) / factorial (3) + ( y4_0 *( r * h ) ^4) /
factorial (4) ;
22 h = 0.05;
23 r = 1;
24 yx1 = eval ( yxr_5d ) ;
25 format ( ’ v ’ ,8) ;
26 disp ( dbl ( yx1 ) , ’ V a l u e when r = 1 : ’ ) ;
27
28 syms r h ;
29 format ( ’ v ’ ,10) ;
30 yxr = 1 - r * h + ( y2_0 *( r * h ) ^2) / factorial (2) - ( y3_0
*( r * h ) ^3) / factorial (3) + ( y4_0 *( r * h ) ^4) / factorial

101
(4) - ( y5_0 *( r * h ) ^5) / factorial (5) +( y6_0 *( r * h ) ^6)
/ factorial (6) - ( y7_0 *( r * h ) ^7) / factorial (7) ;
31 yxr_5d = 1 - r * h + ( y2_0 *( r * h ) ^2) / factorial (2) + (
y3_0 *( r * h ) ^3) / factorial (3) + ( y4_0 *( r * h ) ^4) /
factorial (4) + ( y5_0 *( r * h ) ^5) / factorial (5) ;
32 h = 0.05;
33 r = 2;
34 yx1 = eval ( yxr_5d ) ;
35 format ( ’ v ’ ,8) ;
36 disp ( dbl ( yx1 ) , ’ V a l u e when r = 2 : ’ )

Scilab code Exa 7.5 3 Step Adams Bashforth and 2 step Adam Moulton
formula

1 // 3− S t e p Adams − B a s h f o r t h and 2− s t e p Adam−Moulton


formula
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 2 exp ( x ) dx ’ ) ;
8 deff ( ’ [ yd ]= f ( x , y ) ’ , ’ yd = −y ˆ2/(1+ x ) ’ ) ;
9
10 y0 = 1;
11 x0 = 0;
12 h = 0.05;
13 x1 = x0 + h ;
14 x2 = x1 + h ;
15 y2 = 0.91298;
16 y1 = 0.95348;
17 for i = 1:2
18 yn = y2 + h *(23* f ( x2 , y2 ) -16* f ( x1 , y1 ) +5* f ( x0 , y0 ) )

102
/12;
19 disp ( yn , ’ yn ( 0 ) = ’ ) ;
20 yn_i = yn ;
21 yn_i = y2 + h *(5* f ( x2 +h , yn_i ) +8* f ( x2 , y2 ) -f ( x1 , y1
) ) /12;
22 disp ( yn_i , ’ yn ( i ) ’ ) ;
23 yn_i = y2 + h *(5* f ( x2 +h , yn_i ) +8* f ( x2 , y2 ) -f ( x1 , y1
) ) /12;
24 disp ( yn_i , ’ yn ( i ) ’ ) ;
25 y0 = y1 ; y1 = y2 ; y2 = yn_i ;
26 x0 = x1 ; x1 = x2 ; x2 = x2 + h ;
27 end
28 x = 0.2 ;
29 act = 1/(1+ log (1+ x ) ) ;
30 disp ( act , ’ The e x a c t v a l u e i s o f y ( 0 . 2 ) : ’ );
31 err = act - y2 ;
32 disp ( err , ’ The e r r o r i s : ’ ) ;

Scilab code Exa 7.10 Runge Kutta Methods

1 // Runge− Kutta Methods


2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 2 exp ( x ) dx ’ ) ;
8 deff ( ’ [ t ]= f ( x , y ) ’ , ’ t=−y ˆ2/(1+ x ) ’ ) ;
9 yn = 1;
10 xn = 0;
11 h = 0.05;
12 for i = 1:4
13 k1 = f ( xn , yn ) ;

103
14 k2 = f ( xn +0.5* h , yn +.5* h * k1 ) ;
15 k3 = f ( xn +0.5* h , yn +.5* h * k2 ) ;
16 k4 = f ( xn +h , yn + h * k3 ) ;
17 yn_1 = yn + h *( k1 +2* k2 +2* k3 + k4 ) /6;
18 n = i -1;
19 ann (: , i ) = [ n k1 k2 k3 k4 yn_1 ] ’;
20 yn = yn_1 ;
21 xn = xn + h ;
22 end
23
24 disp ( ann , ’ C a l c u l a t e d i n t e g r a t i o n : ’ ) ;

Scilab code Exa 7.11 Eulers Methods

1 // E u l e r ’ s Methods
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 2 exp ( x ) dx ’ ) ;
8 deff ( ’ [ ud ]= f ( u , v ) ’ , ’ ud=uˆ2−2∗u∗ v ’ ) ;
9 deff ( ’ [ vd ]= g ( x , u , v ) ’ , ’ vd=u∗ x+u ˆ2∗ s i n ( v ) ’ ) ;
10 un = 1;
11 vn = -1;
12 xn = 0;
13 h = 0.05;
14 for i = 1:2
15 un_1 = un + h *( f ( un , vn ) ) ;
16 disp ( un_1 ) ;
17 vn_1 = vn + h *( g ( xn , un , vn ) ) ;
18 disp ( vn_1 ) ;
19 vn = vn_1 ;

104
20 un = un_1 ;
21 xn = xn + h ;
22 end
23 ann = [ un vn ];
24 disp ( ann , ’ C a l c u l a t e d U2 n V2 v a l u e s : ’ );

Scilab code Exa 7.12 Eulers trapezoidal predictor corrector pair

1 // E u l e r ’ s t r a p e z o i d a l p r e d i c t o r −c o r r e c t o r p a i r
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 2 exp ( x ) dx ’ ) ;
8 deff ( ’ [ ud ]= f ( u , v ) ’ , ’ ud=uˆ2−2∗u∗ v ’ ) ;
9 deff ( ’ [ vd ]= g ( x , u , v ) ’ , ’ vd=u∗ x+u ˆ2∗ s i n ( v ) ’ ) ;
10 un = 1;
11 vn = -1;
12 xn = 0;
13 h = 0.05;
14 for i = 1:2
15 un_1p = un + h *( f ( un , vn ) ) ;
16 disp ( un_1p ) ;
17 vn_1p = vn + h *( g ( xn , un , vn ) ) ;
18 disp ( vn_1p ) ;
19 un_1c = un + h *( f ( un , vn ) + f ( un_1p , vn_1p ) ) /2;
20 disp ( un_1c ) ;
21 vn_1c = vn + h *( g ( xn , un , vn ) + g ( xn +h , un_1p , vn_1p ) )
/2;
22 disp ( vn_1c ) ;
23 un_1cc = un + h *( f ( un , vn ) + f ( un_1c , vn_1c ) ) /2;
24 disp ( un_1cc ) ;

105
25 vn_1cc = vn + h *( g ( xn , un , vn ) + g ( xn +h , un_1c , vn_1c )
) /2;
26 disp ( vn_1cc ) ;
27 vn = vn_1cc ;
28 un = un_1cc ;
29 xn = xn + h ;
30 end
31 ann = [ un vn ];
32 disp ( ann , ’ C a l c u l a t e d U2 n V2 v a l u e s : ’ );

Scilab code Exa 7.13 4 Stage Runge Kutta method

1 // 4− S t a g e Runge−Kutta method
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,8) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 2 exp ( x ) dx ’ ) ;
8 deff ( ’ [ ud ]= f ( u , v ) ’ , ’ ud=uˆ2−2∗u∗ v ’ ) ;
9 deff ( ’ [ vd ]= g ( x , u , v ) ’ , ’ vd=u∗ x+u ˆ2∗ s i n ( v ) ’ ) ;
10 un = 1;
11 vn = -1;
12 xn = 0;
13 h = 0.05;
14 for i = 1:2
15 k1 = f ( un , vn ) ;
16 disp ( k1 ) ;
17 l1 = g ( xn , un , vn ) ;
18 disp ( l1 ) ;
19 k2 = f ( un +.5* h * k1 , vn +.5* h * l1 ) ;
20 disp ( k2 ) ;
21 l2 = g ( xn +.5* h , un +.5* h * k1 , vn +.5* h * l1 ) ;

106
22 disp ( l2 ) ;
23 k3 = f ( un +.5* h * k2 , vn +.5* h * l2 ) ;
24 disp ( k3 ) ;
25 l3 = g ( xn +.5* h , un +.5* h * k2 , vn +.5* h * l2 ) ;
26 disp ( l3 ) ;
27 k4 = f ( un + h * k3 , vn + h * l3 ) ;
28 disp ( k4 ) ;
29 l4 = g ( xn +h , un + h * k3 , vn + h * l3 ) ;
30 disp ( l4 ) ;
31 un_1 = un + h *( k1 +2* k2 +2* k3 + k4 ) /6;
32 disp ( un_1 , ’ u ( n+1) : ’ ) ;
33 vn_1 = vn + h *( l1 +2* l2 +2* l3 + l4 ) /6;
34 disp ( vn_1 , ’ v ( n+1) : ’ ) ;
35 un = un_1 ;
36 vn = vn_1 ;
37 xn = xn + h ;
38 end
39 ann = [ un vn ];
40 disp ( ann , ’ C a l c u l a t e d U2 n V2 v a l u e s : ’ ) ;

107
Chapter 8

Ordinary Differential Eqautions


boundary value problem

Scilab code Exa 8.1 The finite difference method

1 // The f i n i t e d i f f e r e n c e method
2 clc ;
3 clear ;
4 close () ;
5 format ( ’ v ’ ,7) ;
6 funcprot (0) ;
7 disp ( ’ I n t e g r a l 0 t o 2 exp ( x ) dx ’ ) ;
8 deff ( ’ [ pp ]= p ( x ) ’ , ’ pp=x ’ ) ;
9 deff ( ’ [ qq ]= q ( x ) ’ , ’ qq=−3 ’ ) ;
10 deff ( ’ [ r r ]= r ( x ) ’ , ’ r r=exp ( x ) ’ ) ;
11 y0 = 1;
12 yn = 2;
13 x = [.2 .4 .6 .8 1];
14 h = 0.2;
15 A = [ -2 - h ^2* q ( x (1) ) 1 - h * p ( x (1) ) /2 0 0;1+ h * p ( x (2) ) /2
-2 - h ^2* q ( x (2) ) 1 - h * p ( x (2) ) /2 0;0 1+ h * p ( x (3) ) /2
-2 - h ^2* q ( x (3) ) 1 - h * p ( x (3) ) /2;0 0 1+ h * p ( x (4) ) /2
-2 - h ^2* q ( x (4) ) ];
16 disp (A , ’A ’ ) ;

108
17 c = [ h ^2* r ( x (1) ) -(1+ h * p ( x (1) ) /2) * y0 ; h ^2* r ( x (2) ) ; h ^2*
r ( x (3) ) ; h ^2* r ( x (4) ) -(1 - h * p ( x (4) ) /2) * yn ];
18 Y = inv ( A ) * c ;
19 disp (Y ’ , ’ The r e s p e c t i v e v a l u e s o f y1 , y2 , y3 , y4 : ’ );

109

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy