Построение графика временной функции

Построение схемы алгоритма и программы для создания графика временной функции, работающей в машинном и реальном времени. Выбор методов решения и их обоснование. Значение коэффициентов и временной функции. Реализация временных задержек в программе.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 09.03.2012
Размер файла 6,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования Республики Беларусь

Белорусский Национальный Технический Университет

Факультет Информационных Технологий и Робототехники

Кафедра “Робототехнические системы”

Пояснительная записка к курсовой работе на тему:

"Построение графика временной функции"

по дисциплине "Информатика"

Выполнила

студентка группы 107417 Маркевич А.Н.

Руководитель

доцент кафедры РТС Москаленко А.А.

Минск 2008

Задание

Составить схему алгоритма и программу для построения графика временной функции, работающую как в машинном, так и реальном времени. Реальное время в диапазоне (t0 - tкон) формируется таймером в виде программного модуля с метками Тк, называемыми временем квантования. При вычислении функции использовать алгоритм Горнера (схему Горнера).

Функция:

у = | at2 + bt + c + d |,

где t0 = 0с; tкон=10с; Тк = 0,5с;

d - корень нелинейного уравнения 0,25 х3 + х - 1,2502 = 0, которое надо решить методом Ньютона с точностью е = 10-3, при начальном значении корня, лежащего в диапазоне [0; 2];

с - наибольший по абсолютному значению корень системы уравнений:

при a1 = 3; b1 = 1; d1 = 2;

а2 = 3; b2 = 3; d2 = 3.

Коэффициенты:

a = 1,2;

b = | d - a |.

Содержание

  • Задание
  • Введение
  • 1. Выбор методов решения и их обоснование
  • 1.1 Метод Ньютона для нахождения корня нелинейного уравнения
  • 1.2 Метод Крамера для решения системы линейных уравнений
  • 1.3 Алгоритм Горнера для вычисления значений функции
  • 1.4 Понятие машинного и реального времени
  • 1.5 Дискретизация времени
  • 1.6 Реализация временных задержек в программе
  • 1.7 Масштабирование
  • 2. Разработка схем алгоритмов и программ
  • 2.1 Таблица переменных
  • 2.2 Схема алгоритма основной программы
  • 2.2 Схемы алгоритмов подпрограмм
  • 2.2.1 Схема алгоритма подпрограммы решения нелинейного уравнения
  • 2.2.2 Схема алгоритма подпрограммы решения системы двух линейных уравнений
  • 2.2.3 Схема алгоритма подпрограммы вычисления значения многочлена методом Горнера
  • 2.2.4 Схема алгоритма подпрограммы нахождения значений временной функции
  • 2.2.5 Схема алгоритма подпрограммы реализации временных задержек
  • 2.2.6 Схема алгоритма подпрограммы вывода исходных данных
  • 2.2.7 Схема алгоритма подпрограммы вывода результатов вычисления
  • 3. Вывод значений функции и её коэффициентов
  • 3.1 Значение коэффициентов
  • 3.2 Значения временной функции
  • 3.3 График временной функции
  • Заключение
  • Список использованных источников

Введение

Basic (Beginners All-purpose Symbolic Instruction Code) - многоцелевой язык символических инструкций для начинающих) представляет собой простой язык программирования, разработанный в 1964 году для использования новичками в программировании. Он был разработан как простейший язык для непосредственного общения человека с вычислительной машиной. Поэтому первоначально работа велась в интерактивном режиме с использованием интерпретаторов. В настоящее время для этого языка имеются также и компиляторы.

Basic широко распространен на ЭВМ различных типов и очень популярен в среде программистов, особенно начинающих, что говорит о том, что с него лучше начинать программировать. Существует множество диалектов этого языка, мало совместимых между собой. Basic активно поглощает многие концепции и новинки из других языков. Поэтому он достаточно динамичен, и нельзя однозначно определить его уровень.

Создание Microsoft QuickBASIC (сокращенное обозначение - QB) в середине 80-х годов произвело настоящую революцию в мире BASIC, результатом которой было то, что впервые этот язык занял достаточно прочные позиции среди средств разработки серьезных прикладных систем. В QuickBASIC в достаточно полной мере реализованы идеи структурного и модульного программирования, возможности использования процедур и функций.

