标签: sympy

Matplotlib轮廓不起作用

我正试图绘制蝙蝠侠方程.在sympy或matplotlib中的解决方案将是伟大的(圣人不酷,因为我使用的是Windows).问题在于,如果我注释掉某些部分,图中的部分会出现,但所有F *=部分都会出现,我会得到一个空白的图.

import matplotlib.pyplot
from numpy import arange
from numpy import meshgrid
from numpy import sqrt
from numpy import real

delta = 0.01
xrange = arange(-7.0, 7.0, delta)
yrange = arange(-3.0, 3.0, delta)
x, y = meshgrid(xrange,yrange)

F = 1
F *= (((x/7) ** 2) * sqrt(abs(abs(x) - 3)/(abs(x) - 3)) + ((y / 3) ** 2) * sqrt(abs(y + (3 * sqrt(33)) / 7)/(y + (3 * sqrt(33)) / 7)) - 1)
F *= (abs(x/2) - ((3 …
Run Code Online (Sandbox Code Playgroud)

python matplotlib sympy

2
推荐指数
1
解决办法
2381
查看次数

使用Python函数并生成所有衍生物

我有一个可变数量的参数的python函数:

F(x1, x2, ... , xN)
Run Code Online (Sandbox Code Playgroud)

我想自动生成N个函数,这些函数表示关于每个参数的F的导数.

F'_1 = dF/dx1
F'_2 = dF/dx2
...
F'_N = dF/dxN
Run Code Online (Sandbox Code Playgroud)

例如,我能够同时给出F(x1)= sin(x1)和F(x1,x2)= sin(x1)*cos(x2)并自动获得所有导数.


Edit2:如果函数F是2变量(固定数量的参数),我可以使用

   def f(x,y):
      return  sin(x)*cos(y)

   from sympy import *
   x, y = symbols('x y')
   f_1 = lambdify((x,y), f(x,y).diff(x))
Run Code Online (Sandbox Code Playgroud)

python lambda sympy scipy python-2.7

2
推荐指数
1
解决办法
2353
查看次数

SymPy中的功能

我是Python对象的新手,并且有很多问题.我需要将一个函数传递给我的对象,然后评估该函数.代码类似于:

from sympy import var

class eval:
    def __init__(self, M):
        self.M = M

    def fun(self, x):
        M = self.M
        print M(x)

x = var('x')

ak = eval(x+2)
ak.fun(x)
Run Code Online (Sandbox Code Playgroud)

这是错误:

TypeError
Traceback (most recent call last)
(ipython-input-1-b7ef311bd1f0> in <module)()
     12 
     13 ak = eval(x+2)
---> 14 ak.fun(x)

(ipython-input-1-b7ef311bd1f0) in fun(self, x)
      7     def fun(self, x):
      8         M = self.M
----> 9         print M(x)
     10 
     11 x = var('x')

TypeError: 'Add' object is not callable
Run Code Online (Sandbox Code Playgroud)

python sympy

2
推荐指数
1
解决办法
6521
查看次数

衍生品与Sympy的离散化

是否有办法在同情中将未知函数的导数离散化?我想要实现以下目标:

from sympy import *

>>> f = Function('f')
>>> x = Symbol('x')

>>> dfdx = Derivative(f(x),x).somemethod()
>>> print dfdx
    (f(x+1) - f(x-1)) / 2
>>> eq = lambdify((f,x),dfdx)
>>> w = np.array([1,5,7,9])
>>> print eq(w,1)
    -3
Run Code Online (Sandbox Code Playgroud)

python sympy pde differentiation differential-equations

2
推荐指数
1
解决办法
432
查看次数

Python - 使用sympy求解的椭圆曲线的Matplotlib()

我画了一条椭圆曲线.我想沿着a画一条线P,Q,R(在哪里P并且Q将独立于这个问题确定).问题的主要问题P是,sympy solve()返回另一个等式,它需要返回一个值,以便可以用来绘制x值P.据我所知,solve()应该返回一个值,所以我在这里做错了,我只是完全没有看到.作为参考,这里P+Q=R应该看看:

在此输入图像描述

我一直在浏览文档和其他材料,这是因为我已经陷入麻烦了:

from mpl_toolkits.axes_grid.axislines import SubplotZero
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.path import Path
import matplotlib.patches as patches
from matplotlib import rc
import random
from sympy.solvers import solve
from sympy import *


def plotGraph():
    fig = plt.figure(1)
    #ax = SubplotZero(fig, 111)
    #fig.add_subplot(ax)
    #for direction in ["xzero", "yzero"]:
        #ax.axis[direction].set_axisline_style("-|>")
        #ax.axis[direction].set_visible(True)
    #ax.axis([-10,10,-10,10])
    a = -2; b …
Run Code Online (Sandbox Code Playgroud)

matplotlib sympy elliptic-curve python-2.7 finite-field

2
推荐指数
1
解决办法
1240
查看次数

使用sympy求解指数方程式?

我想使用sympy解决以下简单方程式

2^(x-y)=1
Run Code Online (Sandbox Code Playgroud)

其中x和y是+ ve整数

我的预期结果是

x=y
Run Code Online (Sandbox Code Playgroud)

当我尝试使用sympy解决

x = Symbol('x')
y = Symbol('y')
solve(2**(x-y)-1, x)
Run Code Online (Sandbox Code Playgroud)

我正在关注结果

[log(2**y)/log(2)]
Run Code Online (Sandbox Code Playgroud)

为了获得预期的结果,我必须遵循哪些额外的步骤

sympy

2
推荐指数
1
解决办法
992
查看次数

Sympy和绘图

我对使用Sympy如何处理图形有一些疑问。

我的代码:

from sympy import *
x, y = symbols("x y")
plot_implicit(Eq(x**2 + y**2, 4), (x, -3, 3), (y, -3, 3))
Run Code Online (Sandbox Code Playgroud)

1)获得沿x轴拉伸的图形。

在此处输入图片说明

如何使曲线看起来像圆形?

2)如何向图表添加其他元素。例如,点O(0,0)和线y = x。

在此处输入图片说明

python plot matplotlib sympy python-3.x

2
推荐指数
1
解决办法
1735
查看次数

从sympy.core.add.Add转换为numpy复数

我有Sympy解算器的这个解决方案列表:

In [49]: sol
Out[49]: 
[-1.20258344291917 - 0.e-23*I,
 -0.835217129314554 + 0.e-23*I,
 0.497800572233726 - 0.e-21*I]

In [50]: type(sol)
Out[50]: list

In [51]: type(sol[0])
Out[51]: sympy.core.add.Add
Run Code Online (Sandbox Code Playgroud)

如何将此列表转换为具有正常复杂值的单元格的numpy对象?

python numpy sympy

2
推荐指数
1
解决办法
661
查看次数

如何使用多个解决方案解决多项式,包括python中的复杂解?

我正在尝试在python中解决以下多项式.一些常量(2.11和.125567481)是动态的,并且会在程序中发生变化.我需要一种方法来计算python中这个等式的解.我尝试使用Sympy,但它一直在执行,从未提出过解决方案.Wolfram Alpha提供了4个解决方案,其中3个是复杂的,1个是真实的.我只需要真正的那个.有没有办法在python中有效地解决这个等式?在mathematica中这很容易做到,但我找不到在python3中有效的方法.

(要将它与symPy的fsolve函数一起使用,我必须操纵等式,使其等于零.它仍然没有找到解决方案.)

等式来解决

python math sympy

2
推荐指数
1
解决办法
475
查看次数

在表达式中使所有符号可交换

假设你在一个表情符号中有许多非交换符号,比如说

a, c = sympy.symbols('a c', commutative=False)
b = sympy.Symbol('b')
expr = a * c + b * c
Run Code Online (Sandbox Code Playgroud)

使表达式中的所有符号都可交换的首选方法是什么,例如,sympy.simplify(allcommutative(expr)) = c * (a + b)

这个答案中,声明在没有替换符号的情况下,没有办法在创建之后改变符号的交换性,但也许有一种简单的方法可以在块中更改像这样的表达式的所有符号?

python sympy commutativity

2
推荐指数
1
解决办法
195
查看次数