24小时热门版块排行榜    

查看: 2753  |  回复: 33
本帖产生 1 个 程序强帖 ,点击这里进行查看

cooooldog

铁杆木虫 (著名写手)

ส็็็

[交流] 运行这段代码到出图片,你的电脑用了多久? 已有14人参与

测试一下Mathematica的效率:
CODE:
ClearAll["Global`*"];
t0 = AbsoluteTime[];
list = {{0, 0}};
last = {{0}, {0}};
GetNextPoint[pt_] := Module[{r,
   t1 = {{0.83, 0.03}, {-0.03, 0.86}}, p1 = {0, 1.5},
   t2 = {{0.2, -0.25}, {0.21, 0.23}}, p2 = {0, 1.5},
   t3 = {{-0.15, 0.27}, {0.25, 0.26}}, p3 = {0, 0.45},
   t4 = {{0, 0}, {0, 0.17}}, p4 = {0, 0}},
  r = Random[];
  If[r <= 0.85, t1.pt + p1,
   If[r <= 0.91, t2.pt + p2, If[r <= 0.99, t3.pt + p3, t4.pt + p4]]]]
For[i = 0, i < 100000, i++, last = GetNextPoint[last];
list = Append[list, First[Transpose[last]]];]
h = ListPlot[list, PlotStyle -> {PointSize[0.002], Red},
   Axes -> False];
range = First /@ Differences /@ (PlotRange /. Options[h]);
Show[h, AspectRatio -> Last@range/First@range]
Print[AbsoluteTime[] - t0]

回复此楼

» 收录本帖的淘帖专辑推荐

Funny 杂趣

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

ส็็็็็็็็็็็็็็็็็็็็
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

chyanog

金虫 (小有名气)

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
jjdg: 程序强帖+1, 强帖 2014-10-18 00:23:51
说实话,代码写得有点糟,不符合Mathematica style,而且速度太慢。
同样的算法一样的效果其实只需不到半秒甚至不到0.1s
CODE:
Clear["`*"];
t0 = AbsoluteTime[];
ifs[prob_, A_, init_, maxIter_] :=
  FoldList[#2.{#[[1]], #[[2]], 1} &, init,
   RandomChoice[prob -> A, maxIter]];

init = {0., 0.};
prob = N@{85, 6, 8, 1};
A = N@{{{0.83, 0.03, 0}, {-0.03, 0.86, 1.5}}, {{0.2, -0.25, 0}, {0.21,
       0.23, 1.5}}, {{-0.15, 0.27, 0}, {0.25, 0.26, 0.45}}, {{0, 0,  0}, {0, 0.17, 0}}};
iter = 10^5;
pts = ifs[prob, A, init, iter];
Graphics[{PointSize[0.002], Green, Point[pts]}]
AbsoluteTime[] - t0

28楼2014-10-06 23:21:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

mshwangg

至尊木虫 (正式写手)

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
运行这段代码到出图片,你的电脑用了多久?
牛人啊,树叶挺漂亮
还可以画别的吗?分享下
2楼2014-09-15 23:08:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chyanog

金虫 (小有名气)

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
29楼: Originally posted by Mr__Right at 2014-10-11 15:30:09
你mathematica怎么学的? 这么厉害...

自学的啊,还不算厉害
30楼2014-10-15 14:16:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chyanog

金虫 (小有名气)

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
32楼: Originally posted by Mr__Right at 2014-10-16 20:20:46
当然...

晕,我多打了个算字!
要推荐的书我也不知道说哪个比较好,主要是我还没有认真系统地看过某一本。大概说下吧,一般国外的书比国内的好些(其实我英语很糟,凑合着看的),国内的几乎都是作为一个高级计算器来讲的,对于编程方面讲的很浅。我觉得在 mathematica.stackexchange.com可以学到不少东西,有什么不懂的地方都可以去提问,上面牛人很多
先推荐两本
MathProgrammingIntro(Mathematica programming an advanced introduction)
mathematica cookbook
33楼2014-10-16 21:04:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

walk1997

金虫 (著名写手)

★
小木虫: 金币+0.5, 给个红包,谢谢回帖
21.0682050
mshwangg 的机器是AMD的cpu?
3楼2014-09-17 08:43:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzs510

铜虫 (初入文坛)


★
小木虫: 金币+0.5, 给个红包,谢谢回帖
ClearAll["Global`*"];
t0 = AbsoluteTime[];
list = {{0, 0}};
last = {{0}, {0}};
GetNextPoint[pt_] := Module[{r,
   t1 = {{0.83, 0.03}, {-0.03, 0.86}}, p1 = {0, 1.5},
   t2 = {{0.2, -0.25}, {0.21, 0.23}}, p2 = {0, 1.5},
   t3 = {{-0.15, 0.27}, {0.25, 0.26}}, p3 = {0, 0.45},
   t4 = {{0, 0}, {0, 0.17}}, p4 = {0, 0}},
  r = Random[];
  If[r <= 0.85, t1.pt + p1,
   If[r <= 0.91, t2.pt + p2, If[r <= 0.99, t3.pt + p3, t4.pt + p4]]]]
For[i = 0, i < 100000, i++, last = GetNextPoint[last];
list = Append[list, First[Transpose[last]]];]
h = ListPlot[list, PlotStyle -> {PointSize[0.002], Red},
   Axes -> False];
range = First /@ Differences /@ (PlotRange /. Options[h]);
Show[h, AspectRatio -> Last@range/First@range]
Print[AbsoluteTime[] - t0]
4楼2014-09-17 10:31:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

易炀

金虫 (职业作家)

matlab行不

[ 发自小木虫客户端 ]
援雅琴以变调兮,奏愁思之不可长
5楼2014-09-17 10:56:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

引用回帖:
3楼: Originally posted by walk1997 at 2014-09-17 08:43:56
21.0682050
mshwangg 的机器是AMD的cpu?

你的应该是台式机, i7-4770K?
ส็็็็็็็็็็็็็็็็็็็็
6楼2014-09-17 10:58:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

引用回帖:
5楼: Originally posted by 易炀 at 2014-09-17 10:56:59
matlab行不

改写代码也行;
ส็็็็็็็็็็็็็็็็็็็็
7楼2014-09-17 10:58:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

引用回帖:
3楼: Originally posted by walk1997 at 2014-09-17 08:43:56
21.0682050
mshwangg 的机器是AMD的cpu?

你是台式机? Intel i7-4770K?
而且是非windows 操作系统;
苹果或Linux
ส็็็็็็็็็็็็็็็็็็็็
8楼2014-09-17 11:00:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

易炀

金虫 (职业作家)

引用回帖:
7楼: Originally posted by cooooldog at 2014-09-17 10:58:57
改写代码也行;

最头疼代码了

[ 发自小木虫客户端 ]
援雅琴以变调兮,奏愁思之不可长
9楼2014-09-17 11:07:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

slimz

木虫 (初入文坛)

馬克

[ 发自小木虫客户端 ]
10楼2014-09-17 11:40:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cooooldog 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
信息提示
请填处理意见