Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define CRT_SECURE_NO_WARNINGS
- #include "stdafx.h"
- #include <math.h>
- #include <cmath>
- #include <omp.h>
- #define A 8.2
- #define B -0.7
- #define C 0.64
- #define D 0.18
- double F(double x1, double x2)
- {
- return A*x1 + B*x2 + exp(C*x1*x1 + D*x2*x2);
- }
- int main()
- {
- double xmax = 5.0, ymax = 5.0;
- double h1 = 0.1, h2 = 0.001, x = -xmax, y = -ymax;
- double min[3];
- min[0] = F(x, y);
- min[1] = x;
- min[2] = y;
- double tn = omp_get_wtime();
- int nx = (int)((xmax - x) / h1) + 1;
- int ny = (int)((ymax - y) / h1) + 1;
- for (int i = 0; i < nx; i++)
- for (int j = 0; j < ny; j++)
- if (F(x + i*h1, y + j*h1) < min[0]) {
- min[0] = F(x + i*h1, y + j*h1);
- min[1] = x + i*h1;
- min[2] = y + j*h1;
- }
- x = min[1] - (xmax - x) / 20;
- y = min[2] - (ymax - y) / 20;
- xmax = abs(x - min[1]) + min[1];
- ymax = abs(y - min[2]) + min[2];
- if (x < -5.0) x = -5.0;
- if (y < -5.0) y = -5.0;
- if (xmax > 5.0) xmax = 5.0;
- if (ymax > 5.0) ymax = 5.0;
- nx = (int)((xmax - x) / h2) + 1;
- ny = (int)((ymax - y) / h2) + 1;
- for (int i = 0; i < nx; i++)
- for (int j = 0; j < ny; j++)
- if (F(x + i*h2, y + j*h2) < min[0]) {
- min[0] = F(x + i*h2, y + j*h2);
- min[1] = x + i*h2;
- min[2] = y + j*h2;
- }
- double tk = omp_get_wtime();
- FILE *f;
- f = fopen("outPosl.txt", "w");
- fprintf(f,"%f\nTime %f\n", min[0],tk-tn);
- fclose(f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement