找回密码
 欢迎注册
楼主: wayne

[提问] 用代数数逼近π

[复制链接]
发表于 2010-8-23 11:08:14 | 显示全部楼层
${49+23*sqrt(75)}/79$ 如果限定b=1,结果为 ${54+sqrt(78)}/20$

评分

参与人数 1威望 +6 鲜花 +10 收起 理由
wayne + 6 + 10

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-23 12:08:40 | 显示全部楼层
,咋算的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-23 12:42:16 | 显示全部楼层
穷举,改成3位数可以达到 ${66+68*sqrt(789)}/629$不过就有点慢了
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define MAX 999
  4. int main()
  5. {
  6. int a,b,c;
  7. double berr=10.0;
  8. int ba,bb,bc,bd;
  9. for(a=0;a<=MAX;a++)for(b=-MAX;b<=MAX;b++)for(c=0;c<=MAX;c++){
  10. double e=a+b*sqrt(c);
  11. double f=e/M_PI;
  12. int d=(int)ceil(f);
  13. if(-MAX<=d&&d<=MAX){
  14. double err=fabs(e/d-M_PI);
  15. if(err<berr){
  16. berr=err;ba=a;bb=b;bc=c;bd=d;
  17. }
  18. }
  19. d=(int)floor(f);
  20. if(-MAX<=d&&d<=MAX){
  21. double err=fabs(e/d-M_PI);
  22. if(err<berr){
  23. berr=err;ba=a;bb=b;bc=c;bd=d;
  24. }
  25. }
  26. }
  27. printf("(%d+%d*sqrt(%d))/%d:err %g\n",ba,bb,bc,bd,berr);
  28. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-23 12:44:04 | 显示全部楼层
在理论上有没有可以分析的余地呢
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-23 12:52:48 | 显示全部楼层
我感觉超越数是一个很大的盲区,似乎很少有这方面的研究。 总感觉 能在超越数的幂 的线性组合(权是整数)中找出名堂来
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-23 13:18:26 | 显示全部楼层
13# mathe 可以用floor(d+0.5)来实现 round 函数的功能,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-23 13:25:51 | 显示全部楼层
错了,有点乱,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-23 14:26:31 | 显示全部楼层
本帖最后由 zgg___ 于 2010-8-23 14:33 编辑 用代数数来逼近某个具体数值的方法是已有一定研究的,有兴趣可以了解一下传说中的LLL算法,Mathematica中是集成了这个算法的,大家可以敲入下面的话来试一试效果先……
  1. << NumberTheory`Recognize`
  2. f = Recognize[N[Pi, 25], 10, t]
  3. N[Solve[f == 0, t], 30] // MatrixForm
  4. N[Pi, 30]
复制代码

评分

参与人数 1威望 +6 鲜花 +6 收起 理由
wayne + 6 + 6 wonderful!!!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-23 14:28:34 | 显示全部楼层
15# wayne 就连超越数之和是不是超越数都很难证...
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-23 15:11:33 | 显示全部楼层
${453 + 802*sqrt(1000)}/8217$ ====================== 我的精度比mathe的最后的那个高一点 呵呵
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2025-2-23 00:05 , Processed in 0.036753 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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