
Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
// laboratornaia rabota 4 - Ras4et s pomoshiu Zolotogo se4enia
#include <iostream.h>
#include <math.h>
void main (){
double s;
double U0,R,I0d,mft;
double c;
double f0,f1,f2,f3,a,b,x,E;
int i=0;
U0=5;
R=3;
I0d=1.2e-10;
mft=0.025;
a=0;
b=5;
E=0.001;
while (fabs(b-a)>E)
{
x=(b-a)*((sqrt(5) - 1)/2);
c=(b-a)-x;
f0=fabs((U0-a)/R - I0d*(exp(a/mft)-1));
f1=fabs((U0-x)/R - I0d*(exp(x/mft)-1));
f2=fabs((U0-c)/R - I0d*(exp(c/mft)-1));
f3=fabs((U0-b)/R - I0d*(exp(b/mft)-1));
// cout << f0 << f1 << f2 << f3 << c << endl ;
if (f0<=f1&&f0<=f2&&f0<=f3) b=x;
if (f1<=f0&&f1<=f2&&f1<=f3) b=x;
if (f2<=f0&&f2<=f1&&f2<=f3) a=c;
if (f3<=f0&&f3<=f1&&f3<=f2) a=c;
i++;
cout << "granizi intervalov " << " raveni = (" << a <<" , " << b << " )"<< endl;
}
s=(a+b)/2;
cout << "zna4enie Fi na shage " << i << " raven = " << s << endl;
}