2011年6月30日 星期四

[自動轉寄] (anandydy529) Re: [算表] 有快速把99.4.1變成099.04.01的方法嗎

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [算表] 有快速把99.4.1變成099.04.01的方法嗎
時間: Thu Jun 30 15:19:24 2011

※ 引述《anandydy529 (AndyAWD)》之銘言:
: 軟體:excel
: 版本:2003
: 我有五百多筆的活動起迄資料,之前是用99.4.1-99.5.1這樣排列
: 最近老闆要我把日期改成099.04.01-099.05.01
: 我有想過先用資料剖析再用取代,但一直失敗
: 請問有什麼更好的方法

資料剖析=>分個符號=>其他=>句點

之後會有abcde欄, f1公式


=IF(A1>=100,A1, 0 & A1) &"." & IF(B1>=10,B1, 0 & B1) &"." &
IF(FIND("-",C1,1)=3,LEFT(C1,2) & ".",0 & LEFT(C1,1) & "-") &
IF(LEN(C1)-FIND("-",C1,1)=3,RIGHT(C1,3),0 & RIGHT(C1,2)) & "." &
IF(D1>=10,D1,0 & D1) & "." & IF(E1>=10,E1,0 & E1)

--
養花種魚數月亮賞星星

http://chungyuandye.twbbs.org


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.119.96.8

2011年6月29日 星期三

[自動轉寄] (CUCUMBERER) Re: [請問] mathematica使用矩陣或向量表示光

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [請問] mathematica使用矩陣或向量表示光
時間: Thu Jun 30 14:45:03 2011

※ 引述《CUCUMBERER (瓜仔)》之銘言:
: 各位好
: 我想請問如何使用mathematica來描述一道空間中的光
: 最好是矩陣或向量,當然是要畫得出來
: 指令跟函數要用啥??
: 先感謝大家

light = RandomReal[{0, 1}, {10, 2, 3}];

