You are on page 1of 3

Date : 21/06/2021

<< Complex Root by NEWTON RAPHSON Method >>


Roll Number : SH-157

• Statement of the problem :


Write a C program to compute the complex root of the following equation near
0.5+I 0.5 correct up to five decimal places, by Newton Raphson method.
3ℤ3 − 7ℤ2 + 6ℤ − 2 = 0
• SOLUTION:
#include<stdio.h>
#include<math.h>
float u(float x,float y);
float ux(float x,float y);
float v(float x,float y);
float vx(float x,float y);
main()
{
float x,y,h,k,error=1.e-6;
printf("Enter the initial approximation of real part\n");
scanf("%f",&x);
printf("Enter the initial approximation of imaginary part\n");
scanf("%f",&y);
h=-(u(x,y)*ux(x,y)+v(x,y)*vx(x,y))/(ux(x,y)*ux(x,y)+vx(x,y)*vx(x,y));
k=(u(x,y)*vx(x,y)-v(x,y)*ux(x,y))/(ux(x,y)*ux(x,y)+vx(x,y)*vx(x,y));
while(fabs(h)>error||fabs(k)>error)
{
x=x+h;
y=y+k;
h=-(u(x,y)*ux(x,y)+v(x,y)*vx(x,y))/(ux(x,y)*ux(x,y)+vx(x,y)*vx(x,y));
k=(u(x,y)*vx(x,y)-v(x,y)*ux(x,y))/(ux(x,y)*ux(x,y)+vx(x,y)*vx(x,y));
}
printf("\nReal part of the root=%7.5f\nImaginary part of the root=%7.5f\n(correct up
to five decimal places)",x,y);
}
float u(float x,float y)
{
float z;
z=3*pow(x,3)-9*x*pow(y,2)-7*pow(x,2)+7*pow(y,2)+6*x-2;
return(z);
}
float v(float x,float y)
{
float z;
z=9*pow(x,2)*y-3*pow(y,3)-14*x*y+6*y;
return(z);
}
float ux(float x,float y)
{
float z;
z=9*pow(x,2)-9*pow(y,2)-14*x+6;
return(z);
}
float vx(float x,float y)
{
float z;
z=18*x*y-14*y;
return(z);
}
OUTPUT:
Enter the initial approximation of real part
0.5
Enter the initial approximation of imaginary part
0.5

Real part of the root=0.66667


Imaginary part of the root=0.47140
(correct up to five decimal places)
--------------------------------

You might also like