コード例 #1
0
def sin(X):
    try:
        y = ADnum(np.sin(X.val), der=np.cos(X.val) * X.der)
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'sin'))
        return y
    except AttributeError:
        return np.sin(X)
コード例 #2
0
def arccos(X):
    try:
        y = ADnum(np.arccos(X.val), der=-1 / np.sqrt(1 - X.val**2) * X.der)
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'arccos'))
        return y
    except AttributeError:
        return np.arccos(X)
コード例 #3
0
def sec(X):
    try:
        y = ADnum(1 / np.cos(X.val), der=np.tan(X.val) / np.cos(X.val) * X.der)
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'sec'))
        return y
    except AttributeError:
        return 1 / np.cos(X)
コード例 #4
0
def cot(X):
    try:
        y = ADnum(1 / np.tan(X.val), der=-1 / (np.sin(X.val)**2) * X.der)
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'cot'))
        return y
    except AttributeError:
        return 1 / np.tan(X)
コード例 #5
0
def sqrt(X):
    try:
        y = ADnum(np.sqrt(X.val), der=X.der / (2 * np.sqrt(X.val)))
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'sqrt'))
        return y
    except AttributeError:
        return np.sqrt(X)
コード例 #6
0
def log(X):
    try:
        y = ADnum(np.log(X.val), der=1 / X.val * X.der)
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'log'))
        return y
    except AttributeError:
        return np.log(X)
コード例 #7
0
def tanh(X):
    try:
        y = ADnum(np.tanh(X.val), der=1 / (np.cosh(X.val)**2) * X.der)
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'tanh'))
        return y
    except AttributeError:
        return np.tanh(X)
コード例 #8
0
def arctan(X):
    try:
        y = ADnum(np.arctan(X.val), der=1 / (1 + X.val**2) * X.der)
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'arctan'))
        return y
    except AttributeError:
        return np.arctan(X)
コード例 #9
0
def csc(X):
    try:
        y = ADnum(1 / np.sin(X.val),
                  der=(-1 / np.tan(X.val)) * (1 / np.sin(X.val)) * X.der)
        y.graph = X.graph
        if X not in y.graph:
            y.graph[X] = []
        y.graph[X].append((y, 'csc'))
        return y
    except:
        return 1 / np.sin(X)