Курсовая работа: Разработка программы численного интегрирования обыкновенного дифференциального уравнения явным многошаговым методом Нистрема третьего порядка точности

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

<div style="margin-left:45px;position:absolute;left:0px;top:422px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">искомой функции при помощи одношагового метода, а только потом по этим </span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:443px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">значениям реализовать процесс интегрирования многошаговым методом </span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:464px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Нистрема.</span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:485px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Исходные данные и результаты расчёта при многошаговом методе </span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:506px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">интегрирования аналогично данным одношаговым методам. </span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:527px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:548px;width:813px;height:20px;"><span style="color:#000000;font-family:Arial;font-size:13px;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span><span style="color:#000000;font-family:'Courier New';font-size:19px;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <em> y&quot;(x)=f(x,y(x),y'(x))</em>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (1.3)</span></div>

<div style="position:absolute;left:0px;top:569px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"> </span></div>

<div style="position:absolute;left:0px;top:590px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Однако для определения текущих значений точек искомой функции в процесс </span></div>

<div style="position:absolute;left:0px;top:627px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">интегрирования необходимо сформировать два одномерных массива: для </span></div>

<div style="position:absolute;left:0px;top:648px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">аргумента -MX и функции - MY. В этих массивах первый(нулевой) элемент </span></div>

<div style="position:absolute;left:0px;top:669px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">соответствует текущей искомой (n-ной) точке, первый - предыдущей(n-1)-</span></div>

<div style="position:absolute;left:0px;top:690px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">вой, второй - (n-2)-ой точке, которая стоит впереди текущей на два шага </span></div>

<div style="position:absolute;left:0px;top:711px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">интегрирования, тритий -&nbsp; (n-3)-ей точке, отстоящей на три шага </span></div>

<div style="position:absolute;left:0px;top:732px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">интегрирования, и так до последней точки.</span></div>

<div style="position:absolute;left:0px;top:757px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:778px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">с начальным условиями:</span></div>

<div style="position:absolute;left:0px;top:799px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <em>y(x0)=y0,y'(x0)=y'0</em>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (1.4)</span></div>

<div style="position:absolute;left:0px;top:840px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:861px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Уравнение (1.3) можно преобразовать к виду:</span></div>

<div style="position:absolute;left:0px;top:882px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:903px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <em>d/dx[y(x);y'(x)]=[y'(x); f(x,y(x),y'(x))]</em>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (1.5)</span></div>

<div style="position:absolute;left:0px;top:924px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:945px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:966px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">и применить к нему разделённый метод Рунге-Кутты:</span></div>

<div style="position:absolute;left:0px;top:987px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:1008px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">{k(i)=y'0+h*a(i)^j*k(j);</span></div>

<div style="position:absolute;left:0px;top:1029px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"> k(i)=f(x0+c(i)*h, y0+h*a(i)^(j)*k(j), y'0+h*a(i)^(j)*k(j));&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; (1.6)</span></div>

<div style="position:absolute;left:0px;top:1050px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"> y1=y0+h*b^(i)*k(i);</span></div>

<div style="position:absolute;left:0px;top:1071px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"> y'1=y'0+h*b^(i)*k(i);</span></div>

<div style="position:absolute;left:0px;top:1092px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"> i,j=1,..,s. </span><span style="color:#000000;font-family:'Courier New';font-size:13px;"> </span><span style="color:#000000;font-family:'Courier New';font-size:19px;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; </span></div>

<div style="position:absolute;left:0px;top:1113px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:1134px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:1155px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Шаг интегрирования h является постоянным на всём расчётном интервала </span></div>

<div style="position:absolute;left:0px;top:1176px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">аргумента [x0,xk]. Для получения последующей точки искомого значения </span></div>

<div style="position:absolute;left:0px;top:1197px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">функции используются только одно её предыдущее значение, которое </span></div>

<div style="position:absolute;left:0px;top:1218px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">определяется по формуле: </span></div>

<div style="position:absolute;left:0px;top:1239px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:1260px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <em>x(n+1)=xn+h </em>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (1.7)</span></div>

<div style="position:absolute;left:0px;top:1281px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><br></span></div>

<div style="position:absolute;left:0px;top:1302px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Число расчётных точек определяется величиной шага интегрирования.&nbsp; Метод </span></div>

<div style="position:absolute;left:0px;top:1323px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Нистрема имеет третий порядок точности. Каждое последующее значение </span></div>

<div style="position:absolute;left:0px;top:1344px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">функции определяется на основе значений предыдущей точки при помощи </span></div>

<div style="position:absolute;left:0px;top:1365px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">выражения:</span></div>

<div style="position:absolute;left:0px;top:1386px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><em><br></em></span></div>

<div style="position:absolute;left:0px;top:1407px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"><em>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; y(n+1)=yn+h*f(xn,yn)&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (1.8)</em></span></div>

</div>

<div id="wb_Text5" style="position:absolute;left:48px;top:1806px;width:557px;height:36px;z-index:8;">

<span style="color:#1E90FF;font-family:Arial;font-size:32px;">2. Проектирование схем алгоритма</span></div>

<div id="wb_Text6" style="position:absolute;left:4px;top:1868px;width:813px;height:499px;z-index:9;">

<div style="position:absolute;left:0px;top:0px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Схема алгоритма головной программы описывает общий сценарий работы </span></div>

<div style="position:absolute;left:0px;top:21px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">разрабатываемого приложения. В составе проекта приложения </span></div>

<div style="position:absolute;left:0px;top:42px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">предусматривается три формы:</span></div>

<div style="margin-left:18px;position:absolute;left:0px;top:63px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Главная форма приложения с вводом исходных данных;</span></div>

<div style="margin-left:18px;position:absolute;left:0px;top:84px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Форма отображения таблицы и графика результатов расчёта;</span></div>

<div style="margin-left:18px;position:absolute;left:0px;top:105px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Форма информации о программе.</span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:126px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">При запуске приложения отображаются главная форма, на которой </span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:147px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">находятся управляющие элементы: главное меню и обработка следующих </span></div>

<div style="margin-left:45px;position:absolute;left:0px;top:168px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">событий:</span></div>

<div style="margin-left:23px;position:absolute;left:0px;top:189px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Ввод исходных данных;</span></div>

<div style="margin-left:23px;position:absolute;left:0px;top:210px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;">Загрузка созданного ранее файла с исходными данными;</span></div>

<div style="margin-left:23px;position:absolute;left:0px;top:231px;width:813px;height:20px;"><span style="color:#000000;font-family:'Courier New';font-size:19px;"> Решение ОДУ численным методом Нистрема, при условии ввода исходных </span></div>