
- •Содержание Введение………………………………………….......................2
- •1. Выбор и обоснование методов решения…….......6
- •Белорусский национальный технический университет
- •Вариант № 4
- •1. Выбор и обоснование методов решения
- •1.1 Понятие машинного и реального времени
- •1.2 Дискретизация времени
- •1.3 Реализация временных задержек в программе
- •1.4 Метод простой итерации
- •1.5 Вычисление значения многочлена методом Горнера
- •1.6 Решение квадратного уравнения
- •1.7 Построение графика
- •2. Схемы алгоритмов подпрограмм
- •2.1 Схема алгоритма подпрограммы функции Горнера
- •2.2 Схема алгоритма подпрограммы вывода результатов
- •2.3 Схема алгоритма подпрограммы реализации временной задержки
- •2.4 Схема алгоритма подпрограммы вычисления нелинейной функции методом просто итерации
- •2.5 Схема алгоритма подпрограммы вычисления наибольшего корня квадратного уравнения
- •2.6 Схема алгоритма основной программы
- •3. Построение графика временной функции
- •Вывод результатов расчета
1. Выбор и обоснование методов решения
1.1 Понятие машинного и реального времени
Реализацию любой программы можно проводить по двум путям: либо в темпе быстродействия ЭВМ (с учётом быстродействия языка программирования), либо в реальном масштабе времени. При этом время задержки напрямую зависит от частоты процессора, и эта программа может наиболее объективно использоваться на той ЭВМ, для которой она была написана. Машинное время является относительным, т.к. зависит от быстродействия ЭВМ, от используемого языка, от сложности алгоритма и т.д.
Моделирование в реальном времени дает возможность оценивать эффективность алгоритмов для работы в реальных системах.
1.2 Дискретизация времени
При исследовании блоков и систем во временной области на ЭВМ, в частности микроЭВМ, непрерывные процессы заменяются на дискретные. При этом временной интервал L представляется как совокупность дискретных интервалов:
,
где Tk – шаг приращения времени или период квантования по времени непрерывной функции; n – количество шагов или квантов. Количество квантов выбирается не произвольно, а исходя из максимальной частоты процесса и допустимой погрешности при моделировании.
1.3 Реализация временных задержек в программе
Можно выделить два основных способа реализации временных задержек в программе. Первый – самый простой – состоит в том, чтобы прямо указать программе, сделать паузу (например, оператором SLEEP (n) – приостанавливает работу программы на n секунд или до нажатия любой клавиши; если n=0 или не указано, произойдет остановка программы до нажатия любой клавиши). Второй способ – реализация таймера. Таймер задает метки времени n и может работать либо в реальном времени, либо в темпе компьютера.
1.4 Метод простой итерации
Нелинейные уравнения не имеют точного решения. Для нахождения корня нелинейного уравнения используем метод простых итераций.
Этот
метод основан на основе попадания в
-окрестность
модуля разности двух последовательно
приближенно вычисленных корней
и
.
Подробнее см. листинг программы. В этом
случае нелинейное уравнение считают
решенным с заданной степенью точности.
1.5 Вычисление значения многочлена методом Горнера
Вычисление значения многочлена с фиксированной старшей степенью аргумента может быть организовано с помощью функции пользователя. Но этот способ нецелесообразен в случаях, когда многочлен имеет много слагаемых или старшая степень не является фиксированной. Следовательно, можно воспользоваться алгоритмом Горнера. Алгоритм Горнера представляет собой рекуррентную формулу для вычисления значений полиномов любой степени.
Идея Горнера состоит в следующем:
Общий вид полинома:
Y = anxn + an-1xn-1 + …. + a1x +a0
Y = ( a1x +a2 )*x+a3)*x+a4)*x+…)*x + an+1
Отсюда следует алгоритм:
Y1=a1
Y2=a1 * X+a2
Y3=y2 * X+a3
и т.д.
Для вычисления используется формула:
Y=y*x + A(i)
1.6 Решение квадратного уравнения
Решение квадратного уравнения вида
происходит по формулам:
,
.
Если
D
0,
то
.
Если
D<0,
то
.
Это означает, что дискриминант можно не находить при вычислении суммы корней квадратного уравнения, т.е.
.