Специфика технологии программирования в среде QB определяется наличием в ней двух трансляторов - интерпретатора и компилятора. Основу интегрированной среды, в которой выполняется основной объем разработки и отладки программы, составляет Интеллектуальный редактор и интерпретатор компилирующего типа (ИКТ). ИКТ - это новый тип интерпретатора, который производит предварительные "компиляцию и компоновку" программы в специальный псевдокод, а затем уже ее выполнение. При завершении отладки программы пользователь может создать исполняемый EXE-модуль с помощью настоящего компилятора и компоновщика программ.

1. Выбор методов решения и их обоснование

В курсовой работе были использованы следующие методы:

а) метод Ньютона для нахождения корня нелинейного уравнения

б) метод Крамера для решения системы линейных уравнений

в) алгоритм Горнера для вычисления значений функции

1.1 Метод Ньютона для нахождения корня нелинейного уравнения

Основными методами решения нелинейных уравнений являются: метод простой итерации, метод деления пополам, метод Ньютона. Из этих методов наиболее оптимальным с точки зрения быстродействия и точности является метод Ньютона.

Для решения уравнения этим методом необходимо знать начальное значение X0 функции и точность E с которой его нужно решить.

Алгоритм решения:

1) приводим функцию к виду

2) присваиваем X значение Х0;

3) вычисляем

4) находим первую производную функции и её значение

5) вычисляем значение ;

6) присваиваем х = х -

7) проверяем условие , если оно выполняется, то корень найден, иначе переходим к пункту №3.

1.2 Метод Крамера для решения системы линейных уравнений

Система линейных уравнений:

a1x + b1x2= c1

a2x + b2x2 = c2,

Имеет одно решение (x1, x2), если система является невырожденной т.е. выполняется неравенство:

a1b2-a2b1?0,

Тогда решение можно найти по общим формулам:

1.3 Алгоритм Горнера для вычисления значений функции

Известно, что полином в общем виде записывается следующим образом:

Y=An*X^n+ A (n-1) *X^ (n-1) +…A1*X+A0.

Горнер предложил переиндексировать коэффициенты многочлена:

Y=A1*X^n+ A (n-1) *X^ (n-1) +…An*X+A (n+1).

Далее он предложил разложить многочлен и представить в виде:

Y= (… (A1*X+A2) *X +A3) *X+…A1) *X+A (n+1).

Исходя из такого представления, он предложил алгоритм, который еще называют схемой Горнера:

все коэффициенты A1, A2,…,A (n+1) представить в виде элементов массива;

должны учитываться все коэффициенты. Если они отсутствуют в полиноме, то их надо все равно использовать, считая их равными нулю;

до цикла FOR-NEXT взять значения y=A (1);

цикл по управляющей переменной организовывать с I=2 до X+1;

в цикле использовать формулу:

Y=Y*X+A (I).

Если все значения Y надо сохранить, то Y следует организовать тоже как массив.

1.4 Понятие машинного и реального времени

Существует два пути, по которым можно производить реализацию программы: либо в темпе быстродействия ЭВМ (при этом время задержки напрямую зависит от частоты процессора), либо в реальном времени.

Машинное время является относительным, так как зависит от быстродействия ЭВМ, от используемого языка, от сложности алгоритма и т.д.

Моделирование в реальном времени дает возможность оценивать эффективность алгоритмов для работы в реальных системах.

1.5 Дискретизация времени

При реализации программы в реальном времени непрерывные процессы заменяются на дискретные. При этом временной интервал t представляется как совокупность дискретных интервалов:

t=nTk,

где Tk - время квантования или период квантования (квант); n - количество шагов или квантов.

1.6 Реализация временных задержек в программе

Для реализации временных задержек в программе используется таймер. Таймером определяется время квантования. В данной программе задержка реализуется путём многократного выполнения функции time = exp (0.5). Время задержки регулируется путём изменения параметров цикла.

1.7 Масштабирование

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

При размещении результатов вычислений очень удобно пользоваться оператором PRINT совместно с функцией TAB. Конечно, можно использовать и оператор LOCATE. Функция TAB и оператор LOCATE рассмотрены в предыдущих разделах.

Что касается построения графиков функций, то можно использовать графические операторы PSET и LINE. Однако при построении графиков необходимо всегда решать вопрос, связанный с масштабированием графиков. Во-первых, при построении графиков на компьютере пользователь всегда имеет дело с дискретными функциями: yn = f (ndx) или yn = f (nTk), где dx - шаг изменения аргумента; Tk - период квантования, который является тоже шагом по аргументу, которым является время t = nTk.

