基于我在这里找到的一个例子,我试图从使用的对角矩阵创建一个函数sumpy.diag
myM = Matrix([
[x1, 4, 4],
[4, x2, 4],
[4, 4, x3]])
Run Code Online (Sandbox Code Playgroud)
这是使用此例程创建的,例如:
import sympy as sp
import numpy as np
x1 = sp.Symbol('x1')
x2 = sp.Symbol('x2')
x3 = sp.Symbol('x3')
X = sp.Matrix([x1, x2, x3])
myM = 4 * sp.ones(3, 3)
sp.diag(*X) + myM - sp.diag(*np.diag(myM))
Run Code Online (Sandbox Code Playgroud)
现在我将要创建一个函数,使用lambdify的ufuncify,采用一个numpy.array或长度3(像np.array([0.1,0.2,0.3]))作为输入,并给出输出作为根据矩阵myM
myM = Matrix([
[0.1, 4, 4],
[4, 0.2, 4],
[4, 4, 0.3]])
Run Code Online (Sandbox Code Playgroud)
最终我需要使用这种方法象征性地创建雅可比矩阵:
并且由于函数形式可能在计算过程中发生变化,因此以符号方式计算雅可比矩阵将非常有用.
我试图绘制具有相同比例的字段.上面的图像值比下面的图像值高10倍,但它们在imshow中变成了相同的颜色.如何将两者设置为具有相同的颜色比例?
我添加了我正在使用的代码图像..
def show_field(field1,field2):
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)
ax.imshow(field1,cmap=plt.cm.YlGn)
ax.set_adjustable('box-forced')
ax.autoscale(False)
ax2 = fig.add_subplot(2, 1, 2)
ax2.set_adjustable('box-forced')
ax2.imshow(field2,cmap=plt.cm.YlGn)
ax2.autoscale(False)
plt.show()
Run Code Online (Sandbox Code Playgroud) 基于我在这里找到的前一个例子,我试图找出如何生成一个Fortran代码,该代码对应于我需要坚持的特定形式.所需的FORTRAN代码将如下所示(它基于FitzHugh-Nagumo模型):
SUBROUTINE FF(NE,U,PAR,F)
! ---------- --
! Define the nonlinear term
IMPLICIT NONE
INTEGER, INTENT(IN) :: NE
DOUBLE PRECISION, INTENT(IN) :: U(NE),PAR(*)
DOUBLE PRECISION, INTENT(OUT) :: F(NE)
DOUBLE PRECISION u,v,e,a1,a0
u=U(1)
v=U(2)
e=PAR(1)
a1=PAR(2)
a0=PAR(3)
F(1)= u-u**3-v
F(2)= e*(u-a1*v-a0)
END SUBROUTINE FF
Run Code Online (Sandbox Code Playgroud)
我设法在SymPy中创建正确的表达式,但我还没弄清楚如何生成所需的代码codegen.这是我到目前为止的尝试:
from sympy import symbols,latex
from sympy.utilities.codegen import codegen
from sympy.tensor import IndexedBase, Idx
from sympy import Matrix
U, PAR = symbols('U PAR', cls=IndexedBase)
u = U[1]
v = U[2]
e = …Run Code Online (Sandbox Code Playgroud) 我是Theano的新手,我尝试实现反应扩散系统的数值积分器 - 此版本的FitzHugh-Nagumo模型:
现在我的表达是:
import theano as th
import theano.tensor as T
u = T.dmatrix('u')
v = T.dmatrix('v')
e = T.dscalar('e')
a0 = T.dscalar('a0')
a1 = T.dscalar('a1')
dudt = u - u**3 -v
dvdt = e*(u - a1*v - a0)
Run Code Online (Sandbox Code Playgroud)
所以我还没有实现有限差分拉普拉斯算子.我的问题是,在Theano中是否有一种聪明的方法可以做到这一点?
谁能给我一个如何在等高线图中标记特定等级的例子?我想标记该图中黑线的水平:

我使用以下代码:
plt.figure()
CS = plt.contour(X, Y,log_mu,levels = [np.log10(5e-8),np.log10(9e-5)])
CS = plt.contourf(X, Y,log_mu)
CB = plt.colorbar(CS, shrink=0.8, extend='both')
plt.xscale('log')
plt.yscale('log')
plt.show()
Run Code Online (Sandbox Code Playgroud)
并且可以在此获得该特定图的数据,用于等高线图的dpaste数据
我在安装Anaconda之前安装了Spyder IDE(在Ubuntu 14.04上),当我键入终端时,python我有anaconda python,我可以导入它的所有软件包.但是在Spyder上我仍然有原始的python,我无法导入Anaconda软件包,我怎样才能设置Spyder使用Anaconda python?
我有两个单独的时间序列pandas.dataframe,第一个 -series1条目较少,起始数据时间与第二个不同 - series2:
index1 = pd.date_range(start='2020-06-16 23:16:00', end='2020-06-16 23:40:30', freq='1T')
series1 = pd.Series(range(len(index1)), index=index1)
index2 = pd.date_range('2020-06-16 23:15:00', end='2020-06-16 23:50:30', freq='30S')
series2 = pd.Series(range(len(index2)), index=index2)
Run Code Online (Sandbox Code Playgroud)
我怎样才能重采样系列2匹配DatetimeIndex的series1?
学习使用PyPlot和Julia编程语言(版本0.4.5),我在尝试生成一个简单的情节时遇到了错误:
julia> using PyPlot
julia> x = linspace(0,100,1000)
linspace(0.0,100.0,1000)
julia> y = x.^2;
julia> plot(x,y)
signal (11): Segmentation fault
unknown function (ip: 0x32736)
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
有人知道这里发生了什么吗?
对于Python初学者来说,我有一个艰巨的任务,我需要从用LaTex编写的源文件导入一个表。我想我会使用表的名称作为标识符,然后从表的开头到结尾逐行写入数组。完成这项工作的“自然”方式是什么?
我有两个数组的绘图数据以未分类的方式存储,因此绘图不连续地从一个地方跳到另一个地方:
我试过一个在2D数组中找到最近点的例子:
import numpy as np
def distance(pt_1, pt_2):
pt_1 = np.array((pt_1[0], pt_1[1]))
pt_2 = np.array((pt_2[0], pt_2[1]))
return np.linalg.norm(pt_1-pt_2)
def closest_node(node, nodes):
nodes = np.asarray(nodes)
dist_2 = np.sum((nodes - node)**2, axis=1)
return np.argmin(dist_2)
a = []
for x in range(50000):
a.append((np.random.randint(0,1000),np.random.randint(0,1000)))
some_pt = (1, 2)
closest_node(some_pt, a)
Run Code Online (Sandbox Code Playgroud)
我能以某种方式使用它来"清理"我的数据吗?(在上面的代码中,a可以是我的数据)
我计算的示例数据是:
array([[ 2.08937872e+001, 1.99020033e+001, 2.28260611e+001,
6.27711094e+000, 3.30392288e+000, 1.30312878e+001,
8.80768833e+000, 1.31238275e+001, 1.57400130e+001,
5.00278061e+000, 1.70752624e+001, 1.79131456e+001,
1.50746185e+001, 2.50095731e+001, 2.15895974e+001,
1.23237801e+001, 1.14860312e+001, 1.44268222e+001,
6.37680265e+000, 7.81485403e+000],
[ -1.19702178e-001, -1.14050879e-001, -1.29711421e-001,
8.32977493e-001, 7.27437322e-001, …Run Code Online (Sandbox Code Playgroud)