You are on page 1of 93

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

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>>

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

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>>

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

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>>

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

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>>

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

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>>

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

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>>

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

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

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

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

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

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>>

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

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>>

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

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>>

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

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

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

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

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

%
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

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>>

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);
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

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

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>>

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

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

>>

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

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

>>

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

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
>>

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

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>>

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

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>>

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

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>>

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

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>>

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);

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>>

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

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>>

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

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>>

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

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>>

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

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>>

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

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

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

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

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

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

10

11
0.5

1.5

2.5

3.5

4.5

5.5

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)

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

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>>

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

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

6
0.5

1.5

2.5

3.5

4.5

5.5

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

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
>>

3.5

2.5

1.5

1.5

2.5

3.5

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');

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

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

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
>>

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

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>>

6
5.8
5.6
5.4
5.2
5
4.8
4.6
4.4
4.2

10

12

14

16

18

20

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)

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

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

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

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=');
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

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

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

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

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
>>

3.5

2.5

1.5

1.5

2.5

3.5

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

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