Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab3_1 / lab3_sourse
.cpp// 3ia laboratornaiz rabota
#include <iostream.h>
#include <math.h>
double eps=0.001;
double fi_temp=0.025;
double E=0,Em=5,b2,b1,h;
double R1=5;
double I_d_0=1.2e-12;
double fi_2,fi_1,fi_10,fi_20;
double a11,a12,a21,a22,y_1=0.0,y_2;
double C=5e-12;
double R2=5000;
int k,n;
void main ()
{
n=1;
fi_1=0;
fi_2=0;
h=R1*C;
for(int i=0; i < 140; i++) {
cout << "E="<<E;
cout << " fi1=" << fi_1 ;
cout << " fi2=" << fi_2 ;
cout << " k=" << k << " n=" << n <<endl;
cout << "___________________________________________"<< endl;
if (E<Em)E=E+0.25;
k=0;
do {
b1=(E-fi_1)/R1-I_d_0*(exp(fi_1/fi_temp)-1)-(C/h)*((fi_1-fi_10)-(fi_2-fi_20));
b2=(C/h)*((fi_1-fi_10)-(fi_2-fi_20))+fi_2/R2;
a11=-1/R1-(I_d_0/fi_temp)*exp(fi_1/fi_temp)-C/h;
a12=C/h;
a21=-C/h;
a22=-C/h-1/R2;
y_1=(-b1*a22+b2*a12)/(a11*a22-a12*a21);
y_2=(-b2*a11+b1*a21)/(a11*a22-a12*a21);
fi_10=fi_1;
fi_20=fi_2;
fi_2=fi_2+y_2;
fi_1=fi_1+y_1;
k++;
} while((fabs(fi_1-fi_10))>eps&&(fabs(fi_2-fi_20)>eps));
/*cout << " fi1=" << fi_1 ;
cout << " fi2=" << fi_2 ;
cout << " k=" << k << " n=" << n <<endl;
cout << "___________________________________________"<< endl;
*/
n++;
}
}