# ฟังก์ชัน (คณิตศาสตร์)
ในคณิตศาสตร์ ฟังก์ชัน (จากภาษาอังกฤษ function) จากเซต  ไปยังเซต เป็นการดำเนินการที่สำหรับสมาชิกแต่ละตัวใน  จะกำหนดสมาชิกใน  ให้เพียงตัวเดียวเท่านั้น; the words map, mapping, transformation, correspondence, and operator are sometimes used synonymously. เซต  เรียกว่า โดเมน (domain) ของฟังก์ชัน และเซต  เรียกว่าโคโดเมน (codomain) ของฟังก์ชัน 

เมื่อเริ่มแรก ฟังก์ชันเป็นการระบุว่าปริมาณค่าหนึ่งขึ้นอยู่กับอีกค่าหนึ่ง ตัวอย่างเช่น ตำแหน่งของดาวเคราะห์เป็นฟังก์ชันของเวลา นั่นคือเมื่อเวลาเปลี่ยนแปลงไป ตำแหน่งของดาวเคราะห์ก็จะเปลี่ยนแปลงไปด้วย ตามประวัติศาสตร์แล้วแนวคิดเรื่องฟังก์ชันสัมพันธ์กับแคลคูลัสกณิกนันต์ จนถึงศตวรรษที่ 19 ฟังก์ชันในยุคนั้นเป็นฟังก์ชันที่หาอนุพันธ์ได้ทั้งหมด แนวคิดเรื่องฟังก์ชันฉบับปัจจุบันที่เป็นอิสระจากมุมมองทางคณิตวิเคราะห์ใช้ทฤษฎีเซต ทำให้สามารถประยุกต์ในสถานการณ์ที่หลากหลายมากขึ้น 

ฟังก์ชันมักเขียนแทนด้วยตัวอักษร ,  หรือ  ค่าของฟังก์ชัน  ที่จุด  ในโดเมนของมันเขียนแทนด้วย  และมีค่าเท่ากับสมาชิกในโคโดเมนที่ถูกกำหนดให้สัมพันธ์กับ 

ความคิดรวบยอดของฟังก์ชันนี้เป็นพื้นฐานของทุกสาขาของคณิตศาสตร์และวิทยาศาสตร์เชิงปริมาณ

 แนวคิด 
แนวคิดที่สำคัญที่สุดคือ ฟังก์ชันนั้นเป็น "กฎ" ที่กำหนดผลลัพธ์โดยขึ้นกับสิ่งที่นำเข้ามา ต่อไปนี้เป็นตัวอย่าง
 แต่ละคนจะมีสีที่ตนชอบ (แดง, ส้ม, เหลือง, ฟ้า, น้ำเงิน, คราม หรือม่วง) สีที่ชอบเป็นฟังก์ชันของแต่ละคน เช่น จอห์นชอบสีแดง แต่คิมชอบสีม่วง ในที่นี้สิ่งที่นำเข้าคือคน และผลลัพธ์คือ 1 ใน 7 สีดังกล่าว
 มีเด็กบางคนขายน้ำมะนาวในช่วงฤดูร้อน จำนวนน้ำมะนาวที่ขายได้เป็นฟังก์ชันของอุณหภูมิภายนอก ตัวอย่างเช่น ถ้าภายนอกมีอุณหภูมิ 85 องศาฟาเรนไฮด์ จะขายได้ 10 แก้ว แต่ถ้าอุณหภูมิ 95 องศา จะขายได้ 25 แก้ว ในที่นี้ สิ่งที่นำเข้าคืออุณหภูมิ และผลลัพธ์คือจำนวนน้ำมะนาวที่ขายได้
 ก้อนหินก้อนหนึ่งปล่อยลงมาจากชั้นต่างๆของตึกสูง ถ้าปล่อยจากชั้นที่สอง จะใช้เวลา 2 วินาที และถ้าปล่อยจากชั้นที่แปด จะใช้เวลา (เพียง) 4 วินาที ในที่นี้ สิ่งนำเข้าคือชั้น และผลลัพธ์คือระยะเวลาเป็นวินาที ฟังก์ชันนี้อธิบายความสัมพันธ์ระหว่าง เวลาที่ก้อนหินใช้ตกถึงพื้นกับชั้นที่มันถูกปล่อยลงมา (ดู ความเร่ง)

"กฎ" ที่นิยามฟังก์ชันอาจเป็น สูตร, ความสัมพันธ์ (คณิตศาสตร์) หรือเป็นแค่ตารางที่ลำดับผลลัพธ์กับสิ่งที่นำเข้า ลักษณะเฉพาะที่สำคัญของฟังก์ชันคือมันจะมีผลลัพธ์เหมือนเดิมตลอดเมื่อให้สิ่งนำเข้าเหมือนเดิม ลักษณะนี้ทำให้เราเปรียบเทียบฟังก์ชันกับ "เครื่องกล" หรือ "กล่องดำ" ที่จะเปลี่ยนสิ่งนำเข้าไปเป็นผลลัพธ์ที่ตายตัว เรามักจะเรียกสิ่งนำเข้าว่า อาร์กิวเมนต์ (argument)  และเรียกผลลัพธ์ว่า ค่า (value)  ของฟังก์ชัน

