我不确定在使用 numpy.gradient 时如何指定非均匀间距。
这是 y = x**2 的一些示例代码。
import numpy as np
import matplotlib.pyplot as plt
x = [0.0, 2.0, 4.0, 8.0, 16.0]
y = [0.0, 4.0, 16.0, 64.0, 256.0]
dydx = [0.0, 4.0, 8.0, 16.0, 32.0] # analytical solution
spacing = [0.0, 2.0, 2.0, 4.0, 8.0] #added a zero at the start to get length matching up with y
m = np.gradient(y, spacing)
plt.plot(x, y, 'bo',
x, dydx, 'r-', #analytical solution
x, m, 'ro') #calculated solution
plt.show()
Run Code Online (Sandbox Code Playgroud)
间距数组的长度总是比我想计算梯度的数组少一。添加零以使长度匹配(如在上面的示例代码中)给出了错误的答案,一个点的梯度是无限的。
我无法理解/遵循非均匀间距的 …
我有兴趣构建衍生计算器.我已经绞尽脑汁解决问题,但我还没有找到合适的解决方案.你可以提示如何开始吗?谢谢
对不起!我显然想要进行象征性的区分.
假设你有函数f(x)= x ^ 3 + 2x ^ 2 + x
我想显示导数,在这种情况下f'(x)= 3x ^ 2 + 4x + 1
我想在iPhone的objective-c中实现它.
我试图强迫Mathematica隐式区分形式的椭圆方程:
x^2/a^2+y^2/b^2 == 100
Run Code Online (Sandbox Code Playgroud)
用a = 8
和b = 6
.
我正在使用的命令如下所示:
D[x^2/a^2 + y^2/b^2 == 100/. y -> 3/4*Sqrt[6400-x^2], x]
Run Code Online (Sandbox Code Playgroud)
其中,y->3/4*Sqrt[6400-x^2]
来自解决y
的方面x
.
我按照这里的建议得到了这一点:http://www.hostsrv.com/webmaa/app1/MSP/webm1010/implicit
此脚本的输入是传统方式,即x和y之间的隐式关系在微积分教科书中表示.在Mathematica中,你需要使用y [x]代替y来明确这种关系.这是通过用y [x]替换y的所有出现在脚本中自动完成的.
但Mathematica提供的解决方案没有y'
或dy/dx
在其中(就像我手工解决它).所以我认为它没有得到正确解决.任何关于什么命令会让程序解决隐式差异的想法?谢谢.
我有一个四元数(4x1)和一个角速度矢量(3x1),我调用一个函数来计算微分四元数,如本网站所述.代码如下所示:
float wx = w.at<float>(0);
float wy = w.at<float>(1);
float wz = w.at<float>(2);
float qw = q.at<float>(3); //scalar component
float qx = q.at<float>(0);
float qy = q.at<float>(1);
float qz = q.at<float>(2);
q.at<float>(0) = 0.5f * (wx*qw + wy*qz - wz*qy); // qdiffx
q.at<float>(1) = 0.5f * (wy*qw + wz*qx - wx*qz); // qdiffy
q.at<float>(2) = 0.5f * (wz*qw + wx*qy - wy*qx); // qdiffz
q.at<float>(3) = -0.5f * (wx*qx + wy*qy + wz*qz); // qdiffw
Run Code Online (Sandbox Code Playgroud)
所以现在我将差分四元数存储在q中,然后通过简单地添加这个微分四元数来更新四元数. …
我们需要微分算子的两个矩阵[B]
和[C]
如:
B = sympy.Matrix([[ D(x), D(y) ],
[ D(y), D(x) ]])
C = sympy.Matrix([[ D(x), D(y) ]])
ans = B * sympy.Matrix([[x*y**2],
[x**2*y]])
print ans
[x**2 + y**2]
[ 4*x*y]
ans2 = ans * C
print ans2
[2*x, 2*y]
[4*y, 4*x]
Run Code Online (Sandbox Code Playgroud)
这也可以用于计算矢量场的卷曲,例如:
culr = sympy.Matrix([[ D(x), D(y), D(z) ]])
field = sympy.Matrix([[ x**2*y, x*y*z, -x**2*y**2 ]])
Run Code Online (Sandbox Code Playgroud)
要使用 Sympy 解决这个问题,必须创建以下 Python 类:
import sympy
class D( sympy.Derivative ):
def __init__( self, var ):
super( D, self ).__init__() …
Run Code Online (Sandbox Code Playgroud) python matrix sympy automatic-differentiation differentiation
我一直在用 sympy 做导数,我不知道在语法上会如何写。我尝试查找它,但没有一个解决方案有意义。例如,如果我试图x**5 + y**2 + z**4 = 8xyz
通过计算来区分,我该怎么做?z 是一个符号,还是一个像正则导数那样的函数?谢谢你。
我四处寻找我的问题的解决方案,我能找到的最好的是:
from sys import platform
if platform == "linux" or platform == "linux2":
# linux
elif platform == "darwin":
# OS X
elif platform == "win32":
# Windows...
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何将 Linux PC 与 android 区分开来,因为 android 是基于 Linux 的。如果这是可能的,我如何将 Mac OS 与 iOS 区分开来
我试图计算一些数据的导数,我试图比较有限差分和光谱方法输出的输出.但结果却截然不同,我无法弄明白为什么.
请考虑下面的示例代码
import numpy as np
from scipy import fftpack as sp
from matplotlib import pyplot as plt
x = np.arange(-100,100,1)
y = np.sin(x)
plt.plot(np.diff(y)/np.diff(x))
plt.plot(sp.diff(y))
plt.show()
Run Code Online (Sandbox Code Playgroud)
橙色输出是fftpack
输出.没关系细微之处,这只是为了举个例子.
那么,为什么他们如此不同?他们不应该(大致)相同吗?
我很确定使用fftpack.diff
句点关键字可以纠正不同的幅度,但我无法确定哪个是正确的句号(我认为它应该是period=1
但不起作用).
此外,如何使用numpy进行自己的光谱差异化?
我有一个接受多变量参数 x 的函数。这里 x = [x1,x2,x3]。假设我的函数如下所示: f(x,T) = np.dot(x,T) + np.exp(np.dot(x,T) 其中 T 是一个常数。
我对查找 df/dx1、df/dx2 和 df/dx3 函数很感兴趣。
我使用 scipy diff 取得了一些成功,但我有点怀疑,因为它使用了数值差异。昨天,我的同事指给我 Autograd (github)。由于它似乎是一个流行的包,我希望这里有人知道如何使用这个包来获得偏微分。我对这个库的初步测试表明 grad 函数只对第一个参数进行微分。我不确定如何将其扩展到其他参数。任何帮助将不胜感激。
谢谢。
python automatic-differentiation differentiation python-2.7 autograd
我已经定义了一个类型类Differentiable
,它可以由任何可以对无穷小进行操作的类型来实现。下面是一个例子:
class Fractional a => Differentiable a where
dif :: (a -> a) -> (a -> a)
difs :: (a -> a) -> [a -> a]
difs = iterate dif
instance Differentiable Double where
dif f x = (f (x + dx) - f(x)) / dx
where dx = 0.000001
func :: Double -> Double
func = exp
Run Code Online (Sandbox Code Playgroud)
我还定义了一个简单的Double -> Double
函数来区分。
但是当我在ghc
这种情况下进行测试时:
... $ ghci
GHCi, version 8.8.4: https://www.haskell.org/ghc/ :? for help
Prelude> :l …
Run Code Online (Sandbox Code Playgroud) differentiation ×10
python ×5
derivative ×3
math ×2
numpy ×2
python-3.x ×2
sympy ×2
autograd ×1
calculator ×1
haskell ×1
implicit ×1
matrix ×1
prediction ×1
python-2.7 ×1
quaternions ×1
scipy ×1