开发者社区> 问答> 正文

使用Python或其他软件的指数方程的数值解

我想找到以下指数方程的数值解,其中a,b,c,d是常数,我想求解不等于1的r。

a ^ r + b ^ r = c ^ r + d ^ r(等式1)

我定义一个函数以使用Scipy.optimize.fsolve:

from scipy.optimize import fsolve
   def func(r,a,b,c,d):
       if r==1:
           return 10**5
       else:
           return ( a**(1-r)  +  b**(1-r) ) - ( c**(1-r)  + d**(1-r)  )


   fsolve(funcp,0.1, args=(5,5,4,7))

展开
收起
游客ufivfoddcd53c 2020-01-04 11:35:21 1060 0
1 条回答
写回答
取消 提交回答
  • 您的代码的第一位似乎使用了与问题不同的方程式:1-r而不是r。

    该方程的有效答案是1,2.4886大约可以在这里看到。使用第二个参数fsolve指定一个初始估计值。我认为由于0.1离1您很近,所以可以得到该结果。使用2.1开始估计,我得到另一个答案2.4886。

    2020-01-04 11:35:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载