Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


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

Тип Реферат
Предмет Математика
Просмотров
1117
Размер файла
20 б
Поделиться

Ознакомительный фрагмент работы:

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

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

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

Y'=F(X,Y), с начальными условиями Y(X0)=Yo на отрезке [X,X] методом Хемминга с постоянным шагом интегрирования. В каждой i+1 точке находим начальное приближение Р к решению Y по предсказывающей формуле:

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

Yi-3 решение в i-3 точке,

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

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

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

Mi+1=Pi+1-112*(P-Ci)/121; M'i+1=F(Xi+1,Mi+1).

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

G=Wj*|Pi+1,j-Ci+1|, где

Wj=1

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

На участке "разгона" значения Yi-k и Y'i-k (k=0, 1, 2)вычисляются методом Рунге-Кутта по формуле Yi=Ui(2)-(Ui(i)-Ui(2))/15, где i- номер точки, в которой ищется решение, Ui- решение системы в i-ой точке, полученное с шагом h/l;

U(l)i-m+1/l=A(l)i-m+(K(l)1+2*K(l)2+2*K(l)3+K(l)4)i--m+1/l/6, где

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

K(l)1=h*F(Xi-m,A(l)i-m)/l;

K(l)2=h*F(Xi-m+h/2*l,A(l)i-m+K(l)1/2)/l;

K(l)3=h*F(Xi-m+h/2*l,A(l)i-m+K(l)2/2)/l;

K(l)4=h*F(Xi-m+h/l,A(l)i-m+K(l)3)/l.

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

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

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

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

Длина стандартной информативы 1600 символов. Объем исходных данных : 7 чисел, 2 массива, n функций. В результате работы программы на печать выводится на участке "разгона" X, значения функций и производных, далее X, G и Y[n] на всем отрезке интегрирования через Ю шагов и в конце отрезка.

Программа рекомендуется для решения систем обыкновенных дифференциальных уравнений на больших отрезках, так как считает быстрее одноточечных методов. Для контроля постоянно выводится погрешность вычислений G, которая позволяет следить за точностью решения.

"Разгон" (нахождение значений функций и производных в точках X0, X0+Q, X0+2*Q , X0+3*Q, где Q - шаг интегрирования )осуществляется методом Рунге-Кутта с увеличенной разрядностью.

В программе предусмотрена возможность при получении большой погрешности вычисления в точка "разгона" уменьшить шаг интегрирования в этих точках (см. способ задания J), а при быстром возрастании погрешности вычислений G уменьшить шаг интегрирования методом Хемминга или увеличить разрядность вычислений.

Программа позволяет производить интегрирование как с положительным, так и с отрицательным шагом (соответственно меняются X0, Xк и Q).

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

Для решения задачи вводятся стандартная и рабочая информативы и директива.

В рабочей информативе после метки Ц программа вычисления правых частей системы. Здесь 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.

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

Данная расчетно-графическая работа (далее РГР) составлена на языке 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. Hem.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;массивы значений производных в этих же точках, массивы правых частей и т.д. Всвязи с отсутствием в языке MathLab конструкции безусловного перехода, используется конструкции While 1 (бесконечный цикл), Break (переход к началу While) и IF (Если).

Из-за таких немного "странных" конструкций вся дальнейшая часть программы может быть весьма условно представлена такой схемой:

While (не конец расчетов)

While 1

...

IF

...

...

END

...

...

IF

...

...

...

END

...

end

end

В целом, в данных циклах вычисляется номер шага, и если он меньше 5, то вычисления сводятся к вычислению методом Р-К,а если больше 5, то производятся вычисления по методу Хемминга со всеми своими дополнительными действиями, как вычисление по корректирующей формуле и т.д. В обоих случаях происходит обновление рабочих и других промежуточных массивов и вывод информации на экран. В случае решения в точках "разгона" вычисляются также коэффициенты K1, K2, K3, K4, используемые в методе Р-К. Также функция сама проверяет точность вычислений и в случае необходимости корректирует шаг. Если шаг "сделан", то программа выводит результаты на экран и заносит их в массив,который представлен в виде нескольких столбцов. Также в необходимых для функции случаях она обращается к подпрограмме FunFcn, которая занимается вычислением левых частей, вызов и возврат значений которой должен быть следующим:

Z=feval(FunFcn,x,y), где

Z - вектор вычисленных левых частей,

X,Y - векторы точек, для которых производится вычисление.

