ฟังก์ชัน (คณิตศาสตร์)

ในคณิตศาสตร์ ฟังก์ชัน (จากภาษาอังกฤษ "function") จากเซต <math>X</math> ไปยังเซต <math>Y</math>เป็นการดำเนินการที่สำหรับสมาชิกแต่ละตัวใน <math>X</math> จะกำหนดสมาชิกใน <math>Y</math> ให้เพียงตัวเดียวเท่านั้น เซต <math>X</math> เรียกว่า "โดเมน" (domain) ของฟังก์ชัน และเซต <math>Y</math> เรียกว่าโคโดเมน (codomain) ของฟังก์ชัน 
เมื่อเริ่มแรก ฟังก์ชันเป็นการระบุว่าปริมาณค่าหนึ่งขึ้นอยู่กับอีกค่าหนึ่ง ตัวอย่างเช่น ตำแหน่งของดาวเคราะห์เป็น"ฟังก์ชัน"ของเวลา นั่นคือเมื่อเวลาเปลี่ยนแปลงไป ตำแหน่งของดาวเคราะห์ก็จะเปลี่ยนแปลงไปด้วย ตามประวัติศาสตร์แล้วแนวคิดเรื่องฟังก์ชันสัมพันธ์กับแคลคูลัสกณิกนันต์ จนถึงศตวรรษที่ 19 ฟังก์ชันในยุคนั้นเป็นฟังก์ชันที่หาอนุพันธ์ได้ทั้งหมด แนวคิดเรื่องฟังก์ชันฉบับปัจจุบันที่เป็นอิสระจากมุมมองทางคณิตวิเคราะห์ใช้ทฤษฎีเซต ทำให้สามารถประยุกต์ในสถานการณ์ที่หลากหลายมากขึ้น 
ฟังก์ชันมักเขียนแทนด้วยตัวอักษร <math>f</math>, <math>g</math> หรือ <math>h</math> ค่าของฟังก์ชัน <math>f</math> ที่จุด <math>x</math> ในโดเมนของมันเขียนแทนด้วย <math>f(x)</math> และมีค่าเท่ากับสมาชิกในโคโดเมนที่ถูกกำหนดให้สัมพันธ์กับ <math>x</math>
ความคิดรวบยอดของฟังก์ชันนี้เป็นพื้นฐานของทุกสาขาของคณิตศาสตร์และวิทยาศาสตร์เชิงปริมาณ
แนวคิด.
แนวคิดที่สำคัญที่สุดคือ ฟังก์ชันนั้นเป็น "กฎ" ที่กำหนดผลลัพธ์โดยขึ้นกับสิ่งที่นำเข้ามา ต่อไปนี้เป็นตัวอย่าง
"กฎ" ที่นิยามฟังก์ชันอาจเป็น สูตร, ความสัมพันธ์ (คณิตศาสตร์) หรือเป็นแค่ตารางที่ลำดับผลลัพธ์กับสิ่งที่นำเข้า ลักษณะเฉพาะที่สำคัญของฟังก์ชันคือมันจะมีผลลัพธ์เหมือนเดิมตลอดเมื่อให้สิ่งนำเข้าเหมือนเดิม ลักษณะนี้ทำให้เราเปรียบเทียบฟังก์ชันกับ "เครื่องกล" หรือ "กล่องดำ" ที่จะเปลี่ยนสิ่งนำเข้าไปเป็นผลลัพธ์ที่ตายตัว เรามักจะเรียกสิ่งนำเข้าว่า "อาร์กิวเมนต์ (argument) " และเรียกผลลัพธ์ว่า "ค่า (value) " ของฟังก์ชัน
ชนิดของฟังก์ชันธรรมดาเกิดจากที่ทั้งอาร์กิวเมนต์และค่าของฟังก์ชันเป็นตัวเลขทั้งคู่ ความสัมพันธ์ของฟังก์ชันมักจะเขียนในรูปสูตร และจะได้ค่าของฟังก์ชันมาทันทีเพียงแทนที่อาร์กิวเมนต์ลงในสูตร เช่น
<math>f (x) =x^2</math>
ซึ่งจะได้ค่ากำลังสองของ "x" ใด ๆ
โดยนัยทั่วไปแล้ว ฟังก์ชันจะสามารถมีได้มากกว่าหนึ่งอาร์กิวเมนต์ เช่น
<math>g (x,y) =xy</math>
เป็นฟังก์ชันที่นำตัวเลข "x" และ "y" มาหาผลคูณ ดูเหมือนว่านี่ไม่ใช่ฟังก์ชันจริงๆดังที่เราได้อธิบายข้างต้น เพราะว่า "กฎ" ขึ้นอยู่กับสิ่งนำเข้า 2 สิ่ง อย่างไรก็ตาม ถ้าเราคิดว่าสิ่งนำเข้า 2 สิ่งนี้เป็น คู่อันดับ <math> (x,y) </math> 1 คู่ เราก็จะสามารถแปลได้ว่า "g" เป็นฟังก์ชัน โดยที่อาร์กิวเมนต์คือคู่อันดับ <math> (x,y) </math> และค่าของฟังก์ชันคือ <math>xy</math>
ในวิทยาศาสตร์ เรามักจะต้องเผชิญหน้ากับฟังก์ชันที่ไม่ได้กำหนดขึ้นจากสูตร เช่นอุณหภูมิบนพื้นผิวโลกในเวลาใดเวลาหนึ่ง นี่เป็นฟังก์ชันที่มีสถานที่และเวลาเป็นอาร์กิวเมนต์ และให้ผลลัพธ์เป็นอุณหภูมิของสถานที่และเวลานั้น ๆ
เราได้เห็นแล้วว่าแนวคิดของฟังก์ชันไม่ได้จำกัดอยู่แค่การคำนวณด้วยตัวเลขเท่านั้น และไม่ได้จำกัดอยู่แค่การคำนวณด้วย แนวคิดของคณิตศาสตร์เกี่ยวกับฟังก์ชัน เป็นแนวคิดโดยทั่วไปและไม่ได้จำกัดอยู่แค่สถานการณ์ที่เกี่ยวข้องกับตัวเลขเท่านั้น แน่นอนว่าฟังก์ชันเชื่อมโยง "โดเมน" (เซตของสิ่งนำเข้า) เข้ากับ "โคโดเมน" (เซตของผลลัพธ์ที่เป็นไปได้) ดังนั้นสมาชิกแต่ละตัวของโดเมนจะจับคู่กับสมาชิกตัวใดตัวหนึ่งของโคโดเมนเท่านั้น ฟังก์ชันนั้นนิยามเป็นความสัมพันธ์ที่แน่นอน ดังที่จะกล่าวต่อไป เป็นเหตุจากลักษณะทั่วไปนี้ แนวคิดรวบยอดของฟังก์ชันจึงเป็นพื้นฐานของทุกสาขาในคณิตศาสตร์
ประวัติ.
ในทางคณิตศาสตร์ "ฟังก์ชัน" บัญญัติขึ้นโดย ไลบ์นิซ ใน พ.ศ. 2237 เพื่ออธิบายปริมาณที่เกี่ยวข้องกับเส้นโค้ง เช่น ความชันของเส้นโค้ง หรือจุดบนเส้นโค้ง ฟังก์ชันที่ไลบ์นิซพิจารณานั้นในปัจจุบันเรียกว่า ฟังก์ชันที่หาอนุพันธ์ได้ และเป็นชนิดของฟังก์ชันที่มักจะแก้ด้วยผู้ที่ไม่ใช่นักคณิตศาสตร์ สำหรับฟังก์ชันชนิดนี้ เราสามารถพูดถึงลิมิตและอนุพันธ์ ซึ่งเป็นการทฤษฎีเซต พวกเขาได้พยายามนิยามวัตถุทางคณิตศาสตร์ทั้งหมดด้วย เซต ดีริคเลท และ โลบาเชฟสกี ได้ให้นิยามสมัยใหม่ของฟังก์ชันออกมาเกือบพร้อม ๆ กัน
ในคำนิยามนี้ ฟังก์ชันเป็นเพียงกรณีพิเศษของความสัมพันธ์ อย่างไรก็ตาม เป็นกรณีที่มีความน่าสนใจเป็นพิเศษ ความแตกต่างระหว่างคำนิยามสมัยใหม่กับคำนิยามของออยเลอร์นั้นเล็กน้อยมาก
แนวคิดของ ฟังก์ชัน ที่เป็นกฎในการคำนวณ แทนที่เป็นความสัมพันธ์ชนิดพิเศษนั้น อยู่ในคณิตตรรกศาสตร์ และวิทยาการคอมพิวเตอร์เชิงทฤษฎี ด้วยหลายระบบ รวมไปถึง แคลคูลัสแลมบ์ดา ทฤษฎีฟังก์ชันเวียนเกิด และเครื่องจักรทัวริง
นิยามอย่างเป็นรูปนัย.
ฟังก์ชัน <math>f</math> จากเซต <math>X</math> ไปเซต <math>Y</math> (เขียนเป็น <math>f:X\rightarrow Y</math>) คือความสัมพันธ์ระหว่าง <math>X</math> กับ <math>Y</math> ซึ่ง
ค่านำเข้า <math>x</math> แต่ละค่า จากโดเมน จะมีผลลัพธ์ <math>y</math> จากโคโดเมนเพียงค่าเดียว แทนด้วย <math>f (x)</math>
จากนิยามข้างต้น เราสามารถเขียนอย่างสั้นๆได้ว่า ฟังก์ชันจาก <math>X</math> ไปยัง <math>Y</math> คือเซตย่อย <math>f</math> ของผลคูณคาร์ทีเซียน <math>X \times Y</math> โดยที่แต่ละค่าของ <math>x</math> ใน <math>X</math> จะมี <math>y</math> ใน <math>Y</math> ที่แตกต่างกัน โดยที่คู่อันดับ <math>(x, y)</math> อยู่ใน <math>f</math>
เซตของฟังก์ชัน <math>f:X\rightarrow Y</math> ทุกฟังก์ชันแทนด้วย <math>Y^X</math> เรียกว่าปริภูมิฟังก์ชัน สังเกตว่า <math>|Y^X| = |Y|^</math> (อ้างถึง จำนวนเชิงการนับ)
ความสัมพันธ์ระหว่าง <math>X</math> กับ <math>Y</math> ซึ่งเป็นไปตามเงื่อนไข (1) นั่นคือฟังก์ชันหลายค่า ฟังก์ชันทุกฟังก์ชันเป็นฟังก์ชันหลายค่า แต่ฟังก์ชันหลายค่าไม่ทุกฟังก์ชันเป็นฟังก์ชัน ความสัมพันธ์ระหว่าง <math>X</math> กับ <math>Y</math> ซึ่งเป็นไปตามเงื่อนไข (2) นั่นคือฟังก์ชันบางส่วน ฟังก์ชันทุกฟังก์ชันเป็นฟังก์ชันบางส่วน แต่ฟังก์ชันบางส่วนไม่ทุกฟังก์ชันเป็นฟังก์ชัน "ฟังก์ชัน" คือความสัมพันธ์ที่เป็นไปตามเงื่อนไขทั้งสองเงื่อนไข
ดูตัวอย่างต่อไปนี้
 สมาชิก <math>3</math> ใน <math>X</math> สัมพันธ์กับ <math>b</math> และ <math>c</math> ใน <math>Y</math> ความสัมพันธ์นี้เป็นฟังก์ชันหลายค่า แต่"ไม่"เป็นฟังก์ชัน
 สมาชิก 1 ใน <math>X</math> ไม่สัมพันธ์กับสมาชิกใดๆเลยใน <math>Y</math> ความสัมพันธ์นี้เป็นฟังก์ชันบางส่วน แต่"ไม่"เป็นฟังก์ชัน
 ความสัมพันธ์นี้เป็นฟังก์ชันจาก <math>X</math> ไปยัง <math>Y</math> เราสามารถหานิยามฟังก์ชันนี้อย่างชัดแจ้งได้เป็น <math>f=\{ (1,d) , (2,d) , (3,c) \}</math> หรือเป็น