Необходимо всегда оценивать минимальное и максимальное значение функции: y0 (min) при n=0 и yn (max) при nmax.

Кроме того, необходимо выбрать начальную точку (a, b) для построения графика, определить границы окончания графика справа и сверху, а потом рассчитать масштаб по аргументу и по функции. Для пояснения на рисунке 1 показан произвольный график:

Рисунок 1. К выбору масштаба

Если исходить из разрешающей способности 640х480 пикселей (12 режим экрана монитора), то:

количество пикселей по оси Х: 640 - а - а1;

количество пикселей по оси У: b - b1,где а1 и в1 - отступы соответственно с правой и верхней сторон экрана, как показано на рисунке 10.3.

Тогда масштабы по осям Х (Мх) и Y (Му) равны:

.

С учетом Мх и Му координаты точек для оператора PSET будут следующими:

.

В этих формулах учитывается, что по оси абсцисс количество пикселей возрастает при увеличении n, а количество пикселей по оси y убывает.

Для проверки правильности выбора а2 и в2 надо подставить в эти формулы значения nmax и ymax вместо n и y. При этом a2 = 640 - a1, а b2 = b1, то есть, последние значения будут соответствовать значениям отступов. Таким образом, при построении графика следует использовать PSET с координатами (a2,b2):

.

Для возможности перемещения графика по экрану рекомендуется расчет масштабирования вводить в программу.

график временная функция программа

2. Разработка схем алгоритмов и программ

2.1 Таблица переменных

Таблица переменных программы представлена в таблице2.1

Таблица 2.1 Таблица переменных

Переменная

Описание

t0, tkon

Значения, задающие временной отрезок

tk

Время квантования

d

Корень нелинейного уравнения

E

Точность

x

Начальное значение корня нелинейного уравнения

c1, c2

Корни системы

с

Наибольший корень системы

a1, b1, d1, a2, b2, d2

Коэффициенты системы

a,b

Коэффициенты функции

y ()

Массив значений функции

ymin, ymax

Минимальное и максимальное значения функции

i, j, tm1

Параметры циклов

Mt, Mf

Коэффициенты масштабирования

2.2 Схема алгоритма основной программы

Схема алгоритма основной программы построения графика временной функции приведена на рисунках 2.1 - 2.2 Схема алгоритма состоит из 11 блоков.

Блок 1 - начало. Программа начинает свою работу с блока 2, где задаются исходные данные (переменные t0, tkon, tk, a). Подпрограмма решения нелинейного уравнения ПП1 (блок 3) возвращает корень нелинейного уравнения 0.25x3 + x - 1.2502 = 0. В блоке 4 присваиваются значения переменным d и b, с использованием результата полученного в блоке 3. Блок 5 - подпрограмма решения системы уравнений ПП2, здесь вычисляются корни системы уравнений a1z + b1p = d1 и a2z + b2p = d2, а также находится наибольший по абсолютному значению из них. В блоке 6 - присваивается значение переменной c, равное наибольшему по модулю корню системы. Блок 7 (ПП4) - подпрограмма для вычисления значений временной функции в диапазоне [t0,tkon] с квантом tk, а также нахождения её наименьшего ymin и наибольшего ymax значений. Блок 8 - подпрограмма вывода исходных данных ПП6. Блок 9 - вывод результатов вычислений ПП7. Блок 10 (ПП8) - подпрограмма построения графика временной функции у = | at2 + bt + c + d | на отрезке [t0,tkon]. Блок 11 - конец программы.

Рисунок 2.1 - Схема алгоритма основной программы

Рисунок 2.2 - Продолжение схемы алгоритма основной программы

2.2 Схемы алгоритмов подпрограмм

2.2.1 Схема алгоритма подпрограммы решения нелинейного уравнения

Схема алгоритма подпрограммы решения нелинейного уравнения ПП1 приведена на рисунке 2.3 В данной подпрограмме находится значение корня нелинейного уравнения методом Ньютона. В состав схемы алгоритма входят 6 блоков. Блок 1 - это начало, блок 6 - конец. Подпрограмма начинает работу с блока 2, в котором вычисляется начальное значение корня x, лежащего в диапазоне [x0; xkon]. Блок 3 вычисляет значение функции fx и ее первой производной f1x в этой точке, а также их отношение f=fx/f1x. Блок 4 находит новое значение корня x=x-f. Блок 5 проверяет выполняется ли условие |f|?E.

