In: Advanced Math
Use Muller's method to find a solution in [0.1, 1] accurate to within 600x^4−550x^3+200x^2−20x−1=0. Explain how the algorithm works.
IF YOU HAVE ANY DOUBTS COMMENT BELOW I WILL BE TTHERE TO HELP YOU..ALL THE BEST..
AS FOR GIVEN DATA...
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define ESP 0.001
#define F(x) (x)*(x)*(x) + 2*(x)*(x) + 10*(x) - 20
void main()
{
  double x1,x2,x3,x4_1,x4_2,fx1,fx2,fx3,
     h1,h2,h3_1,h3_2,h4,D,d1,d2,a1,a2,a0;
  int i=1;
  clrscr();
  printf("\nEnter the value of x1: ");
  scanf("%lf",&x1);
  printf("\nEnter the value of x2: ");
  scanf("%lf",&x2);
  printf("\nEnter the value of x3: ");
  scanf("%lf",&x3);
  fx1 = F(x1);
  printf("\n\n f(x1) = %lf",fx1);
  getch();
  fx2 = F(x2);
  printf("\n\n f(x2) = %lf",fx2);
  getch();
  fx3 = a0 = F(x3);
  printf("\n\n f(x3) = %lf",fx3);
  getch();
  h1 = x1-x3;
  h2 = x2-x3;
  d1 = fx1-fx3;
  d2 = fx2-fx3;
  D = h1*h2*(h1-h2);
  a1 = (d2*h1*h1 - d1*h2*h2)/D;
  a2 = (d1*h2 - d2*h1)/D;
  h3_1 = -((2*a0)/(a1 + sqrt(fabs(a1*a1 - (4*a2*a0)))));
  h3_2 = -((2*a0)/(a1 - sqrt(fabs(a1*a1 - (4*a2*a0)))));
  if( (a1 + sqrt(fabs(a1*a1 - (4*a2*a0)))) >
         ((a1 - sqrt(fabs(a1*a1 - (4*a2*a0))))) )
  {
   h4 = h3_1;
  }
  else
  {
   h4 = h3_2;
  }
  x4_1 = x3 + h4;
  printf("\n\n\n x4 = %lf \n",x4_1);
  x1=x2;
  x2=x3;
  x3=x4_1;
  printf("\n\nx1 = %lf",x1);
  printf("\n\nx2 = %lf",x2);
  printf("\n\nx3 = %lf",x3);
  getch();
  do
  {
   fx1 = F(x1);
   fx2 = F(x2);
   fx3 = a0 = F(x3);
   h1 = x1-x3;
   h2 = x2-x3;
   d1 = fx1-fx3;
   d2 = fx2-fx3;
   D = h1*h2*(h1-h2);
   a1 = (d2*h1*h1 - d1*h2*h2)/D;
   a2 = (d1*h2 - d2*h1)/D;
   h3_1 = -((2*a0)/(a1 + sqrt(fabs(a1*a1 - (4*a2*a0)))));
   h3_2 = -((2*a0)/(a1 - sqrt(fabs(a1*a1 - (4*a2*a0)))));
   if( (a1 + sqrt(fabs(a1*a1 - (4*a2*a0)))) >
         (a1 - sqrt(fabs(a1*a1 - (4*a2*a0)))) )
   {
    h4 = h3_1;
   }
   else
   {
    h4 = h3_2;
   }
   x4_2 = x3 + h4;
   printf("\n\n\n x4 = %lf \n",x4_2);
   getch();
   if(fabs(x4_1 - x4_2) < ESP)
   {
    printf("\n\nREAL ROOT = %.3lf",x4_2);
    i=0;
   }
   else
   {
     x4_1=x4_2;
     x1=x2;
     x2=x3;
     x3=x4_1;
     printf("\n\nx1 = %lf",x1);
     printf("\n\nx2 = %lf",x2);
     printf("\n\nx3 = %lf",x3);
   }
  }while(i!=0);
getch();
}
/*
____________________________
     OUT PUT
____________________________
Enter the value of x1: 0
Enter the value of x2: 1
Enter the value of x3: 2
 f(x1) = -20.000000
 f(x2) = -7.000000
 f(x3) = 16.000000
 x4 = 1.354066
x1 = 1.000000
x2 = 2.000000
x3 = 1.354066
 x4 = 1.368647
x1 = 2.000000
x2 = 1.354066
x3 = 1.368647
 x4 = 1.368808
REAL ROOT = 1.369
*/
Code for MULLER'S METHOD in C Programming
#include<stdio.h>
#include<conio.h>
#include<math.h>
#define ESP 0.001
#define F(x) (x)*(x)*(x) + 2*(x)*(x) + 10*(x) - 20
void main()
{
  double x1,x2,x3,x4_1,x4_2,fx1,fx2,fx3,
     h1,h2,h3_1,h3_2,h4,D,d1,d2,a1,a2,a0;
  int i=1;
  clrscr();
  printf("\nEnter the value of x1: ");
  scanf("%lf",&x1);
  printf("\nEnter the value of x2: ");
  scanf("%lf",&x2);
  printf("\nEnter the value of x3: ");
  scanf("%lf",&x3);
  fx1 = F(x1);
  printf("\n\n f(x1) = %lf",fx1);
  getch();
  fx2 = F(x2);
  printf("\n\n f(x2) = %lf",fx2);
  getch();
  fx3 = a0 = F(x3);
  printf("\n\n f(x3) = %lf",fx3);
  getch();
  h1 = x1-x3;
  h2 = x2-x3;
  d1 = fx1-fx3;
  d2 = fx2-fx3;
  D = h1*h2*(h1-h2);
  a1 = (d2*h1*h1 - d1*h2*h2)/D;
  a2 = (d1*h2 - d2*h1)/D;
  h3_1 = -((2*a0)/(a1 + sqrt(fabs(a1*a1 - (4*a2*a0)))));
  h3_2 = -((2*a0)/(a1 - sqrt(fabs(a1*a1 - (4*a2*a0)))));
  if( (a1 + sqrt(fabs(a1*a1 - (4*a2*a0)))) >
         ((a1 - sqrt(fabs(a1*a1 - (4*a2*a0))))) )
  {
   h4 = h3_1;
  }
  else
  {
   h4 = h3_2;
  }
  x4_1 = x3 + h4;
  printf("\n\n\n x4 = %lf \n",x4_1);
  x1=x2;
  x2=x3;
  x3=x4_1;
  printf("\n\nx1 = %lf",x1);
  printf("\n\nx2 = %lf",x2);
  printf("\n\nx3 = %lf",x3);
  getch();
  do
  {
   fx1 = F(x1);
   fx2 = F(x2);
   fx3 = a0 = F(x3);
   h1 = x1-x3;
   h2 = x2-x3;
   d1 = fx1-fx3;
   d2 = fx2-fx3;
   D = h1*h2*(h1-h2);
   a1 = (d2*h1*h1 - d1*h2*h2)/D;
   a2 = (d1*h2 - d2*h1)/D;
   h3_1 = -((2*a0)/(a1 + sqrt(fabs(a1*a1 - (4*a2*a0)))));
   h3_2 = -((2*a0)/(a1 - sqrt(fabs(a1*a1 - (4*a2*a0)))));
   if( (a1 + sqrt(fabs(a1*a1 - (4*a2*a0)))) >
         (a1 - sqrt(fabs(a1*a1 - (4*a2*a0)))) )
   {
    h4 = h3_1;
   }
   else
   {
    h4 = h3_2;
   }
   x4_2 = x3 + h4;
   printf("\n\n\n x4 = %lf \n",x4_2);
   getch();
   if(fabs(x4_1 - x4_2) < ESP)
   {
    printf("\n\nREAL ROOT = %.3lf",x4_2);
    i=0;
   }
   else
   {
     x4_1=x4_2;
     x1=x2;
     x2=x3;
     x3=x4_1;
     printf("\n\nx1 = %lf",x1);
     printf("\n\nx2 = %lf",x2);
     printf("\n\nx3 = %lf",x3);
   }
  }while(i!=0);
getch();
}
/*
____________________________
     OUT PUT
____________________________
Enter the value of x1: 0
Enter the value of x2: 1
Enter the value of x3: 2
 f(x1) = -20.000000
 f(x2) = -7.000000
 f(x3) = 16.000000
 x4 = 1.354066
x1 = 1.000000
x2 = 2.000000
x3 = 1.354066
 x4 = 1.368647
x1 = 2.000000
x2 = 1.354066
x3 = 1.368647
 x4 = 1.368808
REAL ROOT = 1.369
*/
HOPE IT HELPS YOU
RATE THUMBSUP IT HELPS ME ALOT
THANKS