原创 网站 源码,无锡集团网站建设,资质升级业绩备案在哪个网站做,做网站设计答辩问题摘要 就上节#xff08;即#xff08;一百八十五#xff09;#xff09;内容#xff0c;有读者来信#xff0c;建议用另外一个大模型计算。本节详细讲解该大模型的对错#xff0c;特别是涉及 Python Decimal的内容以及泰勒展式内容。
例1. 已知 用大模型计算 下面是…摘要 就上节即一百八十五内容有读者来信建议用另外一个大模型计算。本节详细讲解该大模型的对错特别是涉及 Python Decimal的内容以及泰勒展式内容。
例1. 已知 用大模型计算 下面是与第三个大模型的对话。 以上为大模型的输出。
点评 1大模型使用 Python 的 decimal 模块来确保高精度计算。这比上节的大模型有一点进步。 2由于 Decimal中没有tan()、sin()等方法或函数因此不得不先调用 math中函数。 3但是math中的 tan、sin、sqrt函数其正确的有效位数有个上限一般不会超过16位有效数字。这个由 double类型决定。比如math.sin(190)虽然在内存中储存有0.9977992786806002545318960983422584831714630126953125共52位有效数字但是只有前16位数字 “9977992786806002”是正确的。 4上述上限16决定了程序结果的短板正确的有效数字位数不会超过它虽然 getcontext().prec 50 . 实际上“getcontext().prec 50”是白白设置了。 5“getcontext().prec 50” 的注解“设置精度为50位小数” 是错误的应该是设置50位有效数字。 6同样由于使用了 math, 那么 Decimal也是白白被浪费了。 7照这样计算下去那么 tan(x0)与 sin(x0)均只有16位正确数字。而它们这些数字即32位数字几乎全部对应位置的数字相同。因此相减后正确数字所剩无几。再进行相除后当然仍然没有几位正确数字。 8在Python 3.12中执行大模型的代码则输出为50位的值-9.7938196768552311641126445270730663791431933912047E-22 . 这样正如所料正确数字只有2位。因为16位的正确结果为 -0.9765626220703239e-21ISRealsoft 提供。 9大模型似乎也知道这一点。因此它利用泰勒展式进行了化简。它的化简过程基本是正确的。 10它的结果也基本正确。只有最后一位数字是错误的不是5, 而应是6 . 11若是结果保留16位有效数字那么该怎么办呢 12首先分母、分子均需保留最少16位有效数字。 13对于分母在其化简中应保留 。因为 的指数是平方后也仅仅是即使再除以 也才。这样的数与1相加减后16位的结果中还保留3位左右呢。 14当然对于分母更不应该删去。 15同样分子中的 tan(x)与 sin(x)均应保留 项 与 16最终化简后应为 17这样代入并相除以后就会有16位正确有效数字。当然最后一行的半句话“运行上述 Python 代码将给出更精确的结果。”是错误的。 18另外math中的 sin等函数有时会输出错误结果。比如自变量比较大时。