我有以下功能:defget_denom(n_comp,qs,x,cp,cs):'''len(n_comp)=1#numberofproteinslen(cp)=n_comp#proteinconcentrationlen(qp)=n_comp#proteincapacitylen(x)=3*n_comp+1#fitparameterslen(cs)=1'''k=x[0:n_comp]sigma=x[n_comp:2*n_comp]z=x[2*n_comp:3*n_comp]a=(sigma+z)*(k*(qs/cs)**(z-1))*cpdenom=np.sum(a)+csreturn
我正在做我的毕业设计,特别是关于流体动力学的,我有一个非线性方程组要求解,我选择牛顿法,所以我必须通过矩阵的雅可比矩阵(实际上是12x12矩阵).这个矩阵中的每个元素都是函数在某一点求值的导数,手工编写所有这些并计算每个导数是非常困难的;系统看起来像:f1(x1,x2,x3,...,x12)=0f2(x1,x2,x3,...,x12)=0...f12(x1,x2,x3,...,x12)=0其中x1、x2、x3是变量(温度、压力...等)我可以自动执行此操作吗?如果在Fortran中不行,我可以使用其他脚本语言作为Python(sympy模块)吗? 最佳答案
基于我发现的一个以前的例子here,我试图找出如何生成与我需要坚持的特定形式相对应的Fortran代码。所需的FORTRAN代码如下所示(itisbasedontheFitzHugh–Nagumomodel):SUBROUTINEFF(NE,U,PAR,F)!------------!DefinethenonlineartermIMPLICITNONEINTEGER,INTENT(IN)::NEDOUBLEPRECISION,INTENT(IN)::U(NE),PAR(*)DOUBLEPRECISION,INTENT(OUT)::F(NE)DOUBLEPRECISIONu,v,e,a1
TensorFlow是否提供了一种在Fortran中reshape张量的方法(列优先顺序?NumPy允许:a=...np.reshape(a,(32,32,3),order='F')我正在尝试将CIFAR图像reshape为32x32x3(来自形状为3072x1的矢量),但我得到的图像看起来像这样:在Numpy中使用Fortran顺序可以解决问题,但我需要在TensorFlow中执行相同的操作。编辑:我现在意识到我可以通过整形为3x32x32然后转置输出来获得正确的输出。我仍然有点惊讶TF没有提供行优先或列优先顺序的开箱即用的reshape。 最佳答案
计算几何问题:在多边形(例如BCDE)的边(例如EB)上随机选择点P0,以找到可能的点(即,P1,P2,P3,...)基于给定距离(即r)在其他边上。下面的演示展示了一个解决方案,它通过找到以点P0为中心的圆与多边形的边之间的交点。所以这个问题基本上可以通过Circle--Line-Segment求交分析来解决。我想知道在计算成本方面对于这个非常简单的问题是否有更有效的方法?该过程将被评估数次百万次,因此任何改进都是有意义的。最终的解决方案将受益于Python的力量;如果需要,核心计算将使用Fortran。更新:感谢您的意见。请考虑我对评论的评论,这有助于进一步澄清问题。不愿意在这里重
我编写了以下程序来比较python和c/fortran的速度。为了获得程序使用的时间,我使用了“时间”命令。所有程序计算xx+yy+z*z的平方根,其中x、y、z是float。我使用了平方根,因为它是最耗时的部分之一科学计算,我参与其中。我有以下时间:fortran0m29.9s//c0m20.7s//python30m10.8s根据我做的简单测试发现Python不推荐用于科学计算。但可能我的代码效率很低。您认为我可以仅针对这个简单的测试用例提高我的代码的效率吗?语言:programroot_squareimplicitnoneintegeri,jrealx,y,z,rx=1.0y=2
我想使用docstring或类似的东西来记录我的fortran例程,它可以与pythonhelp命令一起使用。f2py自动生成的docstring非常不够用,我需要像使用python函数docstring一样添加更多详细信息。在我看来,它应该是这样的:我的模组.f:subroutinefoo()!Thisismyfunctionendsubroutine在pythonsession中:>>>importmymod>>>help(mymod.foo) 最佳答案 一个有点肮脏的解决方案是将文档保存在ascii文件中并在运行时加载它们。f
我知道并使用过f2py2e包装一些旧的Fortran77代码,但我的理解是它不适用于较新的Fortran95代码。我已经研究了我应该使用什么,并且遇到了fwrap和G3f2py,它们似乎都没有对它们的当前状态或如何使用它们给出任何解释。我看到f2py的版本有使用第三代f2py的选项,但是被注释为无功能。鉴于此,我不知道应该使用哪个项目。我应该使用哪一个?这个问题现在已经交叉发布到(并在)计算科学堆栈交换站点作为WhichpackageshouldIusetowrapModernFortranCodewithPython? 最佳答案
我想在Python中调用Fortran共享库中的一些函数。我在网上找到了一些链接并阅读了它们,根据我的发现,我应该这样做libadd=cdll.LoadLibrary('./libbin.so')加载共享对象。但是,此共享库包含来自另一个共享库的一些符号。我阅读了cdll的帮助,但似乎无法同时加载多个共享对象文件。我如何调用这个Fortran库中的函数,它很可能是由英特尔Fortran编译器编译的? 最佳答案 您需要了解共享对象中函数的签名。您是否有源代码或一些解释函数名称和参数类型的引用资料?例如,我有这个源代码(mult.f90
我想在Python中调用Fortran共享库中的一些函数。我在网上找到了一些链接并阅读了它们,根据我的发现,我应该这样做libadd=cdll.LoadLibrary('./libbin.so')加载共享对象。但是,此共享库包含来自另一个共享库的一些符号。我阅读了cdll的帮助,但似乎无法同时加载多个共享对象文件。我如何调用这个Fortran库中的函数,它很可能是由英特尔Fortran编译器编译的? 最佳答案 您需要了解共享对象中函数的签名。您是否有源代码或一些解释函数名称和参数类型的引用资料?例如,我有这个源代码(mult.f90