数学吧 关注:938,017贴子:8,952,628

回复:估算一下

只看楼主收藏回复

这个估计差不多了吧.
我用q=p^2+q^2和p=pq直接分别算的.可能有误差,应该不会很大了吧,因为比值基本是正确的.


36楼2007-11-23 17:51
回复
    选double类型:
    q100=8.05821977244886 
    p100=5.64140551997155


    37楼2007-11-23 17:54
    回复
      2026-03-05 16:36:12
      广告
      不感兴趣
      开通SVIP免广告
      这仍然还是完全不准确的. 混沌现象是很令人讨厌的. p100和q100对微小偏差极端敏感.

      假设中途不小心出现了一亿分之一的误差,即单位“1”变成了1.00000001,这误差经过平方运算之后会被极端放大(指数级放大).


      1.00000001
      1.00000002
      1.00000004
      1.00000008
      1.00000016
      1.00000032
      1.00000064
      1.00000128
      1.00000256
      1.00000512
      1.00001024
      1.00002048
      1.00004096
      1.00008192
      1.00016385
      1.00032773
      1.00065557
      1.00131158
      1.00262488
      1.00525665
      1.01054093
      1.02119297
      1.04283508
      1.08750500
      1.18266712
      1.39870152
      1.95636593
      3.82736767
      14.6487432
      ……

      后面就雪崩了.


      IP属地:安徽38楼2007-11-23 18:28
      回复
        那是因为你选的是"1"


        39楼2007-11-23 18:33
        回复
          选10.000001就不一样了.


          40楼2007-11-23 18:35
          回复
            哦,我明白了.
            但雪崩后,为什么比值是正确的呢?


            41楼2007-11-23 18:42
            回复
              q100与
              p100的比


              42楼2007-11-23 18:42
              回复
                因为p和q是齐次的,即最高次数相等.

                所以比值上的运算实际上只是

                p=p
                q=q+p²/q

                他们的值并没有雪崩式的增长,所以误差只是线性地放大,而不是指数级地放大.


                IP属地:安徽43楼2007-11-23 20:23
                回复
                  2026-03-05 16:30:12
                  广告
                  不感兴趣
                  开通SVIP免广告
                  p = p
                  q = q + p²/q


                  IP属地:安徽44楼2007-11-23 20:24
                  回复
                    恩,用这个做密码不错.


                    45楼2007-11-24 00:27
                    回复
                      windows计算器撑爆了也只能得到18楼的结果.

                      没有mathematic,p和q的有效数字出不来.


                      IP属地:安徽46楼2007-11-26 13:42
                      回复
                        p和q的有效数字出不来,p和q的位数不能精确到个位.


                        47楼2007-11-26 14:40
                        回复
                          设第n项为r_n=q_n/p_n
                          而ln(q_n)=lq_n, ln(p_n)=lp_n
                          而通过数值计算直接可以算出r_n比较精确的值,所以我们可以如下看
                          我们知道p_{n+1}=p_nq_n,所以lp_{n+1}=lp_n+lq_n
                          而q_{n+1}=p_n^2+q_n^2=p_n^2(1+r_n^2)
                          所以lq_{n+1} = 2*lp_n+ln(1+r_n^2)
                          由此可以得出Pari/Gp代码
                          fun(n)={
                          local(lp,lq,r,t,l10);
                          lp=0.0;lq=0.0;r=1.0;l10=log(10);
                          for(u=1,n,
                          t=lp+lq;
                          lq=2*lp+log(1.0+r^2);
                          r=r+1.0/r;
                          lp=t
                          );
                          [lp/l10,lq/l10]
                          }
                          于是取100位浮点精度和200位浮点精度计算分别得出
                          %16 = [238318477254216924495956776243.352781824415825942916853855599301492676307
                          1756923166245041047608370275, 238318477254216924495956776244.5076336130298128786
                          551963407533945966273377671920790072055207491552362]
                          (15:15) gp > \p 200
                          realprecision = 202 significant digits (200 digits displayed)
                          (15:15) gp > fun(100)
                          %17 = [238318477254216924495956776243.352781824415825942916853855599301492676307
                          17569231662450410476083702749891171046141306485952917262407637804304387488050626
                          421274353692778559449603795877937524913686247815, 238318477254216924495956776244
                          .5076336130298128786551963407533945966273377671920790072055207491552361637367615
                          71188720631926165795914570864131925441785591379863603475238793021535857009952315
                          90919351043]
                          可以看出计算精度是非常高的
                          也就是p的位数238318477254216924495956776244,q的位数238318477254216924495956776245
                          而p开始的各位数值也可以算出来为225310703925849243065012328342402382512501335616033022403492766379318451...
                          q开始的各位数值也可以算出来为321835252383843456524590441752513225578499456511062447450136831679261185I


                          48楼2013-11-02 15:21
                          回复