# วุลฟรัม
วุลฟรัม (ในอดีตชื่อ วุลฟรัม แมเทอแมทิกา หรือ แมเทอแมทิกา) เป็นชุดโปรแกรมทางคณิตศาสตร์และวิทยาศาสตร์ที่สามารถทำการคำนวนได้ในหลากหลายขแนง และเป็นซอฟต์แวร์ลิขสิทธิ์ของบริษัท Wolfram Research ชุดโปรแกรมเวอร์ชัน 1.0 ได้วางจำหน่ายเมื่อ ค.ศ. 1988

 ชุดโปรแกรม วุลฟรัม 
ชุดซอฟต์แวร์ วุลฟรัม ประกอบด้วย
ระบบพีชคณิตทางคอมพิวเตอร์ (Computer algebra system) สำหรับการประมวลผลเชิงสัญลักษณ์ของสมการทั้งในแบบทั่วไปและแบบ อนุพันธ์

ซอฟต์แวร์ทางตัวเลข สำหรับการแก้หรือประเมินค่าเชิงตัวเลขของสมการ
 เครื่องมือการแสดงภาพ สำหรับการสร้างกราฟทั้งในรูปแบบสองมิติและสามมิติ
 ภาษาการเขียนโปรแกรม ที่รวมเอาองค์ประกอบของการเขียนโปรแกรมแบบเชิงกระบวนการ (procedural), วัตถุ (object-oriented), ฟังก์ชัน (functional) และตามกฎ (rule-based) เข้าไว้ด้วยกัน

ผู้เขียนและผู้ก่อตั้งบริษัท Stephen Wolfram เริ่มต้นการพัฒนาเมื่อ ค.ศ. 1986 วุลฟรัม รุ่นแรกได้ถูกเผยแพร่เมื่อ ค.ศ. 1988 โดย Stephen Wolfram กล่าวว่าชื่อดั้งเดิมของ วุลฟรัม (วุลฟรัม แมเทอแมทิกา) ได้รับการเสนอจาก Steve Jobs

วุลฟรัม (วุลฟรัม แมเทอแมทิกา) 1.0 มีฟังก์ชันในตัวมากกว่า 500 ฟังก์ชัน ซึ่งยังคงมีอยู่ใน วุลฟรัม เวอร์ชัน 
13.0 ใน วุลฟรัม เวอร์ชัน 4.0 ที่เผยแพร่เมื่อ ค.ศ. 2000 มีฟังก์ชันมากกว่า 1000 ฟังก์ชัน ฟังก์ชันเหล่านี้ถูกบันทึกในคู่มือพิมพ์ที่มีน้ำหนักกว่า 3 กิโลกรัม และจำนวนหน้ามากกว่า 1500 หน้า

ในเวอร์ชัน 13.3 ที่เผยแพร่เมื่อ ค.ศ. 2023 มีฟังก์ชันมากกว่า 6000 ฟังก์ชัน ซึ่งไม่ได้มีการจัดทำเป็นคู่มือพิมพ์อีกต่อไป
นอกจากนี้ยังมีแนวคิดใหม่จำนวนมากที่ขยายขอบเขตการใช้งานของระบบ

เวอร์ชัน 14.1 ของวุลแฟรมได้ทำการเปลี่ยนชื่อจาก วุลฟรัม แมเทอแมทิกา มาเป็น วุลแฟรม ซึ่งรวบรวม วุลฟรัม แมเทอแมทิกา Wolfram|One and Finance Platfrom   และ Wolfram|Alpha Notebook Edition  ไว้ด้วยกัน  เวอร์ชัน 14.1 นี้ได้รับการเผยแพร่ในปี ค.ศ. 2024

 การใช้งานและวิธีการทำงาน 
mini|325px|Dini-Fläche mit variablen Parametern geplottet

วุลฟรัม ประกอบด้วย Kernel ที่ใช้ทำการคำนวณ และ Notebook ซึ่งเป็น ตัวเชื่อมประสานกับผู้ใช้แบบกราฟิก โปรแกรมจะถูกใช้งานผ่าน Notebook ซึ่งจัดรูปแบบการนำเข้าและส่งออก Notebook ยังมีฟังก์ชันของ การประมวลผลคำ
ที่สามารถใช้ในการแสดงและจัดการกราฟิก อีกหนึ่งคุณสมบัติพิเศษของ วุลฟรัม คือการสนับสนุนสัญลักษณ์ทางคณิตศาสตร์ที่หลากหลาย ซึ่งใน วุลฟรัม (แตกต่างจากภาษาการเขียนโปรแกรมคลาสสิก) สามารถใช้เครื่องหมายเหล่านี้รวมถึงชื่อตัวแปรได้ในทุกที่ของโปรแกรม

