找回密码
 欢迎注册
查看: 1083|回复: 1

[求助] 如何证明一个不等式?

[复制链接]
发表于 2024-1-3 15:35:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
stirling.png

求组合数n个不同物体里面选l个出来的组合数,当n非常大的时候,用stirling近似,可以得到如上的不等式
如何证明?
直接用stirling近似公式代入,比较复杂,之后似乎还用到了泰勒展开。
如果能用数学软件帮忙搞定,也请帮忙提供代码,谢谢。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2024-1-4 17:26:35 | 显示全部楼层
本帖最后由 convolution 于 2024-1-4 17:50 编辑


这是从一篇论文上摘录的,我发现可能这个不等式(2.3)有点夸张问题。我再补充论文紧接着下面的一个不等式(2.4), 这个(2.4)不等式通过验证,应该更合理
所以怀疑(2.3)可能有问题

OwJlIHFYU1.png

用如下python程序,验证, (2.4)的不等式更有价值,两者相差不大。
run出来结果是:
  1. (2.3) real=100891344545564193334812497256, appro=148533285492209528259287941159865671342389596554150160391285171318878020272760835447529914289758808878495
  2. 443820047263745070190270079252220959787460207837184, <font color="#ff0000"><b>real/appro=6.79250743099e-127</b></font>
  3. (2.4) real=100891344545564193334812497256, appro=101143884241459121791371837440, <b><font color="#ff0000">real/appro=0.997503163955</font></b>
复制代码
l = n/2的时候(n choose l)值最大
  1. #!/bin/env python
  2. # coding=utf-8
  3. from math import *
  4. n= 100

  5. real = factorial(n)/(factorial(n//2)**2)

  6. appro = n**n * exp(-n + 1/(12.0*n))/sqrt(2*pi*n)



  7. print '(2.3) real={}, appro={}, real/appro={}'.format(real, int(appro), real/appro)

  8. def H(x):
  9.     assert 0<x<1, 'x:{} should in (0,1)'.format(x)
  10.     return -x*log(x) - (1-x)*log(1-x)

  11. appro = exp(n*H(0.5))/sqrt(2*pi*n*0.5*0.5)

  12. print '(2.4) real={}, appro={}, real/appro={}'.format(real, int(appro), real/appro)
复制代码

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-23 17:29 , Processed in 0.026952 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表