Построение графика временной функции
Программирование на алгоритмическом языке Turbo Pascal на примере разработки алгоритма и программы расчета временной функции. Выбор, обоснование методов решения. Схемы алгоритмов основной программы и подпрограмм. Распечатка исходных и вычисленных величин.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 15.03.2012 |
Размер файла | 154,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
БЕЛОРУССКАЯ ГОСУДАРСТВЕННАЯ ПОЛИТЕХНИЧЕСКАЯ
АКАДЕМИЯ
Кафедра "ТЭС"
Реферат
ПО ДИСЦИПЛИНЕ “Информатика”
Тема: “ Построение графика временной функции“
Выполнил: студент гр.106410
Мойсеня Е.
Руководитель: Кононенко З.И.
МИНСК 2011
Содержание
- Введение
- 1. Выбор и обоснование методов решения
- 1.1 Метод Ньютона
- 1.2 Схема Горнера
- 2. Разработка схем алгоритмов основной программы и подпрограмм
- 2.1 Таблица имён переменных
- 2.2 Схемы алгоритмов подпрограмм
- 2.3 Схема алгоритма основной программы
- 2.4 Компоновка программы пользователя и распечатка листинга программы
- 3. Результат расчета
- 3.1 Распечатка исходных величин
- 3.2 Распечатка вычисленных величин
- Список используемых источников
Введение
С началом глобальной компьютеризации появилась возможность упростить решение однотипных задач.
Интенсивное развитие технологических процессов тесно связано с применением электронной техники, и особенно цифровых вычислительных машин. Поэтому при обучении инженеров - теплоэнергетиков особое внимание должно уделяться компьютерной подготовке. Инженер должен уметь "общаться" с ЭВМ, работать на ней, знать основы программирования на алгоритмических языках, уметь использовать ЭВМ в своей будущей профессиональной деятельности.
В современном учебном процессе знание вычислительной техники и программирования также необходимы, поскольку ряд специальных дисциплин, учебных, курсовых и дипломных проектов выполняются на алгоритмических языках, одним из которых и является PASCAL.
PASCAL считается языком высокого уровня, на котором можно выполнять многочисленные операции.
Целью курсового проекта является закрепление навыков программирования на алгоритмическом языке TURBO PASCAL на примере разработки алгоритма и программы расчета временной функции.
1. Выбор и обоснование методов решения
1.1 Метод Ньютона
Метод Ньютона используется для решения нелинейных уравнений. Метод основан на последовательном приближении к корню уравнения при заданных начальных условиях: начальное приближение и точность вычисления. В методе Ньютона осуществляется экстраполяция с помощью касательной к кривой в данной точке. В основе метода лежит разложение функции по формуле Тейлора. Члены, содержащие h во второй и более высоких степенях, отбрасываются. Для нахождения корня используется соотношение xn+1 = xn + h. Предполагается, что переход от xn к xn+1 приближает значение функции к нулю.
h = - f (x) /f' (x)
тогда
xn+1 = xn - f (x) /f' (x)
Геометрически метод Ньютона эквивалентен замене небольшой дуги y=f (x) касательной, проведенной в некоторой точке кривой.
1.2 Схема Горнера
Существует много методов для решения полиномов на языке PASCAL. Один из этих методов - разложение полинома по схеме Горнера. Полином
f (x) = a0 + a1t + + a2t2+ a3t3+ a4t4+ … + antn
по схеме Горнера представляется в виде
f (x) = a0 + t (a1 + t (a2 +t (a3 +… + t (an-1 + t an) …)))
Данное разложение полинома удобно тем, что в нём отсутствует возведение в степень, что значительно ускоряет вычисление полинома.
2. Разработка схем алгоритмов основной программы и подпрограмм
2.1 Таблица имён переменных
Иден. |
Наименование |
|
I, j |
Счётчик |
|
x, w, p, g |
Коэффициенты временной функции |
|
Fi |
Угол для вычисления коэффициента w |
|
T |
Время |
|
t0, tkon, tkv |
Время: начальное, конечное, квантования |
|
syst |
Массив коэффициентов системы уравнений |
|
r1, r2 |
Корни системы |
|
x0 |
Начальное приближение |
|
eps |
Точность вычисления корня |
|
x, xpred |
Последующее и предыдущее приближение корня |
* Примечание.
В подпрограммах к идентификаторам данных переменных добавляется буква f.
алгоритм программа график функция
2.2 Схемы алгоритмов подпрограмм
Функция решения системы уравнений:
Решение нелинейного уравнения
Само решение нелинейного уравнения
Временная функция
2.3 Схема алгоритма основной программы
2.4 Компоновка программы пользователя и распечатка листинга программы
{программу подготовил студент группы 106410}
{Мойсеня Е. }
Program var_18 (moisenja);
uses crt;
type massiv = array [1.3,1.2] of real;
var
i: integer; {счётчик}
vyb: byte; {Для диалога}
syst: massiv; {для cсистемы уравнений}
g: real;
p, eps, x0: real; {для нелинейного уравнения}
x, w: real; {коэффициенты временной функции}
fi: byte; {угл для коэф-а v}
t, t0, tkon, tkv: real; {для функции}
j: byte; {для вывода таблицы (коорд x) }
{*************** решение системы ***************}
function sist (A: massiv): real;
var i,j: byte; {счётчики}
r1, r2: real; {решения системы}
begin
for j: = 1 to 2 do
for i: = 3 downto 1 do
A [i,j]: = A [i,j] /A [1,j];
for i: = 1 to 3 do A [i,2]: = A [i,1] - A [i,2];
r2: = A [3,2] /A [2,2];
r1: = (A [3,1] - r2*A [2,1]);
if abs (r1) >abs (r2) then sist: = r1 else sist: = r2;
end;
{**************************************************}
{** * решение нелинейного уравнения **************}
function nelin (fx0, feps: real): real;
var x, xpred: real;
function f (r: real): real; {Заданная функция}
begin
f: = exp (r) + ln (r) - 10*r;
end;
function fpr (r: real): real; {Её производная}
begin
fpr: = exp (r) - 10 + 1/r;
end;
begin
x: = fx0;
repeat
begin
xpred: =x;
x: = xpred - f (xpred) /fpr (xpred);
end;
until (f (x) < feps) and (abs (x-xpred) < feps);
nelin: = x;
end;
{*************************************************}
{************* функция **************************}
function ft (xf,wf,pf,gf,tf: real): real;
begin
ft: =abs (pf + gf + tf* (wf + tf*xf));
end;
{*************************************************}
BEGIN
{********** Решаем систему уравнений ************}
clrscr;
Writeln ('Решаем систему уравнений + a1z + b1v = d1 ');
Writeln (' + a2z + b2v = d2 ');
Writeln ('Введите коэффициенты a1, b1, d1, a2,. ');
for j: = 1 to 2 do
begin
for i: = 1 to 3 do
begin
gotoXY (25 + i*6, 4 + j);
read (syst [i,j]);
end;
end;
g: = sist (syst);
Writeln ('Наибольшее по модулю решение системы g= ',g: 4: 2);
Write ('Для продолжения любую клавишу'); readkey;
{ readln; }
{****** Решаем нелинейное уравнение ***************}
clrscr;
Writeln ('Решаем нелинейное уравнение e^ (x) +ln (x) - 10x=0 методом Ньютона ');
Write ('Вводим начальное значение x0 = '); readln (x0);
Write ('Вводим точность расчёта E = '); readln (eps);
p: = nelin (x0,eps);
Writeln ('Корень уравнения e^ (x) +ln (x) - 10x=0 x= ',p: 6: 4);
Write ('Для продолжения нажмите любую клавишу'); readkey;
{**** подготовка к выводу таблицы **************}
clrscr;
Writeln ('Сейчас происходит подготовка к выводу значений ');
Writeln ('временной функции xt^2 + wt + p + g, где ');
Writeln (' p - корень уранения e^ (x) +ln (x) - 10x=0 ');
Writeln (' m - больлший по модулю корень системы. ');
Writeln ('Ввод недостающих коэффициентов: ');
Write ('Введите x; x = '); readln (x);
Write ('w = tg (fi); введите fi (в градусах); fi = '); readln (fi);
w: = (sin (fi)) / (cos (fi));
Writeln ('');
Writeln ('Ввод параметров функции: ');
Write ('Введите начальное время t0; t0 = '); readln (t0);
Write ('Введите конечное время tkon; tkon = '); readln (tkon);
Write ('Введите время квантования tkv; tkv = '); readln (tkv);
Writeln ('');
Writeln ('В каком времени рассчитывать функцию? ');
Writeln (' 1 - если в машинном ');
Writeln (' 2 - если в реальном ');
readln (vyb);
Write ('Для вывода результатов всё готово. Нажмите любую клавишу'); readkey;
{****** в ы в о д р е з у л ь т а т о в *************}
clrscr;
j: =0;
gotoXY (1+j, 1);
Writeln ('+-----------------------------+ ');
gotoXY (1+j,
2);
Writeln ('¦ Значение t ¦ Значение f (t) ¦ ');
gotoXY (1+j,
3);
Writeln ('+------------+----------------¦ ');
t: = t0; i: =1;
while t <= tkon do
begin
gotoXY (1+j, i+3); write ('¦');
gotoXY (14+j, i+3); write ('¦');
gotoXY (31+j, i+3); write ('¦');
gotoXY (4+j, i+3);
writeln (t: 5: 3);
gotoXY (18+j, i+3);
writeln (ft (x,w,p,g,t): 6: 4);
if vyb = 2 then delay (trunc (tkv*58000));
if i > 19 then
begin
gotoXY (j+1, i+4);
Writeln ('+-----------------------------+ ');
i: = - 2;
j: = j+40;
end;
t: = t + tkv; i: = i + 1;
end;
gotoXY (j+1, i+3);
Writeln ('+-----------------------------+ ');
readkey;
END.
3. Результат расчета
3.1 Распечатка исходных величин
Начальное приближение корня нелинейного уравнения и заданная точность:
x0=3
e=10-3
Коэффициенты квадратного уравнения:
A1=4 A2 = 2
B1=1 B2 = 1
D1=5 D2 = 7
Время (начальное, конечное, квантования):
t0=0 c
tk=20 c
tkv=1 c
Коэффициенты временной функции:
X= 1
W= tg45o
3.2 Распечатка вычисленных величин
Значение t |
Значение f (t) |
|
0.000 1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000 11.000 12.000 13.000 14.000 15.000 16.000 17.000 18.000 19.000 20.000 |
12.5265 15.1463 19.7660 26.3858 35.0056 45.6254 58.2451 72.8649 89.4847 108.1045 128.7242 151.3440 175.9638 202.5836 231.2034 261.8231 294.4429 329.0627 365.6825 404.3022 444.9220 |
Список используемых источников
1. Дембовский Л.М. Основы диалоговых режимов работы. Уч. Пособие, БПИ
2. Вальвачев А.Н. Программирование на языке Паскаль. Справочное пособие. Минск: В. ш. 1989г.
3. Л.А. Тарасевич - Конспект
Размещено на Allbest.ru
Подобные документы
Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Выбор и обоснование методов расчета. Разработка основной программы. Блок-схемы алгоритмов. Распечатка листинга.
курсовая работа [1,5 M], добавлен 21.11.2013Общие сведения об алгоритмическом языке PASCAL. Схема алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Применение метода простой итерации, метода решения полинома на языке PASCAL.
курсовая работа [41,5 K], добавлен 15.03.2012Построение схемы алгоритма и программы для создания графика временной функции, работающей в машинном и реальном времени. Выбор методов решения и их обоснование. Значение коэффициентов и временной функции. Реализация временных задержек в программе.
курсовая работа [6,2 M], добавлен 09.03.2012Выбор и обоснование методов составления схемы алгоритма и разработки программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Алгоритм Горнера. Программа на языке Quick BASIC (с распечаткой листинга).
курсовая работа [55,1 K], добавлен 21.11.2012Понятие машинного и реального времени, дискретизация времени. Реализация временных задержек в программе. Вычисление значения многочлена методом Горнера. Разработка схем алгоритмов, основной программы и подпрограмм. Построение графика временной функции.
курсовая работа [40,7 K], добавлен 18.04.2012История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.
курсовая работа [102,7 K], добавлен 23.12.2011Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Пример вычисления степенного ряда с помощью схемы Горнера. Описание переменных программы, листинг, процедуры и функции.
курсовая работа [67,6 K], добавлен 20.11.2012Оценка погрешности и точности в математике. Составление программы и алгоритма для численного дифференцирования с заданной допустимой погрешностью на алгоритмическом языке Turbo Pascal 7.0. Составление алгоритма и программы аппроксимации функции.
курсовая работа [810,6 K], добавлен 24.03.2012Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.
курсовая работа [385,0 K], добавлен 17.09.2009Построение интерполяционного полинома Ньютона по значениям функции в узлах согласно методу Лагранжа. Составление алгоритмов решения задачи, их реализация на программном уровне на языке Turbo Pascal. Представление результатов работы программы Polinom.
курсовая работа [667,9 K], добавлен 01.10.2010