Kernel จะประมวลผล โค้ดโปรแกรม ทันทีหลังจากการป้อนข้อมูล (ในฐานะ Interpreter), ทำให้การเขียนโปรแกรมเป็นแบบโต้ตอบ ดังนั้นผลลัพธ์หรือข้อผิดพลาดในการเขียนโปรแกรมจึงสามารถเห็นได้ทันที หากมีการเรียกใช้โปรแกรมซ้ำหลายครั้ง เช่น ในการเรียกใช้โปรแกรมที่ไม่โต้ตอบ โปรแกรมจะถูก คอมไพล์ โดยอัตโนมัติ โค้ดโปรแกรมนั้นเป็นอิสระจากระบบปฏิบัติการ วุลฟรัม มีให้บริการสำหรับ Windows, Linux และ macOS, จนถึงเวอร์ชัน 6.0.3 ยังมีให้สำหรับ MS-DOS, NeXT, OS/2, Unix และ VMS

ตั้งแต่เวอร์ชัน 8 ฟีเจอร์ที่เรียกว่า free form input ถูกใส่เข้าไปใน วุลฟรัม ซึ่งช่วยให้ผู้ใช้สามารถใช้ภาษาอังกฤษ "ธรรมชาติ" แทนการป้อนไวยากรณ์ที่ถูกต้องสำหรับการคำนวณและคำสั่งอื่น ด้วยเหตุผลนี้จึงมีความจำเป็นต้องเชื่อมต่ออินเทอร์เน็ตตลอดการใช้งาน ตัวอย่างการใช้ภาษา กราฟของฟังก์ชันไซนัสที่มีการเติมสีแดงอ่อนและเส้นตารางเป็นจุด จะถูกสร้างขึ้นเมื่อป้อนคำสั่ง

Plot[Sin[x], {x, -6.6, 6.6},
  Filling -> Axis,
  FillingStyle -> Lighter[Red],
  GridLines -> Automatic,
  GridLinesStyle -> Dashed
]
หรือโดยใช้ free form input

 plot sin x with light red filling and dashed grid lines 
หลังจากที่ป้อนคำสั่งที่ใช้ free form input แล้ว สามารถแปลเป็นไวยากรณ์ (syntax) และแก้ไขใหม่ได้ เพื่อให้ยังคงมีความได้เปรียบจากไวยกรณ์แบบทั่วไป

วุลฟรัม มักถูกใช้ในทางวิทยาศาสตร์หรือเศรษฐศาสตร์ และยังมีการใช้งานในอุตสาหกรรมและธุรกิจ ดังนั้นธนาคารจึงใช้ วุลฟรัม ในการจำลองการพัฒนาราคาหุ้น, การประเมิน อนุพันธ์ทางเศรษฐศาสต์, การประเมินความเสี่ยง และอื่นๆ ความแม่นยำของผลลัพธ์ (ทั้งเชิงวิเคราะห์และเชิงตัวเลข) จึงมีความจำเป็นมาก

นอกจาก เรขาคณิตพื้นฐาน, การอนุพันธ์, การคำนวณเชิงปริพันธ์, การแก้ สมการ, การจัดการแมทริกซ์ และ การคำนวณเชิงตัวเลข (ไม่มีข้อจำกัดในด้านความแม่นยำของเครื่องจักร) ยังมีฟังก์ชันพิเศษมากมาย เช่น จากสาขาของ เชิงผสม (combinatoric), ที่ได้ถูกนำมารวมไว้ ภาษาโปรแกรมของ วุลฟรัม มีการกำหนดประเภท (Type assignment) โดยอัตโนมัติ, การจัดการหน่วยความจำโดยอัตโนมัติ และเทคนิคการประเมินแบบรูปแบบ (pattern matching) ตั้งแต่ปลาย ค.ศ. 2013 ภาษาโปรแกรม Wolfram Language ได้ถูกจำแนกแยกจาก วุลฟรัมHeise, 15. November 2013: Mathematica-Chef Wolfram kündigt Programmiersprache an, Herstellerlink: Wolfram Programming Language

