假设要计算函数 f(x, y) = x^2 + 2xy + y^2 的偏导数,以下是对 x 求偏导的代码:

#include <stdio.h>

double f(double x, double y) {
    return x*x + 2*x*y + y*y;
}

double partial_deriv_x(double x, double y) {
    double h = 0.0001; // 微小增量
    return (f(x+h, y) - f(x, y)) / h;
}

int main() {
    double x = 2.0, y = 3.0;
    printf("f(%.6lf, %.6lf) = %.6lf\n", x, y, f(x, y));
    printf("partial derivative with respect to x: %.6lf\n", partial_deriv_x(x, y));
    return 0;
}

输出结果:

f(2.000000, 3.000000) = 19.000000
partial derivative with respect to x: 8.000100

其中,partial_deriv_x 函数使用了数值微分的方法来计算偏导数。微小增量 h 取一个较小的值,例如 0.0001,然后用以下公式计算偏导数:

$$ \frac{\partial f(x, y)}{\partial x} \approx \frac{f(x+h, y) - f(x, y)}{h} $$

同理,可以编写一个函数 partial_deriv_y 来计算对 y 求偏导的结果。


原文地址: https://www.cveoy.top/t/topic/n6Ba 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录