小编Sar*_*zia的帖子

在我的程序中使用"from __future__ import division",但它没有加载我的程序

我在Python 2中编写了以下程序来为我的数学问题集进行牛顿方法计算,虽然它完美地工作,但是出于我不知道的原因,当我最初在ipython中加载它时%run -i NewtonsMethodMultivariate.py,不会导入Python 3除法.我知道这是因为在加载我的Python程序后,输入x**(3/4)"1".手动导入新分区后,按预期x**(3/4)保留x**(3/4).为什么是这样?

# coding: utf-8
from __future__ import division
from sympy import symbols, Matrix, zeros

x, y = symbols('x y')
X = Matrix([[x],[y]])
tol = 1e-3

def roots(h,a):
  def F(s):
    return h.subs({x: s[0,0], y: s[1,0]})
  def D(s):
    return h.jacobian(X).subs({x: s[0,0], y: s[1,0]})
  if F(a) == zeros((2,1)):
    return a
  else:
    while (F(a)).norm() > tol:
      a = a - ((D(a))**(-1))*F(a)
      print a.evalf(10)
Run Code Online (Sandbox Code Playgroud)

我会使用Python 3来避免这个问题,但是我的Linux发行版只提供SymPy for Python 2.感谢任何人都能提供的帮助.

另外,如果有人想知道,我还没有为nxn Jacobians推广这个脚本,只需要在我的问题集中处理2x2.另外,我正在切换2x2零矩阵而不是使用命令,zeros(2,1) …

python sympy

17
推荐指数
1
解决办法
3万
查看次数

标签 统计

python ×1

sympy ×1