หนึ่งในทางเลือกสำหรับหน้าต่าง (front end)  ใน วุลฟรัมคือ Wolfram Workbench—สภาพแวดล้อมการพัฒนาแบบ (IDE) ที่ใช้รากฐานจาก Eclipse ซึ่งถูกนำเสนอเมื่อ ค.ศ. 2006 Wolfram Workbench ให้เครื่องมือการพัฒนารหัสที่มีพื้นฐานจากวุลฟรัมรวมถึงการจัดการการแก้ไขโค้ด, การดีบัก, การวิเคราะห์ และการทดสอบ และยังมีปลั๊กอินสำหรับ IntelliJ-IDEA-based IDEs สำหรับการทำงานกับโค้ด Wolfram Language ซึ่งนอกเหนือจากการเน้นไวยากรณ์แล้ว ยังสามารถแยกวิเคราะห์, เติมตัวแปรท้องถิ่น (local variable) และฟังก์ชันที่กำหนดได้โดยอัตโนมัติ Kernal ของวุลฟรัมยังมีส่วนติดต่อคำสั่งแบบ command line อีกด้วย

 ภาษา 
ภาษาในโปรแกรม วุลฟรัม (Wolfram Language)wolfram.com Wolfram Language – Wissensbasiertes Programmieren มีพื้นฐานมาจากภาษา Lisp ซึ่งเป็นภาษาโปรแกรมเชิงฟังก์ชัน นอกจากนี้วุลฟรัมยังอิงตามการจับคู่รูปแบบ (Pattern matching) เป็นหลัก (คล้ายเคลียงกับภาษา Haskell) สิ่งนี้ทำให้เกิดความสับสน อย่างยิ่งสำหรับผู้เริ่มต้น เนื่องจากรูปแบบ เช่น ตัวยึดรูปแบบ จะปรากฏขึ้นทันทีที่มีการทำงานกับฟังก์ชันต่าง ๆ วงเล็บเหลี่ยมที่ใช้เกือบตลอดเวลา ทำให้เกิดลักษณะโค้ดที่แตกต่างจากภาษาโปรแกรมทั่วไปเช่น C อย่างมาก สำหรับวุลฟรัมคำจำกัดความต่อไปนี้ไม่ใช่ฟังก์ชัน แต่เป็นกฎการแทนที่, สิ่งที่จะเกิดขึ้นกับตัวแปร "something" ใน f[something] หลังจากการประเมิณผลของ something + something คือการแทนที่ตัวแปร "something" ด้วย "something + something" หลังจากนี้, ซึ่งในที่นี้ something จะเป็นอะไรก็ได้:
f[x_] = x + x
อย่างไรก็ตามฟังก์ชันในแง่ของการเขียนโปรแกรมในรูปแบบของ แลมบ์ดา-แคลคูลัส ถูกสร้างขึ้นด้วยรูปแบบ Function:

f = Function[x, x + x]

ข้อดีของการจับคู่รูปแบบในพีชคณิตคอมพิวเตอร์คือกฎการแทนที่ที่ซับซ้อนสามารถเขียนให้กะทัดรัดได้ ฟังก์ชันที่กำหนดไว้ในส่วนต่าง ๆ สามารถกำหนดได้โดยใช้กฎการจับคู่ดังนี้:
g[x_ /; x < 7] = 2*x;
g[x_ /; x > 7] = 3*x;
ในตัวอย่างนี้ g[3] จะถูกประมวลผลด้วย 2*3=6, แต่ g[10] จะถูกประมวลผลด้วย 3*10=30