ชนิดของฟังก์ชันธรรมดาเกิดจากที่ทั้งอาร์กิวเมนต์และค่าของฟังก์ชันเป็นตัวเลขทั้งคู่ ความสัมพันธ์ของฟังก์ชันมักจะเขียนในรูปสูตร และจะได้ค่าของฟังก์ชันมาทันทีเพียงแทนที่อาร์กิวเมนต์ลงในสูตร เช่น

ซึ่งจะได้ค่ากำลังสองของ x ใด ๆ

โดยนัยทั่วไปแล้ว ฟังก์ชันจะสามารถมีได้มากกว่าหนึ่งอาร์กิวเมนต์ เช่น

เป็นฟังก์ชันที่นำตัวเลข x และ y มาหาผลคูณ ดูเหมือนว่านี่ไม่ใช่ฟังก์ชันจริงๆดังที่เราได้อธิบายข้างต้น เพราะว่า "กฎ" ขึ้นอยู่กับสิ่งนำเข้า 2 สิ่ง อย่างไรก็ตาม ถ้าเราคิดว่าสิ่งนำเข้า 2 สิ่งนี้เป็น คู่อันดับ  1 คู่ เราก็จะสามารถแปลได้ว่า g เป็นฟังก์ชัน โดยที่อาร์กิวเมนต์คือคู่อันดับ  และค่าของฟังก์ชันคือ 

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

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

 ประวัติ 

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

ในคำนิยามนี้ ฟังก์ชันเป็นเพียงกรณีพิเศษของความสัมพันธ์ อย่างไรก็ตาม เป็นกรณีที่มีความน่าสนใจเป็นพิเศษ ความแตกต่างระหว่างคำนิยามสมัยใหม่กับคำนิยามของออยเลอร์นั้นเล็กน้อยมาก

แนวคิดของ ฟังก์ชัน ที่เป็นกฎในการคำนวณ แทนที่เป็นความสัมพันธ์ชนิดพิเศษนั้น อยู่ในคณิตตรรกศาสตร์ และวิทยาการคอมพิวเตอร์เชิงทฤษฎี ด้วยหลายระบบ รวมไปถึง แคลคูลัสแลมบ์ดา ทฤษฎีฟังก์ชันเวียนเกิด และเครื่องจักรทัวริง

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

ค่านำเข้า  แต่ละค่า จากโดเมน จะมีผลลัพธ์  จากโคโดเมนเพียงค่าเดียว แทนด้วย 

จากนิยามข้างต้น เราสามารถเขียนอย่างสั้นๆได้ว่า ฟังก์ชันจาก  ไปยัง  คือเซตย่อย  ของผลคูณคาร์ทีเซียน  โดยที่แต่ละค่าของ  ใน  จะมี  ใน  ที่แตกต่างกัน โดยที่คู่อันดับ  อยู่ใน 

เซตของฟังก์ชัน  ทุกฟังก์ชันแทนด้วย  เรียกว่าปริภูมิฟังก์ชัน สังเกตว่า  (อ้างถึง จำนวนเชิงการนับ)

ความสัมพันธ์ระหว่าง  กับ  ซึ่งเป็นไปตามเงื่อนไข (1) นั่นคือฟังก์ชันหลายค่า ฟังก์ชันทุกฟังก์ชันเป็นฟังก์ชันหลายค่า แต่ฟังก์ชันหลายค่าไม่ทุกฟังก์ชันเป็นฟังก์ชัน ความสัมพันธ์ระหว่าง  กับ  ซึ่งเป็นไปตามเงื่อนไข (2) นั่นคือฟังก์ชันบางส่วน ฟังก์ชันทุกฟังก์ชันเป็นฟังก์ชันบางส่วน แต่ฟังก์ชันบางส่วนไม่ทุกฟังก์ชันเป็นฟังก์ชัน "ฟังก์ชัน" คือความสัมพันธ์ที่เป็นไปตามเงื่อนไขทั้งสองเงื่อนไข

ดูตัวอย่างต่อไปนี้

ไฟล์:Multivalued function.svg สมาชิก  ใน  สัมพันธ์กับ  และ  ใน  ความสัมพันธ์นี้เป็นฟังก์ชันหลายค่า แต่ไม่เป็นฟังก์ชัน

ไฟล์:Partial function.svg สมาชิก 1 ใน  ไม่สัมพันธ์กับสมาชิกใดๆเลยใน  ความสัมพันธ์นี้เป็นฟังก์ชันบางส่วน แต่ไม่เป็นฟังก์ชัน

ไฟล์:Total function.svg ความสัมพันธ์นี้เป็นฟังก์ชันจาก  ไปยัง  เราสามารถหานิยามฟังก์ชันนี้อย่างชัดแจ้งได้เป็น  หรือเป็น

 โดเมน, โคโดเมน และเรนจ์ 
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] = {f (x)  | x อยู่ใน 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 −1 (B)  = {x อยู่ใน X | f (x) ∈B}
สำหรับฟังก์ชันข้างบน บุพภาพของ {a, b} คือ f −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 มีโดเมน  จึงเป็นฟังก์ชันทวิภาค
ในกรณีนี้ 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
ฟังก์ชันผกผันคือฟังก์ชันที่ย้อนการกระทำของฟังก์ชันต้นแบบของมัน
ดู อิเมจผกผัน

บางครั้งฟังก์ชันผกผันก็หายากหรือไม่มี
พิจารณา  ฟังก์ชัน  ไม่ใช่ฟังก์ชันผกผันเมื่อโดเมนของ  คือ