Для удобства отладки и описания, программа разбита на части, обозначенные русскими заглавными буквами (Ш,Щ,Л и т.д.), которые соответствуют блокам, обозначенным в примере программы, приведенной в задании. Несмотря на то, что приведенная программа написана на условном языке, прокомментировать текст нашей программы на языке MathLab довольно удобно с использованием данных обозначений (Конечно, часть блоков опущена, в связи с отсутствием принципиальной значимости. Кроме того изменен порядок появления блоков в программе):

"Э" - начальное вычисление левых частей.

"Ф" - общий цикл, в котором и происходят собственно все вычисления. Он начинается с конструкций:

While (xk-x1)>0

While 1,

то есть пока не будет достигнут конец, все вычисления происходят внутри этого цикла.

Также внутри блока "Ф" происходят вычисления корректирующей формулы IAR(i) а также оценка погрешности вычислений G,если они еще не были рассчитаны на предыдущем шаге.

"Ц" - вычисление левых частей.

"Щ" - на этом этапе происходит перемещение данных в рабочих массивах и X=X+H, то есть происходит переход к следующему шагу. Также на этом этапе происходит вывод на экран и формирование выходных массивов Yout, Xout, DGout.

"Л" - в этом блоке происходит расчет самой предсказывающей формулы метода Хемминга - P(i) и Y(i) и происходит расчет левых частей, т.е. снова в программе появляется блок "Ц".

Затем опять продолжается блок "Ф". Идет проверка на каком шаге мы находимся и, если он (шаг) меньше 5, то идет подготовка к расчету методом Р-К, то есть идет участок "разгона". Соответственно идет расчет коэффициентов K1, K2, K3 и K4, необходимых для метода Р-К. Также внутри данного блока еще раз встречается блок "Ц", в котором происходит расчет левых частей, необходимых для метода Р-К.

Далее происходит проверка шага и уменьшение или увеличение его в соответствии с заданной точностью. Для возможности "отката" в случае большого или маленького шага используется переменная Х1. Также еще раз встречается блок "Ц". Затем, в случае если все коэффициенты К1-К4 вычислены и шаг удовлетворяет требованиям точности, то происходит расчет методом Р-К,а также, естественно происходит формирование выходных массивов Yout, Xout и DGout, а также происходит переход к следующему шагу (то есть X=X+H) и переход к блоку "Э".

На этом кончается блок "Ф" и вся функция. В начале блока "Ф" происходит проверка на конец вычислений и если расчеты закончились, то есть мы достигли Xk то происходит возврат в головную программу. Все выходные данные формируются внутри блока "Ф", поэтому никаких дополнительных действий не производится.

Сравнительный анализ и оценка быстродействия

Для сравнения полученных результатов с другими методами используется метод Адамса, разработанный другой бригадой.

Число операций в методе Хемминга: порядка 2200.

Быстродействие: порядка 0,8 секунды.

Число операций в методе Адамса: порядка 560.

Быстродействие: порядка 0,55 секунды.

(Вычисления проводились на компьютере i486DX4-100)

Как видно из вышеприведенных данных, метод Хемминга проигрывает по временным показателям и по затратам машинного времени методу Адамса, однако стоит заглянуть в приложение, где приведены распечатки графиков решений и ошибок обоих методов и сразу видно, что метод Адамса не справляется с контрольным примером для нашей системы, так как ошибка у него к концу вычислений (Xk=1) возрастает, а в "нашем" методе -стремится к 0.

Выводы

Данная РГР по предмету "Численные методы в экономике" реализует метод Хемминга, который предназначен для решения задачи Коши для обыкновенных дифференциальных уравнений. Программа, написанная на языке MathLab, хотя и не является оптимальной, но решает поставленную задачу и решает ОДУ довольно больших степеней сложности, с которыми не справляются другие методы (например метод Адамса). Это связано с тем, что метод Хемминга является многоточечным, а в связи с этим и повышается точность вычислений, а также устойчивость метода. Однако данный метод требует больших вычислительных затрат, что связано с довольно громоздкими формулами а также с большим объемом вычислений и поэтому для относительно простых систем целесообразно использовать более простые методы решения.

Список литературы

1. Д.Мак-Кракен, У.Дорн. "Численные методы и программирование на Фортране", Издательство "Мир", М. 1977г.

2. О.М.Сарычева. "Численные методы в экономике. Конспект лекций", Новосибирский государственный технический университет, Новосибирск 1995г.

3. Н.С.Бахвалов. "Численные методы", Издательство "Наука", М. 1975г.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно