Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void form_time(int n, double arr[], int t){
- int i = 0;
- for(i = 0; i < n; i++)
- arr[i] = (double)t / n * i;
- }
- void form_u_in(int n, double arr[], double arr2[]){
- int i = 0;
- for(i = 0; i < n; i++)
- arr[i] = (double)15. * cos(3.141592653 * arr2[i]) + 8. * cos(3. * 3.141592653 * arr2[i] / 2.);
- }
- void form_u_out(int n, double arr[], double arr2[], double u1, double u2, double v1, double v2){
- int i = 0;
- for(i = 0; i < n; i++)
- if(arr2[i] < u1)
- arr[i] = v1;
- else if(arr2[i] < u2)
- arr[i] = (double)(7. * arr2[i] / 2. - 10.);
- else
- arr[i] = v2;
- }
- void form_tbl(int n, double arr[], double arr2[], double arr3[] ){
- int i = 0;
- printf("№\ttime\tU in\tU out\n");
- for(i = 0; i < n; i++)
- printf("%3d\t%6.3f\t%6.3f\t%6.3f\n", i, arr[i], arr2[i], arr3[i]);
- }
- int find_minimum(int n, double arr[]){
- int i = 0, min_index = 0;
- double min = arr[0];
- for(i = 1; i < n; i++)
- if(arr[i] < min){
- min = arr[i];
- min_index = i;
- }
- return min_index;
- }
- void print_zast(){
- FILE *zast;
- zast = fopen("zast.txt","r");
- char ch;
- while (!feof(zast)){
- fscanf(zast,"%c",&ch);
- printf("%c",ch);
- }
- printf("\n");
- fclose(zast);
- }
- void parametr_u_in_min(int t){
- int n = 11, i = 0;
- double p = 1., eps=0.01, par = 10000000000., par1 = 0.;
- while(p > eps){
- double tmp_array_time[n], tmp_array_u_in[n];
- form_time(n, tmp_array_time, t);
- form_u_in(n, tmp_array_u_in, tmp_array_time);
- i = find_minimum(n, tmp_array_u_in);
- par1 = tmp_array_u_in[i];
- p = fabs((par - par1) / par1);
- printf("n=%d (par1)u in=%lf par=%lf t=%lf error=%lf\n", n, par1, par, tmp_array_time[i], p);
- par = par1;
- n = 2 * n;
- }
- }
- void parametr_u_out_min(double u1, double u2, double v1, double v2, int t){
- int n = 11, i = 0;
- double p = 1., eps=0.01, par = 10000000000., par1 = 0.;
- while(p > eps){
- double tmp_array_time[n], tmp_array_u_in[n], tmp_array_u_out[n];
- form_time(n, tmp_array_time, t);
- form_u_in(n, tmp_array_u_in, tmp_array_time);
- form_u_out(n, tmp_array_u_out, tmp_array_u_in, u1, u2, v1, v2);
- i = find_minimum(n, tmp_array_u_out);
- par1 = tmp_array_u_out[i];
- p = fabs((par - par1) / par1);
- printf("n=%d u out=%lf t=%lf error=%lf\n", n, par1, tmp_array_time[i], p);
- par = par1;
- n = 2 * n;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement