Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
177 views

Numerical Methods Programming

The document contains source code in C programming language for solving various numerical methods problems including computing roots of a polynomial using the Newton-Raphson method, solving a system of linear equations using Gauss-Jordan elimination, and finding a root of an equation using the bisection method. It also includes source code for solving a system of non-linear equations using the fixed point iteration method. The code examples are presented to demonstrate implementation of these numerical techniques to compute numerical solutions to equations and systems of equations.

Uploaded by

Mudit Srivastava
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
177 views

Numerical Methods Programming

The document contains source code in C programming language for solving various numerical methods problems including computing roots of a polynomial using the Newton-Raphson method, solving a system of linear equations using Gauss-Jordan elimination, and finding a root of an equation using the bisection method. It also includes source code for solving a system of non-linear equations using the fixed point iteration method. The code examples are presented to demonstrate implementation of these numerical techniques to compute numerical solutions to equations and systems of equations.

Uploaded by

Mudit Srivastava
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Submitted to:

Dr. Pratibha Aggarwal.


Submitted by:
Mudit Srivastava
11610040
C-3.
Computation of roots of a polynomial using Newton -Raphson
method.

#include<stdio.h>
#include<math.h>
float f(float x)
{
return x*log10(x) - 1.2;
}
float df (float x)
{
return log10(x) + 0.43429;
}
void main()
{
int itr, maxmitr;
float h, x0, x1, allerr;
printf("\nEnter x0, allowed error and maximum iterations\n");
scanf("%f %f %d", &x0, &allerr, &maxmitr);
for (itr=1; itr<=maxmitr; itr++)
{
h=f(x0)/df(x0);
x1=x0-h;
printf(" At Iteration no. %3d, x = %9.6f\n", itr, x1);
if (fabs(h) < allerr)
{
printf("After %3d iterations, root = %8.6f\n", itr, x1);
return 0;
}
x0=x1;
}
printf(" The required solution does not converge or iterations are insufficient\n");
return 1;
}
Input/Output:
Solution of linear simultaneous equation using Gauss-Jordhan
method.

#include<stdio.h>
int main()
{
int i,j,k,n;
float A[20][20],c,x[10];
printf("\nEnter the size of matrix: ");
scanf("%d",&n);
printf("\nEnter the elements of augmented matrix row-wise:\n");
for(i=1; i<=n; i++)
{
for(j=1; j<=(n+1); j++)
{
printf(" A[%d][%d]:", i,j);
scanf("%f",&A[i][j]);
}
}
/* Now finding the elements of diagonal matrix */
for(j=1; j<=n; j++)
{
for(i=1; i<=n; i++)
{
if(i!=j)
{
c=A[i][j]/A[j][j];
for(k=1; k<=n+1; k++)
{
A[i][k]=A[i][k]-c*A[j][k];
}
}
}
}
printf("\nThe solution is:\n");
for(i=1; i<=n; i++)
{
x[i]=A[i][n+1]/A[i][i];
printf("\n x%d=%f\n",i,x[i]);
}
return(0);
}
Input/Output:
Computation of roots of a polynomial using bisection method.

#include<stdio.h>
#include<math.h>
float fun (float x)
{
return (x*x*x - 4*x - 9);
}
void bisection (float *x, float a, float b, int *itr)
/* this function performs and prints the result of one iteration */
{
*x=(a+b)/2;
++(*itr);
printf("Iteration no. %3d X = %7.5f\n", *itr, *x);
}
void main ()
{
int itr = 0, maxmitr;
float x, a, b, allerr, x1;
printf("\nEnter the values of a, b, allowed error and maximum iterations:\n");
scanf("%f %f %f %d", &a, &b, &allerr, &maxmitr);
bisection (&x, a, b, &itr);
do
{
if (fun(a)*fun(x) < 0)
b=x;
else
a=x;
bisection (&x1, a, b, &itr);
if (fabs(x1-x) < allerr)
{
printf("After %d iterations, root = %6.4f\n", itr, x1);
return 0;
}
x=x1;
}
while (itr < maxmitr);
printf("The solution does not converge or iterations are not sufficient");
return 1;
}
Output:
Solution of system of non linear equation using fixed point method.

Below is a source code in C program for iteration method to find the root
of (cosx+2)/3. The desired degree of accuracy in the program can be achieved by
continuing the iteration i.e. by increasing the maximum number of iterations.

f(x) = (cos(x) +2)/3

#include<stdio.h>
#include<math.h>
float raj(float);
main()
{
float a[100],b[100],c=100.0;
int i=1,j=0;
b[0]=(cos(0)-3*0+1);
printf("\nEnter initial guess:\n");
scanf("%f",&a[0]);
printf("\n\n The values of iterations are:\n\n ");
while(c>0.00001)
{
a[j+1]=raj(a[j]);
c=a[j+1]-a[j];
c=fabs(c);
printf("%d\t%f\n",j,a[j]);
j++;

}
printf("\n The root of the given function is %f",a[j]);
}
float raj(float x)
{
float y;
y=(cos(x)+2)/3;
return y;
}

Output

You might also like