在Python中,我试图使用任何特性来求解一个不需要的方程。C=5,方程为c=10-20(exp(-0.15*x)- exp(-0.5*x))。如何用.0001的公差来求解x。
原谅我的入门级编程,伙计们。这是我上过的第一节课。
从数学导入exp c=5 def x(c):C=10-20(exp*(-0.15*x)- exp*(-0.5*x))返回x(5)
发布于 2017-11-06 05:31:21
您可能想看看SymPy。它是一个具有BSD许可证的Python专用代数符号操作库。如果您正在寻找“库存”/standard库解决方案,那么正如其他人所提到的,您将不得不做一些作业,并可能实现您自己的解决方案。
最后的想法是,除非这是一个类分配,或者您的老板对第三方开源库有病态的厌恶,否则没有理由不使用其中一个SciPy包。IIRC在很大程度上是作为高度优化的C二进制文件实现的,这些二进制文件封装在Python模块中,因此您可以获得惊人的快速性能和Python API的易用性。
发布于 2017-11-06 06:43:02
似乎您想要实现这个“从头开始”。以下几点提示:
希望你能从这些提示中解决这个问题。但这应该是一个答案,下面是代码:
def theFunction(x): return exp(-0.15*x) + exp(-0.5*x) - 0.2
error = 1.267
x = 1
littleBit = 1
while (abs(error) > 0.0001):
if error > 0: x += littleBit
else: x -= littleBit
oldError = error
error = theFunction(x)
if (error*oldError < 0): littleBit *= 0.5
print x注意,循环中的最后三行有点“聪明”--一个更简单的解决方案是设置littleBit = 0.00001,并在整个程序中保持它不变(这会慢得多,但仍然可以完成这项工作)。作为一项练习,我建议尝试以更简单的方式实现它,然后用两种方式花多长时间,看看您是否能够找到节省时间的方法。
https://stackoverflow.com/questions/47130113
复制相似问题