Python Matplotlib Quiver的错误方向
IM在矢量计算上创建了一个ipython笔记本. (至少至少). 在这个代码块上,我试图具有函数x^2 + xy + y^2的伪色彩图 并绘制其梯度给出的矢量字段 u = 2x+y和v = 2y+x 然而,箭量图似乎是旋转90度的,因此不指向正确的方向 x = arange(-2.0, 2.0,00.1) y = arange(-2.0, 2.0,00.1) X,Y = meshgrid(x, y) Z = X**2 + X*Y + Y**2 GradX = (2*X+Y) GradY = (2*Y+X) figure(figsize=(10, 10)) im = imshow(Z, cmap=cm.RdYlBu, interpolation='none', extent=[-2,2,-2,2]) quiver(X, Y, GradX, GradY, angles='xy', scale_units='xy') show() 解决方案 我怀疑您需要: im = i
0 2023-11-17
编程技术问答社区
渐进式微分法与交感法
我正在尝试制作一个python proram,以找到衍生物和积分,并展示如何.到目前为止,我发现有一个Integral_Steps函数返回所使用的步骤,但是我尚未找到等效的分化. 有人知道是否有同等学历? 如果没有,您对如何找到找到衍生物所需的步骤有任何想法吗? 解决方案 方法1(手动) 查看代码,表达式树的每个特定节点的逻辑生活在这将使您可以将代码添加到这些_eval_derivative方法中,以追踪整个过程并找到所有步骤. 方法2(使用示踪剂) python有多个 tracing packages. python-hunter @ionelmc 实际上非常好,并且非常适合此用例. 除其他许多功能外,它允许在函数开始执行时安装某些回调,而当功能返回其值时,它允许安装另一个回调.实际上,这正是我们需要的. 这是一个示例,显示了如何使用此方法(我在Python 3.7.3,Sympy 1.7和Hunter 3.3.1上进行了测试):
4 2023-10-13
编程技术问答社区
Sympy中的链条规则
我正在尝试使用Sympy进行一些基本实践.我想相对于极性坐标中的半径参数,在矩形坐标中象征性的第二个衍生物. 我想要一个不错的链条规则符号表达式,它可以在其中计算它的内容,并使无法进一步简化的内容保持不变. from sympy import * init_session() x, y, r, t = symbols('x y r t') # r (radius), t (angle theta) f, g = symbols('f g', cls=Function) g = f(x,y) x = r * cos(t) y = r* sin(t) Derivative(g,r, 2).doit() 此代码得出0.有没有办法获得答案的符号表示,而不是0? 解决方案 简短答案: 您的命令失败. 长答案: x, y, r, t = symbols('x y r t') # r (radius), t (angle theta) f, g = symbols(
14 2023-10-13
编程技术问答社区
Python-Sympy 最小值和最大值
我正在尝试学习Sympy的演算功能,并且能够通过以下方式获得第二个衍生物的根源: import numpy as np from numpy import linspace, math, arange, linspace from sympy import * import sympy as sp import math x = Symbol('x') f = (x**4) - (24*x**2) + 80 fd = diff(f) fdd = diff(fd) print(fd) print(fdd) polyRoots = solveset(f,x) dRoots = solveset(fd,x) #gets critical x values ddRoots = solveset(fdd,x) 如何将我从drots获得的值替换为原始方程式F,并输出一个值
4 2023-10-13
编程技术问答社区
用 Python 3 进行隐式微分?
我们如何在python 3中衍生一个隐式方程? 示例x^2+y^2=25差异化是:dy/dx=-x/y,尝试以下操作: from sympy import * init_printing(use_unicode=True) x = symbols('x') y = Function('y')(x) eq = x**2+y**2-25 sol = diff(eq, x) print(sol) 但显示: 2*x + 2*y(x)*Derivative(y(x), x) 如何获得-x/y? 解决方案 Sympy具有函数idiff,它可以执行您想要的 In [2]: idiff(x**2+y**2-25, y, x) Out[2]: -x ─── y 其他解决方案 您可以使用隐式函数定理,该定理指出,当两个变量x,y,与隐式方程f(x, y) = 0相关,然后相对于x等于- (df/dx) / (df/dy)(只要部分衍生物是连续的,df/dy
2 2023-10-13
编程技术问答社区
带有索引变量的sympy求和
我尝试创建一个带有索引变量的总和的sympy表达式-sympy">在这里 但是,我无法对此表达式进行羔羊,并给出一个数组以获取总和. 这是不可能的吗? 解决方案 也许喜欢吗? s = Sum(Indexed('x',i),(i,1,3)) f = lambda x: Subs(s.doit(), [s.function.subs(s.variables[0], j) for j in range(s.limits[0][1], s.limits[0][2] + 1)], x).doit() >>> f((30,10,2)) 42 其他解决方案 您可以使用lambdify.只需确保总和的限制与numpy数组的迭代匹配. from sympy import Sum, symbols, Indexed, lambdify import numpy as np x, i = symbols("x i") s = Sum(Indexed('x',i),(i,0,3))
18 2023-10-13
编程技术问答社区
用jQuery确定安卓的取消/回扫(从左到右滑动)。
在Android上,不使用Sencha或JQTouch或JQMobile之类的框架,但是使用JQuery(常规jQuery),我想检测一个取消/背面滑动(从左到右滑动).到目前为止,我已经完成了一些成就,但是我正在尝试确定在jQuery中实现的数学公式,以便我捕获一个从左到右的滑动事件,而不是另一种手势.你建议什么?我想我需要某种可接受的差异.我假设有某种演算公式可以在这里重新申请,但不幸的是,我回避了大学的微积分.因此,您的答案希望对我进行教育. 这是一些示例x,y开始/结束数据要播放: (a)从左中部到右上向对角线刷(在这种情况下是不良的手势) 21,269-278,85 (b)从左中间到右下对角线刷(在这种情况下是不良的手势) 13,269-331,436 (c)从左中间到中间(一个理想的手势)刷直(某种) 34,267-326,266 或 36,494-355,479 var gnStartX = 0; var gnSt
10 2023-10-12
编程技术问答社区
LibGDX路径(CatmullRomSpline)恒定速度
我正在尝试使用libgdx catmullromspline在路径上达到持续的速度,并且我遇到问题.我已经尝试研究了这一主题,包括阅读LibGDX Wiki,但是他们实现恒定速度的解释确实没有任何意义,我无法获得他们的工作方法. 接口 - & - 花键 就我而言,衍生值非常大(在数百个中),因此,当将数字在0-1之间划分衍生物时,结果非常小,运动非常慢,仍然不恒定.所以我不确定他们的示例如何工作. 在我的示例中,我有几个视觉辅助工具与球的速度相吻合,屏幕底部的条随速度的增加而增加,颜色也随着速度的增加而从白色变为红色./p> 在我的path.java的ACT()方法中,我有两个部分从[1]和[2]开始评论.第一个是正常的,可变速度通过路径,第二个是我失败的尝试使libgdx Wiki持续速度工作的尝试失败.因此,只需将这些行解开以在两个版本之间切换. 我对恒定速度的想法涉及根据路径的总长度(使用样条上的近似长度(1000)方法)来弄清楚速度,然后使用派生函数来确定给定瞬时的
8 2023-09-08
编程技术问答社区
如何对颜色进行二维分类?
我目前正在进行一个爱好项目,以自动解决流行的手机游戏我喜欢Hue 的难题.该游戏可用在这里. 基本上,游戏的整个前提是,您为您提供了一堆在网格中组织的彩色矩形块.您可以交换大多数块,除了几个固定块,这些块标记为黑点.游戏的目的是交换块,以便您获得二维色谱.对颜色进行排序,使每个块的颜色大约是周围颜色的平均值. (对不起,我不知道任何颜色理论,但我要寻找的是一个词.)这是一个典型的难题: 我已经能够通过ADB进行屏幕截图,从块中提取RGB矩阵,并标记哪些块为"固定".我在此问题的实际算法部分遇到了麻烦. 这是我到目前为止所做的: 将RGB转换为HSV,然后在一维列表中通过色相对颜色进行排序.这给了我一个频谱,但是我不知道如何将此结果转换为两个维度. 将颜色留在RGB中,并试图以奇异的颜色工作.我可能在这里可以做一些多变量的演算,但是困难在于某些颜色共享其RGB值中的一个或多个.有必要考虑所有三种颜色. 使用欧几里得距离找到每对颜色之间的距离.我知道最终的目标是要
10 2023-09-07
编程技术问答社区
由网格值定义的曲面下的线型积分-Python
我需要计算两个点(x1,y1)和(x2,y2)之间的线积分. 我不确定使用Python使用此过程的最佳工具/方法. 由于我没有代表表面的函数,而是在均匀固定的网格格里德上的点上值,所以我假设我需要使用以下方法之一 trapz -- Use trapezoidal rule to compute integral from samples. cumtrapz -- Use trapezoidal rule to cumulatively compute integral. simps -- Use Simpson's rule to compute integral from samples. romb -- Use Romberg Integration to compute integral from (2**k + 1) evenly-spac
4 2023-08-22
编程技术问答社区
Pyth-从转折点坐标生成多项式
使用多项式转弯点的坐标列表,我试图找到多项式系数的列表.上图以图形方式显示了我要解决的内容. 我试图使用numpy.polyfit生成多项式,但是给出的多项式在任何地方都经过这些点,而不是在转弯点上. 是否存在可以执行此操作的函数? 如果没有这样的功能,我认为的方法是集成(x-turningX[0])(x-turningX[1])(x-turningX[n])以找到多项式,但我不确定如何在Python中进行此操作. 解决方案 您可以使用 scipy.interpolate.CubicHermiteSpline 通过为dydx参数提供一个零数组.例如,此代码 In [60]: import numpy as np In [61]: from scipy.interpolate import CubicHermiteSpline In [62]: x = np.array([1, 2.5, 4.5, 6, 7]) # x coordinates of t
16 2023-08-22
编程技术问答社区
scipy.integration.quad precision on big numbers
我尝试通过scipy.integrate.quad()来计算这样的积分(实际上是与其PDF的指数分布的CDF): import numpy as np from scipy.integrate import quad def g(x): return .5 * np.exp(-.5 * x) print quad(g, a=0., b=np.inf) print quad(g, a=0., b=10**6) print quad(g, a=0., b=10**5) print quad(g, a=0., b=10**4) 结果如下: (1.0, 3.5807346295637055e-11) (0.0, 0.0) (3.881683817604194e-22, 7.717972744764185e-22) (1.0, 1.6059202674761255e-14) 尽管使用np.inf解决了问题,所有使用大型上积分极限的尝试都会产生不正确的答案. s
4 2023-08-21
编程技术问答社区
递归地找到第二个导数
我正在尝试在C中编写一个程序,该程序找到了给出x的f(x)的第二个衍生物的数值.当我使用我的功能找到第一个衍生物时,一切似乎都可以正常工作,但是递归的第二个衍生部分总是给我0.0.这是我的功能: double derivative(double (*f)(double), double x0, int order) { if(order == 1){ const double delta = 1.0e-6; double x1 = x0-delta; double x2 = x0+delta; double y1 = f(x1); double y2 = f(x2); return (y2 - y1) / (x2 - x1); } else if(order == 2) { const double delta = 1.0e-6; dou
10 2023-08-02
编程技术问答社区
在 R 中计算梯度和哈希值
您知道,函数的梯度是以下向量: 和黑森是以下矩阵: 现在,我想知道,是否有任何方法可以在给定点的用户定义函数中计算它们? 首先,我找到了一个名为 numDeriv ,似乎具有必要的功能grad和hessian 假设我们得到了函数f(x,y)= x^2 * x^3,我们需要在该点计算梯度和黑森(x = 1,y = 2). 这已经说过,我在r: 中定义了此功能 dummy
6 2023-07-27
编程技术问答社区
如何用标准代数符号输入多项式并求导?(Python)
我在计算衍生物时没有问题..这只是我不知道在标准代数符号中处理整个多项式:p 解决方案 对于Python中的计算机代数, sympy 是要走的方式. 计算sympy中多项式的导数很简单: >>> import sympy as sp >>> x = sp.symbols('x') >>> sp.diff(3*x**4 + 8*x**2 - 3*x + 1) 12*x**3 + 16*x - 3 其他解决方案 代码并不简洁,因为我想清楚地显示每个步骤如何计算. import re def FirstDerivative(poly): "Given a polynominal, output its first derivative" rslt = "" for sign, coef, expo in re.findall("([\+-]?)\s?(\d?)\*?x\*?\*?(\d?)", '+' + poly): coef = int(sign
14 2023-07-22
编程技术问答社区
Pytorch最有效的Jacobian/Hessian计算
我正在寻找最有效的方法来通过pytorch获得函数的雅各布,并且到目前为止提出了以下解决方案: # Setup def func(X): return torch.stack((X.pow(2).sum(1), X.pow(3).sum(1), X.pow(4).sum(1)),1) X = Variable(torch.ones(1,int(1e5))*2.00094, requires_grad=True).cuda() # Solution 1: t = time() Y = func(X) J = torch.zeros(3, int(1e5)) for i in range(3): J[i] = grad(Y[0][i], X, create_graph=True, retain_graph=True, allow_unused=True)[0]
26 2023-07-16
编程技术问答社区
在Python 3中绘制革命的实体图(可能是matplotlib)。
问候问题: r是xy平面中的一个区域,该区域由抛物线y = x^2+1和y = x+3的线.通过围绕X轴旋转R旋转R旋转形成.我需要在2D和Solid Revolution 3D中绘制抛物线和线条,如何? 我已经安装了Anaconda. 解决方案 You could use plot_surface: import numpy as np import matplotlib.pyplot as plt import mpl_toolkits.mplot3d.axes3d as axes3d fig = plt.figure() ax = fig.add_subplot(1, 1, 1, projection='3d') u = np.linspace(-1, 2, 60) v = np.linspace(0, 2*np.pi, 60) U, V = np.meshgrid(u, v) X = U Y1 = (U**2 + 1)*np.cos(V) Z1 = (U
20 2023-07-13
编程技术问答社区
基于典范的着色--如何计算轮廓的法线和等值线
我正在使用现在在论文的第四页上,它指出 np (n下标P)是Δω轮廓的态度. ▽IP(还包括正交上标)是点 p 处的等值器,这是梯度旋转90度. 我的多变量演算是生锈的,但是我们如何使用Python库计算 np 和 ip ? np 在 p p 上也不是不同的 解决方案 有不同的方法来计算这些变量,这都取决于您对该边界的数字描述. n_p是轮廓的正常方向. 通常,如果您的轮廓用分析方程式描述,或者您可以编写近似轮廓的分析方程(例如,拟合5分的样条曲线(在您想要的点的每一侧2个),则可以得出该样条,在要使用 的点计算切线线 然后,在该线路中获取一个单位向量,并将正顺序向量转到该线路.所有这些都很容易做(询问您是否不明白). 然后,您拥有 iSophone .它看起来像是其模量的梯度的矢量正顺序.在图像处理中计算图像上的定向梯度是非常常用的技术.您可以轻松获得图像的X和Y衍生物(提示: numpy.gradient 或 so Python渐变).然后,图像的总梯度
10 2023-07-08
编程技术问答社区