В случае верности неравенства блок 5 передает управление блоку 6, в противном случае управление передается на блок 3, цикл повторяется до истинности условия. В итоге будет найден корень нелинейного уравнения с необходимой точностью.

Рисунок 2.3 - Схема алгоритма подпрограммы решения нелинейного уравнения

2.2.2 Схема алгоритма подпрограммы решения системы двух линейных уравнений

Схема алгоритма подпрограммы ПП2 решения системы двух линейных уравнений приведена на рисунке 2.4 В состав схемы алгоритма входят 6 блоков. Блок 1 - это начало, блок 6 - это конец. Работа подпрограммы начинается с блока 2, который присваивает значения коэффициентам и рассчитывает одно единственное решение системы уравнений (c1,c2).

Блок 3 проверяет условие |c1|>|c2| и передает управление блоку 5 или блоку 4 в соответствии с истинностью или ложностью условия. Тем самым определяется наибольший по абсолютному значению корень Cmax.

Рисунок 2.4 - Схема алгоритма подпрограммы решения системы двух линейных уравнений

2.2.3 Схема алгоритма подпрограммы вычисления значения многочлена методом Горнера

Схема алгоритма подпрограммы ПП3 вычисления значения многочлена методом Горнера приведена на рисунке 2.5 Схема алгоритма состоит из 7 блоков. Блок 1 - это начало, блок 7 - это конец. Программный модуль начинает работу с блока 2, который задает коэффициенты K (1), K (2), K (3). В блоке 3 согласно схеме Горнера присваивается начальное значение переменной f=K (1), которая впоследствии дает искомое значение функции. После этого включается блок 4, который организует цикл с перебором значений K (i), i=2, 3, и выполнением блока 5, накапливающего значение функции f = f * t + K (i). В блоке 6 в итоге получаем искомое значение f=|f|.

Рисунок 2.5 - Схема алгоритма подпрограммы вычисления значения многочлена методом Горнера

2.2.4 Схема алгоритма подпрограммы нахождения значений временной функции

Схема алгоритма подпрограммы ПП4 нахождения значений временной функции приведена на рисунке 2.6 В состав схемы алгоритма входят 13 блоков. Блок 1 - это начало, блок 13 - конец. Программный модуль начинает работу с блока 2, который задает начальное значение аргумента t = t0 и объявляет массив DIM y (0 TO 100). Затем блок 3 обращается к подпрограмме ПП3, чтобы вычислить первое значение временной функции. Это значение фиксируется блоком 4, где также задаются начальные наименьшее и наибольшее значения функции ymax, ymin, присваевается значение параметру j = 0. Далее включается блок 5, который организует цикл с перебором значений аргумента t от t0 + tk до tkon с шагом tk. В цикле периодически происходит обращение к подпрограмме ПП3 (блок 7), а блоки 6 и 8 фиксируют значения функции в элементах массива y (j), изменяя параметр j=j+1. Также в цикле с помощью блоков 9 - 12 организуется поиск наименьшего ymin и наибольшего ymax значений временной функции.

Рисунок 2.6. - Схема алгоритма подпрограммы нахождения значений временной функции.

2.2.5 Схема алгоритма подпрограммы реализации временных задержек

Схема алгоритма подпрограммы ПП5 реализации временных задержек приведена на рисунке 2.7. В состав схемы алгоритма входят 4 блока. Блок 1 - это начало, блок 4 - конец. Программный модуль начинает работу с блока 2, который организует цикл. Блок 3 выполняет вычисления time=exp (0.5), time=0. Время задержки регулируется путём изменения параметров цикла.

Рисунок 2.7 - Схема алгоритма подпрограммы реализации временных задержек

2.2.6 Схема алгоритма подпрограммы вывода исходных данных

Схема алгоритма подпрограммы ПП6 вывода исходных данных приведена на рисунке 2.8 В состав схемы алгоритма входят 3 блока. Блок 1 - это начало, блок 3 - конец. Блок 2 выводит исходные данные.

Рисунок 2.8 - Схема алгоритма подпрограммы вывода исходных данных

2.2.7 Схема алгоритма подпрограммы вывода результатов вычисления

