Временная функция
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра «ТЭС»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОЙ РАБОТЕ
ПО ДИСЦИПЛИНЕ “Информатика”
Тема: “ Временная функция“
Выполнила: студентка гр.106414 Микулич Т.В.
Руководитель: доцент Тарасевич Л. А.
Минск 2005.
Содержание:
Введение
1. Постановка задачи
2. Выбор и обоснование методов решения
2.1 Метод деления отрезка пополам
2.2 Метод Ньютона
2.3 Метод простой итерации
2.4 Схема Горнера
2.5 Метод Гаусса
3.Таблица идентификаторов
4.Схемы алгоритмов
4.1 Схема алгоритма метода бисекции 10
4.2. Схема алгоритма метода Ньютона 11
4.3 Схема алгоритма
метода простой итерации
4.3 Схема Горнера
4.4 Схема метода Гаусса
4.5 Схема основной программы
5. Текст программы
6. Результаты расчета
6.1Исходные величины
6.2 Вычисленные величины 23
Список использованной литературы 25
Введение.
Алгоритмический язык “Паскаль “ был разработан профессором ВТУ в Цюрихе Н. Виртом. Свой алгоритмический язык он назвал в честь французского ученого Блэза Паскаля.
Язык Паскаль получил широкое распространение во всем мире благодаря простоте и доступности широкому кругу людей, работающих в различных отраслях народного хозяйства.
Успеху языка способствовало и то, что по своей идеологии Паскаль наиболее близок к современной теории и технологии программирования, так как довольно полно отражает идеи структурного программирования. Кроме того, он приспособлен для применения общепризнанной в настоящее время технологии разработки программ методом пошаговой детализации (нисходящего программирования). И, наконец, язык предоставляет гибкие возможности в отношении используемых структур данных.
Язык Паскаль позволяет создавать не только несложные программы, но и структурированные программы трудоемких и сложных вычислений предоставляя возможности работы, как с числовой, так и символьной информацией.
Язык Паскаль постоянно
совершенствовался. Для персональных
компьютеров появились
1. Постановка задачи.
Составить схему алгоритма и программу для построения графика временной функции, работающую как в машинном, так и в реальном времени. Реальное время в диапазоне (t0-tкон) формируется таймером в виде программного модуля с метками Тк, называемыми временем квантования. При вычислении функции использовать алгоритм Горнера.
Функция: y=│ │
где t0=0 с, tкон=10 с, Тк=0.5
с;
p – корень нелинейного уравнения , которое надо решить методом Ньютона с точностью , при начальном значении корня, лежащего в диапазоне [0;2]; c-наибольший по абсолютному значению корень системы уравнений
a1 z + b1 p = d1
a2 z + b2 p = d2 ,
где а1=3; b1=2; d1=2;
a2=3; b2=3; d2=3.
Коэффициенты:
a=1,2
b=| d-a |
2. Выбор и обоснование методов решения.
2.1 Метод деления отрезка пополам.
Метод деления отрезка пополам используется для решения нелинейных уравнений. Предполагаем, что функция f(x) непрерывна и ограничена в заданном интервале [a; b], также предполагается, что значение функции на концах интервала f(a) и f(b) имеют разные знаки, то есть f(a)*f(b)<0. Осуществляется метод следующим образом:
- проверяем условие f(a)*f(b)<0;
- делим отрезок [a,b] пополам: c=(a+b)/2;
- вычисляем f(a)*f(c) и если это значение меньше нуля, то рассматриваем промежуток [a; c], иначе - [c;b];
- Деление отрезка выполняем до тех пор, пока не выполняется следующее условие:
ïa – bï <= ε, где ε – заданная точность. Любая точка из отрезка [a; b] будет подходить в качестве решения.
2.2 Метод Ньютона.
В данном методе осуществляется
экстраполяция с помощью
Xn+1=f(Xn)/f’(Xn)
X1=f(X0)/f’(X0)
X2=f(X1)/f’(X1)
………………..
Xn+1=f(Xn)/f’(Xn)
Счёт заканчивается, когда |xn+1 - xn|<eps или |f(xn+1)|<eps.
2.3 Метод простой итерации.
Суть метода простой итерации состоит в том, что уравнение y=f(x) заменяется на выражение x=φ(x). Условие, при котором данный процесс сходится, определяется теоремой: если интервал (a;b) является интервалом изоляции корня уравнения x=φ(x) и во всех точках данного интервала выполняется условие |φ’(x)|<1, то процесс нахождения корня данным методом будет сходящимся.
Алгоритм нахождения корня:
x1= φ(x0);
x2= φ(x1);
xn= φ(xn-1);
Счёт заканчивается, когда |xn+1 - xn|<eps или |f(xn+1)|<eps.
2.4 Схема Горнера.
Существуют различные методы решения полиномов на языке PASCAL. Один из них – разложение полинома по схеме Горнера.
Полином:
y = a0 + a1t + a2t2+ a3t3+ a4t4+ … + antn
по схеме Горнера представляется в виде
y = a0 + t(a1 + t(a2 +t(a3 +… + t(an-1 + t an)…)))
Данное разложение полинома удобно тем, что в нём отсутствует возведение в степень, что значительно ускоряет вычисление полинома.
2.5 Метод Гаусса.
За основу метода принята идея последовательного исключения неизвестных и приведение СЛАУ к треугольному виду.
Дана СЛАУ :
a11 x1 + a12 x2 +…+ a1n xn = b1
a21 x1 + a22 x2 +…+ a2n xn = b2
…
an1 x1 + an2 x2 +…+ ann xn = bn
Алгоритм решения СЛАУ.
Предположим n=3-число уравнений.
a11 x1 + a12 x2 +…+ a13 x3 = b1 (1)
a21 x1 + a22 x2 +…+ a23 x3 = b2 (2)
a31 x1 + a32 x2 +…+ a33 x3 = b3 (3)
1) Если a11 <>0 (т. е. система не является вырожденной) делим первое уравнение на a11.
- Исключим из уравнения (2) x1. Для этого умножим уравнение (1) на коэффициент a21 и вычтем из уравнения (1) уравнение (2).
- Исключим из уравнения (3) x1. Для этого умножим уравнение (1) на коэффициент a31 и вычтем из уравнения (1) уравнение (3).Получили СЛАУ:
x1 + a12* x2 + a13* x3 = b1* (1)
0 + a22* x2 + a23* x3 = b2* (2)
0 + a32* x2 + a33* x3 = b3* (3)
4)Разделим второе уравнение на a22*.
5) Исключим из уравнения (3) x2. Для этого умножим уравнение (2) на коэффициент a32* и вычтем из уравнения (2) уравнение (3). Получили СЛАУ:
x1 + a12* x2 + a13* x3 = b1*
0 + x2 + a23** x3 = b2**
0 + 0 + a33** x3 = b3**
Таким образом, исходная СЛАУ приведена к эквивалентной системе треугольного вида. Преобразование исходной СЛАУ к треугольному виду называется прямым ходом. Процедура нахождения неизвестных из полученной треугольной СЛАУ осуществляется обратным ходом.
3. Таблица идентификаторов.
Иден. |
Наименование |
x0,x1 |
Корни нелинейного уравнения |
i, j |
Счётчики |
p,x, g,w |
Коэффициенты временной функции |
t |
Время |
to |
Начальное время |
tk |
Конечное время |
fynkcia |
Значение функции |
с |
Середина отрезка |
a, b |
Параметры для решения нелинейного уравнения |
eps |
Точность вычисления корня |
4.Схемы алгоритмов
| |
| |
| |
| |
| |
| |
5.Текст программы.
program grafik;
uses crt;
var
d:array [1..3,1..3] of real;
e:array [1..3] of real;
x,k,f,I,J,t:integer;
fynkcia,c,v,z,p,eps,x0,x1,a,b,
procedure timer(tk:real);
begin
delay(round(tk*20000));
end;
begin
textbackground(1);
clrscr;
X:=11;
WHILE (K<>27)AND(K<>13) DO BEGIN
textcolor (1);
if k=72 then x:=x-5;
if k=80 then x:=x+5;
if x=6 then x:=11;
if x=26 then x:=21;
clrscr;
textcolor(2);
gotoxy(30,5);
write('VYBERITE METOD RESHENIA YRAVNENIA');
textcolor(5);
gotoxy(30,10);
write('METOD ITERACII');
gotoxy(30,15);
write('METOD NEWTONA');
gotoxy(30,20);
write('METOD DELENIA OTREZKA POPOLAM');
textcolor(5);
gotoxy(30,x);
write('───────────────────────
gotoxy(30,x-3);
write('───────────────────────
gotoxy(29,x-3);
write('┌');
gotoxy(29,x-2);
write('│');
gotoxy(29,x-1);
write('│');
gotoxy(29,x);
write('└');
gotoxy(60,x-3);
write('┐');
gotoxy(60,x-2);
write('│');
gotoxy(60,x-1);
write('│');
gotoxy(60,x);
write('┘');
textcolor(1);
write(' ');
k:=ord(readkey);
END;
textcolor(10);
textbackground(1);
clrscr;
textcolor(9);
if x=11 then begin
gotoxy(20,5);
writeln('VVEDITE TOCHNOST');
gotoxy(10,6);write('eps=');
readln(eps);
gotoxy(10,8); writeln('VVEDITE NACHAlNOE PRIBLIGENIE');
gotoxy(10,10);write('a=');
read(a);
while f<>20 do
if abs(-0.75*a*a)<1 then begin x1:=a;f:=20; end
else
begin
writeln('VVEDITE DRYGIE ZNACHENIA');
readln(a);
end;
repeat
x0:=x1;
x1:=1.2502-0.25*x1*x1*x1
until abs(x0-x1)<=eps;
clrscr;
window(10,15,50,20);
textbackground(5);
clrscr;
window(15,16,45,19);
writeln('KOREN YRAVNENIA');
write('p=');
writeln(x1:(round(abs(ln(eps)/
readkey;
p:=x1;
end;
if x=16 then begin
gotoxy(20,5);
writeln('VVEDITE TOCHNOST');
gotoxy(10,6);write('eps=');
read(eps);
writeln('VVEDITE NACHAlNOE PRIBLIGENIE');
read(a);
while f<>20 do
if (0.25*a*a*a+a-1.2502)*1.5*a>0 then begin x1:=a;f:=20; end
else
begin
writeln('VVEDITE DRYGIE ZNACHENIA');
readln(a);
end;
while abs(x0-x1)>eps do
begin
x0:=x1;
x1:=x1-(0.25*x1*x1*x1+x1-1.
end;
clrscr;
window(10,15,50,20);
textbackground(5);
clrscr;
window(15,16,45,19);
writeln('KOREN YRAVNENIA');
write('p=');
writeln(x1:(round(abs(ln(eps)/
readkey;
p:=x1;
end;
if x=21 then begin
gotoxy(20,5);
writeln('VVEDITE TOCHNOST');
gotoxy(10,6);write('eps=');
read(eps);
f:=0;
while f<>20 do begin
writeln('VVEDITE NACHALO OTREZKA');
read(a);
writeln('VVEDITE KONEC OTREZKA');
read(b);
if (0.25*a*a*a+a-1.2502)*(0.25*b*
else write('VVEDITE DRYGIE ZNACHENIA');
end;
while abs(a-b)>eps do begin
c:=(a+b)/2;
if (0.25*c*c*c+c-1.2502)>0 then b:=c;
if (0.25*c*c*c+c-1.2502)<0 then a:=c;
if (0.25*c*c*c+c-1.2502)=0 then begin a:=c;b:=c;end;
end;
writeln('KOREN YRAVNENIA');
write('p=');
writeln(c:(round(abs(ln(eps)/
readkey;
p:=c;
end;
clrscr;
window(2,2,79,24);
clrscr;
writeln('VVEDITE KOEFICIENTY SISTEMY YRAVNENIY');
for i:=1 to 2 do
for j:=1 to 3 do BEGIN
IF J=1 THEN WRITE('A',I,'=');
IF J=2 THEN WRITE('B',I,'=');
IF J=3 THEN WRITE('D',I,'=');
READLN(d[I,J]); end;
for k:=1 to 2 do begin
z:=d[k,k];
for j:= k to 3 do
d[k,j]:=d[k,j]/z;
for i:=(1 +k) to 2 do begin
q:=d[i,k];
for j:=k to 3 do
d[i,j]:=d[i,j]-d[k,j]*q;
end;end;
v:=d[2,3]/d[2,2];
z:=(d[1,3]-d[1,2]*v)/d[1,1];
if abs(v)>abs(z) then g:=v
else g:=z;
writeln('NAIBOLSHYI PO ABSOLYTNOMY ZNACHENIY KOREN: ',v);
readkey;
window(2,2,79,49);
clrscr;
X:=16;
WHILE (K<>27)AND(K<>13) DO BEGIN
if k=72 then x:=x-5;
if k=80 then x:=x+5;
if x=11 then x:=16;
if x=26 then x:=21;
clrscr;
textcolor(2);
gotoxy(30,5);
write('VYBERITE VREMA POSTROENIA GRAFIKA ');
textcolor(2);
gotoxy(30,15);
write('REALNOE VREMA');
gotoxy(30,20);
write('MASHINNOE VREMA');
textcolor(2);
gotoxy(30,x);
write('───────────────────────
gotoxy(30,x-3);
write('───────────────────────
gotoxy(29,x-3);
write('┌');
gotoxy(29,x-2);
write('│');
gotoxy(29,x-1);
write('│');
gotoxy(29,x);
write('└');
gotoxy(60,x-3);
write('┐');
gotoxy(60,x-2);
write('│');
gotoxy(60,x-1);
write('│');
gotoxy(60,x);
write('┘');
textcolor(1);
write(' ');
k:=ord(readkey);
END;
textbackground(3);
clrscr;
window(2,2,79,40);
clrscr;
textcolor(10);
e[1]:=1.2;
e[2]:=abs(p-e[1]);
e[3]:=v+p;
writeln('┌────────────────────
writeln('│ t │ fynkcia │');
writeln(' ──────────────────────────────
for t:=0 to 20 do begin
if x=16 then timer(0.5);
fynkcia:=0;
for i:=1 to 3 do
begin
fynkcia:=fynkcia*(t/2)+e[i];
end;
fynkcia:=abs(fynkcia);
writeln('│', (t/2):5:1,' │',abs(fynkcia):18:3,' │');
end;
writeln('└────────────────────
readkey;
end.
6. Результат расчета.
6.1 Исходные величины.
Заданная точность: ε=10-3
Коэффициенты системы уравнений:
а1=3; b1=2; d1= 2;
а2= 3; b2=3; d2= 3;
Время (начальное, конечное, квантования):
T0=0
Tk=10
Tkv=0,5
Коэффициенты временной функции:
a=1,2; b= |d-a|;
6.2 Вычисленные величины.
t |
funkcia |
0 |
2 |
0,5 |
2,4 |
1 |
3,4 |
1,5 |
5 |
2 |
7,2 |
2,5 |
10 |
3 |
13,4 |
3,5 |
17,499 |
4 |
22 |
4,5 |
27,2 |
5 |
33 |
5,5 |
39,399 |
6 |
46,399 |
6,5 |
53,999 |
7 |
62,199 |
7,5 |
70,999 |
8 |
80,399 |
8,5 |
90,398 |
9 |
100,998 |
9,5 |
112,198 |
10 |
123,998 |
Наибольший по абсолютному значению корень системы уравнений с= 1
Корень уравнения d=1,000.
График временной функции .
Список использованной литературы.
- С.А. Немнюгин. TURBOPASCAL учебник.

- Временное хранение
- Временное хранение. Особенности назначения и порядок использования для таможенных целей
- Временное хранение товаров
- Временное хранение товаров
- Временное хранение товаров
- Временное хранение товаров
- Временное хранение товаров
- Временная организация производства при строительстве скважин
- Временная организация производства при строительстве скважин
- Временная организация производства при строительстве скважин
- Временная перспектива будущего в раннем юношеском возрасте
- Временная перспектива в подростковом возрасте
- Временная приостановка всех процессуальных действий в гражданском процессе
- Временная стоимость денег