thumb|ผลของคำสั่ง Plus[a,Sin[Times[b,c] ในรูปแบบ ต้นไม้

เช่นเดียวกับ Lisp วุลฟรัม จัดแสดงคุณสมบัติของความเป็น เนื้อเดียวกัน (Homoiconicity) ซึ่งหมายความว่าโค้ดวุลฟรัมและผลลัพธ์ของการคำนวณเป็นข้อมูลประเภทเดียวกัน จริง ๆ แล้วคำสั่งวุลฟรัมเช่น ผลลัพธ์นั้นเป็นแผนผังต้นไม้และการประเมินข้อมูลคือการแปลงต้นไม้ดังกล่าว ด้วยเหตุนี้ องค์ประกอบแรกของนิพจน์ วุลฟรัมจึงถูกเรียกว่า หัว (head) ในตัวอย่างต่อไปนี้ head คือคำสั่ง plus:
Plus[a,Sin[Times[b,c]]]
เมื่อแสดงเป็นต้นไม้ ผลลัพธ์จะมีลักษณะดังที่แสดงทางด้านขวา ส่วนหัว ของทรีคือฟังก์ชัน Plus วุลฟรัมรู้วิธีต่าง ๆ ในการแสดงอินพุต/เอาท์พุต การเขียนแบบธรรมชาตินี้สอดคล้องผลลัพธ์ที่อ่านง่ายกว่าคือ
a + Sin[b*c]

วุลฟรัม รองรับการประมวลผลพีชคณิตของคอมพิวเตอร์ซึ่งประมวลผล สัญลักษณ์ที่กำหนดเองในผลลัพธ์ดังกล่าว การใช้รายการกฎการแทนที่ นิพจน์เหล่านี้จะถูกแปลงเป็นแผนภูมิต้นไม้ในรูปแบบอื่น เมื่อประกอบในลักษณะนี้ ทำให้การคำนวณที่ซับซ้อนเป็นไปได้ ดังนั้น วุลฟรัม จึงเป็น การพิมพ์แบบไดนามิก ตรงกันข้ามกับภาษาอื่น ๆ ในวุลฟรัมบรรทัดที่ไม่สามารถประเมินได้โดยทั่วไปไม่ใช่ข้อผิดพลาด แต่ยังคงอยู่เป็นการคืนค่า (return) อย่างไรก็ตาม เอาต์พุตข้อผิดพลาดยังคงเป็นไปได้ เช่น เมื่อส่งอาร์กิวเมนต์ที่ไม่เหมาะสมไปยังฟังก์ชัน (built-in) เช่น Plot

โปรแกรมเมอร์ไม่ได้จำกัดอยู่เพียงแค่ กระบวนทัศน์การเขียนโปรแกรม (Programming paradigm)  แต่ยังสามารถโปรแกรมคำสั่งที่จำเป็นได้ ด้วยฟังก์ชันภายในนับหมื่นรายการ โปรแกรมจึงถูกเขียนได้หลากหลายและรวดเร็ว

 ตัวอย่างการใช้ภาษา 
 ตัวอย่างที่ 1: จำนวนเฉพาะ 
ด้วยฟังก์ชัน Prime[k] จำนวนเฉพาะลำดับที่ k จะถูกคำนวนและแสดงผล ยกตัวอย่างเช่น

 In[1]:= Prime[15]
 Out[1]= 47

สังเกตุว่า คำนำหน้าที่เขียนโดยวุลฟรัมจะเป็นแบบอักษรขนาดเล็กและเป็นสีน้ำเงิน (กล่าวคือ ไม่ใช่ลิงก์)

รายการหมายเลขเฉพาะสามารถสร้างได้หลายวิธี เช่น รายการหมายเลขเฉพาะ 15 หลักแรกสามารถสร้างขึ้นด้วยวิธีดังนี้

แบบที่ 1: การใช้ฟังก์ชัน Table
 In[1]:= Table[Prime[i],{i,15}]
 Out[1]= {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47}

แบบที่ 2: การใช้ฟังก์ชัน Range
 In[1]:= Prime /@ Range[15]
 Out[1]= {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47}

แบบที่ 3: เก็บจำนวนเฉพาะในช่องข้อมูล
 In[1]:= f[n_]:=Table[Prime[i],{i,n}]
 In[2]:= f[15]
 Out[2]= {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47}

แบบที่ 4: เลือกรายการจำนวนเฉพาะในบล็อกโดยใช้ระดับจำนวนเฉพาะ
 In[1]:= tm = 2; p = {}; k = 1; Do[
  Do[If[t > 0,
    For[i = 1, (s = p[[i]]) <= t + 1, i++,
     If[GCD[k - s, 2 s - 1] != 1, Goto[l]]]]; p = AppendTo[p, k];
   Label[l]; k++, {4 (t + 1)}], {t, 0, tm}]; p *= 2; p--; p[[1]]++; p
 Out[1]=  {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47}
ตัวอย่างที่ 4 ลำเลียงวุลฟรัมให้เป็นภาษาโปรแกรม

มีฟังก์ชันจำนวนเฉพาะอื่น ๆ อีก เช่นฟังก์ชัน  PrimePi[x] จะส่งคืนจำนวนเฉพาะที่น้อยกว่าหรือเท่ากับ x
 In[1]:= PrimePi[50]
 Out[1}= 15

คุณสามารถสอบถามได้ว่าจำนวนเต็ม n เป็นจำนวนเฉพาะหรือไม่โดยใช้ฟังก์ชัน PrimeQ[n] ตัวอย่างเช่น ค.ศ. 2017 เป็นจำนวนเฉพาะใช่หรือไม่
 n[1]:= PrimeQ[2017]
 Out[1]= True

2023 เป็นจำนวนเฉพาะใช่หรือไม่
 In[1]:= PrimeQ[2023]
 Out[1]= False

2023 มีตัวประกอบอะไรบ้าง
 In[1]:= Divisors[2023]
 Out[1]= {1,7,17,119,289,2023}

 ตัวอย่างที่ 2: การคำนวณค่าเฉลี่ย 
ด้านล่างนี้เป็นสามวิธีในการคำนวณค่าเฉลี่ยของรายการค่าโดยใช้วุลฟรัมซึ่งในโหมดโต้ตอบจะกำหนดตัวเลขอินพุตและเอาต์พุตและส่งมอบผลลัพธ์โดยตรง

กำหนดรายการค่า:
 In[1]:= myData = Range[8]
 Out[1]= {1, 2, 3, 4, 5, 6, 7, 8}

ใช้ฟังก์ชันของวุลฟรัม:
 In[2]:= Mean[myData]
 Out[2]= 9/2

ใช้การจัดการรายการ:
 In[3]:= Plus@@myData / Length[myData]
 Out[3]= 9/2

ขั้นตอนการดำเนินการ:
 In[4]:= summe = 0
 Out[4]= 0
 In[5]:= For[ j=1,j <= Length[myData], j++, summe += myData[[j]] ]
 In[6]:= summe / Length[myData]
 Out[6]= 9/2

 ตัวอย่างที่ 3: เมทริกซ์ 

วุลฟรัม มีฟังก์ชันต่าง ๆ มากมายสำหรับสร้างและจัดการเมทริกซ์ทั้งในแบบ  Hilbert เมทริกซ์ หรือ Hankel เมทริกซ์ องค์ประกอบเมทริกซ์สามารถเป็นได้ทั้งตัวเลขและสัญลักษณ์ ในตัวอย่างด้านล่างได้มีการลองใช้สัญลักษณ์และตั้งชื่อเมทริกซ์ว่า FeldX องค์ประกอบเมทริกซ์จะถูกป้อนทีละบรรทัดในรูปแบบพิเศษด้วยฟังก์ชัน MatrixForm เมทริกซ์จะแสดงในรูปแบบปกติ:

  In[1]:=  MatrixForm [FeldX={{a, b, 0}, {c, a, b}, {0, c, a}}]
  Out[1]//MatrixForm= 

thumb|521x521px|ภาพหน้าจอของโปรแกรม วุลฟรัม แมเทอแมทิกา เวอร์ชัน 3.0 แสดงผลเมทริกซ์ วงเล็บสีน้ำเงินทางด้านขวาเรียกว่าเซลล์
เมทริกซ์นี้เป็นเมทริกซ์  Toeplitz สามเหลี่ยมมุมฉาก สำหรับการ จัดการเมทริกซ์ จุดแบบธรรมดา (.) จะถูกวางไว้ระหว่างชื่อฟิลด์  ดอกจัน (*) คือสัญลักษณ์ที่ใช้บ่อยสำหรับการคูณในสเปรดชีตและ ภาษาการเขียนโปรแกรมใช้สำหรับการคูณแต่ละองค์ประกอบ กับตัวมันเองจะมีลักษณะไวยกรณ์เช่นนี้:

  In[2]:=  MatrixForm [FeldX.FeldX]
  Out[2]//MatrixForm= 

ทรานสโพส ของเมทริกซ์ FeldX ถูกสร้างขึ้นด้วยวิธีนี้:

  In[3]:=  MatrixForm [Transpose[FeldX]]
  Out[3]//MatrixForm= 

ดีเทอร์มิแนนต์ ของเมทริกซ์ FeldX คำนวณโดยใช้ฟังก์ชันDet[FeldX]:
  In[4]:=  Det[FeldX]
  Out[4]=  a³-2abc

ส่วนผกผันของเมทริกซ์ FeldX จะได้มาด้วยฟังก์ชัน Inverse[FeldX]:

  In[5]:=  MatrixForm [Inverse[FeldX]]
  Out[5]//MatrixForm= 
การแสดงผลที่นี่ไม่ตรงกับการประมวลผลของ วุลฟรัม ทุกประการเพราะ ตัวคูณร่วมของทุกองค์ประกอบในถูกแยกออกมา

ค่าลักษณะเฉพาะ (eigen value) จะมาพร้อมกับฟังก์ชัน Eigenvalues[FeldX]:

  In[6]:=  Eigenvalues[FeldX]
  Out[6]=  {a, a – ,  }

ถ้า a, b และ c เป็นจำนวนจริง และสัญลักษณ์ของ a และ b ต่างกัน, ค่าลักษณะเฉพาะทั้งสองจะเป็นจำนวนจินตภาพ และทั้งสองค่าจะเป็น สังยุคของจำนวนเชิงซ้อนของกันและกัน ในทำนองเดียวกัน สามารถคำนวณเวกเตอร์ลักษณะเฉพาะได้โดยใช้ฟังก์ชัน  Eigenvectors[FeldX]

 ตัวอย่างที่ 4: การวาดรูปแบบพลาโทนิก 

thumb|300px|รูปแบบพลาโตนิกทั้งห้าและรูปแบบที่ถูกตัดทอน สร้างขึ้นโดยการตัดจุดมุมออก วาดโดยใช้ฟังก์ชันมาตรฐานของวุลฟรัมเวอร์ชัน 3.0

รูปแบบพลาโทนิก เป็น ทรงหลายหน้า ซึ่งล้อมรอบด้วยรูปทรงหลายหน้าปรกติ มีการจำแนกยู่ห้ารูปแบบ (จัตุรมุข, ลูกบาศก์, ทรงแปดหน้า, สิบสองหน้า, ไอโคซาฮีดรอน) ในการวาดสิ่งเหล่านี้วุลฟรัมจะรวมฟังก์ชันไว้ด้วย Polyhedronซึ่งต้องระบุชื่อภาษาอังกฤษของรูปทรงหลายเหลี่ยมเป็นอาร์กิวเมนต์ มีฟังก์ชันอื่น ๆ ที่เกี่ยวข้อง เช่น ฟังก์ชัน Truncate ซึ่งสร้างรูปทรงหลายเหลี่ยมที่ถูกตัดทอน (จัตุรมุขที่ถูกตัดทอน, hexahedron ที่ถูกตัดทอน, ทรงแปดหน้าที่ถูกตัดทอน, สิบสองหน้าที่ถูกตัดทอน, icosahedron ที่ถูกตัดทอน), ซึ่งถูกสร้างขึ้นโดยการตัดมุม

ก่อนที่จะเข้าสู่ฟังก์ชันแรก จะต้องโหลดแพ็คเกจ Polyhedra ก่อน

 In[1]:= << Graphics`Polyhedra`
 In[2]:= Show[Polyhedron[Tetrahedron]]

จากนั้นสามารถวาดรูปทรงหลายเหลี่ยมปกติอื่น ๆ และสัดส่วนของพวกมันได้ทีละอันตามที่แสดงในภาพ

Show[Polyhedron[Cube]]
Show[Polyhedron[Octahedron]]
Show[Polyhedron[Dodecahedron]]
Show[Polyhedron[Icosahedron]]
Show[Truncate[Polyhedron[Tetrahedron]]]
Show[Truncate[Polyhedron[Cube]]]
Show[Truncate[Polyhedron[Octahedron]]]
Show[Truncate[Polyhedron[Dodecahedron]]]
Show[Truncate[Polyhedron[Icosahedron]]]

ในกรณีนี้ การใช้วุลฟรัมเป็นเรื่องง่ายมาก  สำหรับตัวอย่างนี้ใช้ วุลฟรัม แมเทอแมทิกา เวอร์ชัน 3.0 (1996) ในเวอร์ชัน 12.0 (2019) ไวยากรณ์ของฟังก์ชันรูปทรงหลายเหลี่ยมมีการเปลี่ยนแปลงPolyhedron

 ประวัติเวอร์ชันและวันที่เผยแพร่ 
การพัฒนา วุลฟรัม จากรุ่นสู่รุ่นเป็นแบบไดนามิกมากจนดูเหมือนเป็นไปไม่ได้ที่จะรวบรวมนวัตกรรม แม้แต่สิ่งที่สำคัญที่สุดในตาราง คุณสามารถดูภาพรวมได้จากเว็บไซต์ประวัติของ เวอร์ชัน วุลฟรัม อย่างสั้น

 รุ่น  วันที่เผยแพร่ 1.0 23 มิถุนายน 1988 1.1 31 ตุลาคม 1988 1.2 1 สิงหาคม 1989 2.0 15 มกราคม 1991 2.1 15 มิถุนายน 1992 2.2 1 มิถุนายน 1993 3.0 3 กันยายน 1996 4.0 19 พฤษภาคม 1999 4.1 2 พฤศจิกายน 2000 4.2 1 พฤศจิกายน 2002 5.0 12 มิถุนายน 2003 5.1 25 ตุลาคม 2004 5.2 20 มิถุนายน 2005 6.0 1 พฤษภาคม 2007 7.0 18 พฤศจิกายน 2008 7.0.1 5 มีนาคม 2009 8.0 15 พฤศจิกายน 2010 8.0.1 7 มีนาคม 2011 8.0.4 24 ตุลาคม 2011 9.0 28 พฤศจิกายน 2012 9.0.1 30 มกราคม 2013 10 9 กรกฎาคม 2014 10.0.1 17 กันยายน 2014 10.0.2 15 ธันวาคม 2014 10.1 31 มีนาคม 2015 10.2 14 กรกฎาคม 2015 10.3 15 ตุลาคม 2015 10.3.1 16 ธันวาคม 2015 10.4 2 มีนาคม 2016 10.4.1 18 เมษายน 2016 11 9 สิงหาคม 2016 11.0.1 28 กันยายน 2016 11.1 16 มีนาคม 2017 11.1.1 25 เมษายน 2017 11.2 14 กันยายน 2017 11.3 8 มีนาคม 2018 12.0 16 เมษายน 2019 12.1 18 มีนาคม 2020 12.2 16 ธันวาคม 2020 12.3 20 พฤษภาคม 2021 12.3.1 กรกฎาคม 2021 13.0 13 ธันวาคม 2021 13.1 29 มิถุนายน 2022 13.2 14 ธันวาคม 2022 13.2.1 กุมภาพันธ์ 2023 13.3 12 มิถุนายน 2023 14.0 9 มกราคม 2024 14.1 31 กรกฎาคม 2024

 การเชื่อมต่อกับระบบและภาษาอื่น ๆ 
การสื่อสารกับแอปพลิเคชันและบริการอื่นสามารถเกิดขึ้นได้โดยใช้โปรโตคอลที่เรียกว่า Wolfram Symbolic Transfer Protocol (WSTP)wolfram.com WSTP ช่วยให้สามารถสื่อสารระหว่างเคอร์เนลวุลฟรัมและฟรอนต์เอนด์ และจัดให้มีอินเทอร์เฟซทั่วไประหว่างเคอร์เนลและแอปพลิเคชันอื่น ๆ ซึ่งสามารถตั้งโปรแกรมเป็นภาษาอื่นได้ วุลฟรัม มีอินเทอร์เฟซสำหรับ Haskell,hackage.haskell.org แอปเปิ้ลสคริปต์,แร็กเกต, วิชวลเบสิก,library.wolfram.com ไพทอนlibrary.wolfram.com และ โคลจูเร่ (Clojure)clojuratica.weebly.com

 ปัญหา 
เมื่อ ค.ศ. 2014 นักคณิตศาสตร์สามคนตีพิมพ์ว่าวุลฟรัมให้ผลลัพธ์ที่ไม่ถูกต้องเมื่อคำนวณดีเทอร์มิแนนต์ของเมทริกซ์บางตัวที่มีจำนวนเต็มค่อนข้างมาก (10,000 หลัก) ข้อผิดพลาดนี้ได้รับการรายงานเมื่อ ค.ศ. 2013 และไม่ได้รับการแก้ไขหลังจากผ่านไปนานกว่าหนึ่งปี อย่างไรก็ตาม การนำเสนอของ Wolfram Research บางส่วนขัดแย้งกับข้อมูลนี้และทำให้เกิดข้อผิดพลาดใหม่heise.de ข้อผิดพลาดในการคำนวณ (CASE:303438) ได้รับการแก้ไขแล้วตั้งแต่เวอร์ชัน 11.1 และไม่มีอีกต่อไปในเวอร์ชั่นปัจจุบัน