Загрузил Елена Сергеева

Курс раб инф

реклама
КУРСОВАЯ
РАБОТА
по курсу «Информатика»
«Приближенное вычисление значений определенного интеграла»
Вариант № 19
Выполнил: ст-т гр. __________
Проверил:
__________
Оценки работы:
Выполнение (оформление) записки и чертежей _________ балл
Оценка рецензента
_________ балл
Оценка доклада
_________ балл
Ответы на вопросы
_________ балл
Итого
__________ баллов
Т У Л А 2017
Задание на курсовую работу
Составить блок-схему алгоритма и написать программу на языке Паскаль,
позволяющую вычислить значение определенного интеграла от функции f(x)=
19.80*exp(0.127/X) на отрезке [0.439, 1.440] с абсолютной погрешностью
eps=0.0049, используя известные численные методы - метод левых прямоугольников, трапеции, Симпсона, Чебышева в соответствии с индивидуальным заданием.
Программу, выполненную по модульному принципу, которая должна включать основной модуль и следующие обязательные функции и подпрограммы:
- п/п описания вида функции;
- п/п вывода графика функции;
- п/п вычисления интеграла методом правых прямоугольников;
- п/п вычисления интеграла методом трапеции;
- п/п вычисления интеграла методом «трех восьмых»;
- п/п вычисления интеграла методом Чебышева
В работе программы предусмотреть ввод границ интервала интегрирования
и значения погрешности с клавиатуры. В начале работы программы на экран
дисплея должен выводиться график функции с оцифровкой осей и иллюстрацией
одного из указанных методов интегрирования.
После вывода графика функции на экран необходимо задать с клавиатуры
начальное значение количества разбиений n, после чего программа должна продолжить работу.
Результаты расчета вывести на экран дисплея и в дисковый файл в виде:
КУРСОВАЯ РАБОТА
ПО КУРСУ ИНФОРМАТИКА
"ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ
ОПРЕДЕЛЕННОГО ИНТЕГРАЛА"
Выполнил: студент гр. 320671
Сергеева Е.В.
Вариант 10
y=19.80*exp(0.127/X)
Xn=0.439 Xk=1.440 Eps=0.001
РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЙ
Число
разбиений
ХХ
Метод вычисления
Левых прямоугольников
ХХХХХ
Точность
Трапеции Симпсона Чебышева вычисления
ХХХХХ
ХХХХХ
ХХХХХ
ХХХХХХ
*** Требуемая точность достигнута при ХХХ разбиениях ***
2
СОДЕРЖАНИЕ
1 Цель и задачи выполнения курсовой работы ............................................................ 4
2 Описание численных методов решения задачи ........................................................ 5
2.1 Метод левых прямоугольников ............................................................................ 5
2.2 Метод трапеции ...................................................................................................... 5
2.3 Метод Симпсона ..................................................................................................... 6
2.4 Метод Чебышева .................................................................................................... 7
3 Блок-схема основной программы ............................................................................... 9
3.1 БЛОК СХЕМА ОСНОВНОЙ ПРОГРАММЫ ..................................................... 9
3.3 Блок-схема метода трапеций ............................................................................... 11
3.4 Блок-схема метода Симпсона ............................................................................. 11
4 Текст программы на языке Паскаль ......................................................................... 13
5 Результаты работы программы, полученные в ходе выполнения программы в
виде графика .................................................................................................................. 18
6 Результаты работы программы, полученные в ходе выполнения программы в
виде таблицы .................................................................................................................. 19
Список литературы ....................................................................................................... 22
3
1 Цель и задачи выполнения курсовой работы
Курсовая работа, выполняемая студентами, является завершающим этапом изучения дисциплины " Информатика".
Курсовая работа является одной из важнейших форм учебной работы. Она имеет целью
привить навыки самостоятельной работы, выявить знания студентов по данной дисциплине и
умение применять эти знания в практической работе по выбранной ими специальности.
В процессе выполнения курсовой работы студент должен проявить способность к самостоятельной работе с учебной и научно-технической литературой, умение обобщать полученные знания, делать обоснованные выводы, формулировать рекомендации по выбору технических и программных средств для конкретной работы, продемонстрировать навыки владения ПК
и пакетами прикладных программ (ППП).
В ходе выполнения курсовой работы должны быть изучены и проанализированы вопросы,
связанные с различными аспектами использования компьютерной техники для решения инженерных задач.
Выполнение курсовой работы предусматривает следующие задачи:
1. Закрепление и самостоятельное использование на практике знаний в области программирования на алгоритмическом языке "Паскаль" и применение численных методов при решении инженерно-технических задач.
2. Умение отлаживать составленную программу, применяя функциональные возможности различных ЭВМ.
3. Приобретение студентами навыков использования материалов стандартов единой системы
программной документации по разработке алгоритма и программы курсовой работы.
4. Умение работать в офисных приложениях Word, Excel.
4
2 Описание численных методов решения задачи
2.1 Метод левых прямоугольников
Метод прямоугольников — метод численного интегрирования функции одной переменной, заключающийся в замене подынтегральной функции на многочлен нулевой степени, то
есть константу, на каждом элементарном отрезке. Если рассмотреть график подынтегральной
функции, то метод будет заключаться в приближённом вычислении площади под графиком
суммированием площадей конечного числа прямоугольников, ширина которых будет определяться расстоянием между соответствующими соседними узлами интегрирования, а высота —
значением подынтегральной функции в этих узлах. Алгебраический порядок точности равен 0.
(Для формулы средних прямоугольников равен 1).
Если отрезок
является элементарным и не подвергается дальнейшему разбиению,
значение интеграла можно найти по формуле средних прямоугольников:
Для формулы средних прямоугольников погрешность вычисляется по формуле:
Формула левых прямоугольников:
Рис. 1. Метод левых прямоугольников
2.2 Метод трапеции
Отрезок интегрирования разбивается на несколько промежуточных отрезков, и график
подынтегральной функции приближается ломаной линией:
5
Рис. 2. Метод трапеции
Таким образом, наша площадь (синяя штриховка) приближается суммой площадей
трапеций (красный цвет). Отсюда и название метода. Легко заметить, что метод трапеций
даёт значительно лучшее приближение, чем метод прямоугольников (при одинаковом количестве отрезков разбиения). И, естественно, чем больше более мелких промежуточных отрезков мы рассмотрим, тем будет выше точность.
формула
трапеций:
,
–
длина
каждого
из
где:
маленьких
отрезков
– значения подынтегральной функции в точках
Таким
образом,
общая
формула
трапеций
сокращается
или шаг;
.
до
приятных
размеров:
2.3 Метод Симпсона
Это наиболее широко известный и применяемый метод численного интегрирования. Метод аналогичен рассмотренным ранее методам прямоугольников и трапеций: интервал интегрирования разбивается на множество более мелких отрезков; однако для вычисления площади под
каждым из отрезков через три последовательных ординаты разбиения проводится квадратичная
парабола
6
Рис. 3. Метод Симпсона
Формулу Симпсона выведем, проводя параболу через три ординаты на концах двух соседних интервалов и складывая получившиеся при этом площади.
.
Действительно, определяя y0, y1, y2:
имеем
,
т.е.
(2.1)
окончательно:
или
(2.2)
Последняя формула (2.2) называется формулой Симпсона.
2.4 Метод Чебышева
П.Л. Чебышев предложил формулу:
7
в которой коэффициенты n фиксированы, а хn подлежат определению.
Рис.2.4 Метод Чебышева.
Пользуясь алгебраическими свойствами симметричных многочленов, опустив преобразования, ограничимся готовыми результатами.
В таблице 1 приведены значения узлов квадратурной формулы Чебышева для значений n = 5.
Таблица 1 - Коэффициенты Чебышева
Число
разбиений
5
Номер узла
Значение коэффициента
1
0.083751
2
0.312730
3
0.5
4
0.687270
5
0.916249
8
3 Блок-схема основной программы
3.1 Блок-схема основной программы
начало
начало
a,b,eps
a,b,eps
graphic
n=n+100
0
Trp(S2)
n=4,S1S
=0
Pr(S1)
Pr(S1)
SIM(S3)
Trp(S2)
graphic
n
Ch(S4)
n
шапка
P=|S1-S1S|
шапка
na,b,eps
начало
начало
S2, S3, S4, P
n=шапка
S1S=S1
начало
n
=0
graphic
n+1000
P>eps
нет
да
n
конец
Рисунок 5. Блок-схема основной программы
9
3.2 Блок-схема метода прямоугольников
начало
h
ba
n
S=0
i= 1, n
конец
x=a
S = S+f(x)*h
Рисунок 6 - Блок-схема методов прямоугольников
10
3.3 Блок-схема метода трапеций
начало
h
ba
n
S = f(a)+f(b)
i= 1, n-1, 1
ss
h
2
конец
x=a+h*i
S = S +2f(x)
Рисунок 7 - Блок схема метода трапеции
11
3.4 Блок-схема метода Симпсона
начало
H=(b-a)/n
S=0
L=0, n-1
S=S*h/6
U=a+h*l
S=S+f(u)+f(u+h)
конец
S=S+4*f(x+h/2)
Рисунок 8 - Блок схема, метода Симпсона
12
3.5 Блок-схема метода Чебышева
начало
h
ba
n
S=0
i=0,n-1,1
S S
h
5
конец
x=a+h*i
S=f(x+hk1)
S=f(x+hk2)
S=f(x+hk3)
S=f(x+hk4)
S=f(x+hk5)
Рисунок 8 - Блок схема метода Чебышева
13
4 Текст программы на языке Паскаль
Program Kurs;
uses crt, graph;
var i,n:longint;
ebs1,dx,xi,sum:real;
a,b,eps,r,s,h:real;
m0,m1,m2,m3,m4:real;
lf:text;
function f(x:real):real;
begin
f:=19.80*exp(0.127/X);
end;
procedure graphic(xn,xk:real);
var x,y,mx,my,dx,dy,
ymin,ymax,xh:real;
xb,yb,xm,ym,xl,yv,xp,yn,bord1,bord2,bord3,bord4,xt,yt,xt1,yt1,dxp,dyp,nd,nr,i,kx,ky,k:integer;
st:string;
begin
n:=20;
k:=100;
xh:=(xk-xn)/100;
ymin:=f(xn);
ymax:=ymin;;
dx:=(xk-xn)/100;
for i:=1 to 100 do begin
x:=xn+dx*i;
y:=f(x);
if y>ymax then ymax:=y;
if y<ymin then ymin:=y;
end;
nd:=detect;
initgraph(nd,nr,' ');
bord1:=60;
kx:=20;
bord2:=30;
ky:=20;
bord3:=30;
bord4:=80;
xb:=0;
yb:=0;
xm:=getmaxx;
ym:=getmaxy;
xl:=xb+bord1;
xp:=xm-bord2;
yv:=yb+bord3;
yn:=ym-bord4;
dxp:=(xp-xl) div kx;
dyp:=(yn-yv) div ky;
dx:=(xk-xn)/kx;
dy:=(ymax-ymin)/ky;
xl:=xp-dxp*kx;
yn:=yv+dyp*ky;
14
mx:=(xp-xl)/(xk-xn);
my:=(yn-yv)/(ymax-ymin);
setfillstyle (1,15);
bar(xb,yb,xm,ym);
setcolor(0);
setlinestyle (0,0,1);
bar(xl,yv,xp,yn);
rectangle(xl,yv,xp,yn);
settextjustify(0,2);
settextstyle(2,1,4);
setcolor(4);
for i:=0 to kx do begin
xt:=xl+dxp*i;
str(xn+dx*i:6:3,st);
line(xt,yn-3,xt,yn+3);
outtextxy(xt+4,yn+8,st);
end;
settextstyle(0,0,1);
for i:=0 to ky do begin
yt:=yv+dyp*i;
str(ymax-dy*i:6:3,st);
line(xl-3,yt,xl+3,yt);
outtextxy(xl-56,yt-4,st);
end;
outtextxy(xl+100,bord3 div 2, 'у=19.80*exp(0.127/X) ');
setcolor(12);
if xn*xk<0 then begin
xt:=xl-trunc(xn*mx);
line(xt,yv,xt,yn);
end;
if ymax*ymin<0 then begin
yt:=yv+trunc(ymax*my);
line(xl,yt,xp,yt);
end;
xh:=(xk-xn)/n;
for i:=0 to n do begin
setcolor(3);
x:=xn+xh*i;
y:=f(x);
xt:=xl+trunc((x-xn)*mx);
yt:=yv+trunc((ymax-y)*my);
circle(xt,yt,2);
if i>0 then
line (xt,yt,xt1,yt1);
setcolor(6);
rectangle(xt1,yt,xt,yn);
xt1:=xt;
yt1:=yt;
end;
readkey;
closegraph;
end;
procedure pr(var s:real);
var x:real;
15
begin
s:=0;
h:=(b-a)/n;
for i:=0 to n-1 do
begin
x:=a+i*h;
s:=s+f(x);
end;
s:=s*h;
end;
procedure ch(var s:real);
var x:real;
begin
s:=0;
h:=(b-a)/n;
for i:=0 to n-1 do
begin
x:=a+h*i;
s:=s+f(x+h*0.083751)+f(x+h*0.312730)+f(x+h*0.5)+
f(x+h*0.687270)+f(x+h*0.916249);
end;
s:=s*h/5;
end;
procedure trp(var s:real);
begin
h:=(b-a)/n;
s:=f(a)+f(b);
for i:=1 to n-1 do
s:=s+2*f(a+h*i);
s:=s*h/2;
end;
procedure Simp(var s:real);
begin
h:=(b-a)/n;
for i:=0 to n do
begin
s:=s+f(a+h*i);
s:=s+4*f(a+h*i+h/2);
s:=s+f(a+h*(i+1));
end;
s:=s*h/6;
end;
begin
write('Введите значение левого предела: '); readln(a);
write('Введите значение правого предела '); readln(b);
write('Введите значение погрешности '); readln(eps);
graphic(a,b);
write('Введите начальное количество разбиений '); readln(n);
writeln;
assign(lf,'Vivod.txt');
rewrite(lf);
m0:=0;
writeln(lf,'
Курсовая работа');
16
writeln(lf,'
По курсу информатики');
writeln(lf,' Приобритенное вычисление значения определенного интеграла ');
writeln(lf,'
Выполнила: студентка гр. 320671 ');
writeln(lf,'
Вариант 19 у=19.80 *exp(0.127/X)Сергеева Е.В.');
writeln(lf,'
Xn=',a:5:3,' Xk=',b:5:3,' Eps=',eps:5:3);
writeln(lf);
writeln(lf,'
Результат вычислений');
writeln(lf,' +-------------+------------------------------------------------+-------------+');
writeln(lf,' |
|
Метод вычисления
|
|');
writeln(lf,' | Число
+------------------------------+-------------------------------+ Точность |');
writeln(lf,' |
|
|
|
|
|
|');
writeln(lf,' | разбиений |Прямоуго- | Трапеция | Симпсона |Чебышева | Вычисления |');
writeln(lf,' |
| льники |
|
|
|
|');
writeln(lf,' +-------------+--------------+-------------+-----------------+-------------+----------------+');
writeln('
Курсовая работа');
writeln('
По курсу информатики');
writeln(' Приобритенное вычисление значения определенного интеграла ');
writeln('
Выполнила: студентка гр. 320671 Сергеева Е.В. ');
writeln('
Вариант 19 у=19.80 *exp(0.127/X)');
writeln('
Xn=',a:5:3,' Xk=',b:5:3,' Eps=',eps:5:3);
writeln;
writeln('
Результат вычислений ');
writeln(' +-------------+------------------------------------------------+-------------+');
writeln(' |
|
Метод вычисления
|
|');
writeln(' | Число
+------------------------------+-------------------------------+ Точность |');
writeln(' |
|
|
|
|
|
|');
writeln(' | разбиений |Прямоуго- | Трапеция | Симпсона |Чебышева | Вычисления |');
writeln(' |
| льники |
|
|
|
|');
writeln(' +-------------+--------------+-------------+-----------------+-------------+----------------+');
repeat
h:=(b-a)/n;
pr(Ыm1);
trp(m2);
ch(m4);
Simp(m3);
r:=abs(m1-m0);
writeln(lf,' | ',n:7,' |',m1:11:6,'|',m2:11:6,'|',m3:11:6,'|',m4:11:6,' |',r:11:6,' |');
writeln(' | ',n:7,' |',m1:11:6,'|',m2:11:6,'|',m3:11:6,'|',m4:11:6,' |',r:11:6,' |');
m0:=m1;
n:=n+10;
until (r<=eps) or (n>10000000);
writeln(lf,' +-----------+-----------+------------+-----------+-----------+-------------+');
writeln(lf,'***Точность вычисления достигнута при n=',n-10:7,'***');
writeln(' +-----------+-----------+------------+-----------+-----------+-------------+');
writeln('***Точность вычисления достигнута при n=',n-10:7,'***');
close(lf);
end.
17
5 Результаты работы программы, полученные в ходе выполнения
программы в виде графика
18
6 Результаты работы программы, полученные в ходе выполнения
программы в виде таблицы
Курсовая работа
По курсу информатики
Приближенное вычисление значение определенного интеграла
Выполнила: студентка гр. 320671 Сергеева Е.В.
Вариант 19 у=19.80*exp(0.127/X)
Xn=0.439 Xk=1.440 Eps=0.001
Результаты вычислений
Число
Метод вычисления
Точность
разбиений
Прямоугольники Трапеции Симпсона Чебышева вычисления
40
23.137613
23.077340 23.617270 23.076500
23.137613
50
23.125256
23.077038 23.587984 23.076500
0.008201
60
23.117055
23.076873 23.502691 23.076500
0.005839
70
23.111216
23.076774 23.441626 23.076500
0.004008
80
23.106847
23.076710 23.395872 23.076500
0.004369
90
23.103454
23.076666 23.360312 23.076500
0.003393
100
23.100744
23.076634 23.331879 23.076500
0.002710
110
23.098529
23.076611 23.308625 23.076500
0.002215
120
23.096684
23.076593 23.289253 23.076500
0.001844
130
23.095125
23.076580 23.272866 23.076500
0.001559
140
23.093789
23.076569 23.258823 23.076500
0.001336
150
23.092633
23.076560 23.246654 23.076500
0.001157
160
23.091621
23.076553 23.236009 23.076500
0.001012
170
23.090728
23.076547 23.226617 23.076500
0.000892
180
23.089935
23.076542 23.218269 23.076500
0.000793
190
23.089226
23.076537 23.210802 23.076500
0.000709
200
23.088588
23.076534 23.204081 23.076500
0.000638
***Точность вычисления достигнута при n=200***
19
7 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
При создании программы для решения сложной задачи выполняется разделение этой задачи на подпрограммы, подзадач — на ещё меньшие подзадачи и т.д., до легко программируемых элементарных задач.
Процедуры и функции являются важным средством в большинстве языков программирования. С их помощью можно скомпоновать группу операторов для выполнения некоторого
единого действия. Процедуру/функцию можно вызывать из различных мест программы, она
может возвращать вычисленные результаты, и ей можно передавать информацию, которую она
использует для вычисления. Для того чтобы процедура/функция начала работу, её нужно вызвать (активизировать).
Процедуры и функции состоят из операторов, локальных данных и внутренних процедур
и функций. Структура описания процедуры и функции имеет следующий вид:
PROCEDURE Имя (Список Формальных Параметров);
LABEL
CONST
Описание локальных меток,
TYPE
констант,
типов
и
переменных
VAR
PROCEDURE
Описание внутренних
FUNCTION
процедур и функций
BEGIN
Операторы
END;
FUNCTION Имя (Список Формальных Параметров): Тип
результата;
LABEL
CONST
Описание локальных меток,
TYPE
констант,
типов
и
переменных
VAR
PROCEDURE
Описание внутренних
FUNCTION
процедур и функций
BEGIN
Операторы, среди которых должен быть
хотя
бы один, который присваивает имени функции
значение результата.
END;
20
Отличия в описании функции и процедуры касаются только заголовка и раздела операторов, что отмечено непосредственно в приведённых рисунках.
В программе используются функция Fun(x) для вычисления текущего значения функции и
процедура Zet, определяющая коэффициенты для метода Чебышева.
Для сохранения результаты работы программы были помещены в дисковый файл.
Для работы с каким-либо дисковым файлом, находящемся на ЖМД или ГМД, необходимо первоначально связать его с файловой переменной (логическим файлом), с помощью которой будет осуществляться доступ к этому дисковому файлу. Связывание дискового и логического файлов выполняется процедурой Assign, которая может использоваться только для закрытого файла. Первым параметром этой процедуры является файловая переменная, вторым
параметром – строковая константа или идентификатор строковой переменной, значением которых должно быть имя дискового файла, указанное согласно правилам записи идентификаторов в MS-DOS.
Assign (out, ‘out.Dat’);
Перед выполнением каких-либо операций чтения и записи в файлах, эти файлы должны
быть открыты.
Открытие файлов выполняется процедурами Reset (для ввода информации из файла) и
Rewrite (для вывода информации в файл), а закрытие—процедурой Close.
Rewrite(out);
Операция вывода информации в файл осуществляется с помощью оператора
Write(out,’’);
Writeln(out,’ ‘);
21
Список литературы
1.Курносов А.П. Информатика: учеб.пособие для вузов / А.П.Курносов [и др.];
под ред. А.П.Курносова .— М. : КолосС, 2015 .— 272с. — (Учебники и учебные
пособия для высших учебных заведений) .— Библиогр.в конце кн.
2. Алексеева И.В. Сборник задач и упражнений по курсу «Информатика». – Обнинск: Обнинский институт атомной энергетики, 2017.
3. Власов В.К., Королев Л.Н. Элементы информатики./ Под. Ред. Л.Н. Королева.М.: Наука, 2015 г.
4. Информатика.- / Под ред. Н.В. Макаровой. – М.: Финансы и статистика, 2017. –
768 с.
5. Информатика: Учебник для вузов.- / Под ред. С.В. Симоновича. – СПб.: Питер,
2014.
6. Кураков Л.П., Лебедев Е.К. Информатика. – М.: Вуз и школа, 2015. – 636с.
Могилев и др. Информатика: Учебное пособие для вузов / А.В.Могилев, 7.
Н.И.Пак, Е.К.Хеннер; Под ред. Е.К. Хеннера. - М.: Изд. центр "Академия", 2016
8. Острейковский В.А. Информатика. – м.: Высшая школа, 2017.- 512с.
9. Першиков В.И., Савинков В.М. Толковый словарь по информатике. – 2-е изд.
Доп. – М.: Финансы и статистика, 2016.
10. Фигурнов В.Э. IBM PC для пользователей. – М.: 2017.
11. Якубайтис Э.А. Информационные сети и системы: Справочная книга.- М.:
Финансы и статистика, 2014
22
Скачать