Автор работы: Пользователь скрыл имя, 22 Апреля 2013 в 09:47, курсовая работа
Алгоритмический язык “Паскаль “ был разработан профессором ВТУ в Цюрихе Н. Виртом. Свой алгоритмический язык он назвал в честь французского ученого Блэза Паскаля.
Язык Паскаль получил широкое распространение во всем мире благодаря простоте и доступности широкому кругу людей, работающих в различных отраслях народного хозяйства.
Введение 3
1. Постановка задачи 4
2. Выбор и обоснование методов решения
2.1 Метод деления отрезка пополам 5
2.2 Метод Ньютона 5
2.3 Метод простой итерации 6
2.4 Схема Горнера 7
2.5 Метод Гаусса 7
3.Таблица идентификаторов 9
4.Схемы алгоритмов
4.1 Схема алгоритма метода бисекции 10
4.2. Схема алгоритма метода Ньютона 11
4.3 Схема алгоритма метода простой итерации 12
4.3 Схема Горнера 13
4.4 Схема метода Гаусса 14
4.5 Схема основной программы 15
5. Текст программы 16
6. Результаты расчета
6.1Исходные величины 23
6.2 Вычисленные величины 23
Список использованной литературы
| |
| |
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.
График временной функции .
Список использованной литературы.