มาติกา
คุณอาจต้องการอ่านจากล่างขึ้นบนนี้เนื่องจากเป็นคำสั่งที่เขียนขึ้นและคำอธิบายบางอย่างจะอ้างถึงตัวอย่างก่อนหน้านี้หรือรับคำอธิบายจากด้านล่าง
รายการมีการเติบโตค่อนข้างยาว ฉันเริ่มลบตัวอย่างที่น่าสนใจน้อยลงและฉันจะเริ่มข้ามตัวอย่างในขณะนี้ ดูประวัติการแก้ไขสำหรับรายการที่สมบูรณ์ของตัวอย่างถึง 41 สำหรับอัญมณีจริงบางส่วนตรวจสอบตัวอย่าง81 , 64 , 44 , 23 , 19 , 12และ8
ความยาว 143 และ 144 ตัวอย่าง
ในที่สุด ... ฉันรอมาซักพักแล้ว (และเล่นกอล์ฟมานานประมาณฉันจึงไม่ต้องรออีกต่อไป) ฉันพูดถึงก่อนหน้านี้ว่าคุณยังสามารถสมการเชิงตัวเลขและคุณยังสามารถแก้สมการเชิงอนุพันธ์ได้ด้วย ฉันต้องการที่จะแสดงตัวอย่างที่ไม่น่าสนใจของที่
พิจารณาลูกตุ้มคู่บนคัน (เช่นลูกตุ้มที่ติดอยู่กับอีก) แต่ละก้านมีความยาวหน่วยและน้ำหนักลูกตุ้มทั้งสองมีมวลหน่วย ฉันยังใช้แรงโน้มถ่วงหน่วยเพื่อทำให้สมการสั้นลง ตัวอย่าง 143 ตัวอักษรต่อไปนี้แก้สมการการเคลื่อนที่ของลากรองจ์สำหรับระบบดังกล่าว (ในแง่ของมุมของลูกตุ้มและโมเมนต์เชิงมุม) สามารถหาได้ใน PDF นี้แม้ว่ามันจะเป็นการฝึกที่ค่อนข้างตรงไปตรงมาหากคุณคุ้นเคยกับกลไกของลากรองจ์
มันอ่านไม่ได้เพราะฉันต้องตีมันลงเยอะ:
d=θ@t-φ@t;NDSolve[{#''@t==-#4#2''[t]Cos@d-##3#2'@t^2Sin@d-Sin@#@t&@@@{{θ,φ,1,.5},{φ,θ,-1,1}},θ@0==2,φ@0==1,θ'@t==φ'@t==0/.t->0},{θ,φ},{t,0,60}]
สิ่งที่เป็นระเบียบคือ Mathematica จะแสดงพล็อตเล็ก ๆ ของวิธีแก้ปัญหาโดยประมาณ:
โอเค แต่มันค่อนข้างง่อย เราต้องการที่จะรู้ว่าการเคลื่อนไหวของลูกตุ้มจริงดูเหมือนว่า ดังนั้นนี่คือตัวอย่างขนาด 144 อักขระซึ่งทำให้ลูกตุ้มเคลื่อนไหวขณะที่ติดตามวิถีของลูกตุ้มล่าง:
Graphics@{Line@{{0,0},p=θ~(h={Sin@#@#2,-Cos@#@#2}&)~t,p+φ~h~t},White,{0,0}~Circle~2.2}~Show~ParametricPlot[θ~h~u+φ~h~u,{u,0,t}]~Animate~{t,0,60}
ภาพเคลื่อนไหวที่ได้จะมีลักษณะดังนี้:
ฉันได้ไปโกงเล็กน้อย: ถ้าคุณวางแผนเกินกว่าt = 30
ที่ParametricPlot
เป็นค่าเริ่มต้นใช้จุดพล็อตที่น้อยเกินไปและสายกลายเป็นขรุขระค่อนข้าง แต่การเปลี่ยนแปลงที่น่าสนใจส่วนใหญ่เกิดขึ้นหลังจากนั้นดังนั้นฉันจึงใช้ตัวเลือกPlotPoints -> 200
เพื่อทำให้ช่วงครึ่งหลังของภาพเคลื่อนไหวดูนุ่มนวลขึ้น มันไม่มีอะไรแตกต่างอย่างมีนัยสำคัญและครึ่งแรกจะดูแตกต่างอย่างไรก็ตาม
ฉันคิดว่านี่จะเป็นตัวอย่างสุดท้ายของฉันจนกว่าฉันจะเกิดอะไรขึ้นกับสิ่งที่ใจจดจ่อ หวังว่าคุณจะสนุกกับเรื่องนี้!
ความยาว 100 ตัวอย่าง
GeoGraphics[{GeoStyling[Opacity[0.5]], NightHemisphere[]}, GeoBackground -> GeoStyling["ReliefMap"]]
ฉันกำลังคิดเกี่ยวกับGeo
ฟังก์ชั่นที่ดีบางอย่างสำหรับตัวอย่าง 100 แต่ในที่สุดฉันก็พบสิ่งที่ดีมากในTweet-a-Programซึ่งฉันต้องขโมย ด้านบนสร้างแผนที่ดวงอาทิตย์ที่สวยงามมากของโลกสำหรับเวลาและวันปัจจุบันโดยการซ้อนทับรูปร่างกึ่งทึบแสงของซีกโลกกลางคืนเหนือแผนที่บรรเทาทุกข์:
ความยาว 81 ตัวอย่าง
CellularAutomaton[{{0,2,3,If[0<Count[#,1,2]<3,1,3]}[[#[[2,2]]+1]]&,{},{1,1}},i,n]
ฉันสัญญาว่าเป็นหุ่นยนต์เซลลูล่าร์ตัวสุดท้าย แต่นั่นก็คือWireworldใน 81 ตัวอักษร เวลานี้ผมไม่ได้เข้ารหัสกฎในจำนวนเดียว) เพราะผมคิดว่ามันจะใหญ่ขัน (ผมไม่ได้รำคาญ figuring ออก) และ b) CellularAutomaton
จะแสดงให้คุณยังการใช้งานของผู้อื่น เวลานี้กฎถูกระบุเพียงแค่เป็นฟังก์ชันบริสุทธิ์ซึ่งได้รับพื้นที่ใกล้เคียงของเซลล์และส่งกลับค่าใหม่ของเซลล์ นี่เป็นวิธีที่เป็นไปได้มากขึ้นสำหรับออโตมาตาเซลลูล่าที่มีมากกว่า 2 สี / สถานะ
อย่างไรก็ตามฉันได้ตั้งค่าตัวอย่างจาก Wikipedia ในi
(นาฬิกาสองตัวสร้างสัญญาณและประตู XOR) และปล่อยให้มันวิ่ง 50 ขั้นตอน:
หากคุณสนใจการพล็อตและภาพเคลื่อนไหวที่แท้จริงอาจเป็นข้อมูลตัวอย่าง 77:
ListAnimate[ArrayPlot[#,ColorRules->{0->Black,1->Blue,2->Red,3->Yellow}]&/@w]
ความยาว 69 ตัวอย่าง
DSolve[r^2*R''[r]+2r*R'[r]-R[r]==0&&(R[r]==1&&R'[r]==2/.r->1),R[r],r]
กลับไปยังสิ่งที่มีประโยชน์ นอกเหนือจากระบบสมการปกติแล้ว Mathematica ยังสามารถแก้ระบบสมการเชิงอนุพันธ์ ด้านบนเป็นเทคนิคเพียงหนึ่งสมการเชิงอนุพันธ์กับเงื่อนไขขอบเขต แต่คุณยังสามารถระบุว่าเป็นระบบของสามสมการ เช่นเดียวกับฟังก์ชั่นการรวมDSolve
สำหรับการแก้ปัญหาที่แน่นอนในขณะที่NDSolve
จะแก้ปัญหาระบบตัวเลข ผลลัพธ์ข้างต้นเป็นวิธีแก้ปัญหาเดียว
{{R[r] -> 1/2 r^(-(1/2) - Sqrt[5]/2) (1 - Sqrt[5] + r^Sqrt[5] + Sqrt[5] r^Sqrt[5])}}
ซึ่งตอนนี้สามารถใช้งานได้ง่ายสำหรับการคำนวณเพิ่มเติมหรือการลงจุด
ความยาว 64 ตัวอย่าง
CellularAutomaton[{224,{2,{{2,2,2},{2,1,2},{2,2,2}}},{1,1}},i,n]
ฉันสัญญากับคุณว่าCellularAutomaton
เวทมนตร์มากขึ้น! ตัวอย่างนี้คำนวณเกมแห่งชีวิตของ Conwaysพร้อมเงื่อนไขเริ่มต้นi
สำหรับn
ขั้นตอนและให้ผลลัพธ์สำหรับการจับเวลากลางทั้งหมด
คำสองสามคำเกี่ยวกับพารามิเตอร์: 2
คือจำนวนของสถานะเซลล์ {{2,2,2},{2,1,2},{2,2,2}}
ให้น้ำหนักสำหรับ 9 เซลล์ในพื้นที่ใกล้เคียง 3x3 ทำให้มั่นใจได้ว่าเซลล์นั้นแตกต่างจากผลรวมของเพื่อนบ้านทั้ง 8 {1,1}
บอกว่ากฎ CA ขึ้นอยู่กับเซลล์ 1 ก้าวออกไปในทิศทางใดทิศทางหนึ่ง สุดท้าย224
เป็นกฎการอัพเดทจริงที่เข้ารหัสในจำนวนเดียว การหาจำนวนนี้สามารถเป็นบิตหากิน แต่มีการกวดวิชาที่มีประโยชน์อย่างเป็นธรรมในเอกสาร สำหรับออโตมาตาที่ซับซ้อนตัวเลขหนึ่งจะไม่ตัด (เพราะตัวเลขจะใหญ่) บางทีเราจะไปถึงที่นั่นพรุ่งนี้! ;)
อย่างไรก็ตามถ้าฉันป้อนกริดสุ่มเข้าไปi
และ 200 เข้าไปn
และส่งผลลัพธ์ผ่านภาพเคลื่อนไหวArrayPlot
เราจะเห็นว่ามันใช้งานได้จริง:
ความยาว 59 ตัวอย่าง
SphericalPlot3D[Re[Sin[θ]Cos[θ]Exp[2I*φ]],{θ,0,π},{φ,0,2π}]
โปรดจำไว้ว่าพล็อตขั้วโลกจากตัวอย่าง 26 เราสามารถทำสิ่งเดียวกันในแบบ 3 มิติ! (อันที่จริงมีฟังก์ชั่นสองอย่าง: RevolutionPlot3D
สำหรับเสาทรงกระบอกและเสาSphericalPlot3D
ทรงกลม) เช่นเดียวกับGraphics3D
แปลงสามมิติที่หมุนได้โดยอัตโนมัติใน Mathematica ดังนั้นคุณไม่ต้องกังวลเกี่ยวกับมุมกล้องที่ดี แผนการด้านบนมีลักษณะคล้ายกับฮาร์มอนิกทรงกลม (ไม่มากนัก) และดูเหมือนว่า:
ความยาว 52 ตัวอย่าง
Manipulate[Plot[x^2a+x*b,{x,-3,3}],{a,.1,3},{b,0,3}]
อันนี้สวยดี Manipulate
นำนิพจน์ใด ๆมากำหนดพารามิเตอร์ด้วยตัวแปรจำนวนมากจากนั้นให้วิดเจ็ตแก่คุณซึ่งคุณสามารถปรับแต่งพารามิเตอร์และดูการถ่ายทอดสดว่าการเปลี่ยนแปลงของนิพจน์เป็นอย่างไร โดยปกติแล้วคุณจะมีพล็อตบางประเภท สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณใช้ Mathematica ในการบรรยายเพื่อแสดงให้เห็นว่าครอบครัวของโซลูชันตอบสนองต่อการปรับเปลี่ยนพารามิเตอร์อย่างไร ดังกล่าวข้างต้นแสดงให้เห็นถึงวิธีการa
และb
ค่าสัมประสิทธิ์ขนาดและเปลี่ยนรูปโค้ง:
ความยาว 48 ตัวอย่าง
Import["http://www.google.com/doodles","Images"]
Import
เป็นคำสั่งที่ทรงพลัง มันใช้สำหรับการโหลดไฟล์จากแผ่นดิสก์และจากเว็บ มันรู้รูปแบบไฟล์ค่อนข้างมากและสำหรับบางคน (เช่นหน้า HTML) สามารถแยกข้อมูลได้ทันที ด้านบนดาวน์โหลดภาพทั้งหมดจากหน้าดูเดิลของ Google
ความยาว 45 ตัวอย่าง
EdgeDetect@ExampleData@{"TestImage","Splash"}
เวลาสำหรับการประมวลผลภาพ Mathematica มาพร้อมกับข้อมูลตัวอย่างมากมายรวมถึงรูปภาพ (เช่น Lena) พื้นผิวแบบจำลอง 3 มิติและตัวอย่างเสียง อันดับแรกเราโหลดหนึ่งในนั้น:
ต้องการตรวจจับขอบหรือไม่ มันเป็นการเรียกฟังก์ชั่นเดียว:
ความยาว 44 ตัวอย่าง
ArrayPlot@CellularAutomaton[110,{{1},0},100]
ในที่สุดฉันมีตัวอักษรเพียงพอที่จะใช้CellularAutomaton
และแสดงผลลัพธ์ :) เท่าที่ฉันทราบCellularAutomaton
มันเป็นฟังก์ชั่นเดียวใน Mathematica ที่เกี่ยวข้องกับ CAs แต่ Stephen Wolfram ดูเหมือนจะพิจารณาตัวเองเป็นอันดับหนึ่งเมื่อพูดถึงออโตมาตาเซลลูลาร์ดังนั้นฟังก์ชั่นนี้จึงทรงพลังอย่างเหลือเชื่อ ด้านบนแสดงการใช้งานที่ง่ายที่สุด สิ่งนี้จะจำลองหุ่นยนต์ 1D เซลลูลาร์ 100 ขั้นตอนและจะคืนสถานะของหุ่นยนต์ในแต่ละขั้นตอนเหล่านั้นดังนั้นผลที่ได้คือสองมิติ กฎคือพารามิเตอร์แรกซึ่งสามารถระบุได้ในรายละเอียดผ่านรายการหรือเพียงแค่เข้ารหัสในจำนวนเดียว สำหรับตัวอย่างนี้ผมได้เลือกที่มีชื่อเสียงค่อนข้างทัวริงสมบูรณ์กฎ 110 {{1},0}
กำหนดเงื่อนไขเริ่มต้น: เดียว1
ด้านหน้าของฉากหลังของเลขศูนย์ บางทีฉันอาจจะแสดงคุณสมบัติเพิ่มเติมอีกCellularAutomaton
ในอนาคตเมื่อฉันมีตัวละครมากขึ้น: มันสามารถจำลอง CAs ในมิติที่สูงขึ้นโดยใช้ย่านที่ใหญ่กว่าและมากกว่าสองสถานะ
ArrayPlot
เป็นอีกหนึ่งยูทิลิตี้การพล็อตที่ดีซึ่งเพิ่งจะแปลงรายการ 2D เป็นตารางสีทึบที่แสดงถึงค่า ในกรณีที่ง่ายที่สุด0
จะรวมเข้ากับสีขาวและ1
สีดำ ผลลัพธ์ของตัวอย่างคือ:
ความยาว 43 ตัวอย่าง
HighlightGraph[graph,FindVertexCover@graph]
เป็นเวลานานแล้วที่ฉันพูดถึงกราฟ มีปัญหาทางทฤษฎีกราฟทั่วไปจำนวนมากในตัว Mathematica พร้อมกับเครื่องมือสร้างภาพที่ดี ด้านบนสำหรับที่กำหนดgraph
จะพบจุดยอดที่น้อยที่สุดของกราฟจากนั้นแสดงกราฟด้วยจุดยอดที่สูง เช่นถ้าgraph
เป็นPetersenGraph[7,2]
กลับมาจากข้อมูลโค้ด 18 เราได้รับ:
ความยาว 42 ตัวอย่าง
Animate[Plot[Sin[t-x],{x,0,10}], {t,0,10}]
มันค่อนข้างง่ายที่จะสร้างภาพเคลื่อนไหวใน Mathematica (และพวกเขาไม่จำเป็นต้องเป็นรูปภาพ) คุณเพียงให้นิพจน์ที่จะประเมินสำหรับแต่ละเฟรมและพารามิเตอร์จำนวนมากที่ควรแตกต่างกันไปตามเฟรม ข้างต้นเพียงแค่เคลื่อนไหวพล็อตของคลื่นไซน์เคลื่อนไหว ภาพเคลื่อนไหวจะมีลักษณะคล้าย GIF ต่อไปนี้:
ความยาว 40 ตัวอย่าง
SortBy[PlanetData[#, "EscapeVelocity"]&]
SortBy
ทำตามที่คุณคาดไว้: เรียงลำดับรายการตามค่าที่ได้จากการทำแผนที่ฟังก์ชั่นที่กำหนดไปยังองค์ประกอบแต่ละรายการ แต่รอสายข้างต้นไม่ได้มีรายการเลย ตั้งแต่ Mathematica 10 มีการสนับสนุนสำหรับcurryingหรือแอพลิเคชันบางส่วนสำหรับการทำงานบางอย่าง นี่ไม่ใช่คุณสมบัติภาษาเช่นในภาษาที่ใช้งานได้อย่างพิถีพิถันยิ่งขึ้น แต่ถูกนำไปใช้งานด้วยตนเองสำหรับฟังก์ชั่นทั้งหมดซึ่งมักจะมีประโยชน์ หมายความว่าข้อมูลโค้ดด้านบนส่งคืนฟังก์ชันใหม่ซึ่งใช้รายการเท่านั้นและเรียงลำดับตามฟังก์ชันที่กำหนด สิ่งนี้มีประโยชน์มากหากคำสั่งการเรียงลำดับนี้เป็นสิ่งที่คุณจะใช้บ่อยตลอดทั้งรหัสของคุณ
และใช่มีอีกดี*Data
ฟังก์ชั่น - ข้างต้นจะเรียงลำดับชื่อดาวเคราะห์โดยดาวเคราะห์ความเร็วหลบหนี
ความยาว 39 ตัวอย่าง
f[1]=1
f[2]=1
f[n_]:=f[n]=f[n-1]+f[n-2]
ฉันสัญญาว่าจะทำให้ฟีโบนักชีฟังก์ชั่นมีประสิทธิภาพมากขึ้น ตัวอย่างนี้แสดงให้เห็นว่า memoisation เล็กน้อยใน Mathematica โปรดทราบว่าสิ่งที่เปลี่ยนแปลงทั้งหมดนั้นเพิ่มเติมf[n]=
ในบรรทัดที่สาม ดังนั้นเมื่อf
ถูกเรียกค่าใหม่ (พูดf[3]
) แล้วf[3]=f[3-1]+f[3-2]
จะได้รับการประเมิน การคำนวณนี้จะf[2]+f[1]
กำหนดให้กับf[3]
(ด้วย=
ไม่ใช่กับ:=
!) และส่งคืนค่าในที่สุดสำหรับการโทรเริ่มต้นของเรา ดังนั้นการเรียกฟังก์ชั่นนี้จะเพิ่มนิยามใหม่สำหรับค่านี้ซึ่งชัดเจนกว่ากฎทั่วไป - และจะใช้สำหรับการโทรในอนาคตทั้งหมดf
ด้วยค่านั้น
จำไว้ว่าฟังก์ชั่น Fibonacci อื่นใช้เวลา 4 วินาทีสำหรับ 30 ค่า? ต้องการ 3 วินาทีสำหรับค่า 300,000
ความยาว 37 ตัวอย่าง
l//.{a___,x_,b___,x_,c___}:>{a,x,b,c}
ในตัวอย่างสุดท้ายฉันพูดถึงรูปแบบ สิ่งเหล่านี้มักถูกใช้ในกฎซึ่งสามารถใช้ในการปรับเปลี่ยนโครงสร้างที่ตรงกับรูปแบบที่แน่นอน ลองดูตัวอย่างนี้
{a___,x_,b___,x_,c___}:>{a,x,b,c}
เป็นกฎ x_
ด้วยการขีดเส้นใต้เดียวเป็นรูปแบบซึ่งหมายถึงค่าโดยพลการเดียว (ซึ่งอาจเป็นรายการหรือคล้ายกัน) a___
เป็นรูปแบบลำดับ (โปรดดูตัวอย่าง 15) ซึ่งหมายถึงลำดับของค่า 0 หรือมากกว่า โปรดทราบว่าฉันใช้x_
สองครั้งซึ่งหมายความว่าทั้งสองส่วนของรายการจะต้องมีค่าเดียวกัน ดังนั้นรูปแบบนี้ตรงกับรายการใด ๆ ที่มีค่าครั้งที่สองเรียกว่าองค์ประกอบx
และเรียกร้องสามลำดับรอบทั้งสององค์ประกอบa
, และb
c
สิ่งนี้จะถูกแทนที่ด้วย{a,x,b,c}
- นั่นคือวินาทีที่x
ถูกทิ้ง
ตอนนี้//.
จะใช้กฎจนกว่ารูปแบบจะไม่ตรงกันอีกต่อไป l
ดังนั้นข้อมูลดังกล่าวข้างต้นเอารายการที่ซ้ำกันทั้งหมดจากรายการ อย่างไรก็ตามมันมีประสิทธิภาพมากกว่านั้นเล็กน้อย: //.
ใช้กฎนี้ในทุกระดับ ดังนั้นหากl
ตัวเองมีรายการ (ความลึกใด ๆ ) รายการที่ซ้ำกันจากรายการย่อยเหล่านั้นจะถูกลบด้วย
ความยาว 36 ตัวอย่าง
f[1]=1
f[2]=1
f[n_]:=f[n-1] + f[n-2]
ถึงเวลาสำหรับฟีเจอร์ภาษาใหม่! Mathematica มีบางสิ่งที่ดีเกี่ยวกับการกำหนดฟังก์ชั่น สำหรับการเริ่มต้นคุณสามารถระบุคำจำกัดความของฟังก์ชั่นได้หลายแบบสำหรับชื่อเดียวกันสำหรับตัวเลขหรือประเภทอาร์กิวเมนต์ที่ต่างกัน คุณสามารถใช้รูปแบบเพื่ออธิบายประเภทของข้อโต้แย้งที่คำจำกัดความใช้ นอกจากนี้คุณยังสามารถเพิ่มคำจำกัดความสำหรับค่าเดียว Mathematica จะเลือกคำจำกัดความที่มีผลเฉพาะเจาะจงมากที่สุดสำหรับการเรียกใช้ฟังก์ชันใด ๆ และปล่อยให้การโทรที่ไม่ได้กำหนดไม่ถูกประเมินค่า สิ่งนี้ช่วยให้ (เหนือสิ่งอื่นใด) ในการเขียนฟังก์ชั่นวนซ้ำในลักษณะที่เป็นธรรมชาติมากกว่าการใช้If
สวิตช์สำหรับตัวฐาน
สิ่งที่ควรทราบเกี่ยวกับข้อมูลโค้ดข้างต้นก็คือว่าผมใช้ทั้งสองและ=
:=
ความแตกต่างคือด้านขวามือของการ=
ประเมินเพียงครั้งเดียวในเวลาของความหมายในขณะที่:=
มีการประเมินอีกครั้งในแต่ละครั้งที่เรียกว่าด้านซ้ายมือ ในความเป็นจริง:=
แม้ใช้งานได้เมื่อกำหนดตัวแปรซึ่งจะมีค่าแบบไดนามิก
ดังนั้นข้างต้นแน่นอนเป็นเพียงฟังก์ชั่นฟีโบนักชี และหนึ่งที่ไม่มีประสิทธิภาพมากที่ การคำนวณตัวเลข 30 ตัวแรกนั้นใช้เวลาประมาณ 4 วินาทีในเครื่องของฉัน เราจะเห็นว่าเราสามารถปรับปรุงประสิทธิภาพได้อย่างไรโดยไม่ต้องกำจัดคำจำกัดความซ้ำ
ความยาว 35 ตัวอย่าง
StreamPlot[{x^2,y},{x,0,3},{y,0,3}]
พล็อตที่ประณีตมากซึ่งส่งผลให้ความคล่องตัวของสนามเวกเตอร์ 2 มิติ นี่คล้ายกับพล็อตเวกเตอร์ปกติโดยที่ลูกศรแต่ละตัวสัมผัสกับฟิลด์เวกเตอร์ อย่างไรก็ตามลูกศรไม่ได้ถูกวางไว้บนกริดแก้ไข แต่รวมเข้าด้วยกันเป็นเส้น ความสำคัญของเส้นเหล่านี้คือพวกมันบ่งบอกวิถีของอนุภาค (ในรูปของเหลวพูด) ถ้าสนามเวกเตอร์เป็นสนามความเร็ว อินพุตข้างต้นดูเหมือนว่า:
ความยาว 34 ตัวอย่าง
Solve[a*x^4+b*x^3+c*x^2+d*x==0, x]
Mathematica ยังสามารถแก้สมการ (หรือระบบสมการได้ แต่ตอนนี้เรามีตัวละครมากมายแล้ว) ผลลัพธ์จะเป็นสัญลักษณ์ตามปกติ
{
{x -> 0},
{x -> -(b/(3 a)) - (2^(1/3) (-b^2 + 3 a c))/(3 a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) + (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)/(3 2^(1/3) a)},
{x -> -(b/(3 a)) + ((1 + I Sqrt[3]) (-b^2 + 3 a c))/(3 2^(2/3) a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) - ((1 - I Sqrt[3]) (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3))/(6 2^(1/3) a)},
{x -> -(b/(3 a)) + ((1 - I Sqrt[3]) (-b^2 + 3 a c))/(3 2^(2/3) a (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3)) - ((1 + I Sqrt[3]) (-2 b^3 + 9 a b c - 27 a^2 d + Sqrt[4 (-b^2 + 3 a c)^3 + (-2 b^3 + 9 a b c - 27 a^2 d)^2])^(1/3))/( 6 2^(1/3) a)}
}
โปรดทราบว่าการแก้ปัญหาจะได้รับเป็นกฎซึ่งฉันอาจแสดงรายละเอียดเพิ่มเติมในตัวอย่างบางส่วนในอนาคต
ความยาว 33 ตัวอย่าง
Dynamic@EdgeDetect@CurrentImage[]
ขอบคุณ Benwaffle สำหรับความคิดนี้ CurrentImage[]
โหลดภาพปัจจุบันของเว็บแคมของคุณ EdgeDetect
เปลี่ยนรูปภาพให้เป็นภาพขาวดำที่ขอบเป็นสีขาวและส่วนที่เหลือเป็นสีดำ (ดูตัวอย่างในตัวอย่างที่ 45) ความสนุกที่แท้จริงมาพร้อมกับDynamic
ทำให้การอัพเดทนิพจน์นั้นเกิดขึ้นเอง ดังนั้นผลลัพธ์นี้จะส่งกระแสข้อมูลภาพจากเว็บแคมของคุณและทำการตรวจจับขอบสดที่พวกเขา
ความยาว 32 ตัวอย่าง
NumberLinePlot[x^2<2^x,{x,-2,5}]
พล็อตประเภทที่ค่อนข้างผิดปกติ มันสามารถพล็อตเรื่องต่าง ๆ มากมายตามเส้นจำนวนเช่นจุดและช่วงเวลา คุณสามารถกำหนดเงื่อนไขและจะแสดงภูมิภาคที่เงื่อนไขนั้นเป็นจริง:
ลูกศรบ่งบอกว่าพื้นที่นั้นยังคงไม่มีที่สิ้นสุด วงกลมสีขาวแสดงว่าเป็นช่วงเวลาที่เปิด (จุดสิ้นสุดไม่ได้เป็นส่วนหนึ่งของช่วงเวลา) สำหรับจุดสิ้นสุดปิดวงกลมจะถูกเติม
ความยาว 28 ตัวอย่าง
Graphics3D@{Sphere[],Cone[]}
ถึงเวลาสำหรับกราฟิกสามมิติ ด้านบนแสดงทรงกลมและทรงกรวยที่มีการบังคับพิเศษซึ่งมีพารามิเตอร์เริ่มต้นซึ่งมีลักษณะคล้ายลูกบอลคริสตัล:
ใน Mathematica คุณสามารถคลิกและลากวิดเจ็ตตัวเล็ก ๆ นี้เพื่อหมุนมันได้
ความยาว 27 ตัวอย่าง
CountryData["ITA", "Shape"]
มากขึ้น*Data
! CountryData
มันค่อนข้างบ้า การสร้างรูปร่างของประเทศไม่ใช่แม้แต่ส่วนเล็ก มีข้อมูลมากมายเกี่ยวกับประเทศคุณอาจเขียนหนังสือทั้งเล่มเกี่ยวกับฟังก์ชั่นนี้ เช่น ... FemaleLiteracyFraction
มี นอกจากนี้คุณยังสามารถค้นหาข้อมูลสำหรับจุดต่าง ๆ ในเวลา สำหรับรายการทั้งหมดดูการอ้างอิง
ความยาว 26 ตัวอย่าง
PolarPlot[Sin[5θ],{θ,0,π}]
เวลาสำหรับพล็อตที่น่าสนใจมากขึ้น PolarPlot
เป็นเพียงพล็อตในพิกัดเชิงขั้ว แทนที่จะระบุ y สำหรับ x ที่ระบุให้คุณระบุรัศมี r สำหรับมุมที่กำหนดθ:
ความยาว 25 ตัวอย่าง
{{1,5},{2,3},{7,4}}.{8,9}
ในที่สุดเราก็มีตัวละครมากพอสำหรับคณิตศาสตร์เวกเตอร์ ด้านบนคำนวณการคูณเมทริกซ์ของเมทริกซ์ 2x3 และแถว 2-vector:
{53, 43, 92}
ความยาว 23 ตัวอย่าง
Rotate[Rectangle, Pi/2]
หึ ฮิฮิ. คุณคิดว่าคุณรู้ว่าสิ่งนี้ทำอะไร แต่คุณทำไม่ได้ Rectangle
โดยตัวมันเองเป็นเพียงฟังก์ชั่นที่มีชื่อ ในการรับวัตถุที่เป็นรูปสี่เหลี่ยมผืนผ้าคุณจะต้องเรียกใช้ฟังก์ชันนั้นด้วยพารามิเตอร์บางตัว แล้วคุณคิดว่าจะเกิดอะไรขึ้นเมื่อคุณพยายามหมุนRectangle
? นี้:
ความยาว 22 ตัวอย่าง
30~ElementData~"Color"
อีก*Data
ฟังก์ชั่นในตัว ใช่สำหรับองค์ประกอบทางเคมีคุณไม่เพียงได้รับสิ่งต่าง ๆ เช่นเลขอะตอมจุดหลอมเหลวและชื่อ ... คุณสามารถรับสีได้ที่อุณหภูมิห้อง ด้านบนให้สีของสังกะสี:
SlateGray
ความยาว 21 ตัวอย่าง
Integrate[E^(-x^2),x]
เรามีความแตกต่างในช่วงเวลาหนึ่ง เวลาสำหรับการรวม Mathematica สามารถจัดการอินทิกรัลทั้งแบบ จำกัด และไม่ จำกัด โดยเฉพาะอย่างยิ่งIntegrate
จะให้ทางออกที่แน่นอนแก่คุณและสามารถจัดการกับอินทิเกรตมาตรฐานและเทคนิคการรวมกันได้มากมาย (สำหรับผลลัพธ์ที่เป็นตัวเลขNIntegrate
) ถ้าคุณรู้แคลคูลัสคุณจะสังเกตได้ว่าอินทิกรัล Gaussian ข้างต้นไม่มีอินทิกรัลแบบฟอร์มปิดแน่นอน ... เว้นแต่คุณจะพิจารณาว่าฟังก์ชันข้อผิดพลาดปิดนั่นคือ Mathematica ส่งคืน:
1/2 Sqrt[π] Erf[x]
ความยาว 20 ตัวอย่าง
"Sun"~StarData~"Age"
กลับไปที่ข้อมูลในตัว ต้องมี*Data
ฟังก์ชั่นอย่างน้อยสองโหลสำหรับทุกสิ่งที่คุณอาจนึกออก แต่ละรายการใช้ตัวระบุสำหรับสิ่งที่คุณต้องการข้อมูลและคุณสมบัติ (หรือรายการคุณสมบัติ) เพื่อเรียกคืน ดังกล่าวข้างต้นเป็นเพียงหนึ่งในที่สั้นที่สุดที่คุณจะได้รับกับSun
, Star
และAge
ทั้งหมดเป็นสั้นสวยเพราะผมไม่สามารถรอที่จะแสดงให้เห็นคุณลักษณะนี้
ใช่แล้วและฉันไม่ได้พูดถึงว่า Mathematica (ตั้งแต่ 9) สนับสนุนปริมาณด้วยหน่วย? (เพิ่มเติมในภายหลัง) การประเมินด้านบนเป็น:
Quantity[4.57*10^9, "Years"]
ซึ่งจะแสดงเป็น
ความยาว 19 ตัวอย่าง
MandelbrotSetPlot[]
ใช่ ... ฟังก์ชั่นที่มีประโยชน์มาก ... ฉันใช้มันตลอดเวลา (บางครั้งความปรารถนาที่จะสนับสนุนสิ่งที่อาจคำนวณได้อาจจะไกลไปหน่อย ... )
ในการป้องกันของพวกเขาฟังก์ชั่นมีประโยชน์มากกว่านั้น: คุณสามารถให้ส่วนเฉพาะของกราฟที่คุณต้องการพล็อต
ความยาว 18 ตัวอย่าง
PetersenGraph[7,2]
ตั้งแต่ Mathematica 8 มันเข้าใจว่ากราฟคืออะไรดังนั้นจึงมาพร้อมกับฟังก์ชันที่เกี่ยวข้องกับทฤษฎีกราฟทุกประเภท และมันก็ไม่ใช่ Mathematica ถ้ามันไม่ได้รวมตัวบิวด์อินไว้มากมาย ดังกล่าวข้างต้นสร้างข้อมูลกราฟสำหรับทั่วไปปีเตอร์เสนกราฟ มันสร้างโครงสร้างข้อมูลจริงที่สามารถจัดการได้ แต่ Mathematica จะแสดงข้อมูลกราฟนั้นทันที ... ในรูปแบบกราฟิก:
ความยาว 17 ตัวอย่าง
Plot[x^x,{x,0,2}]
ในที่สุดตัวอักษรพอที่จะทำการพล็อต ด้านบนเป็นเพียงตัวอย่างที่ง่ายที่สุดของโครงเรื่องหนึ่งมิติ ฉันสัญญาว่าจะอวดแผนการทำความเย็นในภายหลัง
ความยาว 15 ตัวอย่าง
{##4,#,#2,#3}&
นี่แสดงให้เห็นถึงคุณสมบัติที่ทรงพลังสองอย่าง (และคุณสมบัติที่มีประโยชน์สำหรับการเล่นกอล์ฟ) สิ่งทั้งหมดเป็นฟังก์ชันบริสุทธิ์ที่ไม่มีชื่อเทียบได้กับlambda
s ใน Python หรือ Procs ใน Ruby &
ฟังก์ชั่นเพียวจะสิ้นสุดเพียงโดย ตัวดำเนินการนี้มีลำดับความสำคัญต่ำมากดังนั้นจึงมักจะรวมทุกอย่างที่เหลืออยู่ของมัน ข้อโต้แย้งของฟังก์ชั่นบริสุทธิ์ถูกอ้างถึงด้วย#
บางครั้งตามด้วยสิ่งอื่น ๆ อาร์กิวเมนต์แรกคือ#
หรือ#1
อย่างที่สองคือ#2
และอื่น ๆ
คุณสมบัติอื่น ๆ ที่เป็นSequence
s โดยทั่วไปแล้วจะมีลักษณะเหมือนเครื่องหมายในภาษาอื่น ลำดับเป็นเหมือนรายการที่ไม่มีรายการอยู่รอบตัวมันเป็นเพียงลำดับของค่าซึ่งสามารถใช้ในรายการอาร์กิวเมนต์ของฟังก์ชันและอื่น ๆ##
โดยเฉพาะคือลำดับของอาร์กิวเมนต์ของฟังก์ชันบริสุทธิ์ทั้งหมด ##2
เป็นลำดับของการขัดแย้งทั้งหมดที่เริ่มต้นจากที่สอง ดังนั้นถ้าเราตั้งชื่อฟังก์ชั่นด้านบนf
และเรียกมันว่าชอบ
f[1,2,3,4,5]
เราจะได้รับ
{4,5,1,2,3}
ดังนั้นฟังก์ชั่นจะหมุนอิลิเมนต์อาร์กิวเมนต์ 3 ไปทางซ้าย สังเกตได้ว่า##4
อ้างถึง4,5
ซึ่งถูกแบนเข้าไปในรายการ
ความยาว 12 ตัวอย่าง
D[x^y^x,x,y]
ความแตกต่างบางส่วน D
จะแยกความแตกต่างของการแสดงออกครั้งแรกอย่างต่อเนื่องด้วยความเคารพต่อข้อโต้แย้งอื่น ๆ ของมันให้การแสดงออกที่เป็นสัญลักษณ์ของคุณเป็นผล ดังนั้นด้านบนคือd² (x ^ y ^ x) / dxdy (โดยที่d s เป็นบางส่วน) ซึ่ง Mathematica รายงานว่าเป็น
x^y^x (y^(-1 + x) + y^(-1 + x) Log[x] + x y^(-1 + x) Log[x] Log[y]) +
x^(1 + y^x) y^(-1 + x) Log[x] (y^x/x + y^x Log[x] Log[y])
ความยาว 9 ตัวอย่าง
Exp[I*Pi]
เรายังไม่ได้ทำการคำนวณทางคณิตศาสตร์ที่ซับซ้อน! ในขณะที่คุณสามารถดูเป็นจริงเพียงนามแฝงสำหรับπ
Pi
อย่างไรก็ตามข้างต้นจริงจะกลับจำนวนเต็ม -1
จำนวนเต็ม
ความยาว 8 ตัวอย่าง
Sunset[]
ใช่. พูดคุยเกี่ยวกับตัวในบ้า โดยไม่มีพารามิเตอร์ที่ให้วัตถุ datetime ของพระอาทิตย์ตกต่อไปที่ตำแหน่งปัจจุบันของคุณ นอกจากนี้ยังใช้พารามิเตอร์สำหรับวันที่อื่นสถานที่อื่น ๆ และนี่คือสิ่งที่ฉันต้องการ
ความยาว 7 ตัวอย่าง
9!/43!!
ตัวอย่างนี้แสดงสิ่งดีๆบางอย่าง
Mathematica ไม่เพียง แต่มีโอเปอเรเตอร์ในตัว!
แต่ยังมีแฟกทอเรียลสองเท่า!!
(ซึ่งคูณจำนวนทุก ๆ จากn
ลงไป1
) นอกจากนี้ยังรองรับจำนวนเต็มความแม่นยำโดยพลการ 43!!
จะมีการประเมินว่าลงไปที่หลักสุดท้าย นอกจากนี้จำนวนตรรกยะจะถูกประเมินอย่างแม่นยำด้วย ดังนั้นเนื่องจากทั้งเศษและส่วนในนั้นมีจำนวนเต็ม Mathematica จะลดเศษส่วนเท่าที่จะทำได้แล้วนำเสนอคุณด้วย
128/198893132162463319205625
แน่นอนคุณสามารถใช้ลอยได้ทุกเมื่อที่คุณต้องการ แต่โดยทั่วไปถ้าข้อมูลของคุณไม่มีลอยตัวผลลัพธ์ของคุณจะถูกต้องแน่นอน
ความยาว 4 ตัวอย่าง
Here
มันเกี่ยวกับเวลาที่เราเริ่มต้นด้วยความบ้าคลั่งในตัวของ Mathematica ด้านบนทำในสิ่งที่มันบอกบนกระป๋องและ (สำหรับฉัน) ประเมินว่าGeoPosition[{51.51, -0.09}]
ว่า
ความยาว 3 ตัวอย่าง
x-x
เพียงเพื่อแสดงFactoidดั้งเดิม: การทำงานข้างต้นแม้ว่าx
จะยังไม่ได้กำหนดและจะส่งผลให้ใน0
กรณีนั้น
ความยาว 2 ตัวอย่าง
3x
การคูณผ่านการตีข่าว! หากเป็นที่ชัดเจนว่าตัวระบุสิ้นสุดลงและอีกรายการหนึ่งเริ่มต้นคุณไม่จำเป็นต้องมี*
ช่องว่างหรือแม้แต่ในการคูณด้วยกัน สิ่งนี้ใช้ได้กับทุกสิ่งรวมถึงสตริงและตัวแปรที่ยังไม่มีค่า สะดวกมากสำหรับการเล่นกอล์ฟ ;)
ความยาว 1 ตัวอย่าง
π
เดาสิว่ามันคืออะไร และในความเป็นจริงมันไม่ได้เป็นตัวแทนบางจุดลอยตัวโดยประมาณมันเป็น Pi - ดังนั้นทุกประเภทของฟังก์ชั่นที่ซับซ้อนและตรีโกณมิตินี้จะใช้ในจะให้ผลลัพธ์ที่แน่นอนถ้าพวกเขาเป็นที่รู้จัก
factoid
Mathematica สามารถทำการเปลี่ยนแปลงเชิงสัญลักษณ์ได้ดังนั้นตัวแปรจึงไม่ต้องการค่าที่จะทำงานกับมัน
Translate[Scale[Rectangle, 80], {0, 0, 100}]
คำที่ใหญ่โตRectangle
จะลอยอยู่หน้าจอมอนิเตอร์ของคุณ?