<math>f (x) =\left\{\begin{matrix} d, & \mbox{if }x=1 \\ d, & \mbox{if }x=2 \\ c, & \mbox{if }x=3. \end{matrix}\right.</math>
โดเมน, โคโดเมน และเรนจ์.
"X" ซึ่งคือเซตข้อมูลนำเข้าเรียกว่า โดเมนของ "f" และ "Y" ซึ่งคือ เซตของผลลัพธ์ ที่เป็นไปได้ เรียกว่า โคโดเมน เรนจ์ของ "f" คือ เซตของผลลัพธ์ จริง ๆ {"f (x) : x" ในโดเมน} ระวังว่าบางครั้งโคโดเมนจะถูกเรียกว่าเรนจ์ เนื่องจากความผิดพลาดจากการจำแนกระหว่างผลที่เป็นไปได้กับผลจริง ๆ
ฟังก์ชันนั้นเรียกชื่อตามเรนจ์ของมัน เช่น ฟังก์ชันจำนวนจริง หรือ ฟังก์ชันจำนวนเชิงซ้อน
เอนโดฟังก์ชัน คือฟังก์ชันที่โดเมนและเรนจ์เป็นเซตเดียวกัน
ในสาขาวิทยาการคอมพิวเตอร์ แบบชนิดข้อมูลของอาร์กิวเมนต์และค่าที่คืนกลับมาระบุโดเมนและโคโดเมน (ตามลำดับ) ของโปรแกรมย่อย ดังนั้นโดเมนและโคโดเมนจะถูกกำหนดไว้ในแต่ละฟังก์ชัน แต่เรนจ์จะเกี่ยวกับว่าค่าที่คืนกลับมาจะเป็นอย่างไร
ฟังก์ชันหนึ่งต่อหนึ่ง ฟังก์ชันทั่วถึง และฟังก์ชันหนึ่งต่อหนึ่งทั่วถึง.
เราสามารถแบ่งฟังก์ชันตามลักษณะความสัมพันธ์ได้ดังนี้
ภาพ และบุพภาพ.
"ภาพ" (image) ของ "x" โดยที่ "x" ∈ "X" ภายใต้ "f" คือผลลัพธ์ "f (x) "
ภาพของเซตย่อย "A"⊂"X" ภายใต้ "f" คือ เซตย่อย "Y" ซึ่งมีนิยามดังนี้
"f"["A"] = {"f" ("x")  | "x" อยู่ใน "A"}
บางครั้ง อาจใช้ "f" ("A") แทน "f"["A"]
"บุพภาพ" (preimage) (หรือ "ภาพผกผัน") ของเซต "B" ⊂ "Y" ภายใต้ "f" คือ เซตย่อยของ "X" ซึ่งมีนิยามคือ
"f" −1 ("B")  = {"x" อยู่ใน "X" | "f" ("x") ∈"B"}
กราฟของฟังก์ชัน.
กราฟของฟังก์ชัน "f" คือ เซตของคู่อันดับ ("x", "y" ("x")) ทั้งหมด สำหรับค่า "x" ทั้งหมดในโดเมน "X" มีทฤษฎีบทที่แสดงหรือพิสูจน์ง่ายมากเมื่อใช้กราฟ เช่น ทฤษฎีบทกราฟปิด ถ้า "X" และ "Y" เป็นเส้นจำนวนจริง แล้วนิยามนี้จะสอดคล้องกับแนวคิดของกราฟ
สังเกตว่าเมื่อความสัมพันธ์ระหว่างสองเซต "X" และ "Y" มักจะแสดงด้วยเซตย่อยของ "X"×"Y" นิยามอย่างเป็นทางการของฟังก์ชันนั้นระบุฟังก์ชัน "f" ด้วยกราฟของมัน
ตัวอย่างฟังก์ชัน.
ชนิดของฟังก์ชันทางคณิตศาสตร์ที่มักใช้กันเช่น การบวก การลบ การคูณ การหาร พหุนาม เลขยกกำลัง ลอการิทึม ราก อัตราส่วน และตรีโกณมิติ ฟังก์ชันเหล่านี้มักเรียกว่า ฟังก์ชันพื้นฐาน แต่คำนี้จะมีความหมายต่างออกไปตามสาขาของคณิตศาสตร์ ตัวอย่างของฟังก์ชันที่ไม่เป็นพื้นฐาน (ฟังก์ชันพิเศษ) เช่น ฟังก์ชันเบสเซิล และฟังก์ชันแกมมา
คุณสมบัติของฟังก์ชัน.
ฟังก์ชันอาจเป็น
ฟังก์ชันแบบ "n"-ary : ฟังก์ชันหลายตัวแปร.
ฟังก์ชันที่เราใช้ส่วนมักจะเป็น ฟังก์ชันหลายตัวแปร ค่าที่ได้จะขึ้นอยู่กับปัจจัยต่าง ๆ กัน
จากมุมมองของคณิตศาสตร์ ตัวแปรทั้งหมดต้องแสดงอย่างชัดแจ้งเพื่อที่จะเกิดความสัมพันธ์แบบฟังก์ชัน - ไม่มีปัจจัย "ซ่อนเร้น" อยู่
และเช่นกัน จากมุมมองของคณิตศาสตร์ ไม่มีความแตกต่างเชิงคุณภาพระหว่างฟังก์ชันตัวแปรเดียวกับฟังก์ชันหลายตัวแปร
ฟังก์ชันสามตัวแปรจำนวนจริงนั้นก็คือฟังก์ชันของ "triple" (("x","y","z")) ของจำนวนจริง
ถ้าโดเมนของฟังก์ชันหนึ่งเป็นเซตย่อยของ ผลคูณคาร์ทีเซียน ของ "n" เซต แล้ว เราเรียกฟังก์ชันนี้ว่า ฟังก์ชัน "n"-ary
ตัวอย่างเช่นฟังก์ชัน "dist" มีโดเมน <math>\mathbb{R}\times\mathbb{R}</math> จึงเป็นฟังก์ชันทวิภาค
ในกรณีนี้ "dist" (("x","y")) เขียนอย่างง่ายเป็น "dist" ("x","y")
การดำเนินการ ก็เป็นฟังก์ชันหลายตัวแปรชนิดหนึ่ง ในพีชคณิตนามธรรม
ตัวดำเนินการเช่น "*" นั้นนิยามจากฟังก์ชันทวิภาค เมื่อเราเขียนสูตรเช่น "x"*"y" ในสาขานี้ เสมือนกับว่าเราเรียกใช้ฟังก์ชัน * ("x","y") โดยปริยาย เพียงแต่เขียนในรูปสัญกรณ์เติมกลาง (infix notation) ซึ่งสะดวกกว่า
ตัวอย่างที่สำคัญทางทฤษฎีตัวอย่างหนึ่งคือ กำหนดการเชิงฟังก์ชัน ซึ่งใช้แนวคิดของฟังก์ชันเป็นศูนย์กลาง
ด้วยวิธีนี้ การจัดการฟังก์ชันหลายตัวแปรทำได้เหมือนเป็นการดำเนินการ ซึ่งแคลคูลัสแลมบ์ดา มีวากยสัมพันธ์ (syntax) ให้เรา
การประกอบฟังก์ชัน.
ฟังก์ชัน "f": "X" → "Y" และ "g":"Y" → "Z" สามารถ"ประกอบ"กันได้
ซึ่งจะได้ผลเป็นฟังก์ชันประกอบ "g" "f": "X" → "Z" ซึ่งมีนิยามคือ ("g" "f") ("x") = "g" ("f" ("x")) สำหรับทุกค่าของ "x" ใน "X" ตัวอย่างเช่น สมมติว่าความสูงของเครื่องบินที่เวลา "t" เป็นไปตามฟังก์ชัน "h" ("t") และความเข้มข้นของออกซิเจนในอากาศที่ความสูง "x" เป็นไปตามฟังก์ชัน "c" ("x") ดังนี้น ("c" "h") ("t") จะบอกความเข้มข้นของออกซิเจนในอากาศรอบๆเครื่องบินที่เวลา "t"
ฟังก์ชันผกผัน.
ถ้าฟังก์ชัน "f": "X" → "Y" เป็นฟังก์ชันหนึ่งต่อหนึ่งต่อเนื่อง แล้ว พรีอิเมจของสมาชิก "y" ใด ๆ ในโคโดเมน "Y" จะเป็นเซตโทน
ฟังก์ชันจาก "y" ∈ "Y" ไปยังพรีอิเมจ "f" −1 ("y") ของมัน คือฟังก์ชันที่เรียกว่า ฟังก์ชันผกผัน ของ "f" เขียนแทนด้วย "f" −1
ตัวอย่างหนึ่งของฟังก์ชันผกผันสำหรับ "f" ("x") = 2"x" คือ "f" −1 ("x") = "x"/2
ฟังก์ชันผกผันคือฟังก์ชันที่ย้อนการกระทำของฟังก์ชันต้นแบบของมัน
ดู อิเมจผกผัน
บางครั้งฟังก์ชันผกผันก็หายากหรือไม่มี
พิจารณา <math>f (x) = x^2</math> ฟังก์ชัน <math>f (x) =\sqrt{x}</math> ไม่ใช่ฟังก์ชันผกผันเมื่อโดเมนของ <math>f</math> คือ <math>\mathbb{R}</math>