[翻译]关于Mathematica提速的几点技巧(三)

摘要: 8.用Block和With代替Module.Block,With和Module都可用来构建局部化结构,它们的各自的特性有略微的不同.以我的经验来看,Block和Module在95%的情况下都可以相互替换,但是通常Block会快一点.有些情况下With(变量处于只读状态的Block)会更快.9.别总用模式匹配模式匹配很棒,能轻松地编出复杂的程序.遗憾的是,它并不总是最快的,特别是代码里出现”___”等模棱两可的模式时(会浪费大量的时间去检索你早已确定不会出现的模式).如果计算速度优先考虑的话,用”_”或者根本不用模式.当然,在这种情况下最好的方法还是使用内置函数(我在第三点提到过),完爆”冒泡算 阅读全文
posted @ 2012-08-30 15:35 XLiao 阅读(698) 评论(0) 推荐(0) 编辑

可视化角谷猜想

摘要: 不了解角谷猜想的可以看看什么是角谷猜想?GraphPlot[ Rule @@@ DeleteDuplicates@ Flatten[(Partition[#, 2 1] & /@ (NestWhileList[ If[EvenQ@#, #/2, 3 # + 1] &, #, # > 1 &] & /@ Range[2, 25])), 1], DirectedEdges -> True, VertexLabeling -> True]这小段代码就显示了自然数2到25是如何按照角谷猜想的规则变为1的.如果觉得不够带劲的话,这里有2-10000的.. 阅读全文
posted @ 2012-08-29 16:04 XLiao 阅读(454) 评论(0) 推荐(0) 编辑

记2012年8月29日早上的梦

摘要: 为什么梦境总是难以记住呢?一直在想这个问题。不过今天的这个囧梦算是记得比较清楚的了。我刚返校,遇到了以前的同学檀展飞和李映阳(他们俩是我高一时的同学,怎么可能在安师大啊?做梦的时候就没想到)。然后好像我让他们给我去店里带点东西回来。接着梦里的我发现身上的200块钱不见了,他们俩个也一直没回来。给爸打电话,爸那头非常嘈杂,我说话他听不清,最后用很大的声音说清楚之后他好像也没有任何反应(这又是梦的BUG,可是在梦中永远不会想到)。然后我急啊急啊,后来好像发生了更囧的事,记不清也懒得写了。突然,醒了,压在屁股下的手已经麻了。原来我TMD又在做梦啊!一看时间:9:00 。于是断定这个梦的实际时间不会超 阅读全文
posted @ 2012-08-29 09:37 XLiao 阅读(204) 评论(2) 推荐(1) 编辑

[翻译]关于Mathematica提速的几点技巧(二)

摘要: 4.(这一部分涉及Workbench,故不译)5. 记住将来要用到的数据这一点对于任何语言都是有益的,在Mathematica的体系中你应该记住下面的结构:这会记住任何f在特定参数下的返回值,所以被重复调用是不用再次计算.这是用内存交换时间的做法,所以如果计算量非常大的话这种做法是不合适的.但是对于小规模的程序,这是非常有用的.让我们用这个方法来拯救我在第三点举的那个蛋疼程序:把第一条规则修改一下:现在,求解fib[35]只需要计算主规则33次,所以速度快得令人难以置信.要点是:调用以前的结果避免了重复的递归.6.并行计算越来越多的Mathematica操作(线性代数,图像处理,统计分析)会自 阅读全文
posted @ 2012-08-28 21:47 XLiao 阅读(1677) 评论(0) 推荐(0) 编辑

字符串处理一例:删去代码中的注释

摘要: 方法来自:Mathematica CookbookMma中的注释标记是"(*"和"*)",利用字符串处理函数StringReplace就可以达到这个目的:In[2]:= code = GoodMorning(*hahahahha*)GoodNight(*BlahBlah*); StringReplace[ToString@code,"(*" ~~ Shortest[___] ~~ "*)" -> ""] // ToExpressionOut[2]:= GoodMorning GoodNig 阅读全文
posted @ 2012-08-27 21:53 XLiao 阅读(503) 评论(1) 推荐(0) 编辑

[翻译]关于Mathematica提速的几点技巧(一)

摘要: 本文翻译自Wolfram Blog的一篇文章http://blog.wolfram.com/2011/12/07/10-tips-for-writing-fast-mathematica-code/,我的英语实在是差,翻译很烂看官们就忍忍吧.当人们跟我抱怨说Mathematica不够快时,我一般会叫他们去仔细瞧瞧那些令人恼怒的代码.跑得慢的原因通常不是Mathematica的性能问题,而是使用方式不太合适.我想我应该分享一些我在优化Mathematica代码时使用的技巧.1.如果可能话,使用机器精度数并尽量提早使用如我所见,那些漫不经心的程序员所编写的缓慢的代码的一个共同特点是,一下子让Mat 阅读全文
posted @ 2012-08-27 18:32 XLiao 阅读(5870) 评论(0) 推荐(1) 编辑

安家了

摘要: 嗯,在这里落脚了. 阅读全文
posted @ 2012-08-27 18:04 XLiao 阅读(187) 评论(0) 推荐(0) 编辑