如何使用大量吗

266(30天)
莎拉基于“增大化现实”技术
评论道: 安德鲁·索尔2023年4月18日在4:02
我想使用 大量的matlab代码进行测试。所以说,数量:10 ^ 100。我尝试新品,但数量仍然比我要小。这不仅仅是为学校工作测试matlab的能力
2的评论
约翰D 'Errico
约翰D 'Errico 2019年11月4日
新品(高通滤波器)没有明确的限制,除了你的电脑的局限性和它的速度。大量可以变得高度计算昂贵,当然可以。例如,为了验证我的工具,我用它们来计算pi的一百万位。我经过了一段时间。我可以使用工具像新品搜索巨大的质数。

登录置评。

接受的答案

约翰D 'Errico
约翰D 'Errico 2019年11月4日
根据你所做的,你可以使用任何的几个工具。例如……
符号工具箱:
信谊(17)^ 173
ans =
737332536277664007345135166862919042342198303176957733423911897658606050420746608682751241168475893711891774173437592993636785506777793476094874734220957516554685643214228598246375959317220176420842802110495459537
我自己的新品工具箱(从文件交换免费下载):
新品(17)^ 173
ans =
73733253627766400734513516686291904234219830317695773342391189765860
605042074660868275124116847589371189177417343759299363678550677779347609
487473422095751655468564321422859824637595931722017642084280211049545953
7
当然,新品只是大整数运算。
对于高精度浮点操作,您可以使用我的高通滤波器的工具箱,还免费下载的文件交换。这里,sin(2.3弧度,500小数位数。
DefaultNumberOfDigits500年
罪(高通滤波器(“2.3”))
ans =
0.74570521217672017738540621164349953894264877802047425750762828050000099313904725787119141718409288762817250225753133592135334980555453298342113583580957089845003916537428359514540258159501067012614643093890466791278548509412263198294482089203977890584979559621160856653150662947581690813330676541668856555926001056589318039296179001073304389700504217567754815087240130585632142045686943253384330660013244550634516301559995926758472414911946682819947915408675727440373168283432224358384420096808300220
再次,符号工具箱还可以给你大量浮点数算术。
数字500年
罪(信谊(“2.3”))
ans =
0.7457052121767201773854062116434995389426487780204742575076282805000009931390472578711914171840928876281725022575313359213533498055545329834211358358095708984500391653742835951454025815950106701261464309389046679127854850941226319829448208920397789058497955962116085665315066294758169081333067654166885655592600105658931803929617900107330438970050421756775481508724013058563214204568694325338433066001324455063451630155999592675847241491194668281994791540867572744037316828343222435838442009680830022
然而,一个大,甚至存在巨大的警告。大部分时间,你永远不需要使用那些大量的!这通常意味着你需要学会用数学的方式。
例如,至少有些时候,我们认为我们需要使用大整数运算,我们可以完全避免它。因此,的值是多少国防部(2 ^ 2000,17)?
国防部(2 ^ 2000,17)
ans =
当然失败,因为2 ^ 2000溢出双,创建一个inf。国防部是不确定的,所以国防部是南。
然而,我们可以用powermod toools(我有一个在我新品的工具箱,和有一个符号工具箱。)
powermod (2000, 17)
ans =
1
正如您可以看到的,它是正确的。
国防部(信谊(2)^ 2000年17)
ans =
1
Powermod工具是非常有用的对于大整数的问题,做事情喜欢素性测试和大整数分解。
例如,假设我想计算exp (x)的泰勒级数展开。这系列的样子:
exp (x) = 1 + x + x ^ 2 / ! (2) + x ^ 3 / ! (3) + x ^ 4 / ! (4) + x ^ 5 / ! (5) +…
很多系列的好技巧系列的认识到一个学期可以很容易地计算从previoius术语。想想。你会如何计算这个词
x ^ (n + 1) /阶乘(n + 1)
如果你已经知道这个词
x ^ n /阶乘(n)
当然,日志通常是有价值的,如果你认识到的阶乘(n) =γ(n + 1),你知道gammaln函数的存在,不需要计算阶乘。
日志(阶乘(100))
ans =
363.74
gammaln (101)
ans =
363.74
关键是,通常,在一个聪明的使用数学,巧妙的方式远比蛮力算法的使用。
4评论
安德鲁·索尔
安德鲁·索尔 2023年4月18日在4:02
@Walter罗伯森 是的,现在工作了,非常感谢!

登录置评。

答案(1)

史蒂文的主
史蒂文的主 2019年11月4日
使用符号数学工具箱。小心不要在执行计算 值大于结果 flintmax 然后将结果转换成 信谊 。确切的量转换为 信谊 象征性地并执行计算。在某些情况下,你会得到你期望的结果,但在别人你不会。这是特别重要的,如果你使用数字大到店 精度。
> > tenTo100 =符号(10)^ 100
tenTo100 =
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
> > twoTo2000 =符号(2)^ 2000
twoTo2000 =
114813069527425452423283%……剪一大堆数字,以…9376年
> > twoTo2000_doubleFirst =符号(2 ^ 2000)
twoTo2000_doubleFirst =

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!