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

ในคณิตศาสตร์ ฟังก์ชัน คือ ความสัมพันธ์ จากเซตหนึ่งที่เรียกว่าโดเมน ไปยังอีกเซตหนึ่งที่เรียกว่าโคโดเมน (บางครั้งคำว่าเรนจ์อาจถูกใช้แทน แต่เรนจ์นั้นมีความหมายอื่นด้วย "โคโดเมน" จึงเป็นที่นิยมมากกว่า เพราะไม่กำกวม) โดยที่สมาชิกตัวหน้าไม่ซ้ำกัน ความคิดรวบยอดของฟังก์ชันนี้เป็นพื้นฐานของทุกสาขาของคณิตศาสตร์และวิทยาศาสตร์เชิงปริมาณ
== แนวคิด ==
แนวคิดที่สำคัญที่สุดคือ ฟังก์ชันนั้นเป็น "กฎ" ที่กำหนดผลลัพธ์โดยขึ้นกับสิ่งที่นำเข้ามา ต่อไปนี้เป็นตัวอย่าง
แต่ละคนจะมีสีที่ตนชอบ (แดง, ส้ม, เหลือง, ฟ้า, น้ำเงิน, คราม หรือม่วง) สีที่ชอบเป็นฟังก์ชันของแต่ละคน เช่น จอห์นชอบสีแดง แต่คิมชอบสีม่วง ในที่นี้สิ่งที่นำเข้าคือคน และผลลัพธ์คือ 1 ใน 7 สีดังกล่าว
มีเด็กบางคนขายน้ำมะนาวในช่วงฤดูร้อน จำนวนน้ำมะนาวที่ขายได้เป็นฟังก์ชันของอุณหภูมิภายนอก ตัวอย่างเช่น ถ้าภายนอกมีอุณหภูมิ 85 องศาฟาเรนไฮด์ จะขายได้ 10 แก้ว แต่ถ้าอุณหภูมิ 95 องศา จะขายได้ 25 แก้ว ในที่นี้ สิ่งที่นำเข้าคืออุณหภูมิ และผลลัพธ์คือจำนวนน้ำมะนาวที่ขายได้
ก้อนหินก้อนหนึ่งปล่อยลงมาจากชั้นต่างๆของตึกสูง ถ้าปล่อยจากชั้นที่สอง จะใช้เวลา 2 วินาที และถ้าปล่อยจากชั้นที่แปด จะใช้เวลา (เพียง) 4 วินาที ในที่นี้ สิ่งนำเข้าคือชั้น และผลลัพธ์คือระยะเวลาเป็นวินาที ฟังก์ชันนี้อธิบายความสัมพันธ์ระหว่าง เวลาที่ก้อนหินใช้ตกถึงพื้นกับชั้นที่มันถูกปล่อยลงมา (ดู ความเร่ง)
"กฎ" ที่นิยามฟังก์ชันอาจเป็น สูตร, ความสัมพันธ์ (คณิตศาสตร์) หรือเป็นแค่ตารางที่ลำดับผลลัพธ์กับสิ่งที่นำเข้า ลักษณะเฉพาะที่สำคัญของฟังก์ชันคือมันจะมีผลลัพธ์เหมือนเดิมตลอดเมื่อให้สิ่งนำเข้าเหมือนเดิม ลักษณะนี้ทำให้เราเปรียบเทียบฟังก์ชันกับ "เครื่องกล" หรือ "กล่องดำ" ที่จะเปลี่ยนสิ่งนำเข้าไปเป็นผลลัพธ์ที่ตายตัว เรามักจะเรียกสิ่งนำเข้าว่า อาร์กิวเมนต์ (argument)  และเรียกผลลัพธ์ว่า ค่า (value)  ของฟังก์ชัน
ชนิดของฟังก์ชันธรรมดาเกิดจากที่ทั้งอาร์กิวเมนต์และค่าของฟังก์ชันเป็นตัวเลขทั้งคู่ ความสัมพันธ์ของฟังก์ชันมักจะเขียนในรูปสูตร และจะได้ค่าของฟังก์ชันมาทันทีเพียงแทนที่อาร์กิวเมนต์ลงในสูตร เช่น
f (x) =x^2
ซึ่งจะได้ค่ากำลังสองของ x ใดๆ
โดยนัยทั่วไปแล้ว ฟังก์ชันจะสามารถมีได้มากกว่าหนึ่งอาร์กิวเมนต์ เช่น
g (x,y) =xy
เป็นฟังก์ชันที่นำตัวเลข x และ y มาหาผลคูณ ดูเหมือนว่านี่ไม่ใช่ฟังก์ชันจริงๆดังที่เราได้อธิบายข้างต้น เพราะว่า "กฎ" ขึ้นอยู่กับสิ่งนำเข้า 2 สิ่ง อย่างไรก็ตาม ถ้าเราคิดว่าสิ่งนำเข้า 2 สิ่งนี้เป็น คู่อันดับ  (x,y)  1 คู่ เราก็จะสามารถแปลได้ว่า g เป็นฟังก์ชัน โดยที่อาร์กิวเมนต์คือคู่อันดับ  (x,y)  และค่าของฟังก์ชันคือ xy
ในวิทยาศาสตร์ เรามักจะต้องเผชิญหน้ากับฟังก์ชันที่ไม่ได้กำหนดขึ้นจากสูตร เช่นอุณหภูมิบนพื้นผิวโลกในเวลาใดเวลาหนึ่ง นี่เป็นฟังก์ชันที่มีสถานที่และเวลาเป็นอาร์กิวเมนต์ และให้ผลลัพธ์เป็นอุณหภูมิของสถานที่และเวลานั้นๆ
เราได้เห็นแล้วว่าแนวคิดของฟังก์ชันไม่ได้จำกัดอยู่แค่การคำนวณด้วยตัวเลขเท่านั้น และไม่ได้จำกัดอยู่แค่การคำนวณด้วย แนวคิดของคณิตศาสตร์เกี่ยวกับฟังก์ชัน เป็นแนวคิดโดยทั่วไปและไม่ได้จำกัดอยู่แค่สถานการณ์ที่เกี่ยวข้องกับตัวเลขเท่านั้น แน่นอนว่าฟังก์ชันเชื่อมโยง "โดเมน" (เซตของสิ่งนำเข้า) เข้ากับ "โคโดเมน" (เซตของผลลัพธ์ที่เป็นไปได้) ดังนั้นสมาชิกแต่ละตัวของโดเมนจะจับคู่กับสมาชิกตัวใดตัวหนึ่งของโคโดเมนเท่านั้น ฟังก์ชันนั้นนิยามเป็นความสัมพันธ์ที่แน่นอน ดังที่จะกล่าวต่อไป เป็นเหตุจากลักษณะทั่วไปนี้ แนวคิดรวบยอดของฟังก์ชันจึงเป็นพื้นฐานของทุกสาขาในคณิตศาสตร์
== ประวัติ ==
ในทางคณิตศาสตร์ "ฟังก์ชัน" บัญญัติขึ้นโดย ไลบ์นิซ ใน พ.ศ. 2237 เพื่ออธิบายปริมาณที่เกี่ยวข้องกับเส้นโค้ง เช่น ความชันของเส้นโค้ง หรือจุดบนเส้นโค้ง ฟังก์ชันที่ไลบ์นิซพิจารณานั้นในปัจจุบันเรียกว่า ฟังก์ชันที่หาอนุพันธ์ได้ และเป็นชนิดของฟังก์ชันที่มักจะแก้ด้วยผู้ที่ไม่ใช่นักคณิตศาสตร์ สำหรับฟังก์ชันชนิดนี้ เราสามารถพูดถึงลิมิตและอนุพันธ์ ซึ่งเป็นการทฤษฎีเซต พวกเขาได้พยายามนิยามวัตถุทางคณิตศาสตร์ทั้งหมดด้วย เซต ดีริคเลท และ โลบาเชฟสกี ได้ให้นิยามสมัยใหม่ของฟังก์ชันออกมาเกือบพร้อมๆกัน
ในคำนิยามนี้ ฟังก์ชันเป็นเพียงกรณีพิเศษของความสัมพันธ์ อย่างไรก็ตาม เป็นกรณีที่มีความน่าสนใจเป็นพิเศษ ความแตกต่างระหว่างคำนิยามสมัยใหม่กับคำนิยามของออยเลอร์นั้นเล็กน้อยมาก
แนวคิดของ ฟังก์ชัน ที่เป็นกฎในการคำนวณ แทนที่เป็นความสัมพันธ์ชนิดพิเศษนั้น อยู่ในคณิตตรรกศาสตร์ และวิทยาการคอมพิวเตอร์เชิงทฤษฎี ด้วยหลายระบบ รวมไปถึง แคลคูลัสแลมบ์ดา ทฤษฎีฟังก์ชันเวียนเกิด และเครื่องจักรทัวริง
== นิยามอย่างเป็นรูปนัย ==
ฟังก์ชัน f จากข้อมูลนำเข้าในเซต X ไปยังผลที่เป็นไปได้ในเซต Y (เขียนเป็น f:X\rightarrow Y) คือความสัมพันธ์ระหว่าง X กับ Y ซึ่ง
สำหรับทุกค่า x ใน X จะมี y ใน Y ซึ่ง x f y ( x มีความสัมพันธ์ f กับ y) นั่นคือ สำหรับค่านำเข้าแต่ละค่า จะมีผลลัพธ์ใน Y อย่างน้อย 1 ผลลัพธ์เสมอ
ถ้า x f y และ x f z แล้ว y = z นั่นคือ ค่านำเข้าหลายค่าสามารถมีผลลัพธ์ได้ค่าเดียว แต่ค่านำเข้าค่าเดียวไม่สามารถมีผลลัพธ์หลายผลลัพธ์ได้
ค่านำเข้า x แต่ละค่า จากโดเมน จะมีผลลัพธ์ y จากโคโดเมนเพียงค่าเดียว แทนด้วย f (x)
จากนิยามข้างต้น เราสามารถเขียนอย่างสั้นๆได้ว่า ฟังก์ชันจาก X ไปยัง Y คือเซตย่อย f ของผลคูณคาร์ทีเซียน X \times Y โดยที่แต่ละค่าของ x ใน X จะมี y ใน Y ที่แตกต่างกัน โดยที่คู่อันดับ (x, y) อยู่ใน f
เซตของฟังก์ชัน f:X\rightarrow Y ทุกฟังก์ชันแทนด้วย Y^X เรียกว่าปริภูมิฟังก์ชัน สังเกตว่า |Y^X| = |Y|^{|X|} (อ้างถึง จำนวนเชิงการนับ)
ความสัมพันธ์ระหว่าง X กับ Y ซึ่งเป็นไปตามเงื่อนไข (1) นั่นคือฟังก์ชันหลายค่า ฟังก์ชันทุกฟังก์ชันเป็นฟังก์ชันหลายค่า แต่ฟังก์ชันหลายค่าไม่ทุกฟังก์ชันเป็นฟังก์ชัน ความสัมพันธ์ระหว่าง X กับ Y ซึ่งเป็นไปตามเงื่อนไข (2) นั่นคือฟังก์ชันบางส่วน ฟังก์ชันทุกฟังก์ชันเป็นฟังก์ชันบางส่วน แต่ฟังก์ชันบางส่วนไม่ทุกฟังก์ชันเป็นฟังก์ชัน "ฟังก์ชัน" คือความสัมพันธ์ที่เป็นไปตามเงื่อนไขทั้งสองเงื่อนไข
ดูตัวอย่างต่อไปนี้
Multivalued function.svg สมาชิก 3 ใน X สัมพันธ์กับ b และ c ใน Y ความสัมพันธ์นี้เป็นฟังก์ชันหลายค่า แต่ไม่เป็นฟังก์ชัน
Partial function.svg สมาชิก 1 ใน X ไม่สัมพันธ์กับสมาชิกใดๆเลยใน Y ความสัมพันธ์นี้เป็นฟังก์ชันบางส่วน แต่ไม่เป็นฟังก์ชัน
Total function.svg ความสัมพันธ์นี้เป็นฟังก์ชันจาก X ไปยัง Y เราสามารถหานิยามฟังก์ชันนี้อย่างชัดแจ้งได้เป็น f=\{ (1,d) , (2,d) , (3,c) \} หรือเป็น
f (x) =\left\{\begin{matrix} d, & \mbox{if }x=1 \\ d, & \mbox{if }x=2 \\ c, & \mbox{if }x=3. \end{matrix}\right.
== โดเมน, โคโดเมน และเรนจ์ ==
X ซึ่งคือเซตข้อมูลนำเข้าเรียกว่า โดเมนของ f และ Y ซึ่งคือเซตของผลลัพธ์ที่เป็นไปได้ เรียกว่า โคโดเมน เรนจ์ของ f คือเซตของผลลัพธ์จริงๆ {f (x) : x ในโดเมน} ระวังว่าบางครั้งโคโดเมนจะถูกเรียกว่าเรนจ์ เนื่องจากความผิดพลาดจากการจำแนกระหว่างผลที่เป็นไปได้กับผลจริงๆ
ฟังก์ชันนั้นเรียกชื่อตามเรนจ์ของมัน เช่น ฟังก์ชันจำนวนจริง หรือ ฟังก์ชันจำนวนเชิงซ้อน
เอนโดฟังก์ชัน คือฟังก์ชันที่โดเมนและเรนจ์เป็นเซตเดียวกัน
ในสาขาวิทยาการคอมพิวเตอร์ แบบชนิดข้อมูลของอาร์กิวเมนต์และค่าที่คืนกลับมาระบุโดเมนและโคโดเมน (ตามลำดับ) ของโปรแกรมย่อย ดังนั้นโดเมนและโคโดเมนจะถูกกำหนดไว้ในแต่ละฟังก์ชัน แต่เรนจ์จะเกี่ยวกับว่าค่าที่คืนกลับมาจะเป็นอย่างไร
== ฟังก์ชันหนึ่งต่อหนึ่ง ฟังก์ชันทั่วถึง และฟังก์ชันหนึ่งต่อหนึ่งทั่วถึง ==
เราสามารถแบ่งฟังก์ชันตามลักษณะความสัมพันธ์ได้ดังนี้
ฟังก์ชันหนึ่งต่อหนึ่ง (1-1) ฟังก์ชันจะคืนค่าที่ไม่เหมือนกันหากนำเข้าค่าคนละค่ากัน กล่าวคือ ถ้า x1 และ x2 เป็นสมาชิกของโดเมนของ f แล้ว f (x1) = f (x2) ก็ต่อเมื่อ x1 = x2
ฟังก์ชันทั่วถึง (แบบ onto) ฟังก์ชันจะมีเรนจ์เท่ากับโคโดเมน กล่าวคือ ถ้า y เป็นสมาชิกใดๆของโคโดเมนของ f แล้วจะมี x อย่างน้อย 1 ตัว ซึ่ง f (x) = y
ฟังก์ชันหนึ่งต่อหนึ่งทั่วถึง เป็นฟังก์ชันที่เป็นทั้งฟังก์ชันหนึ่งต่อหนึ่ง และฟังก์ชันทั่วถึง มักจะใช้แสดงว่าเซต X และเซต Y มีขนาดเท่ากัน
== ภาพ และบุพภาพ ==
ภาพ (image) ของ xโดยที่ x ∈ X ภายใต้ f คือผลลัพธ์ f (x) 
ภาพของเซตย่อย A⊂X ภายใต้ f คือเซตย่อย Y ซึ่งมีนิยามดังนี้
f[A]&nbsp;=&nbsp;{f (x) &nbsp;|&nbsp;x&nbsp;อยู่ใน&nbsp;A}
บางครั้ง อาจใช้ f (A) แทน f[A]
สังเกตว่าเรนจ์ของ f คือภาพ f (X)  ของโดเมนของมัน. ในฟังก์ชันข้างบน ภาพของ {2, 3} ภายใต้ f คือ f ({2, 3}) = {c, d} และเรนจ์ของ f คือ {c, d}
บุพภาพ (preimage) (หรือ ภาพผกผัน) ของเซต B ⊂ Y ภายใต้ f คือเซตย่อยของ X ซึ่งมีนิยามคือ
f&nbsp;−1 (B) &nbsp;= {x อยู่ใน X | f (x) ∈B}
สำหรับฟังก์ชันข้างบน บุพภาพของ {a, b} คือ f&nbsp;−1 ({a, b}) = {1}
== กราฟของฟังก์ชัน ==
กราฟของฟังก์ชัน f คือเซตของคู่อันดับ (x, y (x)) ทั้งหมด สำหรับค่า x ทั้งหมดในโดเมน X มีทฤษฎีบทที่แสดงหรือพิสูจน์ง่ายมากเมื่อใช้กราฟ เช่น ทฤษฎีบทกราฟปิด ถ้า X และ Y เป็นเส้นจำนวนจริง แล้วนิยามนี้จะสอดคล้องกับแนวคิดของกราฟ

สังเกตว่าเมื่อความสัมพันธ์ระหว่างสองเซต X และ Y มักจะแสดงด้วยเซตย่อยของ X×Y นิยามอย่างเป็นทางการของฟังก์ชันนั้นระบุฟังก์ชัน f ด้วยกราฟของมัน
== ตัวอย่างฟังก์ชัน ==
ความสัมพันธ์ wght ระหว่างบุคคลกับน้ำหนักในเวลาใดเวลาหนึ่ง
ความสัมพันธ์ cap ระหว่างประเทศกับเมืองหลวงของประเทศนั้น
ความสัมพันธ์ sqr ระหว่างจำนวนธรรมชาติ n กับกำลังสอง n2
ความสัมพันธ์ ln ระหว่างจำนวนจริงบวก x กับลอการิทึมฐานธรรมชาติ ln (x) แต่ความสัมพันธ์ระหว่างจำนวนจริงกับลอการิทึมฐานธรรมชาตินั้นไม่เป็นฟังก์ชัน เพราะว่าจำนวนจริงทุกจำนวนไม่ได้มีลอการิทึมฐานธรรมชาติ นั่นคือเป็นความสัมพันธ์ไม่ทั้งหมด
ความสัมพันธ์ dist ระหว่างจุดบนระนาบ R2 กับระยะทางจากจุดกำเนิด (0,0)
ชนิดของฟังก์ชันทางคณิตศาสตร์ที่มักใช้กันเช่น การบวก การลบ การคูณ การหาร พหุนาม เลขยกกำลัง ลอการิทึม ราก อัตราส่วน และตรีโกณมิติ ฟังก์ชันเหล่านี้มักเรียกว่า ฟังก์ชันพื้นฐาน แต่คำนี้จะมีความหมายต่างออกไปตามสาขาของคณิตศาสตร์ ตัวอย่างของฟังก์ชันที่ไม่เป็นพื้นฐาน (ฟังก์ชันพิเศษ) เช่น ฟังก์ชันเบสเซิล และฟังก์ชันแกมมา
== คุณสมบัติของฟังก์ชัน ==
ฟังก์ชันอาจเป็น
ฟังก์ชันคู่หรือคี่
ฟังก์ชันต่อเนื่องหรือไม่ต่อเนื่อง
ฟังก์ชันจำนวนจริง หรือ ฟังก์ชันเชิงซ้อน
ฟังก์ชันสเกลาร์ หรือ ฟังก์ชันเวกเตอร์
== ฟังก์ชันแบบ n-ary : ฟังก์ชันหลายตัวแปร ==
ฟังก์ชันที่เราใช้ส่วนมักจะเป็น ฟังก์ชันหลายตัวแปร ค่าที่ได้จะขึ้นอยู่กับปัจจัยต่างๆกัน
จากมุมมองของคณิตศาสตร์ ตัวแปรทั้งหมดต้องแสดงอย่างชัดแจ้งเพื่อที่จะเกิดความสัมพันธ์แบบฟังก์ชัน - ไม่มีปัจจัย "ซ่อนเร้น" อยู่
และเช่นกัน จากมุมมองของคณิตศาสตร์ ไม่มีความแตกต่างเชิงคุณภาพระหว่างฟังก์ชันตัวแปรเดียวกับฟังก์ชันหลายตัวแปร
ฟังก์ชันสามตัวแปรจำนวนจริงนั้นก็คือฟังก์ชันของ triple ((x,y,z)) ของจำนวนจริง
ถ้าโดเมนของฟังก์ชันหนึ่งเป็นเซตย่อยของ ผลคูณคาร์ทีเซียน ของ n เซต แล้ว เราเรียกฟังก์ชันนี้ว่า ฟังก์ชัน n-ary
ตัวอย่างเช่นฟังก์ชัน dist มีโดเมน \mathbb{R}\times\mathbb{R} จึงเป็นฟังก์ชันทวิภาค
ในกรณีนี้ dist ((x,y)) เขียนอย่างง่ายเป็น dist (x,y)
การดำเนินการ ก็เป็นฟังก์ชันหลายตัวแปรชนิดหนึ่ง ในพีชคณิตนามธรรม
ตัวดำเนินการเช่น "*" นั้นนิยามจากฟังก์ชันทวิภาค เมื่อเราเขียนสูตรเช่น x*y ในสาขานี้ เสมือนกับว่าเราเรียกใช้ฟังก์ชัน * (x,y) โดยปริยาย เพียงแต่เขียนในรูปสัญกรณ์เติมกลาง (infix notation) ซึ่งสะดวกกว่า
ตัวอย่างที่สำคัญทางทฤษฎีตัวอย่างหนึ่งคือ กำหนดการเชิงฟังก์ชัน ซึ่งใช้แนวคิดของฟังก์ชันเป็นศูนย์กลาง
ด้วยวิธีนี้ การจัดการฟังก์ชันหลายตัวแปรทำได้เหมือนเป็นการดำเนินการ ซึ่งแคลคูลัสแลมบ์ดา มีวากยสัมพันธ์ (syntax) ให้เรา
== การประกอบฟังก์ชัน ==
ฟังก์ชัน f: X → Y และ g:Y → Z สามารถประกอบกันได้
ซึ่งจะได้ผลเป็นฟังก์ชันประกอบ g o f: X → Z ซึ่งมีนิยามคือ (g o f) (x) = g (f (x)) สำหรับทุกค่าของ x ใน X ตัวอย่างเช่น สมมติว่าความสูงของเครื่องบินที่เวลา t เป็นไปตามฟังก์ชัน h (t) และความเข้มข้นของออกซิเจนในอากาศที่ความสูง x เป็นไปตามฟังก์ชัน c (x) ดังนี้น (c o h) (t) จะบอกความเข้มข้นของออกซิเจนในอากาศรอบๆเครื่องบินที่เวลา t
=== ฟังก์ชันผกผัน ===
ถ้าฟังก์ชัน f: X → Y เป็นฟังก์ชันหนึ่งต่อหนึ่งต่อเนื่อง แล้ว พรีอิเมจของสมาชิก y ใดๆในโคโดเมน Y จะเป็นเซตโทน
ฟังก์ชันจาก y ∈ Y ไปยังพรีอิเมจ f −1 (y) ของมัน คือฟังก์ชันที่เรียกว่า ฟังก์ชันผกผัน ของ f เขียนแทนด้วย f −1
ตัวอย่างหนึ่งของฟังก์ชันผกผันสำหรับ f (x) = 2x คือ f −1 (x) = x/2
ฟังก์ชันผกผันคือฟังก์ชันที่ย้อนการกระทำของฟังก์ชันต้นแบบของมัน
ดู อิเมจผกผัน
บางครั้งฟังก์ชันผกผันก็หายากหรือไม่มี
พิจารณา f (x) = x^2 ฟังก์ชัน f (x) =\sqrt{x} ไม่ใช่ฟังก์ชันผกผันเมื่อโดเมนของ f คือ \mathbb{R}
 
คณิตศาสตร์มูลฐาน