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

Suhas 000

The document contains MATLAB code written by Ganesh Jadhav for numerical methods problems involving root finding, numerical integration, interpolation, and differentiation. The code includes implementations of Newton-Raphson, fixed point iteration, Simpson's rule, Lagrange interpolation, Newton's forward/backward difference, and numerical differentiation using Newton's forward difference. Sample inputs and outputs are provided showing the code works to solve various problems in numerical analysis.

Uploaded by

Pranav Barve
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views

Suhas 000

The document contains MATLAB code written by Ganesh Jadhav for numerical methods problems involving root finding, numerical integration, interpolation, and differentiation. The code includes implementations of Newton-Raphson, fixed point iteration, Simpson's rule, Lagrange interpolation, Newton's forward/backward difference, and numerical differentiation using Newton's forward difference. Sample inputs and outputs are provided showing the code works to solve various problems in numerical analysis.

Uploaded by

Pranav Barve
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 93

GANESH JADHAV [Roll no.

42]

PROGRAM ON ROOTS OF EQUATION:-NEWTON RAPHSON METHOD


function raphson
clc;
clear;
s=input('\n ENTER F(x)=','s');
f=inline(s);
s=input('\n ENTER dF(x)=','s');
df=inline(s);
x=input('\n ENTER INITIAL GUESS:');
n=100;
acc=input('\n ENTER ACCURACY:');
fprintf('\n
x
f(x)');
for i=1:1:n
x=x-f(x)/df(x);
fprintf('\n %f
%f',x,f(x));
if(abs(f(x))<acc)
fprintf('\n ROOT=%f',x);
break;
end
end
if(i>=n)
fprintf('\n ROOT WILL NOT CONVERGE WITH GIVEN GUESS');
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER F(x)=-(h^3)+9*(h^2)-(90/pi)
ENTER dF(x)=-3*(h^2)+18*h
ENTER INITIAL GUESS:2
ENTER ACCURACY:0.000001
x

f(x)

2.026995

0.002167

2.026906

0.000000

ROOT=2.026906>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON ROOTS OF EQUATION:-NEWTON MODIFIED RAPHSON
function raphsonmodified
clc;
clear;
s=input('\n ENTER F(x)=','s');
f=inline(s);
s=input('\n ENTER dF(x)=','s');
df=inline(s);
x=input('\n ENTER INITIAL GUESS:');
df=df(x);
n=100;
acc=input('\n ENTER ACCURACY:');
fprintf('\n
x
f(x)');
for i=1:1:n
x=x-f(x)/df;
fprintf('\n %f
%f',x,f(x));
if(abs(f(x))<acc)
fprintf('\n ROOT=%f',x);
break;
end
end
if(i>=n)
fprintf('\n ROOT WILL NOT CONVERGE WITH GIVEN GUESS');
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER F(x)=-(h^3)+9*(h^2)-(90/pi)
ENTER dF(x)=-3*(h^2)+18*h
ENTER INITIAL GUESS:2
ENTER ACCURACY:0.000001
x

f(x)

2.026995

0.002167

2.026905

-0.000014

2.026906

0.000000

ROOT=2.026906>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON ROOTS OF EQUATION:-FIXED POINT ITERATION
function fixediteration
clc;
clear;
s=input('\n ENTER g(x):','s');
g=inline(s);
s=input('\n ENTER f(x):','s');
f=inline(s);
x=input('\n ENTER INITIAL GUESS:');
n=input('\n ENTER NUMBER OF ITERATIONS TO BE PERFORMED');
acc=input('\n ENTER ACCRACY:');
fprintf('\n x
g(x)
f(x)');
i=1;
while(i<=n)
fprintf('\n %f',x);
x=g(x);
fprintf(' %f
%f',x,f(x));
if(abs(f(x))<acc)
fprintf('\n ROOT OF EQUATION%f',x);
break;
end
i=i+1;
if(i>=n)
fprintf('\n ROOT DOES NOT CONVERGE IN GIVEN ITERATIONS');
end
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER g(x):(sqrt((h^3)+(90/pi)))/3
ENTER f(x):-(h^3)+9*(h^2)-(90/pi)
ENTER INITIAL GUESS:2
ENTER NUMBER OF ITERATIONS TO BE PERFORMED100
ENTER ACCURACY:0.000001
x

g(x)

f(x)

2.000000

2.017917

-0.216932

2.017917

2.023880

-0.073066

2.023880

2.025885

-0.024658

2.025885

2.026561

-0.008327

2.026561

2.026789

-0.002813

2.026789

2.026866

-0.000950

2.026866

2.026892

-0.000321

2.026892

2.026901

-0.000108

2.026901

2.026904

-0.000037

2.026904

2.026905

-0.000012

2.026905

2.026906

-0.000004

2.026906

2.026906

-0.000001

2.026906

2.026906

-0.000000

ROOT OF EQUATION2.026906>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON NUMERICAL INTEGRATION:-SIMPSONS 1/3rd RULE
function simpson1
clc;
clear;
s=input('\n ENTER THE FUNCTION:','s');
f=inline(s);
m=input('\n ENTER NUMBER OF MAJOR STRIPS:');
n=2*m;
sum=0;
x0=input('\n ENTER INITIAL VALUE:');
xN=input('\n ENTER FINAL VALUE:');
h=(xN-x0)/n;
for i=1:1:m
sum=sum+f(x0)+4*f(x0+h)+f(x0+2*h);
x0=x0+2*h;
end
sum=sum*(h/3);
fprintf('\n Integration=%f',sum);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER THE FUNCTION:5+0.25*x^2
ENTER NUMBER OF MAJOR STRIPS:10
ENTER INITIAL VALUE:0
ENTER FINAL VALUE:11
Integration=165.916667>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON NUMERICAL INTEGRATION:-SIMPSONS 3/8th RULE
function simpson3
clc;
clear;
s=input('\n ENTER THE FUNCTION:','s');
f=inline(s);
m=input('\n ENTER NUMBER OF MAJOR STRIPS:');
n=3*m;
sum=0;
x0=input('\n ENTER INITIAL VALUE:');
xN=input('\n ENTER FINAL VALUE:');
h=(xN-x0)/n;
for i=1:1:m
sum=sum+f(x0)+3*f(x0+h)+3*f(x0+2*h)+f(x0+3*h);
x0=x0+3*h;
end
sum=sum*(3*h/8);
fprintf('\n Integration=%f',sum);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER THE FUNCTION:5+0.25*x^2
ENTER NUMBER OF MAJOR STRIPS:9
ENTER INITIAL VALUE:0
ENTER FINAL VALUE:11
Integration=165.916667>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON NUMERICL INTEGRATION:-TRAPEZOIDAL RULE
function trapezoidal
clc;
clear;
s=input('\n ENTER THE FUNCTION:','s');
f=inline(s);
m=input('\n ENTER NUMBER OF MAJOR STRIPS:');
n=m;
sum=0;
x0=input('\n ENTER INITIAL VALUE:');
xN=input('\n ENTER FINAL VALUE:');
h=(xN-x0)/n;
for i=1:1:m
sum=sum+f(x0)+f(x0+h);
x0=x0+h;
end
sum=sum*(h/2);
fprintf('\n Integration=%f',sum);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER THE FUNCTION:5+0.25*x^2
ENTER NUMBER OF MAJOR STRIPS:11
ENTER INITIAL VALUE:0
ENTER FINAL VALUE:11
Integration=166.375000>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON NUMERICAL INTEGRATION:-GAUSS QUADRATURE 2POINT METHOD
function twopointgauss
clc;
clear;
s=input('\n ENTER FUNCTION:','s');
f=inline(s);
x0=input('\n ENTER INITIAL LIMIT:');
xn=input('\n ETER FINAL LIMIT:');
a=(xn-x0)/2;
b=(xn+x0)/2;
x1=-a*1/(sqrt(3))+b;
x2=a*1/(sqrt(3))+b;
area=a*(f(x1)+f(x2));
fprintf('\n area =%f ',area);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER FUNCTION:5+0.25*x^2
ENTER INITIAL LIMIT:0
ETER FINAL LIMIT:11
area =165.916667 >>

GANESH JADHAV [Roll no. 42]


PROGRAM ON NUMERICAL INTEGRATION:-GAUSS QUADRATURE 3POINT METHOD
function threepointgauss
clc;
clear;
s=input('\n ENTER FUNCTION:','s');
f=inline(s);
x0=input('\n ENTER INITIAL LIMIT:');
xn=input('\n ETER FINAL LIMIT:');
a=(xn-x0)/2;
b=(xn+x0)/2;
x1=-a*(sqrt(3/5))+b;
x2=b;
x3=a*(sqrt(3/5))+b;
area=(a*(5*f(x1)+8*f(x2)+5*f(x3)))/9;
fprintf('\n area =%f ',area);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER FUNCTION:5+0.25*x^2
ENTER INITIAL LIMIT:0
ETER FINAL LIMIT:11
area =165.916667 >>

GANESH JADHAV [Roll no. 42]


PROGRAM ON INTERPOLATION:-LAGRANGES METHOD
function lagranges
clc;
clear;
[x,y,xx]=readdata;
yy=interpolate(x,y,xx);
fprintf('\n y(%f)=%f',xx,yy);
end
function [x,y,xx]=readdata
n=input('\n ENTER NUMBER OF DATA:');
for i=1:1:n
x(i)=input('\n x=');
y(i)=input(' y=');
end
xx=input('\n xx=');
end
function yy=interpolate(x,y,xx)
n=length(x);
yy=0;
for i=1:1:n
sum=1;
for j=1:1:n
if(i~=j)
sum=sum*(xx-x(j))/(x(i)-x(j));
end
end
yy=yy+sum*y(i);
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER NUMBER OF DATA:5
x=1
y=10

x=2
y=26

x=3
y=50

x=4
y=82

x=5
y=122

xx=2.5

y(2.500000)=37.000000>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON INTERPOLATION:-NEWTONS FORWARD DIFFERENCE
function NFD
clc;
clear;
[x,y,xx]=readdata;
y=fdtable(x,y);
display(x,y);
yy=interpolate(x,y,xx);
fprintf('\n y(%f)=%f',xx,yy);
end
function [x,y,xx]=readdata
n=input('\n Enter number of data to be entered:');
for(i=1:1:n)
x(i,1)=input('\n x:');
y(i,1)=input('y:');
end
xx=input('\n ENTER XX:');
end
function [y]=fdtable(x,y)
n=length(x);
for(j=2:1:n)
for(i=1:1:n-(j-1))
y(i,j)=y(i+1,j-1)-y(i,j-1);
end
end
end
function display(x,y)
n=length(x);
for(i=1:1:n)
fprintf('\n %f',x(i));
for(j=1:1:n)
fprintf('\t %f',y(i,j));
end
end
end
function [yy]=interpolate(x,y,xx)
u=(xx-x(1))/(x(2)-x(1));
yy=y(1,1);
sum=1;
fact=1;
n=length(x);
for(i=2:1:n)
sumu=sum*u;
yy=yy+y(1,i)*sumu/fact;
sum=sumu;
u=u-1;
fact=fact*i;
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
Enter number of data to be entered:5
x:1
y:10

x:2
y:26

x:3
y:50

x:4
y:82

x:5
y:122

ENTER XX:2.5

1.000000

10.000000

16.000000

8.000000

0.000000

0.000000

2.000000

26.000000

24.000000

8.000000

0.000000

0.000000

3.000000

50.000000

32.000000

8.000000

0.000000

0.000000

4.000000

82.000000

40.000000

0.000000

0.000000

0.000000

5.000000

122.000000

0.000000

0.000000

0.000000

0.000000

y(2.500000)=37.000000>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON INTERPOLATION:-NEWTONS BACKWARD DIFFERENCE
function nbd
clc;
clear;
[x,y,xx]=readdata;
y=bdtable(x,y);
display(x,y);
yy=interpolate(x,y,xx);
fprintf('\n\n y(%f)=%f',xx,yy);
end
function [x,y,xx]=readdata
n=input('\n enter number of data:');
for i=1:1:n
fprintf('\n x%d=',i);
x(i)=input('');
fprintf('y%d=',i);
y(i,1)=input('');
end
xx=input('\n enter x at which y is required:');
end
function y=bdtable(x,y)
n=length(x);
for j=2:1:n
for i=n:-1:j
y(i,j)=y(i,j-1)-y(i-1,j-1);
end
end
end
function display(x,y)
n=length(x);
for i=1:1:n
fprintf('\n %f',x(i));
for j=1:1:n
fprintf('\t %f',y(i,j));
end
end
end
function yy=interpolate(x,y,xx)
n=length(x);
u=(xx-x(n))/(x(2)-x(1));
yy=y(n,1);
sumu=1;
fact=1;
for i=2:1:n
sumu=sumu*u;
yy=yy+y(n,i)*sumu/fact;
u=u+1;
fact=fact*i;
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
enter number of data:5
x1=1
y1=10

x2=2
y2=26

x3=3
y3=50

x4=4
y4=82

x5=5
y5=122

enter x at which y is required:2.5

1.000000

10.000000

0.000000

0.000000

0.000000

0.000000

2.000000

26.000000

16.000000

0.000000

0.000000

0.000000

3.000000

50.000000

24.000000

8.000000

0.000000

0.000000

4.000000

82.000000

32.000000

8.000000

0.000000

0.000000

5.000000

122.000000

40.000000

8.000000

0.000000

0.000000

y(2.500000)=37.000000>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON DIFFERENTIATION:-NEWTONS FORWARD DIFFERENCE
function NFDDiff
clc;
clear;
[x,y]=readdata;
NFD=nfdtable(y);
display(x,y,NFD);
dxy=diff(x,y,NFD);
fprintf('\n At x=%f dy/dx=%f',x(1),dxy);
end
function [x,y]=readdata
n=input('\n ENTER No. of points:');
for i=1:1:n
x(i)=input('\nx:');
y(i)=input('y:');
end
end
function NFD=nfdtable(y)
n=length(y);
for j=1:1:n
for i=1:1:(n-j)
if(j==1)
NFD(i,j)=y(i+1)-y(i);
else
NFD(i,j)=NFD(i+1,j-1)-NFD(i,j-1);
end
end
end
end
function display(x,y,NFD)
n=length(x);
for i=1:1:n
fprintf('\n %f',x(i));
for j=1:1:n-i
fprintf('\t %f',NFD(i,j));
end
end
end
function dxy=diff(x,y,NFD)
n=length(y);
dxy=0;
h=x(2)-x(1);
s=1;
for j=1:1:n-1
dxy=dxy+s*NFD(1,j)*(1/j);
s=s*(-1);
end
dxy=(1/h)*dxy;
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER No. of points:5
x:0
y:2

x:1
y:5

x:2
y:10

x:3
y:22

x:4
y:34

0.000000

3.000000

2.000000

5.000000

1.000000

5.000000

7.000000

-7.000000

2.000000

12.000000

0.000000

3.000000

12.000000

4.000000
At x=0.000000 dy/dx=6.666667>>

-12.000000

GANESH JADHAV [Roll no. 42]


PROGRAM ON DIFFERENTIATION:-NEWTONS BACKWARD DIFFERENCE
function NBDDiff
clc;
clear;
[x,y]=readdata;
NBD=nbdtable(y);
display(x,y,NBD);
dxy=diff(x,y,NBD);
end
function [x,y]=readdata
n=input('\n ENTER No. of points:');
for i=1:1:n
x(i)=input('\n ENTER VALUE OF x:');
y(i)=input('\n ENTER VALUE OF y:');
end
end
function NBD=nbdtable(y)
n=length(y);
for j=1:1:n-1
for i=n:-1:j+1
if(j==1)
NBD(i,j)=y(i)-y(i-1);
else
NBD(i,j)=NBD(i,j-1)-NBD(i-1,j-1);
end
end
end
end
function display(x,y,NBD)
n=length(x);
for i=1:1:n
fprintf('\n %f %f',x(i),y(i));
if(i~=1)
for j=1:1:i-1
fprintf('\t %f',NBD(i,j));
end
end
fprintf('\n ');
end
end
function dxy=diff(x,y,NBD)
n=length(y);
dxy=0;
h=x(2)-x(1);
for j=1:1:n-1
dxy=dxy+NBD(n,j)*(1/j);
end
dxy=(1.0/h)*dxy;
fprintf('\n At x=%f dy/dx=%f',x(n),dxy);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER No. of points:4
ENTER VALUE OF x:1
ENTER VALUE OF y:1

ENTER VALUE OF x:2


ENTER VALUE OF y:4

ENTER VALUE OF x:3


ENTER VALUE OF y:9

ENTER VALUE OF x:4


ENTER VALUE OF y:16

1.000000

1.000000

2.000000

4.000000

3.000000

3.000000

9.000000

5.000000

2.000000

4.000000

16.000000 7.000000

2.000000

At x=4.000000 dy/dx=8.000000>>

0.000000

GANESH JADHAV [Roll no. 42]


PROGRAM ON INTERPOLATION:-HERMITE INTERPOLATION
function hermiteinter
clc;
clear;
x0=input('\n ENTER x of first point:');
y0=input('\n ENTER y of first point:');
yd0=input('\n ENTER yd of first point:');
x1=input('\n ENTER x of second point:');
y1=input('\n ENTER y of second point:');
yd1=input('\n ENTER yd of second point:');
a=[x0^3 x0^2 x0 1; x1^3 x1^2 x1 1;(3*x0^2) (2*x0) 1 0; (3*x1^2) (2*x1) 1 0];
c=[y0 y1 yd0 yd1];
x=gausselimination(a,c);
fprintf('\n y=%fx^3+%fx^2+%fx+%f',x(1),x(2),x(3),x(4));
xr=input('\n ENTER x for which y is to be determined:');
yr=(x(1)*xr^3)+(x(2)*xr^2)+(x(3)*xr)+x(4);
fprintf('at x=%f y is %f',xr,yr);
end
function x=gausselimination(a,c)
a
c
[a,c]=pivote(a,c);
[a,c]=upper(a,c);
[x]=back(a,c);
end
function [a,c]=pivote(a,c)
n=length(c);
for i=1:1:n-1
for k=i+1:1:n
if(abs(a(i,i))<abs(a(k,i)))
for j=1:1:n
temp=a(i,j);
a(i,j)=a(k,j);
a(k,j)=temp;
end
temp=c(i);
c(i)=c(k);
c(k)=temp;
end
end
end
end
%
UPPER TRIANGULAR FORM
function [a,c]=upper(a,c)
n=length(c);
for i=1:1:n-1
for k=i+1:1:n
temp=a(k,i)/a(i,i);
for j=1:1:n
a(k,j)=a(k,j)-temp*a(i,j);
end
c(k)=c(k)-temp*c(i);
end
end
end

GANESH JADHAV [Roll no. 42]


%
BACK SUBSTITUTION
function [x]=back(a,c)
n=length(c);
for i=n:-1:1
temp=c(i);
for j=i+1:1:n
temp=temp-a(i,j)*x(j);
end
x(i)=temp/a(i,i);
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER x of first point:2
ENTER y of first point:0.69315
ENTER yd of first point:0.5
ENTER x of second point:2.5
ENTER y of second point:0.91629
ENTER yd of second point:.4
a=
8.0000 4.0000 2.0000 1.0000
15.6250 6.2500 2.5000 1.0000
12.0000 4.0000 1.0000

18.7500 5.0000 1.0000

c=
0.6932 0.9163 0.5000 0.4000
y=0.029760x^3+-0.300880x^2+1.346400x+-1.034210
ENTER x for which y is to be determined:2.2
at x=2.200000 y is 0.788495>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON SIMULTANEOUS EQUATIONS:-GAUSS ELIMINATION
METHOD
function x=GaussElimination
clc;
clear;
[a,c]=readdata;
a
c
[a,c]=pivote(a,c);
a
c
[a,c]=upper(a,c);
a
c
x=back(a,c);
x
end
%
READ DATA
function [a,c]=readdata
n=input('\n Enter number of Equations');
for i=1:1:n
for j=1:1:n
fprintf('a[%d][%d]= ',i,j);
a(i,j)=input(' ');
end
j=1;
fprintf('c[%d][%d]= ',i,j);
c(i,j)=input(' ');
end
end
%
PIVOTING
function [a,c]=pivote(a,c)
n=length(c);
for i=1:1:n-1
for k=i+1:1:n
if(abs(a(i,i))<abs(a(k,i)))
for j=1:1:n
temp=a(i,j);
a(i,j)=a(k,j);
a(k,j)=temp;
end
temp=c(i);
c(i)=c(k);
c(k)=temp;
end
end
end
end
%
UPPER TRIANGULAR FORM
function [a,c]=upper(a,c)
n=length(c);
for i=1:1:n-1
for k=i+1:1:n
temp=a(k,i)/a(i,i);

GANESH JADHAV [Roll no. 42]


for j=1:1:n
a(k,j)=a(k,j)-temp*a(i,j);
end
c(k)=c(k)-temp*c(i);
end
end
end
%
BACK SUBSTITUTION
function [x]=back(a,c)
n=length(c);
for i=n:-1:1
temp=c(i);
for j=i+1:1:n
temp=temp-a(i,j)*x(j);
end
x(i)=temp/a(i,i);
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
Enter number of Equations3
a[1][1]= 130
a[1][2]= -30
a[1][3]= 0
c[1][1]= 500
a[2][1]= 1
a[2][2]= -1
a[2][3]= 0
c[2][1]= 0
a[3][1]= 40
a[3][2]= 60
a[3][3]= -120
c[3][1]= -200

a=
130 -30
1 -1

0
0

40 60 -120
c=
500
0
-200
a=
130 -30

40 60 -120

GANESH JADHAV [Roll no. 42]


1 -1

c=
500
-200
0
a=
130.0000 -30.0000

0 69.2308 -120.0000
0

0 -1.3333

c=
500.0000
-353.8462
-7.7778
x = 5.0000 5.0000 5.8333>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON ORDINARY DIFFERENTIAL EQUATION:-EULERS METHOD
function euler
clc;
clear;
x1=input('\n enter initial x value=');
y1=input('\n enter initial y value=');
xn=input('\n final value of x=');
h=input('\n increment in x=');
s=input('\n enter function:','s');
f=inline(s);
fprintf('X
Y');
while(x1<xn)
y1=y1+h*f(x1,y1);
x1=x1+h;
fprintf('\n%f
%f\n',x1,y1);
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
enter initial x value=0
enter initial y value=1
final value of x=.5
increment in x=0.1
enter function:-2*x^3+12*x^2-20*x+8.5+0*y
X

0.100000

1.850000

0.200000

2.511800

0.300000

3.008200

0.400000

3.360800

0.500000

3.590000

>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON ORDINARY DIFFERENTIAL EQUATION:-MODIFIED EULER
function eulermod
clc;
clear;
x1=input('\n enter initial x value=');
y1=input('\n enter initial y value=');
xn=input('\n final value of x=');
h=input('\n increment in x=');
s=input('\n enter function:','s');
f=inline(s);
acc=input('\n ENTER REQUIRED ACCURACY');
fprintf('X
Y');
while(x1<=xn)
yp=y1+h*f(x1,y1);
x2=x1+h;
yc=y1+h*(f(x1,y1)+f(x2,yp))/2;
while(abs(yc-yp)>acc)
yp=yc;
yc=y1+h*(f(x1,y1)+f(x2,yp))/2;
end
fprintf('\n%f
%f',x1,y1);
x1=x2;
y1=yc;
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
enter initial x value=0
enter initial y value=1
final value of x=0.5
increment in x=0.1
enter function:X-(Y^2)
ENTER REQUIRED ACCURACY0.000001
X

0.000000

1.000000

0.100000

0.913295

0.200000

0.850428

0.300000

0.806726

0.400000

0.778855

0.500000

0.764315

>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON ORDINARY DIFFERENTIAL EQUATION:-RUNGE KUTTA 2
function runge2()
clc;
clear;
x1=input('\n ENTER INITIAL VALUE OF x=');
y1=input('\n ENTER INITIAL VALUE OF y=');
xn=input('\n ENTER FINAL VALUE OF x=');
h=input('\n ENTER INCREMENT OF x=');
s=input('\n ENTER FUNCTION=','s');
f=inline(s);
while(x1<xn)
k1=h*f(x1,y1);
k2=h*f(x1+h,y1+k1);
fprintf('\n k1=%f k2=%f',k1,k2);
k=(k1+k2)/2;
y2=y1+k;
x1=x1+h;
y1=y2;
fprintf('\n AT x=%f y=%f \n',x1,y1);
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER INITIAL VALUE OF x=0
ENTER INITIAL VALUE OF y=1
ENTER FINAL VALUE OF x=0.5
ENTER INCREMENT OF x=0.1
ENTER FUNCTION=X-Y^2

k1=-0.100000 k2=-0.071000
AT x=0.100000 y=0.914500

k1=-0.073631 k2=-0.050706
AT x=0.200000 y=0.852331

k1=-0.052647 k2=-0.033950
AT x=0.300000 y=0.809033

k1=-0.035453 k2=-0.019843
AT x=0.400000 y=0.781385

k1=-0.021056 k2=-0.007810
AT x=0.500000 y=0.766952
>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON ORDINARY DIFFERENTIAL EQUATION:-RUNGE KUTTA 4
function runge4()
clc;
clear;
x1=input('\n ENTER INITIAL VALUE OF x=');
y1=input('\n ENTER INITIAL VALUE OF y=');
xn=input('\n ENTER FINAL VALUE OF x=');
h=input('\n ENTER INCREMENT OF x=');
s=input('\n ENTER FUNCTION=','s');
f=inline(s);
while(x1<xn)
k1=h*f(x1,y1);
k2=h*f(x1+h/2,y1+k1/2);
k3=h*f(x1+h/2,y1+k2/2);
k4=h*f(x1+h,y1+k3);
fprintf('\n k1=%f k2=%f k3=%f k4=%f',k1,k2,k3,k4);
k=(k1+2*k2+2*k3+k4)/6;
y2=y1+k;
x1=x1+h;
y1=y2;
fprintf('\n AT x=%f y=%f \n',x1,y1);
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER INITIAL VALUE OF x=0
ENTER INITIAL VALUE OF y=1
ENTER FINAL VALUE OF x=1
ENTER INCREMENT OF x=0.5
ENTER FUNCTION=3*X+Y/2

k1=0.250000 k2=0.656250 k3=0.707031 k4=1.176758


AT x=0.500000 y=1.692220

k1=1.173055 k2=1.694687 k3=1.759891 k4=2.363028


AT x=1.000000 y=3.433093>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON SIMULTANEOUS DIFFERENTIAL EQUATION:-RUNGE
KUTTA 4 FOR 2nd ORDER
function RK4sim
clc;
clear;
s=input('\n ENTER F(x)=','s');
f=inline(s);
s=input('\n ENTER G(x)=','s');
g=inline(s);
x0=input('\n ENTER INITIAL VALUE OF x=');
y0=input('\n ENTER INITIAL VALUE OF y=');
z0=input('\n ENTER INITIAL VALUE OF z=dy/dx :');
xn=input('\n ENTER THE VALUE OF x FOR WHICH y IS TO BE DETERMINED=');
h=input('\n ENTER STEP SIZE=');
n=(xn-x0)/h;
for i=1:1:n
k1=h*f(x0,y0,z0);
l1=h*g(x0,y0,z0);
k2=h*f(x0+h/2,y0+k1/2,z0+l1/2);
l2=h*g(x0+h/2,y0+k1/2,z0+l1/2);
k3=h*f(x0+h/2,y0+k2/2,z0+l2/2);
l3=h*g(x0+h/2,y0+k2/2,z0+l2/2);
k4=h*f(x0+h,y0+k3,z0+l3);
l4=h*g(x0+h,y0+k3,z0+l3);
k=(k1+2*k2+2*k3+k4)/6;
l=(l1+2*l2+2*l3+l4)/6;
y0=y0+k;
z0=z0+l;
end
fprintf('\n VALUE OF y for x=%f is%f', xn,y0);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER F(x)=0*X+0*Y+1*Z
ENTER G(x)=-(4*Y+Z)/4+0*X
ENTER INITIAL VALUE OF x=0
ENTER INITIAL VALUE OF y=1
ENTER INITIAL VALUE OF z=dy/dx :0
ENTER THE VALUE OF x FOR WHICH y IS TO BE DETERMINED=2.5
ENTER STEP SIZE=0.5
VALUE OF y for x=2.500000 is-0.520282>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON PREDICTOR CORRECTOR METHOD:-MILNES METHOD
function milnes()
clear;
clc;
s=input('\n ENTER THE FUNCTION f(x,y):','s');
f=inline(s);
fprintf('\n ENTER FIRST 4 POINTS');
for i=1:1:4
x(i)=input('\n ENTER VALUE OF x=');
y(i)=input('\n ENTER VALUE OF y=');
end
xn=input('\n ENTER VALUE OF x for y to be found=');
i=i+1;
h=abs(x(2)-x(1));
x(i)=x(i-1)+h;
while(x(i)<=xn)
i=i-1;
yp=y(i-3)+4*h*(2*f(x(i-2),y(i-2))-f(x(i-1),y(i-1))+2*f(x(i),y(i)))/3;
fprintf('\n\t\typ=%f',yp);
yc=y(i-1)+h*(f(x(i+1),yp)+4*f(x(i),y(i))+f(x(i-1),y(i-1)))/3;
yp=yc;
fprintf('\n At x=%f y=%f',x(i+1),yc);
i=i+2;
x(i)=x(i-1)+h;
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER THE FUNCTION f(x,y):X+Y
ENTER FIRST 4 POINTS
ENTER VALUE OF x=0
ENTER VALUE OF y=1

ENTER VALUE OF x=0.1


ENTER VALUE OF y=1.1103

ENTER VALUE OF x=0.2


ENTER VALUE OF y=1.2428

ENTER VALUE OF x=0.3


ENTER VALUE OF y=1.3997

ENTER VALUE OF x for y to be found=0.4

yp=1.583627
At x=0.400000 y=1.583641>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON PREDICTOR CORRECTOR METHOD:-ADAMS BASHFORTH
function adamb()
clear;
clc;
s=input('\n ENTER THE FUNCTION f(x,y):','s');
f=inline(s);
fprintf('\n ENTER FIRST 4 POINTS');
for i=1:1:4
x(i)=input('\n ENTER VALUE OF x=');
y(i)=input('\n ENTER VALUE OF y=');
end
xn=input('\n ENTER VALUE OF x for y to be found=');
i=i+1;
h=abs(x(2)-x(1));
x(i)=x(i-1)+h;
while(x(i)<=xn)
i=i-1;
yp=y(i)+h*(55*f(x(i),y(i))-59*f(x(i-1),y(i-1))+37*f(x(i-2),y(i-2))-9*f(x(i-3),y(i-3)))/24;
fprintf('\n\t\typ=%f',yp);
yc=y(i)+h*(9*f(x(i+1),yp)+19*f(x(i),y(i))-5*f(x(i-1),y(i-1))+f(x(i-2),y(i-2)))/24;
y(i+1)=yc;
fprintf('\n At x=%f y=%f',x(i+1),y(i+1));
i=i+2;
x(i)=x(i-1)+h;
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER THE FUNCTION f(x,y):X+Y
ENTER FIRST 4 POINTS

ENTER VALUE OF x=0


ENTER VALUE OF y=1

ENTER VALUE OF x=0.1


ENTER VALUE OF y=1.1103

ENTER VALUE OF x=0.2


ENTER VALUE OF y=1.2428

ENTER VALUE OF x=0.3


ENTER VALUE OF y=1.3997

ENTER VALUE OF x for y to be found=0.4

yp=1.583614
At x=0.400000 y=1.583630>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON DOUBLE INTEGRATION:-TRAPEZOIDAL METHOD
function doubletrap
clc;
clear;
s=input('\n ENTER FUNCTION:','s');
f=inline(s);
n=input('\n ENTER MAJOR STRIPS in x:');
m=input('\n ENTER MAJOR STRIPS in y:');
x0=input('\n ENTER INITIAL LIMITS in x:');
xn=input('\n ENTER FINAL LIMITS in x:');
y0=input('\n ENTER INITIAL LIMITS in y:');
yn=input('\n ENTER FINAL LIMITS in y:');
h=(xn-x0)/n;
k=(yn-y0)/m;
x=x0:h:xn;
y=y0:k:yn;
for i=1:1:n+1
for j=1:1:m+1
a(i,j)=f(x(i),y(j));
end
end
area=0;
for j=1:1:m+1
s(j)=0;
for i=1:1:n
s(j)=s(j)+a(i,j)+a(i+1,j);
end
end
for j=1:1:m
area=area+s(j)+s(j+1);
end
area=h*k/4*area;
fprintf('\n area=%f',area);

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER FUNCTION:exp(x+y)
ENTER MAJOR STRIPS in x:2
ENTER MAJOR STRIPS in y:2
ENTER INITIAL LIMITS in x:0
ENTER FINAL LIMITS in x:1
ENTER INITIAL LIMITS in y:0
ENTER FINAL LIMITS in y:1
area=3.000000>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON DOUBLE INTEGRATION:-SIMPSONS 1/3rd RULE
function doublesimp
clc;
clear;
s=input('\n ENTER FUNCTION:','s');
f=inline(s);
n=input('\n ENTER MAJOR STRIPS in x:');
m=input('\n ENTER MAJOR STRIPS in y:');
x0=input('\n ENTER INITIAL LIMITS in x:');
xn=input('\n ENTER FINAL LIMITS in x:');
y0=input('\n ENTER INITIAL LIMITS in y:');
yn=input('\n ENTER FINAL LIMITS in y:');
h=(xn-x0)/(2*n);
k=(yn-y0)/(2*m);
x=x0:h:xn;
y=y0:k:yn;
for i=1:1:2*n+1
for j=1:1:2*m+1
a(i,j)=f(x(i),y(j));
end
end
area=0;
for j=1:1:2*m+1
s(j)=0;
for i=1:2:2*n
s(j)=s(j)+a(i,j)+4*a(i+1,j)+a(i+2,j);
end
end
for j=1:2:2*m
area=area+s(j)+4*s(j+1)+s(j+2);
end
area=h*k/9*area;
fprintf('\n area=%f',area);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER FUNCTION:exp(x+y)
ENTER MAJOR STRIPS in x:2
ENTER MAJOR STRIPS in y:2
ENTER INITIAL LIMITS in x:0
ENTER FINAL LIMITS in x:1
ENTER INITIAL LIMITS in y:0
ENTER FINAL LIMITS in y:1
area=2.923611>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON NUMERICAL INTEGRATION IN TABULAR FORMAT:SIMPSONS 1/3rd METHOD
function tabsimp1
clc;
clear;
n=input('\n number of data=');
for i=1:1:n
x(i)=input('\n x(i)=');
y(i)=input('\n y(i)=');
end
temp=0;
h=x(2)-x(1);
for i=1:2:n-2
temp=temp+y(i)+y(i+2)+4*y(i+1);
end
int=temp*h/3;
fprintf('\n INTEGRATION=%f',int);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
number of data=7
x(i)=0
y(i)=0
x(i)=2
y(i)=22
x(i)=4
y(i)=30
x(i)=6
y(i)=27
x(i)=8
y(i)=18
x(i)=10
y(i)=7
x(i)=12
y(i)=0

INTEGRATION=213.333333>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON NUMERICAL INTEGRATION IN TABULAR FORMAT:TRAPEZOIDAL METHOD
function tabtrap
clc;
clear;
n=input('\n NUMBER OF DATA=');
for(i=1:1:n)
fprintf('\n x(%d)=',i);
x(i)=input(' ');
fprintf('\n y(%d)=',i);
y(i)=input(' ');
end
temp=0;
h=x(2)-x(1);
for(i=1:1:n-1)
temp=temp+y(i)+y(i+1);
end
int=temp*h/2;
fprintf('\n INTEGRATION=%f',int);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
NUMBER OF DATA=10
x(1)= 2
y(1)= 166.7
x(2)= 4
y(2)= 300.06
x(3)= 6
y(3)= 416.75
x(4)= 8
y(4)= 483.43
x(5)= 10
y(5)= 533.44
x(6)= 12
y(6)= 333.4
x(7)= 14
y(7)= 183.37
x(8)= 16
y(8)= 83.35
x(9)= 18
y(9)= 33.34
x(10)= 20
y(10)= 0
INTEGRATION=4900.980000>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON NUMERICAL INTEGRATION IN TABULAR FORMAT:SIMPSONS 3/8th METHOD
function tabsimp3
clc;
clear;
n=input('\n number of data=');
for i=1:1:n
x(i)=input('\n x(i)=');
y(i)=input('\n y(i)=');
end
temp=0;
h=x(2)-x(1);
for i=1:3:n-3
temp=temp+y(i)+3*y(i+1)+3*y(i+2)+y(i+3);
end
int=temp*3*h/8;
fprintf('\n integration =%f',int);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
number of data=7
x(i)=1
y(i)=81
x(i)=2
y(i)=75
x(i)=3
y(i)=80
x(i)=4
y(i)=83
x(i)=5
y(i)=78
x(i)=6
y(i)=70
x(i)=7
y(i)=60

integration =456.000000>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON SIMULTANEOUS EQUATION:-TDMA
function x=tdma
clc;
clear;
[a,c]=readdata;
a
c
[a,c]=pivote(a,c);
a
c
[p,q,r]=cha(a,c);
p
q
r
[a,c]=change(a,c);
a;
c;
x=back(a,c);
x;
y=x'
end
%
READ DATA
function[a,c]=readdata
n=input('\nEnter number of equations');
for i=1:1:n
for j=1:1:n
fprintf('a[%d][%d]=',i,j);
a(i,j)=input('');
end
fprintf('c[%d]=',i);
c(i,1)=input('');
end
end
%
PIVOTING
function [a,c]=pivote(a,c)
n=length(c);
for i=1:1:n-1
for k=1:1:n
if(abs(a(i,i))<abs(a(k,i)))
for j=1:1:n
temp=a(i,j);
a(i,j)=a(k,j);
a(k,j)=temp;
end
temp=c(i);
c(i)=c(k);
c(k)=temp;
end
end
end
end
%
cha
function [p,q,r]=cha(a,c)
n=length(c);
for i=1:1:n

GANESH JADHAV [Roll no. 42]


q(i,1)=a(i,i);
for k=i+1:1:n
if(k==i+1)
p(k,1)=a(k,i);
end
if(i+1==k)
r(i,1)=a(i,k);
end
end
end
p(1,1)=0;
r(n,1)=0;
end
%
MAIN
function [a,c]=change(a,c)
n=length(c);
for i=1:1:n-1
for k=i+1:1:n
m=a(k,i)/a(i,i);
a(k,k)=a(k,k)-m*a(i,k);
c(k)=c(k)-m*c(i);
end
end
end
%
BACK SUBSTITUTION
function [x]=back(a,c)
n=length(c);
for i=n:-1:1
temp=c(i);
for j=i+1:1:n
temp=temp-a(i,j)*x(j);
end
x(i)=temp/a(i,i);
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
Enter number of equations3
a[1][1]=1
a[1][2]=2
a[1][3]=0
c[1]=3
a[2][1]=2
a[2][2]=3
a[2][3]=1
c[2]=4
a[3][1]=0
a[3][2]=2
a[3][3]=-1
c[3]=1
a=
1

2 -1

c=
3
4
1
a=
1

2 -1

GANESH JADHAV [Roll no. 42]


c=
3
4
1
p=
0
2
2
q=
1
3
-1
r=
2
1
0
y=
5
-1
-3
ans =
5 -1 -3>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON FINITE DIFFERENCE METHOD:-HYPERBOLIC EQUATION
function hyperbolic
clc;
clear;
a=input('\n INPUT VALUE OF a=');
bl=input('\n left boundary condition=');
br=input('\n right boundary condition=');
s=input('\n Enter initial condition=','s');
f=inline(s);
xn=input('\n Enter length=');
tn=input('\n Enter length of time interval=');
h=input('\n Enter h=');
k=h/a;
n=xn/h+1;
m=tn/k+1;
for (i=2:1:m)
u(i,1)=bl;
u(i,n)=br;
end
for (j=1:1:n)
u(1,j)=f((j-1)*h);
end
for (i=1:1:m-1)
for (j=2:1:n-1)
if (i==1)
u(i+1,j)=(u(i,j+1)+u(i,j-1))/2;
else
u(i+1,j)=u(i,j+1)+u(i,j-1)-u(i-1,j);
end
end
end
u
imagesc(u);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
INPUT VALUE OF a=2
left boundary condition=0
right boundary condition=0
Enter initial condition=X*(4-X)
Enter length=4
Enter length of time interval=5
Enter h=1
u=

>>

0 -2 -3 -2

0 -3 -4 -3

0 -2 -3 -2

GANESH JADHAV [Roll no. 42]

10

11
0.5

1.5

2.5

3.5

4.5

5.5

GANESH JADHAV [Roll no. 42]


PROGRAM ON CURVE FITTING:-QUADRATIC POLYNOMIAL
function quadraticcurvefitting
clc;
clear;
[a,c,x1]=readdata;
a
c
[a,c]=pivote(a,c);
[a,c]=upper(a,c);
[x]=back(a,c,x1);
fprintf('\nconstant a = %f',x(1));
fprintf('\nconstant b = %f',x(2));
fprintf('\nconstant c = %f',x(3));
y1=(x(1)*x1^2)+(x(2)*x1)+x(3);
fprintf('\n at x = %f, y = %f',x1,y1);
end
function [a,c,x1]=readdata
n=input('\nEnter no of data points : ');
for i=1:1:n
x(i)=input('\nEnter value of x : ');
y(i)=input('\nEnter value of y : ');
end
x1=input('\nEnter value of x for which y is to be determined : ');
sum_x=0;
sum_y=0;
sum_xx=0;
sum_xy=0;
sum_x3=0;
sum_x2y=0;
sum_x4=0;
for i=1:1:n
sum_x=sum_x+x(i);
sum_y=sum_y+y(i);
sum_xx=sum_xx+x(i)^2;
sum_xy=sum_xy+x(i)*y(i);
sum_x3=sum_x3+x(i)^3;
sum_x2y=sum_x2y+x(i)^2*y(i);
sum_x4=sum_x4+x(i)^4;
end
a(1,1)=sum_x4;
a(1,2)=sum_x3;
a(1,3)=sum_xx;
a(2,1)=sum_x3;
a(2,2)=sum_xx;
a(2,3)=sum_x;
a(3,1)=sum_xx;
a(3,2)=sum_x;
a(3,3)=n;
c(1)=sum_x2y;
c(2)=sum_xy;
c(3)=sum_y;
end
function[a,c]=pivote(a,c)

GANESH JADHAV [Roll no. 42]


n=length(c);
for i=1:1:n-1
for k=i+1:1:n
if(abs(a(i,i))<abs(a(k,i)))
for j=1:1:n
temp=a(i,j);
a(i,j)=a(k,j);
a(k,j)=temp;
end
temp=c(i);
c(i)=c(k);
c(k)=temp;
end
end
end
end
function[a,c]=upper(a,c)
n=length(c);
for i=1:1:n-1
for k=i+1:1:n;
temp=a(k,i)/a(i,i);
for j=1:1:n;
a(k,j)=a(k,j)-temp*a(i,j);
end
c(k)=c(k)-temp*c(i);
end
end
end
function[x]=back(a,c,x1)
n=length(c);
for i=n:-1:1
temp=c(i);
for j=i+1:1:n;
temp=temp-a(i,j)*x(j);
end
x(i)=temp/a(i,i);
end
x=x';
end

GANESH JADHAV [Roll no. 42]


OUTPUT
Enter value of y : 118
Enter value of x : 25
Enter value of y : 147
Enter value of x : 40
Enter value of y : 180
Enter value of x : 60
Enter value of y : 230
Enter value of x for which y is to be determined : 5
a=
15986161
300721
6181

300721
6181
151

6181
151
5

c=
1247483

27503

769

constant a = -0.013406
constant b = 3.583565
constant c = 62.149088
at x = 5.000000, y = 79.731758>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON FINITE DIFFERENCE METHOD:-PARABOLIC EQUATION
function parabolic
clc;
clear;
a=input('\n INPUT VALUE OF a=');
bl=input('\n left boundary condition=');
br=input('\n right boundary condition=');
s=input('\n Enter initial condition=','s');
f=inline(s);
xn=input('\n Enter length=');
tn=input('\n Enter length of time interval=');
h=input('\n Enter h=');
q=input('\n Enter value of LAMBDA=');
k=q*a*(h^2);
n=xn/h+1;
m=tn/k+1;
for (i=2:1:m)
u(i,1)=bl;
u(i,n-1)=br;
end
for (j=1:1:n)
u(1,j)=f((j-1)*h);
end
for (i=1:1:m-1)
for (j=2:1:n-1)
u(i+1,j)=q*u(i,j+1)-(2*q-1)*u(i,j)+q*u(i,j-1);
end
end
u
imagesc(u)
end

GANESH JADHAV [Roll no. 42]


OUTPUT
INPUT VALUE OF a=2
left boundary condition=0
right boundary condition=0
Enter initial condition=x*(4-x)
Enter length=4
Enter length of time interval=5
Enter h=1
Enter value of LAMBDA=0.5
u=

>>

0 3.0000 4.0000 3.0000

0 2.0000 3.0000 2.0000

0 1.5000 2.0000 1.5000

0 1.0000 1.5000 1.0000

0 0.7500 1.0000 0.7500

0 0.5000 0.7500 0.5000

GANESH JADHAV [Roll no. 42]

6
0.5

1.5

2.5

3.5

4.5

5.5

GANESH JADHAV [Roll no. 42]


PROGRAM ON FINITE DIFFERENCE METHOD:-POISSONS EQUATION
function poisson
clc;
clear;
tb=input('\n BOTTOM TEMPERATURE=');
tt=input('\n TOP TEMPERATURE=');
tl=input('\n LEFT TEMPERATURE=');
tr=input('\n RIGHT TEMPERATURE=');
s=input('\n ENTER F(X)=','s');
f=inline(s);
l=input('\n length=');
w=input('\n width=');
h=input('\n mesh size=');
x=l/h+1;
y=w/h+1;
for j=2:1:x-1
t(1,j)=tb;
t(y,j)=tt;
end
for i=2:1:y-1
t(i,1)=tl;
t(i,x)=tr;
end
for k=1:1:100
for i=2:1:y-1
for j=2:1:x-1
t(i,j)=(t(i+1,j)+t(i-1,j)+t(i,j+1)+t(i,j-1)-h^2*f((j-1)*h,(i-1)*h))/4;
end
end
end
jx=1:h:x;
iy=1:h:y;
contour(iy,jx,t);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
BOTTOM TEMPERATURE=0
TOP TEMPERATURE=0
LEFT TEMPERATURE=0
RIGHT TEMPERATURE=0
ENTER F(X)=-10*(x^2+y^2+10)
length=3
width=3
mesh size=1
t=
0

0 67.5000 75.0000

0 75.0000 82.5000

0
>>

GANESH JADHAV [Roll no. 42]


4

3.5

2.5

1.5

1.5

2.5

3.5

GANESH JADHAV [Roll no. 42]


PROGRAM ON INTERPOLATION:-SPLINE INTERPOLATION
function splineinter
clc;
clear;
n=input('\n ENTER NUMBER OF DATA:');
for i=1:1:n
x(i)=input('\n ENTER x:');
y(i)=input('\n ENTER y:');
end
i=2;
while(i<n)
f(i-1)=6*((y(i+1)-y(i))/(x(i+1)-x(i))-(y(i)-y(i-1))/(x(i)-x(i-1)));
i=i+1;
end
d=f';
i=1;
while(i<n)
h(i)=x(i+1)-x(i);
i=i+1;
end
i=1;
while(i<n-1)
b(i)=2*(h(i)+h(i+1));
if(i<n-2)
c(i)=h(i+1);
end
if(i>1)
a(i)=h(i);
end
i=i+1;
end
fprintf('\n a matrix of TDMA');
a
fprintf('\n b matrix of TDMA');
b
fprintf('\n c matrix of TDMA');
c
fprintf('\n constant matrix of TDMA');
f
for i=2:1:n-2
m=a(i)/b(i-1);
b(i)=b(i)-m*c(i-1);
d(i)=d(i)-m*d(i-1);
end
s1(n-2)=d(n-2)/b(n-2);
for i=n-3:-1:1
s1(i)=(d(i)-c(i)*s1(i+1))/b(i);
end
s(1)=0;
for i=2:1:n-1
s(i)=s1(i-1);
end
s(n)=0;
i=1;
fprintf('\n Second derivatives are');

GANESH JADHAV [Roll no. 42]


s
while(i<=n-1)
aa(i)=(s(i+1)-s(i))/(6*h(i));
bb(i)=s(i)/2;
cc(i)=(y(i+1)-y(i))/h(i)-(2*h(i)*s(i)+h(i)*s(i+1))/6;
dd(i)=y(i);
i=i+1;
end
fprintf('\n First coefficient of all polynmial:');
aa
fprintf('\n Second coefficient of all polynmial:');
bb
fprintf('\n Third coefficient of all polynmial:');
cc
fprintf('\n Forth coefficient of all polynmial:');
dd
fprintf('\n value of y between first two data:');
yy=aa(1)*((3.5-x(1))^3)+bb(1)*((3.5-x(1))^2)+cc(1)*(3.5-x(1))+dd(1)
fprintf('\n value of y between second two data:');
yy=aa(2)*((5-x(2))^3)+bb(2)*((5-x(2))^2)+cc(2)*(5-x(2))+dd(2)
fprintf('\n value of y between third two data:');
yy=aa(3)*((7.5-x(3))^3)+bb(3)*((7.5-x(3))^2)+cc(3)*(7.5-x(3))+dd(3)
end

GANESH JADHAV [Roll no. 42]


OUTPUT
ENTER NUMBER OF DATA:4
ENTER x:3
ENTER y:2.8
ENTER x:4.5
ENTER y:1.2
ENTER x:7
ENTER y:2.5
ENTER x:9
ENTER y:0.5
a matrix of TDMA
a=
0 2.5000
b matrix of TDMA
b=
8

c matrix of TDMA
c=
2.5000
constant matrix of TDMA
f=
9.5200 -9.1200
Second derivatives are
s=
0 1.6499 -1.4716

GANESH JADHAV [Roll no. 42]

First coefficient of all polynmial:


aa =
0.1833 -0.2081 0.1226
Second coefficient of all polynmial:
bb =
0 0.8249 -0.7358
Third coefficient of all polynmial:
cc =
-1.4791 -0.2417 -0.0189
Forth coefficient of all polynmial:
dd =
2.8000 1.2000 2.5000
value of y between first two data:
yy =
2.0833
value of y between second two data:
yy =
1.2594
value of y between third two data:
yy =
2.3219
>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON CURVE FITTING:-STRAIGHT LINE
function straightline
clc;
clear;
n=input('no. of data points=');
for i=1:1:n
x(i)=input('\nvalue of x=');
y(i)=input('value of y=');
end
x1=input('ENTER VALUE of x for which y is to be determined:');
sum_x=0;
sum_y=0;
sum_xx=0;
sum_xy=0;
for i=1:1:n
sum_x=sum_x+x(i);
sum_y=sum_y+y(i);
sum_xx=sum_xx+(x(i)^2);
sum_xy=sum_xy+(x(i)*y(i));
end
x(1)=(((sum_x)*(sum_y))-((sum_xy)*n))/((-n*(sum_xx))+((sum_x)^2));
x(2)=((sum_y)-(x(1)*(sum_x)))/n;
fprintf('\n constant a=%f',x(1));
fprintf('\n constant b=%f',x(2));
y1=x(1)*x1+x(2);
fprintf('\n y at x=%f is %f',x1,y1);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
no. of data points=5
value of x=2.4
value of y=4.34381

value of x=3.4
value of y=4.60517

value of x=7
value of y=5.22036

value of x=11.1
value of y=5.47646

value of x=19.6
value of y=5.65249
ENTER VALUE of x for which y is to be determined:5
constant a=0.072258
constant b=4.431014
y at x=5.000000 is 4.792304>>

GANESH JADHAV [Roll no. 42]


6
5.8
5.6
5.4
5.2
5
4.8
4.6
4.4
4.2

10

12

14

16

18

20

GANESH JADHAV [Roll no. 42]


PROGRAM ON SIMULTANEOUS EQUATIONS:-GAUSS SEIDAL METHOD
function x=GaussSiedel
clc;
clear;
[a,c]=readdata;
a
c
[a,c]=pivote(a,c);
a
c
[x]=iterate(a,c);
x
end
%
READ DATA
function [a,c]=readdata
n=input('\n Enter number of Equations=');
for i=1:1:n
for j=1:1:n
fprintf('a[%d][%d]= ',i,j);
a(i,j)=input(' ');
end
j=1;
fprintf('c[%d][%d]= ',i,j);
c(i,j)=input(' ');
end
end
%
PIVOTING
function [a,c]=pivote(a,c)
n=length(c);
for i=1:1:n-1
for k=i+1:1:n
if(abs(a(i,i))<abs(a(k,i)))
for j=1:1:n
temp=a(i,j);
a(i,j)=a(k,j);
a(k,j)=temp;
end
temp=c(i);
c(i)=c(k);
c(k)=temp;
end
end
end
for i=1:1:n
for k=1:1:n
if(abs(a(i,i))<abs(a(i,k)))
temp=a(i,k);
a(i,k)=a(i,i);
a(i,i)=temp;
end
end
end
end
%
ITERATE
function [x]=iterate(a,c)

GANESH JADHAV [Roll no. 42]


n=length(c);
for i=1:1:n
x(i)=0;
end
err=1;
acc=input('\n ENTER ACCURACY:');
while(abs(err)>acc)
for i=1:1:n
temp=c(i);
for j=1:1:n
if(i~=j)
temp=temp-a(i,j)*x(j);
end
end
err=x(i)-temp/a(i,i);
x(i)=temp/a(i,i);
end
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
Enter number of Equations=3
a[1][1]= 130
a[1][2]= -30
a[1][3]= 0
c[1][1]= 500
a[2][1]= 90
a[2][2]= -90
a[2][3]= 0
c[2][1]= 0
a[3][1]= 40
a[3][2]= 60
a[3][3]= -120
c[3][1]= -200
a=
130 -30

90 -90

40 60 -120
c=
500
0
-200
a=
130 -30

90 -90

40 60 -120

GANESH JADHAV [Roll no. 42]


c=
500
0
-200
ENTER ACCURACY:0.000001
x=
5.0000 5.0000 5.8333
>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON SIMULTANEOUS EQUATION:-GAUSS SEIDAL WITH
RELAXATION FACTOR
function x=GaussSiedelREL
clc;
clear;
[a,c]=readdata;
a
c
[a,c]=pivote(a,c);
a
c
[x]=iterate(a,c);
x
end
%
READ DATA
function [a,c]=readdata
n=input('\n Enter number of Equations=');
for i=1:1:n
for j=1:1:n
fprintf('a[%d][%d]= ',i,j);
a(i,j)=input(' ');
end
j=1;
fprintf('c[%d][%d]= ',i,j);
c(i,j)=input(' ');
end
end
%
PIVOTING
function [a,c]=pivote(a,c)
n=length(c);
for i=1:1:n-1
for k=1:1:n
if(abs(a(i,i))<abs(a(k,i)))
for j=1:1:n
temp=a(i,j);
a(i,j)=a(k,j);
a(k,j)=temp;
end
temp=c(i);
c(i)=c(k);
c(k)=temp;
end
end
end
end
%
ITERATE
function [x]=iterate(a,c)
n=length(c);
for i=1:1:n
x(i)=0;
end
err=1;
acc=input('\n ENTER ACCURACY:');
b=input('\n ENTER RELAXATATION FACTOR=');

GANESH JADHAV [Roll no. 42]


while(abs(err)>acc)
for i=1:1:n
temp=c(i);
for j=1:1:n
if(i~=j)
temp=temp-a(i,j)*x(j);
end
end
err=b*(x(i)-temp/a(i,i));
x(i)=b*temp/a(i,i)+(1-b)*x(i);
end
end
end

GANESH JADHAV [Roll no. 42]


OUTPUT
Enter number of Equations=3
a[1][1]= 130
a[1][2]= -30
a[1][3]= 0
c[1][1]= 500
a[2][1]= 90
a[2][2]= -90
a[2][3]= 0
c[2][1]= 0
a[3][1]= 40
a[3][2]= 60
a[3][3]= -120
c[3][1]= -200
a=
130 -30

90 -90

40 60 -120
c=
500
0
-200
a=
130 -30

90 -90

40 60 -120

GANESH JADHAV [Roll no. 42]


c=
500
0
-200
ENTER ACCURACY:0.000001
ENTER RELAXATATION FACTOR=0.9
x=
5.0000 5.0000 5.8333
>>

GANESH JADHAV [Roll no. 42]


PROGRAM ON FINITE DIFFERENCE METHOD:-LAPLACE [ONE INSULATED
BOUNDARY]
function x = laplace1insulatedboundary
clc;
clear;
tb = input('\nEnter bottom temperature:');
tl = input('\nEnter left temperature:');
tt = input('\nEnter top temperature:');
l = input('\nEnter length:');
w = input('\nEnter width:');
h = input('\nEnter mesh size:');
nx = l/h+1;
ny = w/h+1;
for i=2:1:ny-1
t(i,1) = tl;
end
for j=2:1:nx
t(1,j) = tt;
t(ny,j) = tb;
end
n = input('\nEnter number of iterations:');
for k=1:1:n
for i=2:1:ny-1
for j=2:1:nx
if(j<nx)
t(i,j) = (t(i+1,j)+ t(i-1,j)+t(i,j+1)+t(i,j-1))/4;
else
t(i,j) = (t(i+1,j)+t(i-1,j)+t(i,j-1)+t(i,j-1))/4;
end
end
end
end
t
x=1:h:nx;
y=1:h:ny;
contour (x,y,t,50);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
Enter bottom temperature:100
Enter left temperature:30
Enter top temperature:100
Enter length:3
Enter width:3
Enter mesh size:1
Enter number of iterations:100
t=
0 100.0000 100.0000 100.0000
30.0000 72.7778 88.3333 92.2222
30.0000 72.7778 88.3333 92.2222
0 100.0000 100.0000 100.0000
>>

GANESH JADHAV [Roll no. 42]


4

3.5

2.5

1.5

1.5

2.5

3.5

GANESH JADHAV [Roll no. 42]


PROGRAM ON FINITE DIFFERENCE METHOD:-LAPLACE [TWO INSULATED
BOUNDARY]
function x = laplace2insulatedboundaries
clc;
clear;
tl = input('\nEnter left temperature:');
tr = input('\nEnter right temperature:');
l = input('\nEnter length:');
w = input('\nEnter width:');
h = input('\nEnter mesh size:');
nx = l/h+1;
ny = w/h+1;
for i=1:1:ny
t(i,1) = tl;
t(i,nx) = tr;
end
n = input('\nEnter number of iterations:');
for k=1:1:n
for i=1:1:ny
for j=2:1:nx-1
if(i>1)&&(i<ny)
t(i,j) = (t(i+1,j)+ t(i-1,j)+t(i,j+1)+t(i,j-1))/4;
elseif(i==1)
t(i,j) = (t(i+1,j)+t(i+1,j)+t(i,j+1)+t(i,j-1))/4;
else
t(i,j) = (t(i-1,j)+ t(i-1,j)+t(i,j+1)+t(i,j-1))/4;
end
end
end
end
t
x=1:h:nx;
y=1:h:ny;
contour (x,y,t,50);
end

GANESH JADHAV [Roll no. 42]


OUTPUT
Enter left temperature:100
Enter right temperature:0
Enter length:3
Enter width:3
Enter mesh size:1
Enter number of iterations:100
t=
100.0000 66.6667 33.3333

100.0000 66.6667 33.3333

100.0000 66.6667 33.3333

100.0000 66.6667 33.3333

>>

3.5

2.5

1.5

1.5

2.5

3.5

You might also like