我想找到以下指数方程的数值解,其中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))
您的代码的第一位似乎使用了与问题不同的方程式:1-r而不是r。
该方程的有效答案是1,2.4886大约可以在这里看到。使用第二个参数fsolve指定一个初始估计值。我认为由于0.1离1您很近,所以可以得到该结果。使用2.1开始估计,我得到另一个答案2.4886。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。