Пример: Транспортная логистика
Я ищу:
На главную  |  Добавить в избранное  

Математика /

Комплект заданий по численным методам

Документ 1 | Документ 2 | Документ 3

←предыдущая  следующая→
1 2 



Скачать реферат


2Теоретическая часть

Программа предназначена для численного решения системы

обыкновенных дифференциальных уравнений вида:

Y'=F(X,Y), с начальными условиями Y(X 40 0)=Y 4o 0 на отрезке

[X,X] методом Хемминга с постоянным шагом интегрирования. В

каждой i+1 точке находим начальное приближение Р к решению Y

по предсказывающей формуле:

P 4i+1 0=Y 4i-3 0+4*h*(2*Y' 4i 0-Y' 4i-1 0+2*Y' 4i-2 0)/3, где

Y 4i-3 0 решение в i-3 точке,

Y' 4i 0,Y' 4i-1 0,Y' 4i-2 0 - значения производных в точках i, i-1,

i-2 соответственно.

Для улучшения решения используется корректирующая формула

C 4i+1 0=[9*Y 4i 0-Y 4i-2 0+3*h*(M' 4i+1 0+2*Y' 4i 0-Y' 4i-1 0)]/8, где

M 4i+1 0=P 4i+1 0-112*(P-C 4i 0)/121; M' 4i+1 0=F(X 4i+1 0,M 4i+1 0).

Решение системы в i+1 точке находится по формуле

G=W 4j 0*|P 4i+1,j 0-C 4i+1 0|, где

W 4j 0=1

j- номер компоненты вектора.

На участке "разгона" значения Y 4i-k 0 и Y' 4i-k 0 (k=0, 1, 2)

вычисляются методом Рунге-Кутта по формуле

Y 4i 0=U 4i 5(2) 0-(U 4i 5(i) 0-U 4i 5(2) 0)/15, где i- номер точки, в которой

ищется решение, U 4i 0- решение системы в i-ой точке, полученное с

шагом h/l;

U 5(l) 4i-m+1/l 0=A 5(l) 4i-m 0+(K 5(l) 41 0+2*K 5(l) 42 0+2*K 5(l) 43 0+K 5(l) 44 0) 4i--m+1/l 0/6 4,

где

j=1, 2, ..., n,

K 5(l) 41 0=h*F(X 4i-m 0,A 5(l) 4i-m 0)/l;

K 5(l) 42 0=h*F(X 4i-m 0+h/2*l,A 5(l) 4i-m 0+K 5(l) 41 0/2)/l;

K 5(l) 43 0=h*F(X 4i-m 0+h/2*l,A 5(l) 4i-m 0+K 5(l) 42 0/2)/l;

K 5(l) 44 0=h*F(X 4i-m 0+h/l,A 5(l) 4i-m 0+K 5(l) 43 0)/l.

A, U ,K - векторы n-го порядка; l=1, 2; m=1 при l=1; m=1,

1/2 при l=2;

A 5(l) 4i-1 0=Y 5(l) 4i-1 0; A 5(2) 4i-1/2 0=U 5(2) 4i-1/2 0.

2Характеристика программы. 0

Программа состоит из стандартной информативы, реализующей

описанный метод, рабочей информативы, задающей правые части

уравнений системы и директивы.

Длина стандартной информативы 1600 символов. Объем исход-

ных данных : 7 чисел, 2 массива, n функций. В результате рабо-

ты программы на печать выводится на участке "разгона" X, зна-

чения функций и производных, далее X, G и Y[n] на всем отрезке

интегрирования через Ю шагов и в конце отрезка.

Программа рекомендуется для решения систем обыкновенных

дифференциальных уравнений на больших отрезках, так как счита-

ет быстрее одноточечных методов. Для контроля постоянно выво-

дится погрешность вычислений G, которая позволяет следить за

точностью решения.

"Разгон" (нахождение значений функций и производных в

точках X 40 0, X 40 0+Q, X 40 0+2*Q , X 40 0+3*Q, где Q - шаг интегрирования )

осуществляется методом Рунге-Кутта с увеличенной разрядностью.

В программе предусмотрена возможность при получении боль-

шой погрешности вычисления в точка "разгона" уменьшить шаг ин-

тегрирования в этих точках (см. способ задания J), а при быст-

ром возрастании погрешности вычислений G уменьшить шаг интег-

рирования методом Хемминга или увеличить разрядность вычисле-

ний.

Программа позволяет производить интегрирование как с по-

ложительным, так и с отрицательным шагом (соответственно меня-

ются X 40 0, X 4к 0 и Q).

2Порядок решения задачи. 0

Для решения задачи вводятся стандартная и рабочая инфор-

мативы и директива.

В рабочей информативе после метки Ц программа вычисления

правых частей системы. Здесь Z[1]=...; Z[2]=...; ...;

Z[n]=...; - правые части исходной системы обыкновенных диффе-

ренциальных уравнений как функции от X1 и Y[1], Y[2], ...,

Y[n], X1 - соответствует аргументу, Y[I] - соответствует функ-

циям. I=1, 2, ..., N. Операторная часть рабочей информативы

заканчивается оператором перехода "НА" Ф.

В описательной части рабочей информативы задаются X0, XK

- соответственно начало и конец отрезка интегрирования, Q -

шаг интегрирования методом Хемминга, J - число, определяющее,

во сколько раз следует уменьшить шаг интегрирования методом

Рунге-Кутта на участке "разгона" для получения решения того же

порядка точности, что и в методе Хемминга,

N=n - порядок системы;

Y[n] - вектор начальных условий,

W[n] - вектор коэффициентов для вычисления невязки

W[I]=1, и описаны

A[n], B[n], C[n] - массивы значений функций в точках i-3,

i-2, i-1 соответственно,

Я[n], Б[n], Г[n], D[n] - массивы значений производных в

точках i-3, i-2, i-1, i соответственно,

Z[n] - массив правых частей,

П[n], P[n] - рабочие массивы.

В директиве задаются : R - разрядность вычислений по ме-

тоду Хемминга ("разгон" происходит с увеличенной разряд-

ностью), Ю - число, определяющее период печати (количество ша-

гов). Директива должна оканчиваться оператором "НА" HMG.

2Описание работы программы

Данная расчетно-графическая работа (далее РГР) составлена

на языке PC MathLab ( PC-MATLAB (c) Copyright The MathWorks,

Inc. 1984-1989 Version 3.5f 17-July-89 Serial Number 22961) и

выполнена в виде двух модулей (третий - контрольный пример),

распечатка которых приведена в приложении.

1. _Hemming.m .

"Стандартный" головной модуль.

Входные данные: отсутствуют.

Выходные данные: отсутствуют.

Язык реализации: PC MathLab.

Операционная система: MS-DOS 3.30 or higher

Пояснения к тексту модуля:

Структура данного модуля элементарна. Вначале очищается

экран, задаются исходные данные для второго модуля, как X0,XK

- начальное и конечное значение, Q - шаг, J - число, определя-

ющее во сколько раз нужно уменьшать шаг интегрирования методом

Рунге-Кутта (далее Р-К) на участке "разгона" для получения то-

го же порядка точности, что и в методе Хемминга, N - порядок

системы, Y - вектор начальных значений, W - вектор коэффициен-

тов для вычисления невязки и т.д. Затем вызывается модуль ре-

шения системы в формате:

[x,y,dg]=hem('ours',x0,xk,q,j,n,y,w,ur), где

x,y - точки решения

dg - ошибка остальные параметры описаны выше.

Необходимо отметить, что несмотря на отсутствие входных и

выходных данных, внутри данного модуля задаются начальные зна-

чения и выводятся результаты вычислений в числовом виде и гра-

фиков, а также оценка по быстродействию (TIME) и количеству

выполненных операций (FLOPS), однако эти данные нельзя охарак-

теризовать как входные и выходные.

2. 1 _ 0Hem.m

Модуль, которые непосредственно и решает систему ОДУ ме-

тодом Хемминга.

Входные данные:

FunFcn - имя функции, вычисляющей левые части

X0,XK - начальное и конечное значение для счета

Q - шаг интегрирования

J - число, определяющее во сколько раз нужно уменьшать

шаг интегрирования методом Рунге-Кутта (далее Р-К) на участке

"разгона" для получения того же порядка точности, что и в ме-

тоде Хемминга

N - порядок системы

Y - вектор начальных значений

W - вектор коэффициентов для вычисления невязки

UR - число, определяющее период печати

Выходные данные:

x - матрица точек, для которых вычислено решение

y - матрица решений

dg - ошибка интегрирования

Язык реализации: PC MathLab.

Операционная система: MS-DOS 3.30 or higher

Пояснения к тексту модуля:

Данный модуль содержит в своем теле всего одну функцию,

входные и выходные данные которой являются входными и выходны-

ми данными текущего модуля. Они описаны выше. Мы же займемся

описанием данной функции:

После описания функции HEM устанавливается формат выход-

ных данных LONG E, а также происходит инициализация рабочих

массивов, как массивы значений функции в точках i-3, i-2, i-1;

массивы значений производных в этих же точках,

←предыдущая  следующая→
1 2 



Copyright © 2005—2007 «Mark5»