Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- struct Vector {
- double x, y, z;
- Vector() {};
- Vector(double a, double b, double c) : x(a), y(b), z(c) {}
- };
- double f(double x, double y, double z) { //функція u(x, y, z)
- double a = pow(x * x + 2 * y - 3 * z - 0.9, 2);
- double b = pow(2 * x - y * y + z - 1.7, 2);
- double c = pow(2 * x + 3 * y - z * z, 2);
- return (a + b + c);
- }
- Vector df(double f(double x, double y, double z), Vector a) {
- const double d = 1e-10;
- Vector grad;
- grad.x = (f(a.x + d, a.y, a.z) - f(a.x, a.y, a.z)) / d; //похідна по x
- grad.y = (f(a.x, a.y + d, a.z) - f(a.x, a.y, a.z)) / d; //похідна по y
- grad.z = (f(a.x, a.y, a.z + d) - f(a.x, a.y, a.z)) / d; //похідна по z
- return grad;
- }
- int main() {
- Vector a(1.2, 1.3, 1.4);
- Vector grad = df(f, a);
- cout << grad.x << " " << grad.y << " " << grad.z << endl; //похідні
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement