小编Rod*_*edo的帖子

如何在SymPy中扩展矩阵表达式?

在SymPy中,我试图执行矩阵乘法并在之后展开它.但是,SymPy似乎不支持矩阵表达式的扩展.例如,这是矩阵的4阶Runge-Kutta(RK4):

from sympy import init_session
init_session()
from sympy import *

A = MatrixSymbol('A', 3, 3)
x = MatrixSymbol('x', 3, 1)
dt = symbols('dt')

k1 = A*x
k2 = A*(x + S(1)/2*k1*dt)
k3 = A*(x + S(1)/2*k2*dt)
k4 = A*(x + k3*dt)
final = dt*S(1)/6*(k1 + 2*k2 + 2*k3 + k4)
final.expand()
Run Code Online (Sandbox Code Playgroud)

产生结果

Traceback (most recent call last)
<ipython-input-38-b3ff67883c61> in <module>()
     12 final = dt*1/6*(k1+2*k2+2*k3+k4)
     13 
---> 14 final.expand()

AttributeError: 'MatMul' object has no attribute 'expand'
Run Code Online (Sandbox Code Playgroud)

我希望表达式可以像标量变量一样扩展:

A,x,dt = symbols('A x …
Run Code Online (Sandbox Code Playgroud)

python matrix symbolic-math sympy

9
推荐指数
1
解决办法
1210
查看次数

整数变量的最小值和最大值

让我们假设一个非常简单的约束:solve(x > 0 && x < 5).

Z3(或任何其他SMT求解器,或任何其他自动技术)可以计算x满足给定约束的(整数)变量的最小值和最大值吗?

在我们的例子中,最小值为1,最大值为4.

z3

8
推荐指数
2
解决办法
2655
查看次数

ZeroMQ上基于JSON的API

大多数现代API都是使用JSON构建的,并通过HTTP进行请求/响应消息传递.由于ZeroMQ是通过TCP,可以在ZeroMQ上构建基于JSON的API吗?如果是这样,优势是什么?用途是

  1. 开发人员为与一个或多个Web服务器通信的客户端/设备编写应用程序,以及

  2. 网络服务器与网络服务器进行通信.

json zeromq

8
推荐指数
1
解决办法
3877
查看次数

如何求解非负整数上的线性方程组?

给定一个线性系统Ax = b,矩阵A和向量b具有整数值,我想找到解决这个方程的所有非负整数向量x.

到目前为止,我已经找到了一些技术,如Smith正规形式Hermite正规形式的矩阵来找到整数解,我想我可以使用线性求解器来找到非负解.有没有一个可以让这更容易的图书馆?

Python解决方案是理想的,但如果一个库存在于另一种语言中我想知道它.

python matrix linear-algebra sympy integer-programming

8
推荐指数
1
解决办法
1316
查看次数

如何通过链接器处理共享对象(.so)中的函数main()?

假设我有

  • source.o没有函数的对象文件()main.

  • libmain.so带有函数的共享对象()main.

当链接器动态链接以创建二进制文件时,链接器如何处理入口点source.bin

c linker shared-libraries

7
推荐指数
1
解决办法
3110
查看次数

如何使用PuLP的Gurobi求解器设置MIP启动(初始解决方案)?

我正在使用PuLPPython中的模块来制定混合整数程序.我试图找出如何MIP start通过PuLP接口设置(即程序的可行解决方案).

这里MIP start给出如何设置的详细信息

PuLP软件包的开发人员声称您可以通过此处PuLP界面访问完整的Gurobi模型

贴在下面是两个完整的模型.我已经使这些尽可能小,同时防止gurobi求解器使用启发式找到最佳值.

我试图在两个模型中设置初始解决方案(到最佳值),但在PuLP模型中它被忽略,但在gurobipy模型中它按预期工作.

如何通过PuLP接口为Gurobi解决方案设置初始解决方案?

from pulp import *

prob = LpProblem("min example",LpMinimize)

x1=LpVariable("x1",0,None,LpInteger)
x2=LpVariable("x2",0,None,LpInteger)
x3=LpVariable("x3",0,None,LpInteger)
x4=LpVariable("x4",0,None,LpInteger)

# Objective function
prob += 3*x1 + 5*x2 + 6*x3 + 9*x4

# A constraint
prob += -2*x1 + 6*x2 -3*x3 + 4*x4 >= 2, "Con1"
prob += -5*x1 + 3*x2 + x3 + 3*x4 >= -2, "Con2"
prob += …
Run Code Online (Sandbox Code Playgroud)

python mathematical-optimization gurobi integer-programming pulp

7
推荐指数
1
解决办法
5401
查看次数

Haskell 的 Data.Function.on 是做什么的?

我发现很难找到onHaskell 中的示例,而且我不明白 HoogleData.Function页面上的解释。请问,我可以提供其使用示例以及使用它使解决方案更简单或更高效的问题/代码示例吗?

haskell combinators

7
推荐指数
2
解决办法
180
查看次数

在C中使用逻辑运算符切换案例

我是C的新手,需要帮助.我的代码如下.

 #include<stdio.h>  
 #include<conio.h>  
 void main()
 {

  int suite=2;  

  switch(suite)
     {           
      case 1||2:
      printf("hi");

      case 3:
      printf("byee");

      default:
      printf("hello");
     }

  printf("I thought somebody");
  getche();
  }
Run Code Online (Sandbox Code Playgroud)

我在Turbo C工作,输出是helloI thought somebody.没有错误消息.

请让我知道这是如何工作的.

c switch-statement or-operator

6
推荐指数
2
解决办法
3万
查看次数

如何在 Python 中快速获得线性程序的可行解决方案?

目标:计算两个凸多面体的交集。

我正在使用scipy.spatial.HalfspaceIntersection它。下图显示了生成的交叉点:rviz-截图

我的问题:确定一个初始可行点。

您会看到,当前的Python实现scipy.spatial.HalfspaceIntersection需要将 aninterior_point作为参数传递。

interior_point : ndarray of floats, shape (ndim,)
清楚地指向由半空间定义的区域内。也称为可行点,可以通过线性规划获得。

现在,目前,我正在手动提供可行点,因为我只是在起草一个原型来试验HalfspaceIntersection. 但是现在我已经到了不想手动指定它的地步。

SciPy的优化模块scipy.optimize.linprog实现了两个通用线性规划 (LP)求解器:simplexinternal-point。但是,它们似乎需要成本函数。[ 1 ]

由于我想花费尽可能少的处理时间来计算这个可行点,我想知道如何在没有成本函数的情况下运行这些 LP 方法中的任何一个,即只运行直到解决方案达到可行状态。

问题:

  1. scipy.optimize.linprog计算这个可行的内点是正确的方法吗?

  2. 如果是,我如何在没有成本函数的情况下使用单纯形内点

  3. 为什么首先scipy.spatial.HalfspaceIntersection 需要将aninterior point作为参数传递?据我所知,半空间的交集是去除给定不等式集合的冗余不等式。为什么需要一个可行点?

python numpy linear-programming scipy computational-geometry

6
推荐指数
1
解决办法
2000
查看次数

在 Haskell 中,[0.1..1] 返回 [0.1,1.1]。为什么?

[0.1..1]我发现Haskell 将返回该列表,但我不明白为什么会这样[0.1,1.1]。谁能给我解释一下吗?

haskell list

6
推荐指数
1
解决办法
159
查看次数