ลักษณะเด่นของแบบจำลองทางคณิตศาสตร์ที่สร้างขึ้นในปัจจุบันคือความซับซ้อนของมัน ซึ่งเป็นผลมาจากความซับซ้อนของวัตถุที่ถูกสร้างแบบจำลอง สิ่งนี้นำไปสู่แบบจำลองที่มีความประณีตซับซ้อนยิ่งขึ้นเรื่อย ๆ และความจำเป็นที่จะต้องอาศัยทฤษฎีหลายทฤษฎีจากสาขาความรู้ที่แตกต่างกันไปพร้อมกัน ตลอดจนต้องใช้วิธีการเชิงคำนวณสมัยใหม่และเทคโนโลยีคอมพิวเตอร์ในการหาและวิเคราะห์ผลลัพธ์จากการจำลองสถานการณ์ ในกรณีของวัตถุที่ซับซ้อน มักเป็นไปไม่ได้ที่จะตอบสนองข้อกำหนดทั้งหมดด้วยแบบจำลองเพียงชิ้นเดียว จำเป็นต้องสร้างแบบจำลองของวัตถุเดียวกันเป็นชุดทั้งหมด (ในบางกรณีเป็นชุดแบบจำลองแบบลำดับชั้นที่ “ซ้อนกัน”) โดยแต่ละแบบจำลองเหมาะสมที่สุดสำหรับการแก้ปัญหาเฉพาะที่ได้รับมอบหมาย
ความจำเป็นในการสร้างแบบจำลองขนาดใหญ่เรียกร้องให้มีการพัฒนาชุดกฎเกณฑ์และแนวทางที่จะช่วยลดต้นทุนในการพัฒนาแบบจำลองและลดโอกาสเกิดข้อผิดพลาดที่ยากจะแก้ไขในภายหลัง ชุดกฎเกณฑ์เช่นนี้อาจเรียกได้ว่าเป็นเทคโนโลยีการสร้างแบบจำลองทางคณิตศาสตร์
กระบวนการสร้างแบบจำลองทางคณิตศาสตร์ใด ๆ สามารถแสดงเป็นลำดับขั้นตอนดังนี้:
- การสำรวจวัตถุที่จะสร้างแบบจำลองและจัดเตรียมข้อกำหนดของงาน (การกำหนดปัญหาเชิงเนื้อหา);
- การกำหนดปัญหาเชิงมโนทัศน์และเชิงคณิตศาสตร์;
- การวิเคราะห์เชิงคุณภาพและการตรวจสอบความถูกต้องของแบบจำลอง;
- การเลือกและให้เหตุผลสนับสนุนวิธีการแก้ปัญหา;
- การหาผลเฉลย;
- การพัฒนาอัลกอริทึมสำหรับผลเฉลยและการศึกษาคุณสมบัติของมัน การนำอัลกอริทึมไปพัฒนาเป็นซอฟต์แวร์;
- การตรวจสอบความสมเหตุสมผลของแบบจำลอง;
- การนำแบบจำลองที่สร้างขึ้นไปใช้จริง
แบบจำลองทางคณิตศาสตร์ — โดยเฉพาะที่ใช้วิธีเชิงตัวเลขและเทคโนโลยีคอมพิวเตอร์ — ต้องการทรัพยากรทางปัญญา การเงิน และเวลาจำนวนมากในการสร้าง ดังนั้นการตัดสินใจพัฒนาแบบจำลองใหม่จะเกิดขึ้นก็ต่อเมื่อไม่มีวิธีที่ง่ายกว่าในการแก้ปัญหาที่มีอยู่ (เช่น การปรับปรุงแบบจำลองที่มีอยู่แล้ว)
ความจำเป็นของแบบจำลองใหม่อาจเกิดขึ้นจากการวิจัยทางวิทยาศาสตร์ โดยเฉพาะในจุดตัดของสาขาความรู้ที่แตกต่างกัน เมื่อมีการตัดสินใจสร้างแบบจำลองทางคณิตศาสตร์ใหม่แล้ว ฝ่ายผู้ว่าจ้างจะแสวงหาทีมงานเพื่อดำเนินการ โดยทั่วไปทีมโครงการจะประกอบด้วยผู้เชี่ยวชาญหลากหลายสาขา ได้แก่ นักคณิตศาสตร์ประยุกต์ ผู้เชี่ยวชาญด้านวัตถุประสงค์ที่คุ้นเคยกับวัตถุที่จะสร้างแบบจำลองเป็นอย่างดี และนักพัฒนาซอฟต์แวร์ เมื่อการตัดสินใจสร้างแบบจำลองได้รับการยืนยันและทีมโครงการก่อตั้งขึ้นแล้ว ขั้นตอนการสำรวจก็จะเริ่มต้นขึ้น เป้าหมายหลักของขั้นตอนนี้คือการจัดเตรียมการกำหนดปัญหาเชิงเนื้อหาของการสร้างแบบจำลอง การกำหนดปัญหาเชิงเนื้อหาคือรายการคำถามสำคัญเกี่ยวกับวัตถุที่จะสร้างแบบจำลอง ซึ่งแสดงด้วยภาษาที่เข้าใจง่าย ที่ฝ่ายผู้ว่าจ้างต้องการคำตอบ
การจัดเตรียมรายการคำถามที่แบบจำลองใหม่ควรตอบนั้นมักเป็นปัญหาในตัวมันเอง ซึ่งต้องอาศัยผู้เชี่ยวชาญที่มีความรู้และความสามารถเฉพาะทาง พวกเขาไม่เพียงต้องเข้าใจสาขาความรู้ของงานสร้างแบบจำลองอย่างถ่องแท้และตระหนักถึงศักยภาพของคณิตศาสตร์เชิงคำนวณและเทคโนโลยีคอมพิวเตอร์สมัยใหม่ แต่ยังต้องสามารถสื่อสารกับผู้คนได้ — สามารถดึงเอาความรู้จากผู้เชี่ยวชาญเชิงปฏิบัติที่มี “สัญชาตญาณ” ต่อวัตถุที่สร้างแบบจำลองและรายละเอียดปลีกย่อยของพฤติกรรมของมันออกมาได้ ผู้เชี่ยวชาญเหล่านี้ ได้แก่ นักวิเคราะห์ระบบ วิศวกรระบบ และนักวิจัยดำเนินการ
จากการวิเคราะห์ข้อมูลทั้งหมดที่รวบรวมได้ ผู้กำหนดปัญหาต้องระบุข้อกำหนดสำหรับแบบจำลองในอนาคต ในลักษณะที่ในด้านหนึ่งตอบสนองความต้องการของฝ่ายผู้ว่าจ้าง และอีกด้านหนึ่งทำให้แบบจำลองสามารถนำไปพัฒนาได้จริงภายในกรอบเวลาและงบประมาณที่กำหนด นักวิเคราะห์ระบบ (หรือนักวิจัยดำเนินการ) ต้องมีความสามารถในการกลั่นกรองสาระสำคัญที่นำไปปฏิบัติได้จริงจากข้อมูลจำนวนมากที่มีโครงสร้างหลวมและหลากหลายเกี่ยวกับวัตถุที่สร้างแบบจำลอง และจากความต้องการและข้อกำหนดต่าง ๆ ที่ฝ่ายผู้ว่าจ้างแสดงออกมาอย่างคลุมเครือ
จากข้อมูลที่รวบรวมได้เกี่ยวกับวัตถุที่จะสร้างแบบจำลอง นักวิเคราะห์ระบบ (วิศวกร นักวิจัยดำเนินการ) ร่วมกับฝ่ายผู้ว่าจ้างจะกำหนดข้อความปัญหาเชิงเนื้อหา ซึ่งโดยทั่วไปยังไม่ใช่ข้อสรุปสุดท้ายและอาจได้รับการปรับปรุงและขยายความในระหว่างการพัฒนาแบบจำลอง อย่างไรก็ตาม การปรับแก้และเปลี่ยนแปลงข้อความเชิงเนื้อหาในภายหลังทั้งหมดควรมีลักษณะเล็กน้อย ไม่ใช่การเปลี่ยนแปลงพื้นฐาน
ข้อมูลทั้งหมดที่รวบรวมได้ในระหว่างการสำรวจ — ความรู้ที่สั่งสมเกี่ยวกับวัตถุ การกำหนดปัญหาเชิงเนื้อหา ข้อกำหนดเพิ่มเติมสำหรับการพัฒนาแบบจำลองและการนำเสนอผลลัพธ์ — จะถูกจัดทำเป็นเอกสารในรูปแบบข้อกำหนดของงานสำหรับการออกแบบและพัฒนาแบบจำลอง ข้อกำหนดของงานถือเป็นเอกสารสรุปของขั้นตอนการสำรวจ ยิ่งข้อมูลที่รวบรวมได้เกี่ยวกับวัตถุในระหว่างการสำรวจมีความครบถ้วนมากเท่าใด การกำหนดปัญหาเชิงเนื้อหาก็จะยิ่งชัดเจนมากขึ้นเท่านั้น ประสบการณ์และความรู้ที่สั่งสมไว้ก็จะยิ่งถูกนำมาพิจารณาได้อย่างครบถ้วนมากขึ้น และปัญหาในขั้นตอนต่อไปของการพัฒนาแบบจำลองก็จะยิ่งลดลง
ต่างจากการกำหนดเชิงเนื้อหา การกำหนดปัญหาเชิงมโนทัศน์ของการสร้างแบบจำลองมักจัดเตรียมโดยสมาชิกของทีมโครงการโดยไม่มีตัวแทนของฝ่ายผู้ว่าจ้างเข้าร่วม โดยอาศัยข้อกำหนดของงานที่พัฒนาขึ้นในขั้นตอนก่อนหน้าและใช้ความรู้ที่มีอยู่เกี่ยวกับวัตถุที่จะสร้างแบบจำลองและข้อกำหนดสำหรับแบบจำลองในอนาคต การวิเคราะห์และการอภิปรายร่วมกันเกี่ยวกับข้อมูลทั้งหมดที่มีเกี่ยวกับวัตถุที่จะสร้างแบบจำลองโดยสมาชิกในทีมทำให้สามารถสร้างแบบจำลองเชิงมโนทัศน์ของวัตถุขึ้นมาได้ — ซึ่งเป็นการสังเคราะห์แบบจำลองเชิงประชานที่พัฒนาขึ้นโดยสมาชิกแต่ละคนในทีม
การกำหนดปัญหาเชิงมโนทัศน์ของการสร้างแบบจำลองคือรายการคำถามสำคัญที่ฝ่ายผู้ว่าจ้างสนใจ ซึ่งแสดงด้วยศัพท์เฉพาะของสาขาวิชาต่าง ๆ พร้อมกับชุดสมมติฐานเกี่ยวกับคุณสมบัติและพฤติกรรมของวัตถุที่จะสร้างแบบจำลอง
ความยากลำบากที่สุดในการกำหนดข้อความเชิงมโนทัศน์เกิดขึ้นในแบบจำลองที่อยู่ในจุดตัดของสาขาวิชาต่าง ๆ ความแตกต่างในธรรมเนียมปฏิบัติ แนวคิด และภาษาที่ใช้อธิบายวัตถุเดียวกันเป็นอุปสรรคที่ร้ายแรงมากในการสร้างแบบจำลองสหวิทยาการ
การกำหนดเชิงมโนทัศน์ที่เสร็จสมบูรณ์ทำให้สามารถสร้างการกำหนดปัญหาเชิงคณิตศาสตร์ของการสร้างแบบจำลองได้ ซึ่งประกอบด้วยชุดความสัมพันธ์ทางคณิตศาสตร์ที่อธิบายพฤติกรรมและคุณสมบัติของวัตถุที่จะสร้างแบบจำลอง
การกำหนดปัญหาเชิงคณิตศาสตร์ของการสร้างแบบจำลองคือชุดความสัมพันธ์ทางคณิตศาสตร์ที่อธิบายพฤติกรรมและคุณสมบัติของวัตถุที่จะสร้างแบบจำลอง
แบบจำลองทางคณิตศาสตร์จะถือว่าถูกต้องเมื่อการตรวจสอบทั้งหมดได้ดำเนินการไปแล้วด้วยผลลัพธ์ที่เป็นบวก ได้แก่ การวิเคราะห์มิติ การตรวจสอบอันดับขนาด การตรวจสอบลักษณะของความสัมพันธ์ การวิเคราะห์กรณีสุดขั้ว เงื่อนไขขอบเขต ความหมายทางกายภาพ และความสมบูรณ์ทางคณิตศาสตร์ การกำหนดเชิงคณิตศาสตร์มีความเป็นนามธรรมยิ่งกว่าการกำหนดเชิงมโนทัศน์ เนื่องจากมันลดทอนปัญหาเดิมให้กลายเป็นปัญหาทางคณิตศาสตร์ล้วน ๆ ที่มีวิธีการแก้ปัญหาที่พัฒนาไว้อย่างดีอยู่แล้ว
วิธีการทั้งหมดในการแก้ปัญหาที่เป็น “แก่นแท้” ของแบบจำลองทางคณิตศาสตร์สามารถแบ่งออกเป็นวิธีเชิงวิเคราะห์และวิธีเชิงอัลกอริทึม (เชิงตัวเลข)
ควรสังเกตว่าเมื่อใช้ผลเฉลยเชิงวิเคราะห์เพื่อให้ได้ผลลัพธ์เชิงตัวเลข มักจำเป็นต้องพัฒนาอัลกอริทึมที่สอดคล้องกันเพื่อนำไปประมวลผลบนคอมพิวเตอร์ด้วยเช่นกัน
อย่างไรก็ตาม ผลเฉลยเริ่มต้นในกรณีนี้จะอยู่ในรูปแบบของนิพจน์เชิงวิเคราะห์ (หรือชุดของนิพจน์) ในทางตรงกันข้าม ผลเฉลยที่อาศัยวิธีเชิงอัลกอริทึมนั้นไม่สามารถลดทอนให้กลายเป็นผลเฉลยเชิงวิเคราะห์ที่แม่นยำของปัญหาที่พิจารณาได้เลยโดยพื้นฐาน
การเลือกวิธีการวิจัยแบบใดแบบหนึ่งขึ้นอยู่อย่างมากกับคุณวุฒิและประสบการณ์ของสมาชิกในทีมโครงการ วิธีเชิงวิเคราะห์สะดวกกว่าสำหรับการวิเคราะห์ผลลัพธ์ในภายหลัง แต่ใช้ได้เฉพาะกับแบบจำลองที่ค่อนข้างเรียบง่ายเท่านั้น หากปัญหาทางคณิตศาสตร์ (แม้ในการกำหนดที่ทำให้ง่ายขึ้น) สามารถหาผลเฉลยเชิงวิเคราะห์ได้ ผลเฉลยนั้นย่อมเป็นที่ต้องการมากกว่าผลเฉลยเชิงตัวเลขอย่างไม่ต้องสงสัย
วิธีเชิงอัลกอริทึมลดทอนปัญหาให้กลายเป็นอัลกอริทึมที่ดำเนินการทดลองเชิงคำนวณโดยใช้เทคโนโลยีคอมพิวเตอร์ ความแม่นยำของการสร้างแบบจำลองในการทดลองเช่นนี้ขึ้นอยู่อย่างมากกับวิธีที่เลือกใช้และพารามิเตอร์ของมัน วิธีเชิงอัลกอริทึมโดยทั่วไปต้องใช้แรงงานมากกว่าในการนำไปปฏิบัติ และต้องการให้สมาชิกในทีมโครงการมีความรู้ที่แข็งแกร่งด้านคณิตศาสตร์เชิงคำนวณ มีคลังซอฟต์แวร์เฉพาะทางที่กว้างขวาง และมีทรัพยากรคอมพิวเตอร์ที่ทรงพลัง
วิธีเชิงตัวเลขใช้ได้เฉพาะกับปัญหาทางคณิตศาสตร์ที่ตั้งขึ้นอย่างถูกต้องเท่านั้น ซึ่งจำกัดการใช้งานในการสร้างแบบจำลองทางคณิตศาสตร์อย่างมาก สิ่งที่วิธีเชิงตัวเลขทั้งหมดมีร่วมกันคือการลดทอนปัญหาทางคณิตศาสตร์ให้กลายเป็นปัญหาที่มีมิติจำกัด ซึ่งมักทำได้โดยการแปลงปัญหาเดิมให้เป็นแบบไม่ต่อเนื่อง — กล่าวคือ การแทนที่ฟังก์ชันของตัวแปรต่อเนื่องด้วยฟังก์ชันของตัวแปรไม่ต่อเนื่อง การใช้วิธีเชิงตัวเลขใด ๆ ย่อมนำมาซึ่งข้อผิดพลาดในผลลัพธ์อย่างหลีกเลี่ยงไม่ได้ องค์ประกอบหลักของข้อผิดพลาดที่เกิดขึ้นในการหาผลเฉลยเชิงตัวเลขของปัญหาเดิมสามารถแยกได้เป็นสามส่วน ได้แก่ ข้อผิดพลาดโดยธรรมชาติที่เกี่ยวข้องกับการระบุข้อมูลนำเข้าที่ไม่แม่นยำ (เงื่อนไขเริ่มต้นและเงื่อนไขขอบเขต สัมประสิทธิ์ของสมการและด้านขวาของสมการ) ข้อผิดพลาดจากการแปลงเป็นแบบไม่ต่อเนื่องซึ่งเกี่ยวข้องกับการเปลี่ยนไปสู่รูปแบบไม่ต่อเนื่องที่คล้ายคลึงกับปัญหาเดิม และข้อผิดพลาดจากการปัดเศษซึ่งเกี่ยวข้องกับความละเอียดจำกัดของตัวเลขที่แสดงในคอมพิวเตอร์
ข้อกำหนดโดยธรรมชาติสำหรับอัลกอริทึมเชิงคำนวณเฉพาะใด ๆ คือความสอดคล้องกันในอันดับขนาดของข้อผิดพลาดทั้งสามประเภทนี้
วิธีเชิงตัวเลข หรือวิธีโดยประมาณ จะถูกนำไปปฏิบัติเสมอในรูปแบบของอัลกอริทึมเชิงคำนวณ ดังนั้นข้อกำหนดทั้งหมดที่ใช้กับอัลกอริทึมโดยทั่วไปจึงใช้กับอัลกอริทึมเชิงคำนวณด้วยเช่นกัน ประการแรกและสำคัญที่สุด อัลกอริทึมต้องสามารถปฏิบัติได้จริง — กล่าวคือ ต้องสามารถแก้ปัญหาได้ภายในเวลาคำนวณที่ยอมรับได้ คุณลักษณะที่สำคัญของอัลกอริทึมคือความแม่นยำ — ความสามารถในการหาผลเฉลยของปัญหาเดิมให้ได้ความละเอียดที่กำหนดภายในจำนวนการดำเนินการที่จำกัด
เวลาในการทำงานของอัลกอริทึมขึ้นอยู่กับจำนวนการดำเนินการที่จำเป็นในการบรรลุความแม่นยำที่กำหนด สำหรับปัญหาทางคณิตศาสตร์ใด ๆ โดยทั่วไปสามารถเสนออัลกอริทึมได้หลายแบบที่ให้ผลเฉลยตามความแม่นยำที่ต้องการ แต่ใช้จำนวนการดำเนินการที่แตกต่างกัน อัลกอริทึมที่ต้องการการดำเนินการน้อยกว่าเพื่อให้ได้ความแม่นยำเท่ากันเรียกว่ามีความประหยัดกว่า หรือมีประสิทธิภาพมากกว่า
ในระหว่างการทำงานของอัลกอริทึมเชิงคำนวณ ข้อผิดพลาดระดับหนึ่งจะเกิดขึ้นในแต่ละขั้นตอนการคำนวณ จากขั้นตอนหนึ่งไปยังอีกขั้นตอนหนึ่ง ข้อผิดพลาดนี้อาจเพิ่มขึ้นหรือไม่เพิ่มขึ้น (และในบางกรณีอาจลดลงด้วยซ้ำ) หากข้อผิดพลาดเพิ่มขึ้นอย่างไม่มีขอบเขตในระหว่างการคำนวณ อัลกอริทึมนั้นเรียกว่าไม่เสถียร หรือลู่ออก ในทางตรงกันข้าม อัลกอริทึมนั้นเรียกว่าเสถียร หรือลู่เข้า
ความหลากหลายอย่างมากมายของวิธีเชิงตัวเลขทำให้การเลือกวิธีใดวิธีหนึ่งในแต่ละกรณีเป็นเรื่องยากลำบากอย่างมาก เนื่องจากวิธีเชิงอัลกอริทึมทางเลือกหลายวิธีสามารถนำมาใช้ในการนำแบบจำลองที่กำหนดไปปฏิบัติได้ การเลือกวิธีใดวิธีหนึ่งจึงพิจารณาว่าวิธีใดเหมาะสมที่สุดกับแบบจำลองในแง่ของประสิทธิภาพ ความเสถียร และความแม่นยำของผลลัพธ์ ตลอดจนวิธีใดที่สมาชิกในทีมโครงการคุ้นเคยมากที่สุด
ในการสร้างระบบซอฟต์แวร์ต่าง ๆ ที่ใช้แก้ปัญหาการวิจัย การออกแบบทางวิศวกรรม และงานด้านการจัดการที่หลากหลาย ในปัจจุบันแบบจำลองทางคณิตศาสตร์โดยทั่วไปทำหน้าที่เป็นรากฐาน สิ่งนี้ก่อให้เกิดความจำเป็นที่จะต้องนำแบบจำลองไปปฏิบัติในรูปแบบโปรแกรมคอมพิวเตอร์ กระบวนการพัฒนาซอฟต์แวร์ที่เชื่อถือได้และมีประสิทธิภาพนั้นมีความซับซ้อนไม่น้อยไปกว่าขั้นตอนก่อนหน้าทั้งหมดของการสร้างแบบจำลองทางคณิตศาสตร์ การแก้ปัญหานี้ให้สำเร็จเป็นไปได้ก็ต่อเมื่อมีความเชี่ยวชาญในภาษาและเทคโนโลยีการเขียนโปรแกรมสมัยใหม่ มีความรู้เกี่ยวกับศักยภาพของคอมพิวเตอร์ ซอฟต์แวร์ที่มีอยู่ และรายละเอียดเฉพาะของการนำวิธีคณิตศาสตร์เชิงคำนวณไปปฏิบัติ
กระบวนการพัฒนาซอฟต์แวร์สามารถแบ่งออกเป็นหลายขั้นตอนดังนี้:
- การจัดเตรียมข้อกำหนดของงานสำหรับการพัฒนาซอฟต์แวร์;
- การออกแบบโครงสร้างของระบบซอฟต์แวร์;
- การเขียนโค้ดอัลกอริทึม;
- การทดสอบและแก้ไขข้อบกพร่อง;
- การบำรุงรักษาและการใช้งาน
ข้อกำหนดของงานสำหรับการพัฒนาซอฟต์แวร์จะถูกจัดทำเป็นเอกสารในรูปแบบข้อกำหนดจำเพาะ ในขั้นตอนการออกแบบ โครงสร้างโดยรวมของระบบซอฟต์แวร์จะถูกกำหนดขึ้น โปรแกรมทั้งหมดจะถูกแบ่งออกเป็นโมดูลซอฟต์แวร์ สำหรับแต่ละโมดูล ข้อกำหนดเชิงหน้าที่จะถูกกำหนดขึ้นและมีการพัฒนาอัลกอริทึมที่ทำหน้าที่เหล่านั้น แผนภาพการปฏิสัมพันธ์ระหว่างโมดูล — ที่เรียกว่าแผนภาพการไหลของข้อมูลของระบบซอฟต์แวร์ — จะถูกกำหนดขึ้น มีการพัฒนาแผนการทดสอบ และกำหนดข้อมูลนำเข้าสำหรับการทดสอบโมดูลแต่ละตัวและระบบทั้งหมด
โปรแกรมส่วนใหญ่ที่นำแบบจำลองทางคณิตศาสตร์ไปปฏิบัติประกอบด้วยสามส่วนหลัก ได้แก่:
- ตัวประมวลผลก่อน (การจัดเตรียมและตรวจสอบข้อมูลนำเข้าของแบบจำลอง);
- ตัวหาผลเฉลย (การแก้ปัญหา การดำเนินการทดลองเชิงคำนวณ);
- ตัวประมวลผลหลัง (การแสดงผลและการนำเสนอผลลัพธ์)
ควรให้ความสำคัญอย่างมากกับการนำเทคโนโลยีการเขียนโปรแกรมสมัยใหม่มาใช้ วัตถุประสงค์ของเทคโนโลยีดังกล่าวคือ ประการแรกและสำคัญที่สุด เพื่อเพิ่มความน่าเชื่อถือของซอฟต์แวร์และเพิ่มผลิตภาพของนักพัฒนา ยิ่งโครงการซอฟต์แวร์มีความจริงจังและมีขนาดใหญ่มากเท่าใด คำถามเกี่ยวกับการนำเทคโนโลยีการเขียนโปรแกรมสมัยใหม่มาใช้ก็ยิ่งมีความสำคัญมากขึ้นเท่านั้น การละเลยเรื่องเหล่านี้อาจนำไปสู่ความล่าช้าอย่างมากและความน่าเชื่อถือของระบบซอฟต์แวร์ที่ลดลง
ปัจจัยสำคัญในการรับประกันความน่าเชื่อถือและระยะเวลาพัฒนาที่สั้นของระบบซอฟต์แวร์สำหรับแก้ปัญหากลุ่มใดกลุ่มหนึ่งคือการมีคลังโมดูลซอฟต์แวร์ที่เข้ากันได้ซึ่งพัฒนาไว้อย่างดี โปรแกรมจะมีความน่าเชื่อถือมากขึ้นและสามารถพัฒนาได้เร็วขึ้นเมื่อมีการใช้ส่วนประกอบซอฟต์แวร์มาตรฐานให้มากที่สุดเท่าที่จะเป็นไปได้
ความสมเหตุสมผลของแบบจำลองทางคณิตศาสตร์คือระดับที่ผลลัพธ์ที่ได้จากแบบจำลองที่พัฒนาขึ้นสอดคล้องกับข้อมูลการทดลองหรือผลลัพธ์ของปัญหาอ้างอิง
การตรวจสอบความสมเหตุสมผลของแบบจำลองมีวัตถุประสงค์สองประการ:
- เพื่อยืนยันความถูกต้องของชุดสมมติฐานที่กำหนดไว้ในขั้นตอนการกำหนดเชิงมโนทัศน์และเชิงคณิตศาสตร์ ควรดำเนินการตรวจสอบสมมติฐานหลังจากที่วิธีการแก้ปัญหาได้รับการตรวจสอบแล้ว และซอฟต์แวร์ได้ผ่านการแก้ไขข้อบกพร่องอย่างครอบคลุมและกำจัดข้อผิดพลาดและความขัดแย้งทั้งหมดแล้ว;
- เพื่อยืนยันว่าความแม่นยำของผลลัพธ์สอดคล้องกับความแม่นยำที่ระบุไว้ในข้อกำหนดของงาน
การตรวจสอบความสมเหตุสมผลของแบบจำลองทางคณิตศาสตร์ที่พัฒนาขึ้นดำเนินการโดยการเปรียบเทียบกับข้อมูลการทดลองที่มีอยู่ของวัตถุจริง หรือกับผลลัพธ์ของแบบจำลองอื่นที่สร้างขึ้นก่อนหน้านี้และได้รับการพิสูจน์แล้วเป็นอย่างดี ในกรณีแรกเรียกว่าการตรวจสอบความสมเหตุสมผลโดยการเปรียบเทียบกับการทดลอง ในกรณีที่สองเรียกว่าการเปรียบเทียบกับผลลัพธ์ของปัญหาอ้างอิง
คำถามเรื่องความแม่นยำในการสร้างแบบจำลองขึ้นอยู่กับข้อกำหนดที่วางไว้กับแบบจำลองและวัตถุประสงค์ที่ตั้งใจไว้ ต้องคำนึงถึงความแม่นยำของผลการทดลองหรือรายละเอียดเฉพาะของการกำหนดปัญหาอ้างอิงด้วย สำหรับแบบจำลองที่มุ่งหมายเพื่อการคำนวณคร่าว ๆ และในระดับอันดับขนาด ความแม่นยำ 10-15% ถือว่าน่าพอใจ สำหรับแบบจำลองที่ใช้ในระบบควบคุมและติดตาม ความแม่นยำที่ต้องการอาจอยู่ที่ 1-2% หรือสูงกว่านั้นด้วยซ้ำ
เมื่อเกิดปัญหาเรื่องความสมเหตุสมผลของแบบจำลอง การแก้ไขควรเริ่มต้นด้วยการวิเคราะห์อย่างเป็นระบบถึงสาเหตุที่เป็นไปได้ทั้งหมดของความคลาดเคลื่อนระหว่างผลลัพธ์ของการสร้างแบบจำลองกับผลการทดลอง ประการแรก ควรศึกษาแบบจำลองและประเมินระดับความสมเหตุสมผลของมันสำหรับค่าต่าง ๆ ของพารามิเตอร์ที่แปรผัน (เงื่อนไขเริ่มต้นและเงื่อนไขขอบเขต พารามิเตอร์ที่แสดงลักษณะคุณสมบัติของวัตถุที่จะสร้างแบบจำลอง) หากแบบจำลองไม่สมเหตุสมผลในช่วงพารามิเตอร์ที่ผู้วิจัยสนใจ อาจลองปรับปรุงค่าคงที่และพารามิเตอร์เริ่มต้นของแบบจำลอง หากยังไม่ได้ผลลัพธ์ที่เป็นบวก ทางเดียวที่เหลืออยู่ในการปรับปรุงแบบจำลองคือการทบทวนชุดสมมติฐานที่นำมาใช้ การตัดสินใจนี้หมายถึงการย้อนกลับไปยังขั้นตอนที่สองของกระบวนการพัฒนาแบบจำลองโดยพฤตินัย และอาจนำไปสู่การเปลี่ยนแปลงครั้งใหญ่ไม่เพียงแต่ในการกำหนดเชิงคณิตศาสตร์เท่านั้น แต่ยังรวมถึงวิธีการแก้ปัญหาด้วย (เช่น การเปลี่ยนจากวิธีเชิงวิเคราะห์เป็นวิธีเชิงตัวเลข) การปรับปรุงซอฟต์แวร์ใหม่ทั้งหมด และวงรอบใหม่ของการตรวจสอบความสมเหตุสมผลของแบบจำลอง ดังนั้นการตัดสินใจทบทวนชุดสมมติฐานที่นำมาใช้จึงต้องได้รับการพิจารณาอย่างรอบคอบและกระทำก็ต่อเมื่อได้ใช้แนวทางอื่นทั้งหมดในการปรับปรุงความสมเหตุสมผลของแบบจำลองจนหมดสิ้นแล้ว
แบบจำลองเชิงพรรณนามีจุดมุ่งหมายเพื่ออธิบายพารามิเตอร์ที่ศึกษาในปรากฏการณ์หรือกระบวนการที่กำหนด ตลอดจนศึกษาแบบแผนที่ควบคุมการเปลี่ยนแปลงของพารามิเตอร์เหล่านั้น แบบจำลองเหล่านี้สามารถใช้ในการศึกษาคุณสมบัติและพฤติกรรมของวัตถุที่กำลังศึกษาภายใต้ชุดข้อมูลนำเข้าและเงื่อนไขการปฏิบัติงานต่าง ๆ ในการสร้างแบบจำลองการหาค่าเหมาะที่สุด และในการสร้างแบบจำลองการจำลองสถานการณ์ของระบบที่ซับซ้อน
แบบจำลองที่พัฒนาขึ้นเพื่อวัตถุประสงค์ในการวิจัยมักไม่ได้ถูกยกระดับไปสู่ระบบซอฟต์แวร์ที่มุ่งหมายเพื่อเผยแพร่ให้กับผู้ใช้ภายนอก อายุการใช้งานของมันมักจำกัดอยู่เพียงระยะเวลาของโครงการวิจัยในสาขานั้น ๆ แบบจำลองเหล่านี้มีลักษณะเฉพาะคือมีธรรมชาติเชิงสำรวจ การใช้ขั้นตอนและอัลกอริทึมเชิงคำนวณใหม่ ๆ และส่วนติดต่อผู้ใช้ที่ยังไม่พัฒนาเต็มที่
แบบจำลองและระบบซอฟต์แวร์ที่สร้างขึ้นจากแบบจำลองเหล่านั้นซึ่งมุ่งหมายเพื่อเผยแพร่ให้กับผู้ใช้ภายนอกในภายหลังหรือเพื่อวางจำหน่ายในเชิงพาณิชย์ มีส่วนติดต่อผู้ใช้ที่พัฒนาไว้อย่างดีและใช้งานง่าย รวมทั้งมีตัวประมวลผลก่อนและตัวประมวลผลหลังที่ทรงพลัง แบบจำลองเหล่านี้มักตั้งอยู่บนพื้นฐานของการกำหนดและขั้นตอนเชิงคำนวณที่ได้รับการพิสูจน์และยอมรับกันมาอย่างดีแล้ว อย่างไรก็ตาม ควรระลึกไว้ว่าแบบจำลองเช่นนี้ถูกออกแบบมาเพื่อแก้ปัญหาเฉพาะกลุ่มที่กำหนดไว้ชัดเจนเท่านั้น
ไม่ว่าแบบจำลองจะมีวัตถุประสงค์การใช้งานอย่างไร ทีมพัฒนามีหน้าที่ต้องดำเนินการวิเคราะห์ผลลัพธ์ของการสร้างแบบจำลองทั้งในเชิงคุณภาพและเชิงปริมาณ
จากการทำงานกับแบบจำลอง ผู้พัฒนาจะกลายเป็นผู้เชี่ยวชาญในสาขาที่เกี่ยวข้องกับวัตถุที่จะสร้างแบบจำลอง พวกเขาจะพัฒนาความเข้าใจอย่างถ่องแท้เกี่ยวกับคุณสมบัติของวัตถุ และสามารถทำนายและอธิบายพฤติกรรมของมันได้
ดังนั้น การวิเคราะห์ผลลัพธ์ของการสร้างแบบจำลองอย่างครอบคลุมจึงทำให้สามารถ:
- ปรับปรุงวัตถุที่กำลังพิจารณา หาลักษณะเฉพาะที่เหมาะที่สุดของมัน หรืออย่างน้อยที่สุดก็นำพฤติกรรมและคุณสมบัติของมันมาพิจารณาให้ดีที่สุดเท่าที่จะเป็นไปได้;
- กำหนดขอบเขตขอบเขตการนำแบบจำลองไปประยุกต์ใช้;
- ยืนยันความถูกต้องของสมมติฐานที่นำมาใช้ในขั้นตอนการกำหนดเชิงคณิตศาสตร์ และประเมินความเป็นไปได้ในการทำให้แบบจำลองเรียบง่ายลงเพื่อเพิ่มประสิทธิภาพในขณะที่ยังคงรักษาความแม่นยำที่จำเป็นไว้;
- ระบุทิศทางที่ควรพัฒนาแบบจำลองต่อไป