Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Различные алгоритмы минимизации, реализованные в С++ / all / LAB22
.CPP#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 x0,x1,xk,xmin,a,b,eps=0.01,h1=0.01;
int k=1;
cout << "Vvedite proizvolnuu tochku: ";
cin>>x0;
x1=x0+h1;
if (df(x1)>0)
h1=-h1;
x1=x0+h1;
while(df(x0)*df(x1)>0)
{
x0=x1;
h1=2*h1;
x1=x0+h1;
}
a=x0;
if(a>x1)
{b=a; a=x1;}
else
b=x1;
cout<<"Interval = [ "<<a<<" "<<b<<" ]";
xk=b-df(b)*(b-a)/(df(b)-df(a));
while(fabs(df(xk))>eps)
{
xk=b-df(b)*(b-a)/(df(b)-df(a));
if (df(xk)>0)
{
b=xk;
}
else
{
a=xk;
}
k++;
}
xmin=xk;
cout<<"\nX* "<<xmin<<"\nN "<<k;
getch();
}
Соседние файлы в папке all