mbcp/docs/api/mp_math/equation.md
2024-08-28 10:52:17 +08:00

3.1 KiB
Raw Blame History

title order icon category
mbcp.mp\nmath.equation 1 laptop-code API

def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number) -> MultiVarsFunc

求N元函数一阶偏导函数。这玩意不太稳定慎用。

Args:

func: 函数

var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)

epsilon: 偏移量

Returns:

偏导函数

Raises:

ValueError: 无效变量类型
源代码
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
    """
    求N元函数一阶偏导函数。这玩意不太稳定慎用。
    Args:
        func: 函数
        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
        epsilon: 偏移量
    Returns:
        偏导函数
    Raises:
        ValueError: 无效变量类型
    """
    if isinstance(var, int):

        def partial_derivative_func(*args: Var) -> Var:
            args_list_plus = list(args)
            args_list_plus[var] += epsilon
            args_list_minus = list(args)
            args_list_minus[var] -= epsilon
            return (func(*args_list_plus) - func(*args_list_minus)) / (2 * epsilon)
        return partial_derivative_func
    elif isinstance(var, tuple):

        def high_order_partial_derivative_func(*args: Var) -> Var:
            result_func = func
            for v in var:
                result_func = get_partial_derivative_func(result_func, v, epsilon)
            return result_func(*args)
        return high_order_partial_derivative_func
    else:
        raise ValueError('Invalid var type')

def partial_derivative_func() -> Var

源代码
def partial_derivative_func(*args: Var) -> Var:
    args_list_plus = list(args)
    args_list_plus[var] += epsilon
    args_list_minus = list(args)
    args_list_minus[var] -= epsilon
    return (func(*args_list_plus) - func(*args_list_minus)) / (2 * epsilon)

def high_order_partial_derivative_func() -> Var

源代码
def high_order_partial_derivative_func(*args: Var) -> Var:
    result_func = func
    for v in var:
        result_func = get_partial_derivative_func(result_func, v, epsilon)
    return result_func(*args)

class CurveEquation

def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc) -> None

 曲线方程。

:param x_func:

:param y_func:

:param z_func:

源代码
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
    """
        曲线方程。
        :param x_func:
        :param y_func:
        :param z_func:
        """
    self.x_func = x_func
    self.y_func = y_func
    self.z_func = z_func

var args_list_plus = list(args)

var args_list_minus = list(args)

var result_func = func

var result_func = get_partial_derivative_func(result_func, v, epsilon)