当x等于:1.46163213... 时,伽马函数取得最小值:0.88560319441088...
一下是代码演示(想了一下,这里代码必须要用四分位距才能很好算出结果):
import math
loss = 1e-30
def get_min_gamma(m, n):
num = abs(n-m) / 4
num1 = m + num * 0
num2 = m + num * 1
num3 = m + num * 2
num4 = m + num * 3
num5 = m + num * 4
a1 = math.gamma(num1)
a2 = math.gamma(num2)
a3 = math.gamma(num3)
a4 = math.gamma(num4)
a5 = math.gamma(num5)
print("当前段最小最大值:", (min(a1, a5), max(a1, a5)), "\t分别对应的x值", (num1, num5), "\t误差值", (abs(a1 - a5), abs(num1 -num5)))
if abs(a1 - a5) <= loss and abs(a1 - a3) <= loss:
return
if a2 > a4:
get_min_gamma(num3, num5)
elif a2 < a4:
get_min_gamma(num1, num3)
else:
get_min_gamma(num2, num4)
get_min_gamma(1, 2)
输出结果:
C:\Users\Administrator\Anaconda3\python.exe C:/Users/Administrator/Desktop/test.py
当前段最小最大值: (1.0, 1.0) 分别对应的x值 (1.0, 2.0) 误差值 (0.0, 1.0)
当前段最小最大值: (0.886226925452758, 1.0) 分别对应的x值 (1.0, 1.5) 误差值 (0.11377307454724195, 0.5)
当前段最小最大值: (0.886226925452758, 0.9064024770554773) 分别对应的x值 (1.25, 1.5) 误差值 (0.02017555160271922, 0.25)
当前段最小最大值: (0.886226925452758, 0.8889135691562254) 分别对应的x值 (1.375, 1.5) 误差值 (0.002686643703467384, 0.125)
当前段最小最大值: (0.8858546203723766, 0.886226925452758) 分别对应的x值 (1.4375, 1.5) 误差值 (0.00037230508038144094, 0.0625)
当前段最小最大值: (0.8856248564840745, 0.8858546203723766) 分别对应的x值 (1.4375, 1.46875) 误差值 (0.0002297638883020925, 0.03125)
当前段最小最大值: (0.8856248564840745, 0.8856342859692345) 分别对应的x值 (1.453125, 1.46875) 误差值 (9.429485160028506e-06, 0.015625)
当前段最小最大值: (0.8856034012131794, 0.8856248564840745) 分别对应的x值 (1.4609375, 1.46875) 误差值 (2.1455270895143208e-05, 0.0078125)
当前段最小最大值: (0.8856034012131794, 0.8856076096856554) 分别对应的x值 (1.4609375, 1.46484375) 误差值 (4.208472476063818e-06, 0.00390625)
当前段最小最大值: (0.8856034012131794, 0.8856038727761968) 分别对应的x值 (1.4609375, 1.462890625) 误差值 (4.715630174123575e-07, 0.001953125)
当前段最小最大值: (0.8856032284630198, 0.8856034012131794) 分别对应的x值 (1.4609375, 1.4619140625) 误差值 (1.7275015962159301e-07, 0.0009765625)
当前段最小最大值: (0.8856032126595705, 0.8856032284630198) 分别对应的x值 (1.46142578125, 1.4619140625) 误差值 (1.5803449215923138e-08, 0.00048828125)
当前段最小最大值: (0.8856031950223727, 0.8856032126595705) 分别对应的x值 (1.46142578125, 1.461669921875) 误差值 (1.763719781333606e-08, 0.000244140625)
当前段最小最大值: (0.8856031950223727, 0.8856031974555281) 分别对应的x值 (1.4615478515625, 1.461669921875) 误差值 (2.4331553438727838e-09, 0.0001220703125)
当前段最小最大值: (0.8856031946426789, 0.8856031950223727) 分别对应的x值 (1.46160888671875, 1.461669921875) 误差值 (3.7969383193114936e-10, 6.103515625e-05)
当前段最小最大值: (0.8856031944334692, 0.8856031946426789) 分别对应的x值 (1.46160888671875, 1.461639404296875) 误差值 (2.0920964960424726e-10, 3.0517578125e-05)
当前段最小最大值: (0.8856031944334692, 0.8856031944383083) 分别对应的x值 (1.4616241455078125, 1.461639404296875) 误差值 (4.839018075131207e-12, 1.52587890625e-05)
当前段最小最大值: (0.8856031944109473, 0.8856031944334692) 分别对应的x值 (1.4616317749023438, 1.461639404296875) 误差值 (2.2521984277545926e-11, 7.62939453125e-06)
当前段最小最大值: (0.8856031944109473, 0.8856031944159727) 分别对应的x值 (1.4616317749023438, 1.4616355895996094) 误差值 (5.025424520965771e-12, 3.814697265625e-06)
当前段最小最大值: (0.8856031944109473, 0.8856031944119014) 分别对应的x值 (1.4616317749023438, 1.4616336822509766) 误差值 (9.541256673628595e-13, 1.9073486328125e-06)
当前段最小最大值: (0.8856031944109473, 0.8856031944110347) 分别对应的x值 (1.4616317749023438, 1.4616327285766602) 误差值 (8.748557434046234e-14, 9.5367431640625e-07)
当前段最小最大值: (0.8856031944108936, 0.8856031944109473) 分别对应的x值 (1.4616317749023438, 1.461632251739502) 误差值 (5.362377208939506e-14, 4.76837158203125e-07)
当前段最小最大值: (0.8856031944108936, 0.8856031944108962) 分别对应的x值 (1.4616320133209229, 1.461632251739502) 误差值 (2.55351295663786e-15, 2.384185791015625e-07)
当前段最小最大值: (0.8856031944108885, 0.8856031944108936) 分别对应的x值 (1.4616321325302124, 1.461632251739502) 误差值 (5.10702591327572e-15, 1.1920928955078125e-07)
当前段最小最大值: (0.8856031944108885, 0.8856031944108896) 分别对应的x值 (1.4616321325302124, 1.4616321921348572) 误差值 (1.1102230246251565e-15, 5.960464477539063e-08)
当前段最小最大值: (0.8856031944108885, 0.8856031944108889) 分别对应的x值 (1.4616321325302124, 1.4616321623325348) 误差值 (3.3306690738754696e-16, 2.9802322387695312e-08)
当前段最小最大值: (0.8856031944108885, 0.8856031944108886) 分别对应的x值 (1.4616321325302124, 1.4616321474313736) 误差值 (1.1102230246251565e-16, 1.4901161193847656e-08)
当前段最小最大值: (0.8856031944108885, 0.8856031944108885) 分别对应的x值 (1.4616321325302124, 1.461632139980793) 误差值 (0.0, 7.450580596923828e-09)
当前段最小最大值: (0.8856031944108885, 0.8856031944108887) 分别对应的x值 (1.4616321325302124, 1.4616321362555027) 误差值 (2.220446049250313e-16, 3.725290298461914e-09)
当前段最小最大值: (0.8856031944108887, 0.8856031944108887) 分别对应的x值 (1.4616321343928576, 1.4616321362555027) 误差值 (0.0, 1.862645149230957e-09)
当前段最小最大值: (0.8856031944108887, 0.8856031944108889) 分别对应的x值 (1.4616321343928576, 1.4616321353241801) 误差值 (1.1102230246251565e-16, 9.313225746154785e-10)
当前段最小最大值: (0.8856031944108885, 0.8856031944108887) 分别对应的x值 (1.4616321343928576, 1.4616321348585188) 误差值 (2.220446049250313e-16, 4.656612873077393e-10)
当前段最小最大值: (0.8856031944108887, 0.8856031944108887) 分别对应的x值 (1.4616321345092729, 1.4616321347421035) 误差值 (0.0, 2.3283064365386963e-10)
Process finished with exit code 0