.TH ODE 1 "Dec 1998" "FSF" "GNU Plotting Utilities" .SH "نام (NAME)" ode \- حل عددی معادلات دیفرانسیل معمولی .\" Not all man macros define SB .de SB \&\fB\s-1\&\\$1 \\$2\s0\fR .. .SH "خلاصه دستور (SYNOPSIS)" .B ode [ .I options ] [ .I file ] .SH "توضیحات (DESCRIPTION)" .LP .B ode ابزاری است که مسئله‌ی مقدار اولیه را برای دستگاه مشخصی از معادلات دیفرانسیل معمولی مرتبه اول، به روش انتگرال‌گیری عددی حل می‌کند. سه طرح انتگرال‌گیری عددی مجزا در دسترس است: Runge\-Kutta\-Fehlberg (پیش‌فرض)، Adams\-Moulton، و Euler. طرح‌های Adams\-Moulton و Runge\-Kutta با اندازه گام تطبیقی در دسترس هستند. .LP عملکرد .B ode توسط برنامه‌ای مشخص می‌شود که به زبان ورودی آن نوشته شده است. این برنامه صرفاً فهرستی از عبارت‌ها برای مشتق‌های متغیرهایی است که باید انتگرال‌گیری شوند، به همراه چند دستور کنترلی. چند نمونه در بخش .SB "مثال‌ها (EXAMPLES)" ارائه شده است. .LP دستور .B ode برنامه را از فایل مشخص‌شده می‌خواند، یا اگر نام فایلی داده نشده باشد، از ورودی استاندارد می‌خواند. در صورت خواندن از ورودی استاندارد، \fBode\fP هنگامی که یک تک‌نقطه را به تنهایی در یک خط ببیند، خواندن را متوقف کرده و خارج می‌شود. .LP در هر گام زمانی، مقادیر متغیرهای تعیین‌شده در برنامه در خروجی استاندارد نوشته می‌شوند. بنابراین جدولی از مقادیر تولید خواهد شد که هر ستون آن روند تغییرات یک متغیر را نشان می‌دهد. اگر فقط دو ستون وجود داشته باشد، خروجی را می‌توان با لوله به .BR graph (1) یا یک برنامه رسم نمودار مشابه هدایت کرد. .SH "گزینه‌ها (OPTIONS)" .SS "گزینه‌های ورودی (Input Options)" .TP .BI \-f " file" .br .ns .TP .BI \-\-input\-file " file" خواندن ورودی از \fIfile\fP\^ پیش از خواندن از ورودی استاندارد. این گزینه پس از خواندن قطعه‌برنامه‌ای که دستگاه معادلات دیفرانسیل را تعریف می‌کند، امکان کار تعاملی را فراهم می‌سازد. .SS "گزینه‌های خروجی (Output Options)" .TP .BI \-p " prec" .br .ns .TP .BI \-\-precision " prec" هنگام چاپ نتایج عددی، از \fIprec\fP\^ رقم با‌معنی استفاده می‌کند (پیش‌فرض ۶ است). اگر این گزینه مشخص شود، قالب چاپ نماد علمی خواهد بود. .TP .B \-t .br .ns .TP .B \-\-title چاپ یک خط عنوان در ابتدای خروجی، که نام متغیرها را در هر ستون مشخص می‌کند. اگر این گزینه مشخص شود، قالب چاپ نماد علمی خواهد بود. .SS "گزینه‌های طرح انتگرال‌گیری (Integration Scheme Options)" گزینه‌های زیر طرح انتگرال‌گیری عددی را مشخص می‌کنند. تنها یکی از سه گزینه اساسی \fB\-R\fP، \fB\-A\fP، \fB\-E\fP می‌تواند مشخص شود. پیش‌فرض \fB\-R\fP (Runge\-Kutta\-Fehlberg) است. .TP .BI \-R " [stepsize]" .br .ns .TP .BI \-\-runge\-kutta " [stepsize]" استفاده از الگوریتم Runge\-Kutta\-Fehlberg مرتبه پنجم، با اندازه گام تطبیقی، مگر اینکه یک اندازه گام ثابت مشخص شده باشد. هنگامی که اندازه گام ثابتی مشخص شود و تحلیل خطایی درخواست نشده باشد، طرح کلاسیک Runge\-Kutta مرتبه چهارم به کار گرفته می‌شود. .TP .BI \-A " [stepsize]" .br .ns .TP .BI \-\-adams\-moulton " [stepsize]" استفاده از یک طرح پیش‌بین\-تصحیح‌کننده Adams\-Moulton مرتبه چهارم، با اندازه گام تطبیقی، مگر آن‌که یک اندازه گام ثابت، \fIstepsize\fP\^، مشخص شده باشد. الگوریتم Runge\-Kutta\-Fehlberg برای عبور از نقاط «بد» (در صورت وجود) به کار می‌رود. .TP .BI \-E " [stepsize]" .br .ns .TP .BI \-\-euler " [stepsize]" استفاده از یک طرح Euler سریع و ساده، با اندازه گام ثابت. مقدار پیش‌فرض \fIstepsize\fP\^ برابر 0.1 است. برای کاربردهای جدی توصیه نمی‌شود. .IP "" در صورت مشخص شدن \fB\-E\fP، گزینه‌های کران خطا \fB\-r\fP و \fB\-e\fP (به زیر مراجعه کنید) نمی‌توانند استفاده شوند. .TP .BI \-h " hmin [hmax]" .br .ns .TP .BI \-\-step\-size\-bound " hmin [hmax]" استفاده از کران پایین \fIhmin\fP\^ برای اندازه گام. طرح عددی اجازه نخواهد داد اندازه گام از \fIhmin\fP\^ کمتر شود. پیش‌فرض این است که به اندازه گام اجازه داده شود تا حد محدودیت ماشین کاهش یابد، یعنی کمترین مقدار ممیز شناور با دقت مضاعف غیرصفر. .IP "" آرگومان اختیاری \fIhmax\fP\^، در صورت وجود، بیشینه مقداری را برای اندازه گام تعیین می‌کند. این گزینه برای جلوگیری از جهش سریع روتین عددی از روی ناحیه‌ای حائز اهمیت، سودمند است. .SS "گزینه‌های کران خطا (Error Bound Options)" .TP .BI \-r " rmax [rmin]" .br .ns .TP .BI \-\-relative\-error\-bound " rmax [rmin]" گزینه \fB\-r\fP یک کران بالا برای خطای نسبی تک‌گام تعیین می‌کند. اگر گزینه \fB\-r\fP استفاده شود، خطای نسبی تک‌گام در هر متغیر وابسته هرگز از \fIrmax\fP\^ (که مقدار پیش‌فرض آن 10^-9 است) فراتر نخواهد رفت. در صورت وقوع این حالت، حل مسئله متوقف شده و پیام خطایی چاپ خواهد شد. اگر اندازه گام ثابت نباشد، اندازه گام به صورت «تطبیقی» کاهش خواهد یافت تا کران بالای خطای تک‌گام نقض نشود. بنابراین، انتخاب یک کران بالای کوچک‌تر برای خطای تک‌گام، موجب انتخاب اندازه‌گام‌های کوچک‌تر خواهد شد. یک کران پایین \fIrmin\fP\^ نیز می‌تواند به صورت اختیاری تعیین شود تا زمان افزایش اندازه گام را پیشنهاد دهد (مقدار پیش‌فرض برای \fIrmin\fP\^ برابر \fIrmax\fP\^/1000 است). .TP .BI \-e " emax [emin]" .br .ns .TP .BI \-\-absolute\-error\-bound " emax [emin]" مشابه \fB\-r\fP، اما به جای خطای نسبی، خطای مطلق تک‌گام را محدود می‌کند. .TP .B \-s .br .ns .TP .B \-\-suppress\-error\-bound نادیده گرفتن سقف خطای تک‌گام، که به \fBode\fP اجازه می‌دهد حتی در صورت تجاوز از این سقف به کار خود ادامه دهد. این امر ممکن است منجر به خطاهای عددی بزرگی شود. .SS "گزینه‌های اطلاعاتی (Informational Options)" .TP .B \-\-help چاپ فهرستی از گزینه‌های خط فرمان و خروج. .TP .B \-\-version چاپ شماره نسخه \fBode\fP و بسته ابزارهای ترسیم (plotting utilities)، و خروج. .SH "خطاها (DIAGNOSTICS)" .LP اکثراً خودتوضیح هستند. بزرگ‌ترین استثنا \(lqsyntax error\(rq است که به معنای خطای گرامری است. پیام‌های خطای زبان به این شکل هستند: .LP .RS .B ode: nnn: message\|.\|.\|. .RE .LP که در آن «nnn» شماره خط ورودی دارای خطا است. اگر گزینه .B \-f استفاده شده باشد، عبارت «(file)» پس از «nnn» برای خطاهای رخ داده درون فایل قرار می‌گیرد. متعاقباً، زمانی که \fBode\fP خواندن ورودی استاندارد را آغاز کند، شماره خطوط دوباره از ۱ شروع می‌شوند. .LP هیچ تلاشی برای بازیابی موفقیت‌آمیز از خطاهای نحوی در ورودی انجام نمی‌شود. با این حال، تلاشی ناچیز برای همگام‌سازی دوباره صورت می‌گیرد تا بیش از یک خطا در یک پایش قابل یافتن باشد. .LP خطاهای زمان اجرا پیامی را در توصیف مشکل صادر می‌کنند و حل مسئله رها می‌شود. .SH "مثال‌ها (EXAMPLES)" برنامه .LP .RS .B y' = y .br .B y = 1 .br .B print t, y .br .B step 0, 1 .RE .LP مسئله مقدار اولیه‌ای را حل می‌کند که جواب آن \fIy=e^t\fP\^ است. هنگامی که \fBode\fP این برنامه را اجرا می‌کند، دو ستون از اعداد را در خروجی استاندارد خواهد نوشت. هر خط مقدار متغیر مستقل \fIt\fP\^، و متغیر \fIy\fP\^ را هم‌زمان با گام برداشتن \fIt\fP\^ از 0 به 1 نشان می‌دهد. .LP نمونه‌ای پیشرفته‌تر به این صورت خواهد بود: .LP .RS .B sine' = cosine .br .B cosine' = \-sine .br .B sine = 0 .br .B cosine = 1 .br .B print t, sine .br .B step 0, 2*PI .RE .LP این برنامه یک مسئله مقدار اولیه را برای دستگاهی شامل دو معادله دیفرانسیل حل می‌کند. این مسئله مقدار اولیه در واقع توابع سینوس و کسینوس را تعریف می‌کند. این برنامه دستگاه را در طول یک دوره تناوب کامل گام‌بندی می‌کند. .SH "نویسندگان (AUTHORS)" \fBode\fP توسط Nicholas B. Tufillaro .RB ( nbt@reed.edu ) نوشته شده، و اندکی توسط Robert S. Maier .RB ( rsm@math.arizona.edu ) بهبود یافته تا در مجموعه GNU plotting utilities ادغام شود. .SH "همچنین ببینید (SEE ALSO)" \(lqThe GNU Plotting Utilities Manual\(rq. .SH "گزارش باگ‌ها (BUGS)" گزارش‌های باگ را به .BR bug\-gnu\-utils@gnu.org ارسال کنید.