0% found this document useful (1 vote)
32 views

PC-CS-391 Lab

Numerical Methods Lab

Uploaded by

ca.ist.eee
Copyright
© © All Rights Reserved
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 (1 vote)
32 views

PC-CS-391 Lab

Numerical Methods Lab

Uploaded by

ca.ist.eee
Copyright
© © All Rights Reserved
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/ 17

SL.NO. LISTOFLABPRACTICAL Expectedno.

oflabhours
1 Numericalsolutionof centraldifferenceinterpolation by using
3
Lagrange interpolation method
2 NumericalsolutionofintegralsusingTrapezoidal & Simpson’s 3
method
3 NumericalSolutionofinitialvalueproblemusing Gauss Seidel 3
method
4 Solutionofsimultaneousnon-linearequationsusing Newton 3
Raphson Method(Two variables)
5 NumericalSolutionofinitialvalueproblemusingEuler’s & 3
RungaKutta method
Objective : - Solution of Gauss – Seidel Method.
FLOWCHART:

Start

Initializexto 0
Experiment No - 3

Objective : - Solution of Gauss – Seidel Method.


FLOWCHART:

err=fabs(x[i]-t)

yes Maxerr=err
Is err>maxerr?
no

X[i]=t

EndLoop(i)

PrintResultsof
Iteration

yes
Is axerr<aerr
PrintSolution
no
EndLoop(itr)
Stop
PrintSolutiondoes
notconverge.

Stop

SourceCode:

Algorithm3.5(Gauss-Seidel-Iteration).

TosolvethelinearsystemAX=BbystartingwithP_0=0 and generating a


sequence{ P_K}that converges to the solutionP(i.e., AP = B).A sufficient
condition for the method to be applicable is thatAis diagonally dominant.

*/

#include<stdio.h>#include<stdlib.h>#incl
ude<math.h>

/* */

/*Mainprogramforalgorithm3.5*/

/*remember:inCthefieldsbeginwithelement0*/ #define Limit20

