36 lines
757 B
C++
Executable File
36 lines
757 B
C++
Executable File
#include <math.h>
|
|
#include "CMyVektor.h"
|
|
|
|
using namespace std;
|
|
|
|
// f( [x,y] ) = sin(x * y) + sin(x) + cos(y)
|
|
double f(CMyVektor X) {
|
|
double x = X[0];
|
|
double y = X[1];
|
|
|
|
return (sin(x * y) + sin(x) + cos(y));
|
|
}
|
|
|
|
// g( [x,y,z] ) = -(2x^2 - 2xy + y^2 + z^2 - 2x - 4z)
|
|
double g(CMyVektor X) {
|
|
double x = X[0];
|
|
double y = X[1];
|
|
double z = X[2];
|
|
|
|
return -(2 * pow(x,2) - 2 * x * y + pow(y,2) + pow(z,2) - 2 * x - 4 * z);
|
|
}
|
|
|
|
int main() {
|
|
CMyVektor X0(std::vector<double>{1,3,5});
|
|
CMyVektor gradX0 = gradient(f, X0);
|
|
cout << "grad f" << X0 << "=" << gradX0 << std::endl;
|
|
|
|
CMyVektor X1(std::vector<double>{0.2,-2.1});
|
|
gradientenverfahren(f, X1);
|
|
|
|
CMyVektor X2(std::vector<double>{0,0,0});
|
|
gradientenverfahren(g, X2, 0.1);
|
|
|
|
system("pause");
|
|
return 0;
|
|
} |