کتاب Numerical Methods for Scientists and Engineers: With Pseudocodes (روشهای عددی برای دانشمندان و مهندسان: با شبه کدها) به عنوان یک کتاب درسی ابتدایی برای یک دوره یک ترم در مورد روش های عددی برای دانش آموزان سال دوم یا متوسطه طراحی شده است. این روشهای عددی اساسی مورد نیاز برای دانشمندان و مهندسان و همچنین برخی از موضوعات پیشرفته را پوشش میدهد که به صلاحدید مربیان واگذار میشود.
در ادامه مقدمهای از کتاب Numerical Methods for Scientists and Engineers را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Numerical Methods for Scientists and Engineers:
این کتاب در درجه اول بهعنوان کتاب درسی اصلی برای دورههایی که تحت عنوان کلی “روشهای عددی” تدریس میشوند، در نظر گرفته شده است. همچنین بهعنوان کتاب درسی اصلی یا مکمل برای دورههای کارشناسی ارشد یا کارشناسی ارشد سطح بالا و همچنین بهعنوان یک کتاب مرجع برای مهندسان عملی مناسب است.
زمینه (اهداف) متن را میتوان به شرح زیر خلاصه کرد: (i) ارائه یک زمینه نظری قوی در مورد روشهای عددی که در آموزش علوم و مهندسی و فراتر از آن با آن مواجه میشویم؛ (ii) درک و کاربرد روشها در مسائل عملی؛ (iii) توسعه توانایی انتخاب یک روش مناسب برای یک مسئله معین؛ (iv) کسب مهارت تبدیل الگوریتمهای عددی به کدهای کامپیوتری اجرایی که با استفاده از شبهکدها مورد تأکید قرار میگیرد. من در زیر عناوین اصلی استراتژی پیادهسازی شده در متن برای دستیابی به اهداف فوق را به تفصیل توضیح میدهم:
A. اهداف یادگیری
هر فصل کتاب Numerical Methods for Scientists and Engineers با “اهداف یادگیری” آغاز میشود که به طور خلاصه اهداف آموزشی و شایستگیهایی را که باید به دست آورد، توصیف میکند. اهداف نظری و کاربردی اهداف گستردهتر دوره را تشکیل میدهند. اهداف یادگیری به دانشآموزان اطلاع میدهد که تا پایان هر فصل باید به چه چیزهایی مسلط شوند.
B. محتوا
محتوای متن برای یک دوره یک ترم طراحی شده است. کتاب Numerical Methods for Scientists and Engineers شامل 11 فصل است که روشهای اساسی و همچنین برخی از موضوعات پیشرفته با ارزش مرجع قابل توجه را پوشش میدهد که به اختیار مدرسان باقی مانده است. در ترتیب فصلها، محتوای فصلهای بعدی در نظر گرفته شده است تا دانشآموزی که با موضوعی جدید آشنا میشود بتواند مطالب دوره را فصل به فصل هضم کند. در مواردی که وابستگی کمی بین فصلها وجود دارد، قبل از اینکه در فصل(های) بعدی با جزئیات بیشتری پوشش داده شود، مقدمهای مختصر در مورد موضوع مربوطه ارائه میشود.
افکار من در مورد نحوه تدریس و طراحی دوره و مطالب آن در طول سه دهه گذشته در حین تدریس دانشجویان مهندسی شکل گرفته است. دانشجویان علوم و مهندسی میخواهند ارتباط این دوره ریاضی و مطالب آن را در تحصیلات حرفهای خود ببینند. بر این اساس، در هر فصل کتاب Numerical Methods for Scientists and Engineers، اهمیت و حوزههای کاربرد موضوعات در علوم و مهندسی به طور خلاصه بیان شده است. هر روش تا حد امکان ساده نگه داشته شده است و اثباتها تنها در مواردی گنجانده شدهاند که به دانشآموزان در درک بهتر نظریه زیربنایی روش کمک کنند.
دانشجویان علوم و مهندسی زمانی بهترین یادگیری را دارند که با مثالهای حل شده و تمرینهای پایان فصل انگیزه بگیرند. علاوه بر این، این حوزهای است که حل مسئله با دست برای درک مطالب ضروری است، بنابراین در این متن یک دیدگاه حل مسئله اتخاذ شده است. بلافاصله پس از ارائه یک روش، کاربرد آن با مثالهای مسئلهای تقویت میشود که به طور جامع و کامل پیچیدگیها و مشکلات بالقوه روش را نشان میدهند و توضیح میدهند.
اکثر مثالها و مسائل تمرینی شامل مسائلی با راه حلهای دقیق شناخته شده، امکان ارزیابی روشن و مختصر عملکرد روش را فراهم میکنند. در مجموع 108 مسئله مثال حل شده وجود دارد که در آن راهحل گام به گام و از طریق ارزیابی خطا توضیح داده شده است.
علاوه بر این، تلاش زیادی برای تهیه مثالها و مسائل تمرینی پایان فصل از رشتههای مختلف انجام شده است، نه تنها برای نشان دادن ارتباط روشها در علوم و مهندسی بلکه برای نشان دادن نقاط قوت و ضعف روشهای ارائه شده. هر فصل با یک نتیجهگیری به پایان میرسد که ویژگیهای کلیدی روشهای عددی ارائه شده را خلاصه میکند.
C. جعبههای توجه
برای جلب توجه دانشجویان، نکات کلیدی، روشهای خوب، دامها یا هشدارهایی که در ارتباط با کاربرد یک روش عددی وجود دارد، در سراسر متن با استفاده از “جعبههای توجه” با یک دست که به اطلاعات ارائه شده اشاره میکند، برجسته شده است.
D. جعبههای “مزایا و معایب”
روشهای عددی طراحی شده برای یک مسئله ریاضی خاص، از نظر هدف، دامنه، درجه دقت، میزان محاسبات و غیره با هم متفاوت هستند. در این راستا، هیچ روش عددی واحدی برای حل هر مشکلی در کلاس خود مناسب نیست.
در نتیجه، معمولاً چندین روش برای حل عددی یک مسئله معین وجود دارد. به همین دلیل، اصول اولیه یک روش عددی و خطاهای مرتبط با آن در بخش نظری ارائه میشود و همچنین ایده روشن و مختصری از زمان عملکرد خوب یا بد روش نیز ارائه میشود.
این نوع دانش بسیار مهم و ضروری است، حتی اگر از ماژولها یا رویههایی از بستههای نرمافزاری موجود استفاده شود. در نتیجه، توانایی انتخاب یک روش مناسب برای یک کار عددی برای پیادهسازی دقیق و موفق هر روش عددی ضروری است.
در این زمینه، پس از ارائه یک روش عددی، مزایا و معایب آن در یک “جعبه مزایا و معایب” ارائه میشود. با این رویکرد، انتظار میرود دانشآموزان تا پایان دوره، توانایی پرسش و درک هدف و محدودیتهای روشها یا ماژولها قبل از استفاده از آنها را کسب کنند.
E. استفاده از شبهکدها
تمام الگوریتمهای عددی در این متن به عنوان شبهماژولهای خودکفایی ارائه میشوند که میتوانند در هر برنامهای تبدیل و استفاده شوند. ماژولها تا حد ممکن ساده (با تعداد بسیار کمی دستورالعمل) نوشته شدهاند تا ترجمه به سایر پلتفرمهای برنامهنویسی آسانتر باشد. این رویکرد، الگوریتمها و روشها را با نظریه ریاضی کافی ترکیب میکند و پیادهسازی آسان الگوریتمها را پشتیبانی میکند.
چرا شبهکد؟ مهندسان و دانشمندان امروزی انتظار میرود در یکی یا چند زبان برنامهنویسی (C/C++، پایتون، ویژوال بیسیک، فورترن 90/95 و غیره) و همچنین تعدادی بسته نرمافزاری (متلب، متماتیکا، مپلب و غیره) که به عنوان سیستمهای جبری کامپیوتری یا CAS شناخته میشوند، تسلط پیدا کنند. برای کلیتر و فراگیرتر بودن، متن به هیچ زبان برنامهنویسی خاص یا به هیچ نرمافزار CAS خاصی وابسته نیست.
هدف این رویکرد آموزش روشهای عددی است که دانشآموزان در دورهها یا مشاغل آینده خود با آن مواجه خواهند شد، در عین حال به آنها امکان میدهد توانایی تهیه و/یا استفاده از برنامههای ساختاریافته در زبانهای مختلف را کسب کنند.
در واقع سه دلیل اصلی وجود دارد که چرا از زبانهای برنامهنویسی یا نرمافزارهای CAS محبوب استفاده نمیشود:
(1) تجربه نشان داده است که در چند دهه گذشته زبانهای برنامهنویسی و/یا نرمافزارها در ماهیت خود بسیار ناپایدار هستند. آنها میتوانند در یک زمینه (یا دوره) محبوب و در دیگری غیرمحبوب شوند یا بسیار سریع توسط زبان یا نرمافزار دیگری در برخی رشتهها جایگزین شوند.
(2) آموزش روشهای عددی به همراه یک زبان برنامهنویسی یا نرمافزار خاص، خطر این را دارد که دانشجو را از درک اصول اساسی روشها کور کند. چنین رویههایی به طور ناخواسته دانشجویان را تشویق میکند تا صرفاً کدهای منبع داده شده را کپی، کامپایل و اجرا کنند (یا به سادگی از تابع، رویه یا ماژول از پیش تعریف شده مشخص استفاده کنند یا آن را تایپ کنند) به جای اینکه سعی کنند روشها را به طور عمیق درک کنند، از جمله محدودیتها یا مزایای آنها.
علاوه بر این، این نگرش به طور کلی دانشجویان را به این باور میرساند که هر روشی را میتوان با استفاده از کدها یا نرمافزارهای آماده موجود برای حل مسائل مشابه به کار برد، بدون اینکه هیچ دانش یا درک کافی از جزئیات مربوطه داشته باشند.
(3) اکثر مسائلی که دانشمندان و مهندسان امروزه با آن روبرو هستند را نمیتوان با استفاده از یک روش واحد (یا ماژولهای آماده) حل کرد. در برخی موارد، تسلط بر برنامهنویسی برای پیادهسازی مجموعهای از روشهای عددی در یک برنامه کامپیوتری گستردهتر برای دستیابی به یک هدف محاسباتی کلیتر ضروری است. از این نظر، بهترین راه برای یادگیری روشهای عددی تقویت مهارتهای کاربردی با برنامهنویسی کامپیوتری در حین گذراندن دوره “روشهای عددی” است.
انگیزه برای اتخاذ رویکرد شبهکد این است که متون ارائه دهنده الگوریتمهای مختصر، مخاطبی را هدف قرار میدهند که دارای تجربه برنامهنویسی هستند. یک دانشجوی کارشناسی مبتدی بدون مهارتهای برنامهنویسی عملی کافی، به طور کلی در تبدیل چنین الگوریتمهایی به برنامههای کامپیوتری در حال اجرا مشکل دارد.
شبهکدهای به کار رفته در متن ویژگیهای کامل یک برنامه واقعی از جمله عبارتهای ورودی/خروجی، کدگذاری ساختاریافته و نظرات و حاشیهنویسی خط به خط را تقلید میکنند تا ترجمه به سایر زبانهای برنامهنویسی تا حد ممکن ساده باشد.
با ادغام رویکرد شبهکد به عنوان یک ابزار آموزشی، دانشجویی با حداقل مهارتهای برنامهنویسی نه تنها میتواند منطق روش عددی را درک کند، بلکه بینشی در مورد نحوه پیادهسازی آن در یک زبان برنامهنویسی دلخواه خود به دست آورد.
متن در مجموع 96 شبهکد دارد. هر الگوریتم عددی به عنوان یک شبهماژول کاملاً مستقل ارائه میشود که میتواند تبدیل و با برنامههای دیگر استفاده شود. برخی از شبهکدها از یک یا چند شبهماژول ارائه شده در بخشها یا فصلهای قبلی استفاده میکنند.
این متن همچنین یک قرارداد برای نوشتن شبهکدها ارائه میدهد، زیرا هیچ استاندارد مشترکی وجود ندارد. با این حال، عبارات و دستورات برنامهنویسی ساختاریافته زبانهای برنامهنویسی رایج در این قرارداد شبهکد که در بخش ضمیمه تحت عنوان “نحوه خواندن و نوشتن شبهکدها” ارائه شده است، به کار رفته است. با استفاده از این مرجع، دانشجویی با پیشزمینه برنامهنویسی ابتدایی میتواند به راحتی شبهکدها را دنبال کند، بنویسد و به هر زبان برنامهنویسی دلخواه خود تبدیل کند.
F. مسائل تمرینی پایان فصل
متن شامل بیش از 1500 مسئله تمرینی پایان فصل است که در پایان هر فصل و بر اساس بخشهای کتاب Numerical Methods for Scientists and Engineers، ارائه شده است. این مسائل بر مکانیزمهای روش تأکید دارند و برای تمرین در کاربرد الگوریتمهای ارائه شده طراحی شدهاند.
اکثریت قریب به اتفاق تمرینها از مسائلی با پاسخهای دقیق (دقیق) تشکیل شده است که امکان ارزیابی کمی دقیق عملکرد روشها را فراهم میکند. برخی از مسائل که ماهیتاً ریاضی هستند، نه تنها برای تقویت روشها از طریق تمرین طراحی شدهاند، بلکه نقاط قوت و ضعف یک روش را نیز نشان میدهند. مسائل کاربردی یا واقعی اضافی از رشتههای علوم و مهندسی انتخاب شدهاند تا به تقویت درک روشها و نشان دادن ارتباط آنها در مسائل کاربردی کمک کنند.
تمرینها به گونهای طراحی شدهاند که به دانشآموزان به عنوان تکالیف خودآموزی یا خانهتکالیف واگذار شوند. برخی از تمرینها نیاز به برنامهنویسی کامپیوتری برای انجام محاسبات دارند.
حتی در چنین مواردی، مهم است که دانشآموزان اکثر تمرینها یا حداقل چند قدم اول را با دست یا با استفاده از صفحات گسترده حل کنند تا درک کاملی از جزئیات یک الگوریتم قبل از تلاش برای برنامهنویسی آن داشته باشند. چنین تمرینهایی همچنین میتوانند برای اعتبارسنجی نتایج یک برنامه کامپیوتری یا مقایسه آنها با نتایج سایر نرمافزارهای موجود استفاده شوند.
G. تکالیف کامپیوتری پایان فصل
دانشجویان نه تنها باید بتوانند ماژولها یا روشهای مناسب را از نرمافزار مرتبط انتخاب و استفاده کنند، بلکه باید بتوانند الگوریتمهای عددی را نیز به زبانی که خود (یا مدرس) انتخاب کردهاند، برنامهنویسی کرده و تحلیلهای پارامتری انجام دهند.
برای توسعه مهارتهای برنامهنویسی و تحلیل پارامتری، تمرینهای اضافی (تمرین شماره 115 و به بعد) به عنوان “تکالیف کامپیوتری” در پایان هر فصل کتاب Numerical Methods for Scientists and Engineers، ارائه شده است که نیاز به استفاده و/یا نوشتن و اجرای کد کامپیوتری (به انتخاب مدرس) و تحلیل نتایج دارد. مدرسان میتوانند از برخی تمرینها یا تکالیف کامپیوتری برای انجام تحلیلهای روششناسی یا مقایسهها استفاده یا آنها را اصلاح کنند. تا پایان دوره، دانشجو باید اهمیت این مهارت در حرفه خود را درک کرده و قدردان آن باشد.
یادداشتی برای مدرس
تجربه و تفکرات این نویسنده در مورد تدریس روشهای عددی به شرح زیر شکل گرفته است: کاربرد مؤثر محتوای دوره در مسائل عملی نیازمند دانش نظری و همچنین تجربه محاسباتی است. دانش اینکه یک روش تا چه حد خوب یا بد عمل میکند بسیار مهم و ضروری است.
دانشجو باید بتواند هدف و محدودیتهای یک روش یا ماژول را درک کند تا بداند که آیا برای مسئله او مناسب است یا خیر. بیشتر مسائلی که امروزه متخصصان در عمل با آن مواجه هستند، نیاز به استفاده از چندین روش عددی دارند و نمیتوان آنها را با استفاده از یک ماژول یا زیربرنامه استاندارد حل کرد. برای چنین مسائلی، دانشجویان باید بتوانند با ترکیب تعدادی از روشهای عددی مناسب، راه حل پیدا کنند و مهارتهایی در تطبیق روشهای عددی برای یک مسئله جدید ایجاد کنند.
مدرس دوره تأثیر قابل توجهی بر جهتگیری دوره و آنچه دانشجویان میتوانند از آن به دست آورند دارد. در این زمینه، این متن به مدرسان اجازه میدهد تا از اکسل و/یا متلب، متماتیکا، متکد و نرمافزارهای CAS مشابه استفاده کنند. علاوه بر پیادهسازی ماژولها یا رویههای آماده خاص یک الگوریتم خاص، دانشجویان میتوانند برای گسترش قابلیتهای محیطهای نرمافزاری مانند این، برنامههای ساده و ساختارمند توسعه دهند.
به طور جایگزین، میتوان از این استراتژی در زبانهای برنامهنویسی مانند پایتون، C/C++، ویژوال بیسیک، فورترن 90 و غیره استفاده کرد. در ترکیب با مسائل واقعبینانهای که نیاز به تحلیل (یا ماژولها) برای یک کار خاص دارند، این رویکرد به دانشجویان اجازه میدهد تا الگوریتمها (یا ماژولها) را برای یک کار خاص شناسایی، انتخاب و به کار گیرند و با آزمایش روشهای رقیب، روشهای عددی را تقویت کرده و به آنها کمک کند تا مزایا و محدودیتهای آنها را بررسی کنند.
صفحه وب همراه
من یک وبسایت اختصاصی برای کتاب Numerical Methods for Scientists and Engineers برای کمک به دانشجویان و همچنین مدرسان راهاندازی و نگهداری خواهم کرد که از طریق https://github.com/zaltac/NumMethodsWPseudoCodes قابل دسترسی است.
این وبسایت پویا خواهد بود و من ماژولها را به زبانهای برنامهنویسی C/C++، پایتون، ویژوال بیسیک، فورترن، متماتیکا و متلب، ارائههای پاورپوینت، راهحلهای تمرینهای اضافی، تصحیحات خطا و موارد دیگر را در آن قرار خواهم داد. من از مدرسانی که کتاب Numerical Methods for Scientists and Engineers را به عنوان کتاب درسی دوره خود انتخاب میکنند، تشویق میکنم تا در مورد نحوه بهبود محتوایی که در این وبسایت به اشتراک خواهم گذاشت، بازخورد خود را ارائه دهند.
پیامی به دانشجو
روشهای عددی شاخهای بسیار متفاوت از ریاضیات است و قطعاً با دروس ریاضی قبلی شما متفاوت است. در دروس ریاضی، معمولاً مسائل به وضوح تعریف شدهاند و یک مفهوم بسیار مشخص از “پاسخ درست” وجود دارد.
اما در اینجا، ما به محاسبه تقریبها میپردازیم و این مستلزم نوعی تفکر کمی متفاوت است. ما باید به اندازه کافی درک کنیم که چه چیزی را تقریب میزنیم تا بتوانیم یک تقریب معقول بسازیم و باید به اندازه کافی واضح و منطقی فکر کنیم تا دقت و عملکرد آن تقریب را تحلیل کنیم.
شبهکدها به عنوان برنامههایی با تمام مسیرهای ممکن یا تکنیکهای برنامهنویسی پیشرفته طراحی نشدهاند. آنها به گونهای ساده طراحی شدهاند که به شما در درک و پیادهسازی الگوریتمها کمک کنند. نوشتن برنامههای خودتان به شما کمک میکند تا درک کنید که روش چگونه کار میکند. از این نظر، تلاش محاسباتی که شما انجام میدهید بخش مهمی از یادگیری روشهای عددی است.
سرفصلهای کتاب Numerical Methods for Scientists and Engineers:
- Cover
- Half Title
- Series Page
- Title Page
- Copyright Page
- Dedication
- Contents
- List of Figures
- List of Tables
- Preface
- Author Bio
- CHAPTER 1: Numerical Algorithms and Errors
- CHAPTER 2: Linear Systems: Fundamentals and Direct Methods
- CHAPTER 3: Linear Systems: Iterative Methods
- CHAPTER 4: Nonlinear Equations
- CHAPTER 5: Numerical Differentiation
- CHAPTER 6: Interpolation and Extrapolation
- CHAPTER 7: Least Squares Regression
- CHAPTER 8: Numerical Integration
- CHAPTER 9: ODEs: Initial Value Problems
- CHAPTER 10: ODEs: Boundary Value Problems
- CHAPTER 11: Eigenvalues and Eigenvalue Problems
- APPENDIX A: A Guide on How to Read and Write a Pseudocode
- APPENDIX B: Quadratures
- Bibliography
- References
- Index
جهت دانلود کتاب Numerical Methods for Scientists and Engineers میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.