小编Pin*_*ton的帖子

python中的多变量线性化:'Pow'对象没有属性'sqrt'

作为Python世界的新手,我只是简单地将以下两个变量函数线性化:

功能

在此输入图像描述

使用相当常规的牛顿方法:

线性化方法

在此输入图像描述

这是我到目前为止所尝试的:

import numpy as np
import math
from sympy import symbols, diff

d = 1.7

def f(arg1, arg2):
    return (arg1 - arg2)/(np.power(np.linalg.norm(arg1 - arg2),2) - np.power(d,2))

def linearize_f(f, arg1, arg2, equi_arg1, equi_arg2):
    arg1, arg2 = symbols('arg1 arg2', real=True)
    der_1 = diff(f(arg1,arg2), arg1)
    der_2 = diff(f(arg1,arg2), arg2)
    constant_term = f(equi_arg1, equi_arg2)

    vars = sympy.symbols('arg1, arg2')
    par_term_1 = sympy.evalf(der_1, subs = dict(zip(vars,[equi_arg1, equi_arg2])))
    par_term_2 = sympy.evalf(der_2, subs = dict(zip(vars,[equi_arg1, equi_arg2])))

    result = constant_term + par_term_1*(arg1-equi_arg1) + par_term_2*(arg2-equi_arg2)

    return …
Run Code Online (Sandbox Code Playgroud)

python numpy

8
推荐指数
1
解决办法
347
查看次数

标签 统计

numpy ×1

python ×1