1. บทนำ
การคำนวณรากในภาษา C เป็นองค์ประกอบที่ขาดไม่ได้ในด้านการวิเคราะห์เชิงตัวเลขและการคำนวณทางเรขาคณิต “การคำนวณราก” หมายถึงการหาค่ารากที่สอง รากที่สาม หรือรากอื่น ๆ ของตัวเลข บทความนี้จะอธิบายวิธีการคำนวณรากในภาษา C อย่างละเอียด ครอบคลุมตั้งแต่พื้นฐานจนถึงการประยุกต์ใช้งานจริง โดยคุณจะได้เรียนรู้วิธีใช้ฟังก์ชัน sqrt
การนำวิธีนิวตันมาใช้ และการคำนวณรากใด ๆ ด้วยฟังก์ชัน pow
พร้อมตัวอย่างโค้ดที่ใช้งานได้จริง
2. พื้นฐานการคำนวณรากในภาษา C
ไลบรารี math.h
ในภาษา C หากต้องการใช้ฟังก์ชันทางคณิตศาสตร์ต่าง ๆ จำเป็นต้องใช้ไลบรารีมาตรฐาน math.h
ไลบรารีนี้มีฟังก์ชันสำหรับหาค่ารากที่สองอย่าง sqrt
และรากที่สามอย่าง cbrt
รวมถึงฟังก์ชันคณิตศาสตร์อื่น ๆ อีกมากมาย เมื่อต้องการใช้ฟังก์ชันเหล่านี้ ให้เพิ่มบรรทัด #include <math.h>
ไว้ที่ส่วนต้นของโปรแกรมเพื่อรวมไลบรารีเข้ามา
3. การคำนวณรากด้วย sqrt
และ cbrt
รากที่สอง (sqrt
)
ฟังก์ชัน sqrt
ใช้สำหรับหาค่ารากที่สองของตัวเลขที่กำหนด โดยรับค่าอินพุตเป็นจำนวนที่ไม่ติดลบและส่งคืนผลลัพธ์เป็นชนิด double
ตัวอย่างโค้ดด้านล่างจะแสดงวิธีใช้ sqrt
เพื่อหาค่ารากที่สอง
#include <stdio.h>
#include <math.h>
int main(void) {
double num = 16.0;
double result = sqrt(num);
printf("数値 %.2f の平方根は %.2f です。\n", num, result);
return 0;
}
โปรแกรมนี้กำหนดค่า num
เป็น 16.0 แล้วคำนวณรากที่สองและแสดงผลลัพธ์ เช่น “数値 16.00 の平方根は 4.00 です。”
รากที่สาม (cbrt
)
ฟังก์ชัน cbrt
ใช้สำหรับหาค่ารากที่สามของตัวเลข ซึ่งสามารถใช้กับเลขติดลบได้ จึงสะดวกเมื่อต้องการหาค่ารากที่สามของเลขลบ ตัวอย่างโค้ดต่อไปนี้จะแสดงการคำนวณรากที่สามของค่าตั้งแต่ 0 ถึง 9 และนำผลลัพธ์มาคูณตัวเองสามครั้งเพื่อให้ได้ค่ากลับมาใกล้เคียงเดิม
#include <stdio.h>
#include <math.h>
int main(void) {
for (double x = 0.0; x < 10.0; x+=1.0) {
double ans = cbrt(x);
printf("%f : %f\n", x, ans * ans * ans);
}
return 0;
}

4. การคำนวณรากด้วยวิธีนิวตัน
ภาพรวมของวิธีนิวตัน
วิธีนิวตัน (Newton’s Method) เป็นวิธีเชิงวนซ้ำสำหรับหาค่ารากของฟังก์ชัน ซึ่งสามารถนำมาใช้ในการหาค่ารากที่สองหรือรากอื่น ๆ ได้ด้วย เหมาะสำหรับกรณีที่ไม่ใช้ sqrt
หรืออยากปรับแต่งขั้นตอนการคำนวณเอง
ตัวอย่างการนำไปใช้
โปรแกรมด้านล่างเป็นตัวอย่างการคำนวณรากที่สองด้วยวิธีนิวตัน
#include <stdio.h>
int main(void) {
double x, y, n;
printf("数値を入力してください: \n");
scanf("%lf", &n);
x = 1;
while(1) {
x = x - (x * x - n) / (2 * x);
y = x * x - n;
if ((y <= 0.00000001) && (y >= -0.00000001)) {
break;
}
}
printf("sqrt(%lf) = %lf\n", n, x);
return 0;
}
โปรแกรมนี้รับค่าจากผู้ใช้และคำนวณรากที่สองของตัวเลขนั้นโดยใช้วิธีนิวตัน
5. การคำนวณรากยกกำลังใด ๆ ด้วยฟังก์ชัน pow
วิธีใช้ฟังก์ชัน pow
ฟังก์ชัน pow
ใช้สำหรับคำนวณยกกำลังของตัวเลข ซึ่งสามารถใช้หาค่ารากใด ๆ ได้เช่นกัน เช่น หากต้องการหาค่ารากที่สอง ให้นำเลขยกกำลัง 0.5 เป็นต้น
#include <stdio.h>
#include <math.h>
int main(void) {
for(int i = 0; i < 5; i++) {
printf("%dのルートは%lf\n", i + 1, pow(i + 1, 0.5));
}
return 0;
}
โปรแกรมนี้ใช้ pow
คำนวณรากที่สองของเลข 1 ถึง 5 และแสดงผลลัพธ์
6. การประยุกต์ใช้การคำนวณรากในภาษา C
ตัวอย่างสถานการณ์ที่ใช้งานจริง
การคำนวณรากถูกนำไปใช้ในหลายสถานการณ์ เช่น การหาค่าระยะทางระหว่างจุดสองจุด หรือการคำนวณส่วนเบี่ยงเบนมาตรฐานจากค่าความแปรปรวนในสถิติ ซึ่งต้องใช้รากที่สอง
การจัดการข้อผิดพลาด (Error Handling)
เมื่อคำนวณราก ควรระวังกรณีที่ต้องใช้กับเลขติดลบ sqrt
จะส่งคืนข้อผิดพลาดหากรับเลขติดลบ แต่ cbrt
สามารถใช้กับเลขติดลบได้ปกติ หากต้องหาค่ารากที่สองของเลขติดลบควรมีการตรวจสอบข้อผิดพลาดและจัดการกรณีพิเศษอย่างเหมาะสม
7. สรุป
บทความนี้ได้อธิบายวิธีการคำนวณรากในภาษา C โดยครอบคลุมตั้งแต่การใช้ฟังก์ชัน sqrt
และ cbrt
ที่เป็นวิธีพื้นฐาน ไปจนถึงวิธีนิวตันที่สามารถปรับแต่งได้เอง และวิธีใช้ pow
สำหรับหารากใด ๆ หวังว่าความรู้เหล่านี้จะช่วยให้คุณสามารถแก้ปัญหาจริงได้อย่างมั่นใจและนำไปประยุกต์ใช้ได้อย่างมีประสิทธิภาพ