voidmain(void)
{
doubleTol=10E-6; double Sep= /* Tolerance */
1.0; /* Initialize */
intK =1; /* Counterfor iterations */
intMax=99; /* Maximumnumberofiterat. */
intCond=1; /* Conditionofmatrix */
intR,C,J; /* Loopcounters */
doubleA[Limit][Limit]; /* AinAX=B,INPUT */
doubleB[Limit]; /* BinAX=B,INPUT */
intN; /* DimensionofA,INPUT */
/* =Numberofequations */
doubleRow; /* Variableindominancecheck */
double P[Limit];
doublePold[Limit];
doubleSum;

printf("Trytheexamplesonpage188ofthebook!\n"); printf(" \n");


do/*forceproperinput*/
{
printf("Pleaseenternumberofequations[Notmorethan
%d]\n",Limit);
scanf("%d",&N);
}while(N> Limit);

printf("Yousaythereare%dequations.\n",N);

printf(" \n");
printf("FromAX=BentercomponentsofvectorBonebyone:\n"); for (R = 1; R <= N; R+
+)
{
printf("Enter%dst/nd/rdcomponentofvectorB\n",R); scanf("%lf", &B[R-1]);
}
printf(" \n");
printf("FromAX=BenterelementsofArowbyrow:\n");printf(" \n");

for(R=1;R<=N;R++)
{
for(J=1;J<=N;J++)
{
printf("Forrow%denterelement%dplease:\n",R,J); scanf("%lf", &A[R-1]
[J-1]);
}
}

/*Checkfordiagonaldominance.*/ for (R = 1; R
<= N; R++)
{
Row=0.0;
for(C=1;C<=N;C++)Row+=fabs(A[R-1][C-1]);
if(Row>=2.0*fabs(A[R-1][R-1]))Cond=0;
}

if(Cond==0)
{
printf("Thematrixisnotdiagonallydominant.\n"); printf("Cannot
apply this algorithm ---> exit\n"); exit(1);
}

/*Initialize:allowusertodothisinordertocreatea sequence of P_k values*/


for(J=0;J<N;J++)
{
P[J] =0;
Pold[J]=0;
}

/*PerformGauss-Seideliteration*/ while( (K <


Max) && (Sep > Tol) )
{
for(R=1;R<=N;R++)
{
Sum=B[R-1];
for(C=1;C<=N;C++)if(C!=R)Sum-=A[R-1][C-1]*P[C-
1];
P[R-1]=Sum/A[R-1][R-1];
}
/*Convergencecriterion*/ Sep = 0;
for(J=1;J<=N;J++)Sep+=fabs(P[J-1]-Pold[J-1]);
/*Updatevaluesandincrementthecounter*/ for (J = 1; J <= N;
J++) Pold[J-1] = P[J-1]; K++;
}

/*output*/
if(Sep<Tol)printf("Thesolutiontothelinearsystemis:\n"); else printf("Gauss-Seidel
iteration did not
converge:\n");

for(J=1;J<=N;J++)printf("P[%d]=%lf\n",J,P[J-1]);

}
Experiment No - 1

Aim:NumericalsolutionofcentraldifferenceinterpolationbyusingLagrangeinterpolation method
Brief Theory:Interpolation isa method of finding new data points within the range ofa
discretesetofknowndata points.Inotherwordsinterpolationisthetechniquetoestimatethe value of
a mathematicalfunction, for anyintermediate value of the independent variable.

NumericalProcedure:
1. .Readn,X

2. Readxi,yi,wherei=1,2,3,…..,n
3. sum=0
4. fori=1(1) n,dotill(11)
5. prod= 1
6. forj=1(1) n,dotill(9)
7. ifj≠ i,
8. prod=prod*(X-x[j])/(x[i]-x[j])
9. Else,Nextj
10. sum=sum+(prod*y[i])
11. Nexti
12. PrintX,sum
13. stop
Examples:

i. Giventhefollowingdatatable,constructtheLagrangeinterpolation

polynomial f(x), to fit the data and find f(1.25)

i 0 1 2 3

0 1 2 3

1 2.25 3.75 4.25

ii. Giventhefollowingdatatable,constructtheLagrangeinterpolationpolynomialf(x),tofitthedata
and find f(1998)

i 0 1 2 3 4 5

1980 1985 1990 1995 2000 2005

440 510 525 571 500 600

iii. Findthevalueofywhenx=10,ifthefollowingvaluesofxandyaregiven:

5 6 9 11

12 13 14 16
Experiment No – 4(a)
Aim:Solutionofsimultaneousnon-linearequationsusingNewtonRaphsonMethod(Two variables).
BriefTheory:TheNewton-Raphsonsecondordermethodfortwo variable’sfunctioncanbe obtain
as follows
Thesolutionisobtainedwithanefficientlinearsolvingmethodlikethepartialpivotinggauss algorithm.
ThesecondorderTaylor'sdevelopmentgivestheexactapproximationofthefunction.
NumericalProcedure:
1. Considerasystemoftwoequationsintwovariables:f(x,y)=0g(x,y)=0.
2. Supposewehaveanapproximationforasolution(x0,y0)andwewouldliketocompute
∆xand∆ysox1= x0+∆xandy1= y0+ ∆y satisfythesystem:f(x1,y1)= f(x0+∆x, y0 + ∆y) =
0
3. g(x1,y1)=g(x0+∆x,y0+∆y)=0.compute∆xand∆y.
4. Taylorseriesintwovariablesf(x0+ ∆x,y0+∆y)= f(x0,y0)+∂f∂x(x0,y0)∆x+ ∂f∂y (x0,
y0)∆y + · · ·
5. g(x0+∆x,y0+ ∆y)= g(x0,y0)+∂g∂x(x0,y0)∆x+∂g∂y(x0,y0)∆y+ ···
6. where∂f∂x(x0,y0)and∂f∂y(x0,y0)arethepartialderivativesoffwith respecttox and y
evaluated at (x0, y0);
7. ∂g∂x(x0,y0)and∂g∂y(x0,y0)arethepartialderivativesofgwithrespecttoxandy evaluated
at (x0, y0);
8. andthe···representthehigherordertermsintheseries,in(∆x)2,(∆x)(∆y),and(∆y)2
.Because∆xand∆yarealreadysmallnumbers,thehigherordertermsareevensmaller.
9. Thensolvesystemofequationbyusingmatrixformofthesystemoftheequations.

Examples:
ii. Solvethesystemofnonlinearequation:

x2+ y=11,y2+ x=7

iii.Solvetheequation:x= 2(y+1),y2= 3xy- 7correctto3decimals.

iv. Findarootofthe equations


xy= x+9,y2= x2+7
Experiment No – 2(a)
Aim:NumericalsolutionofintegralsusingTrapezoidalmethod

Brief Theory:
Numerical Procedure:

1. Start
2. DefineandDeclarefunction
3. Inputinitialboundaryvalue,finalboundaryvalueandlengthofinterval
4. Calculatenumberofstrips,n=(finalboundaryvalue–finalboundaryvalue)/lengthof
interval
5. Performfollowingoperationinloop
x[i]=x0+i*h
y[i]=f(x[i])
print y[i]
Initializese=0,s0=0
6. Dothefollowingusingloop
Ifi%2=0
So=s0+y[i]
Otherwise
Se=se+y[i]
ans=h/3*(y[0]+y[n]+4*so+2*se)
7. printtheans
8. stop
2
Examples:i.UseTrapezoidalrulewith6subintervalstoapproximate x2).
òdx/(16+
0

ii. UsemultiplesegmentTrapezoidalruletofindtheareaunderthecurve
f(x)=300x/(1+ex)fromx=0tox=10.

iii. UseTrapezoidalrulewithn=4,approximatethevalueoftheintegral
Experiment No – 2(b)
Aim:NumericalevaluationofintegralsusingSimpson’smethod
Brief Theory:C program for Simpson 1/3 rule for easy and accurate calculation of numerical
integration of any function which is defined in program. In the source code , a functionf(x) has
been defined. The calculation using Simpson 1/3 rule in C is based on the fact that the small
portion between any two points is a parabola. The program follows the following steps for
calculation of the integral.

NumericalProcedure:

1. Definef(x)
2. Enterthevaluesoflowerandupperlimitofx,i.e.x0andalsoenternumberofintervals, N(N
should be even number)
3. h=((xn–x0)/N)
4. sum=0
5. do
6. {
7. sum= sum+(h/3).[f(x0)+4f(x0+h)+f(x0+ 2h)]
8. x0=x0+ 2h
9. }while(x0<xn)
10. printsum
11. stop

Examples:

3
i. Approximate
òdx/(x+1)usingSimpson'sRulewithn=4.
2

1
ii. Computetheintegral 2

òe dx bySimpson'srule.
x

p/2
iii. Calculatethevalueof
òsinxdxusing11ordinates.
0
Experiment No – 5(a)
Aim:NumericalSolutionofinitialvalueproblembyusingEuler’smethod

BriefTheory:TheEulermethodisafirst-ordermethod,whichmeansthatthelocalerror(error per
step)isproportional tothesquareofthestepsize,andtheglobal error(errorat agiventime) is
proportional to the step size.

NumericalProcedure:

1. Start
2. Definefunction
3. Getthevaluesofx0,y0,hand xn
*Herex0andy0aretheinitialconditions h is
the interval
xnistherequiredvalue
4. n=(xn–x0)/h+1
5. Startloopfromi=1ton
6. y=y0+h*f(x0,y0) x
=x+h
7. Printvaluesofy0andx0
8. Check ifx<xn
Ifyes,assignx0=xandy0=y If no,
goto 9.
9. Endloopi
10. Stop

Examples:SolvetheInitialValueProblems

i. dy/dx=6−2(y/x),y(3)=1

ii. dy/dx=ylny/x,y(2)=e

iii. dy/dx=(y-x)/(y+x),y(0)=1,Findyforx=0.1.
Experiment No – 5(b)
Aim:NumericalSolutionofinitialvalueproblemusingRungaKuttamethod

Brief Theory:C program for RungeKutta 4 method is designed to find out the numerical
solution ofa first order differential equation. It is a kind ofinitial value problem in which initial
conditions are known, i.e the values of x 0 and y0are known, and the values of y at different
values x is to be found out.

NumericalProcedure:
1. Definef(x,y)
2. Enterthevalueofxo,y0,xn,h
3. do
{
k1=h.f(x0,y0)
k2 =
h.f(x0+h/2,y0+k1/2)k3=h.f(
x0+h/2,y0+k2/2) k4 =
h.f(x0 + h, y0 + k3)
k=(k1+2.k2+2.k3+k4)/6
y1=y0+k
printx0,y0
y0 = y1
x0=x0+h
}while(x0<xn)
4. stop

Examples:

i. UsingRKmethodoforderfourfindyatx=1.1and1.2bysolvingdy/dx=x^2+y^2,y(1)=2.3

ii. UsingRKmethodoforderfourfindyatx=0.1 fordy/dx=x-y^2,y(0)=1.


iii. Findanapproximatevalueofyforx=0.8,giventhaty=0.41whenx=0.4
anddy/dx= (x+y).

You might also like