我正在写一个使用无理数的数字的Matlab代码。我试着用$\sqrt(1+x)$的泰勒展开找到它。由于对Matlab进行大数划分可能是一个坏主意,所以在我看来,这种方法不是一个好方法。
我想知道有没有更简单有效的方法来做这件事?
最佳答案
如果你有符号工具箱,vpa
就会这么做您可以指定所需的有效位数:
x = '2'; %// define x as a *string*. This avoids loss of precision
n = 100; %// desired number of *significant* digits
result = vpa(['sqrt(' x ')'], 100);
结果是asymbolic variable。如果需要,请转换为字符串:
result = char(result);
在上面的例子中,
result =
1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573
关于algorithm - 如何找到形式为\\sqrt(x)$的无理数的第n个数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37217416/