Graphics3D[{RGBColor@@RandomReal[{0,1},3],
Arrowheads[0.1],Thickness[0.01],Arrow[#]}&/@light]

--
養花種魚數月亮賞星星

http://chungyuandye.twbbs.org


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.119.96.8

2011年6月28日 星期二

[自動轉寄] Re: [心得] Compute Pi Using A Monte Carlo

作者: chungyuandye (養花種魚數月亮賞星星) 看板: Mathematica
標題: Re: [心得] Compute Pi Using A Monte Carlo
時間: Wed Jun 29 13:45:24 2011

※ 引述《kichigop (超痛恨不求甚解...XXX)》之銘言:
: 恕刪^^
: 老師那請問到底該怎麼判斷何時比較適合用parallel computing呢?
: 我剛試了一下
: ParallelTable[n, {n, 1, 10000000}]
: SessionTime[]
: Out[1]= 這結果就省略了^^"
: Out[2]= 36.1718750
: Table[n, {n, 1, 10000000}]
: SessionTime[]
: Out[1]= 這結果就省略了^^"
: Out[2]= 29.5156250
: 結果似乎沒有比較好...XD
: 所以我不太曉得究竟甚麼樣的狀況比較適合用平行運算...

要能做平行運算條件是每次的計算是獨立的

test[ntemp_Integer]:=Block[{n=ntemp,data,t1,t2},
(* 建立n條具實數解的隨機二元一次方程式*)
data=Select[RandomReal[{0,1},{n,3}],#[[2]]^2-4*#[[1]]*#[[3]]>=0&];
(* 不使用平行運算 *)
t1=AbsoluteTiming[Map[Quiet@FindRoot[#.{x^2,x,1},{x,0}]&,data]];
(* 使用平行運算 *)
t2=AbsoluteTiming[ParallelMap[Quiet@FindRoot[#.{x^2,x,1},{x,0}]&,data]];
{n,t1[[1]],t2[[1]]}
]

(* n=100,200,...,10000 個實驗一次*)
sim=test[#]&/@Range[100,10000,100]

(* 畫出計算時間 *)
plot1=ListLinePlot[{sim[[All,{1,2}]],sim[[All,{1,3}]]}]

(* 建立圖例 *)
Labeled[plot1,
Grid[{Graphics[{#[[1]],Thickness[0.1],Line[{{0,0},{1,0}}]},
ImageSize->{24,24},AspectRatio->8/24,
ImagePadding->0],#[[2]]}&/@
Transpose@{plot1[[1,1,{3,4},1]],
{"不使用平行運算", "使用平行運算"}}],
{Right,Top}
]

可以發現當計算次數少的時候,平行運算並沒有太大的好處,
但計算次數大的時候就能有效的節省計算時間

: 還有一個問題
: ParallelDo[Print[n], {n, 1, 8}]
: (kernel 4) 1
: (kernel 3) 3
: (kernel 2) 5
: (kernel 1) 7
: (kernel 4) 2
: (kernel 3) 4
: (kernel 2) 6
: (kernel 1) 8
: 這不是我要的結果啊...沒有照順序排...
: 這也讓我很好奇...我本來以為Table跟Do基本上是一樣的東西
: 只是Table是產生完用大括號括起來然後秀出來
: 但是ParallelTable看起來順序是對的

list={};Do[list=Append[list,n],{n,1,8}];list

但是用ParallelDo的時候,每次計算指定的kernel並沒有照順序,
所以才會有你說的情形。

事實上Mathematica 是不建議在做迴圈時第一時間就使用Do, For, While 這些函數
應該盡量以Pure function以及Functional programming取代

--
養花種魚數月亮賞星星

http://chungyuandye.twbbs.org


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.166.217

[自動轉寄] (kichigop) Compute PI Using A Monte Carlo

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Compute PI Using A Monte Carlo
時間: Tue Jun 28 19:12:06 2011

一些平行運算程式的使用方法我在blog裡面都有提到,
有興趣的話可以到我blog留言討論,

以下是使用Mathematica 8.0


N[Pi,100]

(* 定義距離原點的半徑函數 *)
r[x_, y_] = Sqrt[x^2 + y^2];

(*產生10000的隨機樣本點*)
dataset = RandomReal[{0, 1}, {10000, 2}];

(*繪初樣本點與1/4圓*)
Show[ListPlot[dataset, AspectRatio -> 1],
Plot[Sqrt[1 - x^2], {x, 0, 1}, PlotStyle -> {Thickness[0.01], Red}]]

(*將半徑內與半徑玩的點畫出*)
ListPlot[{Select[dataset, r @@ # < 1 &],
Select[dataset, r @@ # >= 1 &]}, PlotStyle -> {{Red}, {Blue}},
AspectRatio -> 1]

(* 模擬一組樣本數為n時估計的pi *)
sim[ntemp_] := With[{n = ntemp},
(*將函數r分配給各核心*)
DistributeDefinitions[r];
N@Total@ParallelMap[If[r[#[[1]], #[[2]]] <= 1, 1, 0] &,
RandomReal[{0, 1}, {n, 2}]]/n*4
]


sim[10000]

(* 實驗重複1000次,並畫出直芳荼*)
Histogram[sim[1000] & /@ Range[100]]

(* 建立樣本數為n時,所得到pi的函數 *)
size[ntemp_Integer] := Block[{n = ntemp, data},
data = RandomReal[{0, 1}, {n, 2}];
N@Total@Map[If[r[#[[1]], #[[2]]] <= 1, 1, 0] &, data]/n*4
];

(*將函數size分配給各核心*)
DistributeDefinitions[size];
(*不使用平行運算*)
Map[size, Range[10000, 100000, 1000]] // AbsoluteTiming
(*使用平行運算*)
ParallelMap[size, Range[10000, 100000, 1000]] // AbsoluteTiming

--
養花種魚數月亮賞星星

http://chungyuandye.twbbs.org


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.166.217

[自動轉寄] [心得] Spinski Triangle with CompilationTar …

作者: chungyuandye (養花種魚數月亮賞星星) 看板: Mathematica
標題: [心得] Spinski Triangle with CompilationTarget->"C"
時間: Tue Jun 28 16:15:18 2011


Mathematica 較為人詬病的就是計算速度及不可編譯為執行檔。
但這在7.0及8.0之後的Compile及平行運算大致已獲得解決。

$Version

newpt[x_List] := {{x[[1]], Mean@{x[[1]], x[[2]]},
Mean@{x[[1]], x[[3]]}}, {x[[2]], Mean@{x[[2]], x[[1]]},
Mean@{x[[2]], x[[3]]}}, {x[[3]], Mean@{x[[3]], x[[1]]},
Mean@{x[[3]], x[[2]]}}};

(*不編譯程式*)
Stgraph1[pt_List, n_Integer] :=
Nest[Flatten[Map[newpt, #], 1] &, {pt}, n];

(* 編譯程式 *)
Stgraph2 =
Compile[{{pt, _Real, 2}, {n, _Integer}},
Nest[Flatten[
Map[{{#[[1]], Mean@{#[[1]], #[[2]]},
Mean@{#[[1]], #[[3]]}}, {#[[2]], Mean@{#[[2]], #[[1]]},
Mean@{#[[2]], #[[3]]}}, {#[[3]], Mean@{#[[3]], #[[1]]},
Mean@{#[[3]], #[[2]]}}} &, #], 1] &, {pt}, n]];

(*由 C Compiler 編譯程式*)
Stgraph3 =
Compile[{{pt, _Real, 2}, {n, _Integer}},
Nest[Flatten[
Map[{{#[[1]], Mean@{#[[1]], #[[2]]},
Mean@{#[[1]], #[[3]]}}, {#[[2]], Mean@{#[[2]], #[[1]]},
Mean@{#[[2]], #[[3]]}}, {#[[3]], Mean@{#[[3]], #[[1]]},
Mean@{#[[3]], #[[2]]}}} &, #], 1] &, {pt}, n],
CompilationTarget -> "C"];

pt = {{0, 0}, {2, 0}, {1, Sqrt[3]}};

First@AbsoluteTiming@Stgraph1[pt, 8]
First@AbsoluteTiming@Stgraph2[pt, 8]
First@AbsoluteTiming@Stgraph3[pt, 8]

Graphics[{Red, Polygon /@ Stgraph3[pt, 8]}]


--
養花種魚數月亮賞星星

http://chungyuandye.twbbs.org


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.166.217

[自動轉寄] [心得] A broken heart

作者: chungyuandye (養花種魚數月亮賞星星) 看板: Mathematica
標題: [心得] A broken heart
時間: Tue Jun 28 15:08:31 2011


試試8.0 2D-3D 繪圖 Texture 的功能

tt=Import["http://tinyurl.com/3m4awrv"];

ff[xx_]:=Cases[y/.NSolve[(y^2+xx^2-1)^3-y^2*xx^3==0,y],_Real][[-1]];

data={#,RandomReal[{-0.15,0.25}]}&/@Range[-0.9,0.9,0.05];

m[de_]:={{Cos[de],-Sin[de]},{Sin[de],Cos[de]}};

slope[pt_List]:=(pt[[2,2]]-pt[[1,2]])/(pt[[2,1]]-pt[[1,1]]);

pt=Partition[Flatten[{{#[[1]],Min[Max[#[[2]],-ff[#[[1]]]]*0.75,
ff[#[[1]]]]*0.75}&/@data,{{1,0}}},1],2,1];

eq=Piecewise[{slope[#]*(x-#[[1,1]])+#[[1,2]],#[[1,1]]<=x<#[[2,1]]}&/@pt];

bh1=RegionPlot[(y^2+x^2-1)^3-y^2x^3<0&&y<eq,
{y,-1.5,1.5},{x,-1.5,1.5},PlotStyle->Texture[tt]];

bh2=RegionPlot[(y^2+x^2-1)^3-y^2x^3<0&&y>eq,
{y,-1.5,1.5},{x,-1.5,1.5},PlotStyle->Texture[tt]];

Manipulate[Show[
bh1/.GraphicsComplex[a__,b__]:>GraphicsComplex[{-l,0}
+(#+{0,1}).m[-z*Pi/10]&/@a,b],
bh2/.GraphicsComplex[a__,b__]:>GraphicsComplex[{l,0}
+(#+{0,1}).m[z*Pi/10]&/@a,b],
PlotRange->{{-1.5,1.5},{-0.5,2.5}},Frame->False],
{z,0,1,0.1},{l,0,0.3,0.1}
]

--
養花種魚數月亮賞星星

http://chungyuandye.twbbs.org


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.166.217
→ chungyuandye:輸出 http://tinyurl.com/3wwr4uy  06/28 15:10
推 Frobenius:Cool!  06/28 15:12

2011年6月26日 星期日

[自動轉寄] 請求協助資料分析

作者: manhoodguy (1111)
標題: 請求協助資料分析
時間: Mon Jun 27 07:04:01 2011

您好
我想請求資料分析
不知是否有興趣?
方法是hlm
資料數目不多
目的在解釋報表
有三階層資料
報酬約2000
若可行請給我回覆進一步詳談

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.129.0.66

2011年6月25日 星期六

[自動轉寄] Re: 恭喜開板:)

作者: chungyuandye (養花種魚數月亮賞星星) 看板: Mathematica
標題: Re: 恭喜開板:)
時間: Sat Jun 25 21:57:37 2011

※ 引述《apruth (L's celebrate!)》之銘言:
: 恭喜開板呀^^
: 哈哈
: 我好前面

恭喜開版~~just for fun

str[x_] :=
"http://images.google.com.tw/images?um=1&hl=zh-TW&tbs=isch:1&q=%E6%\
9E%97%E5%BF%97%E7%8E%B2&sa=N&start=
" <> ToString[18*x] <> "&ndsp=" <>
ToString[18]
mypic = ImageResize[#, RandomInteger[{1, 50}]] & /@
Flatten[Import[str[#], {"Html", "Images"}][[2 ;; -1]] & /@
Range[20]];

myplot[str_, size_] :=
Module[{mystr = str, test, a, b, mysize = size, data},
test = Rasterize[str, RasterSize -> 20, ImageSize -> 500];
{a, b} = Dimensions[test[[1, 1]]][[1 ;; 2]];
data = Reverse[#] & /@
Select[Flatten[
Table[If[
And[test[[1, 1, i, j]][[1]] > 100,
test[[1, 1, i, j]][[2]] > 100,
test[[1, 1, i, j]][[3]] > 100], {0, 0}, {i, j}], {i, a}, {j,
b}], 1], # != {0, 0} &];
ListPlot[data, PlotStyle -> PointSize[0.01], ImageSize -> mysize,
AspectRatio -> 1, Frame -> False, Axes -> {None, None},
PlotRange -> {{-0.2 Min[data[[All, 1]]],
1.1 Max[data[[All, 1]]]}, {0.2 Min[data[[All, 2]]],
1.1 Max[data[[All, 2]]]}},
Epilog -> {{PointSize[RandomReal[{0, 1/10}]],
RGBColor[Random[], Random[], Random[]], Point[{#}]} & /@
data}]]

mypicplot[str_, size_] :=
Module[{mystr = str, test, a, b, mysize = size, data},
test = Rasterize[str, RasterSize -> 50, ImageSize -> mysize];
{a, b} = Dimensions[test[[1, 1]]][[1 ;; 2]];
data = Reverse[#] & /@
Select[Flatten[
Table[If[
And[test[[1, 1, i, j]][[1]] > 100,
test[[1, 1, i, j]][[2]] > 100,
test[[1, 1, i, j]][[3]] > 100], {0, 0}, {i, j}], {i, a}, {j,
b}], 1], # != {0, 0} &];
ListPlot[RandomSample[Partition[data, 1], Length@data],
PlotMarkers ->
Evaluate[
Rotate[#, Random[]*Pi] & /@ RandomChoice[mypic, Length@data]],
Frame -> False, Axes -> {None, None},
PlotRange -> {{-0.2 Min[data[[All, 1]]],
1.1 Max[data[[All, 1]]]}, {0.2 Min[data[[All, 2]]],
1.1 Max[data[[All, 2]]]}}, ImageSize -> mysize]]

myplot[\[HeartSuit], 500]

mypicplot[M, 1000]

--
我打研究室走過 那獨坐電腦前的容顏如苦瓜的糾結
靈感不來 長壽的煙霧不散
研究室如小小的寂寞的城 恰如商管的電梯向晚

http://chungyuandye.twbbs.org

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.132.228

2011年6月6日 星期一

[自動轉寄] [通告] 選擇比努力重要 您值得擁有更好!

作者: fgsgfd (Yes Man)
標題: [通告] 選擇比努力重要 您值得擁有更好!
時間: Tue Jun 7 11:16:43 2011


新經濟潮流~涵蓋了 [實體經濟]、[無國界經濟]、[數位經濟]、及[倍數經濟]

這不是一個普通的機會,有緣遇上~為何還等待!!

化危機變轉機,選對平台,做什麼都容易:http://www.vemmabuilder.com/28710784/sb02

為M型社會下的眾生打造一條新的黃金通路!!

也不用擔心薪水漲不漲的問題

拿回人生的自主權

您,絕對可以!!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.48.227