Схема алгоритма подпрограммы ПП7 вывода результатов вычисления приведена на рисунке 2.9 В состав схемы алгоритма входят 3 блока. Блок 1 - это начало, блок 3 - конец. Блок 2 выводит результаты вычислений.

Рисунок 2.9 - Схема алгоритма подпрограммы вывода результатов вычисления

3. Вывод значений функции и её коэффициентов

3.1 Значение коэффициентов

a = 1.2;

b = 0.1998857;

c = 0.5;

d = 1.000114.

3.2 Значения временной функции

T

Y

0

1.500114

0,5

1.900057

1,0

2.9

1,5

4.499943

2,0

6.699886

2,5

9.499829

3,0

12.89977

3,5

16.89972

4,0

21.49966

4,5

26.6996

5,0

32.49954

5,5

38.89949

6,0

45.89943

6,5

53.49937

7,0

61.69931

7,5

70.49926

8,0

79.8992

8,5

89.89915

9,0

100.4991

9,5

111.699

10

123.499

3.3 График временной функции

Построение графика осуществляется подпрограммой ПП8. График можно вывести как в машинном, так и в реальном времени по выбору пользователя.

Рисунок 3.1 - График временной функции

Заключение

В данной курсовой работе необходимо было разработать программу для построения графика временной функции, работающую как в машинном, так и в реальном времени. В программу также должны были входить подпрограммы для вычисления корней нелинейного уравнения методом Ньютона, нахождения корней системы двух линейных уравнений и выбора наибольшего из них по абсолютному значению. Все подпрограммы - внутренние. Значения функции рассчитывались по схеме Горнера. При разработке использовался язык BASIC (версия: Microsoft QuickBASIC v.5).

Список использованных источников

1. Конспект лекций по дисциплине "Информатика".

2. Конспект лекций по дисциплине "Высшая математика".

3. Кетков. Ю.Л. GW-, Turbo - и QuickBasic для IBM PC. - М.: "Финансы и статистика", 1992.

4. Дьяконов Б.Г. Справочник по алгоритмам и подпрограммам на языке Бейсик для персональных ЭВМ. - М.: "Наука", 1987.

Размещено на Allbest.ru


Подобные документы

  • Выбор и обоснование методов составления схемы алгоритма и разработки программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Алгоритм Горнера. Программа на языке Quick BASIC (с распечаткой листинга).

    курсовая работа [55,1 K], добавлен 21.11.2012

  • Понятие машинного и реального времени, дискретизация времени. Реализация временных задержек в программе. Вычисление значения многочлена методом Горнера. Разработка схем алгоритмов, основной программы и подпрограмм. Построение графика временной функции.

    курсовая работа [40,7 K], добавлен 18.04.2012

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

    курсовая работа [41,5 K], добавлен 15.03.2012

  • Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Выбор и обоснование методов расчета. Разработка основной программы. Блок-схемы алгоритмов. Распечатка листинга.

    курсовая работа [1,5 M], добавлен 21.11.2013

  • Программирование на алгоритмическом языке Turbo Pascal на примере разработки алгоритма и программы расчета временной функции. Выбор, обоснование методов решения. Схемы алгоритмов основной программы и подпрограмм. Распечатка исходных и вычисленных величин.

    реферат [154,8 K], добавлен 15.03.2012

  • Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Пример вычисления степенного ряда с помощью схемы Горнера. Описание переменных программы, листинг, процедуры и функции.

    курсовая работа [67,6 K], добавлен 20.11.2012

  • Создание программ в Borland C++ Builder 6.0. Разработка программы для построения графика временной функции, работающей, как в машинном, так и в реальном времени. Использование алгоритма Горнера для вычисления корня квадратного и нелинейного уравнений.

    контрольная работа [925,2 K], добавлен 05.01.2016

  • Выбор, обоснование и описание используемых алгоритмов и понятий машинной графики. Типы, структуры данных и функции, использованные при реализации программного комплекса. Тип и структура файла для хранения ландшафта. Связи между модулями программы.

    курсовая работа [2,8 M], добавлен 24.06.2009

  • Процесс моделирования работы САПР: описание моделирующей системы, разработка структурной схемы и Q-схемы, построение временной диаграммы, построение укрупненного моделирующего алгоритма. Описание математической модели, машинной программы решения задачи.

    курсовая работа [291,6 K], добавлен 03.07.2011

  • История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.

    курсовая работа [102,7 K], добавлен 23.12.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.