Скачиваний:
13
Добавлен:
01.05.2014
Размер:
1.13 Кб
Скачать
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <stdio.h>

 double func(double x)
	{
	 double f=(10*x*x*x+3*x*x+x+5)*(10*x*x*x+3*x*x+x+5);
	 return f;
	}
 double df(double x)
	{
	 double fproizv=(20*x*x*x+6*x*x+2*x+10)*(30*x*x+6*x+1);
	 return fproizv;
	}

 void main()
  {
   clrscr();
   double a,b,d,z,w,gamma,xmin,h1,x1,x2,f1,f2;
   int n=1,k=1;
   double eps=0.01;
   h1=0.01;

   cout<<"‚ўҐ¤ЁвҐ Їа®Ё§ў®«м­го в®зЄг\n";
   cin>>x1;
   x2=x1+h1;

   if (df(x1)>0) h1=-h1;
   x2=x1+h1;

   f1=df(x1);
   f2=df(x2);
   while (f1*f2>0)
	{
	 x1=x2;
	 h1=h1*2;
	 x2=x1+h1;
	 f1=df(x1);
	 f2=df(x2);
	 n++;
	}
   a=x2-h1;
   if(a>x2)
	{b=a; a=x2;}
   else
	b=x2;

   cout<<"€б室­л© Ё­вҐаў « - ["<<a<<";"<<b<<"]";

   while (abs(df(d))>eps)
	{
	 z=df(a)+df(b)+3*(func(a)-func(b))/b;
	 w=sqrt(z*z-df(a)*df(b));
	 gamma=(z-df(a)+w)/(df(b)-df(a)+2*w);

	 d=a+gamma*(b-a);
	  if (df(d)>0)
		{
		 b=d;
		}
	  else
		{
		 a=d;
		};
	 k++;
	};
   xmin=d;
   cout<<"\nЊЁ­Ё¬г¬ = "<<xmin<<"\nЉ®«ЁзҐбвў® ЁвҐа жЁ©="<<k;
   getch();
  }
Соседние файлы в папке all