Answer

问题及解答

利用 $(1+x)^{\alpha}$ 的展开式计算一些幂.

Posted by haifeng on 2023-12-30 11:24:59 last update 2023-12-30 12:46:36 | Edit | Answers (0)

$(1+x)^{\alpha}$ 展开成幂级数为

\[
(1+x)^{\alpha}=1+\alpha x+\frac{\alpha(\alpha-1)}{2!}x^2+\cdots+\frac{\alpha(\alpha-1)(\alpha-2)\cdots(\alpha-n+1)}{n!}x^n+\cdots
\]

这里 $x\in(-1,1)$.  在端点 $\pm 1$ 的敛散性与具体的 $\alpha$ 有关.


计算 $10^{0.9181246048}$, 注意上面级数的收敛区间为 $(-1,1)$, 因此下面的计算方法是错误的.

\[
\begin{split}
10^{0.9181246048}&=(1+9)^{0.9181246048}\\
&=1+0.9181246048\times 9+\frac{0.9181246048(0.9181246048-1)}{2!}9^2\\
&\qquad+\frac{0.9181246048(0.9181246048-1)(0.9181246048-2)}{3!}9^3+\cdots
\end{split}
\]

我们需要将 $10^{\alpha}$ 转换为 $(2^{\alpha})^3\cdot(1.25)^{\alpha}$ 这样的形式. 即使是 $2^{\alpha}$, 有时也有很大的误差, 因为上面的级数在端点 $\pm 1$ 处不一定收敛. 因此需要转换为 $(1+x)^{\alpha}$ 的形式, 其中 $x\in(-1,1)$.


下面使用 Sowya 进行计算.

将下面的代码保存到 code/power.sc 中

//a^t =(1+x)^t
//(1+x)^t = 1+t*x+t*(t-1)/(2!)*x^2+...+t*(t-1)*(t-2)*...*(t-n+1)/(n!)*x^n+...
//make sure x is in (-1,1)

fun power(a,t)
{
    var n=10;
    var x;
    x=a-1;
    var sum=1;
    var coeff, x_pow;
    coeff=1;
    x_pow=1;

    for(var i=0; i     {
        coeff=coeff*(t-i)/(i+1);
        x_pow=x_pow*x;
        sum=sum+coeff*x_pow;
    }
    return sum;
}


启动 Sowya, 并进入到 clox 编程模式,

>> :mode clox

加载 power.sc 文件
> load(code\power.sc)

测试 $2^3$
> print power(2,3);
8>

计算 $2^{3.2}$

> print power(2,3.2);
2243569763|244140625>