Главная Рефераты - Информатика
|
|
|
|
ввод:
0.1,10,1e-4
ответ:
х1=0.10000
х2=1.10000
Уточнение корней
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
if z=0 then goto 2;
if y*z<0 then b:=x;
begin a:=x; y:=f(b); end;
if b-a>e then goto 10;
2:writeln('x=',x:8:5);
readln;
end.
ввод:
0.1, 1.1, 1е-5
ответ:
х=0.78111
М етод хорд
|
|
|
|
|
|
x:=y;
if d>e then goto 10;
y:=f(x);
writeln('x=',x:8:5);
end.
ввод:
0.1, 1.1, 1е-5
ответ:
х=0.78110
Проверка уравнения в ППП "Eureka"
Ввод:
2.2* x - exp ( x * ln (2))=0
Ответ:
X=0.78091254
Maximum error is 3.5465456e-7
2.2. Решение систем линейных уравнений методом итераций.
Метод итераций Гаусса-Зейделя
Метод последовательных приближений или итераций для больших n даёт сокращение времени решения на 20-30% по сравнению с точными методами.
В методе итераций число действий пропорционально числу n2 , тогда как в точных методах n3 .
Метод итераций особенно выгоден при решении систем, в которых много коэффициентов равно нулю. Рассмотрим метод на примере 3-х уравнений с тремя неизвестными.
Дана система:
|
Для сходимости метода итераций диагональные элементы системы должны быть преобладающие, т.е.
|aii |>>|aij |
Если это условие не выполняется, то делают элементарные преобразования системы.
Например:
|
|
Из 1-го уравнения преобразованной системы найдём х1 , из 2-го х2 из 3-го х3 . Получим:
|
Для удобства реализации алгоритма вычисляемое значение обозначим yi . Получим:
|
Для нашего примера система примет вид:
|
В качестве начального приближения для х1 ;x2 ;x3 , берётся 0 или 1. Подставляется в правую часть системы, получается новое значение xi , которое снова подставляется в правую часть и т.д. Пока разность между приближениями не станет меньше d).
program lin;
var
b1,d,x1,x2,x3,x4,e,y1,y2,y3,y4:real;
begin
x1:=0; x2:=0; x3:=0; x4:=0; e:=1e-5;
repeat
y1:=(-9-x2+x4)/4;
y2:=(-y1+x3-3*x4)/2;
y3:=(-7-x1+3*y2)/4;
y4:=(2-3*x2+2*y3)/4;
d:=sqrt(sqr(x1-y1)+sqr(x2-y2)+sqr(x3-y3)+sqr(x4-y4));
x1:=y1; x2:=y2; x3:=y3; x4:=y4;
until d>E;
b1:=x1+2*x2-x3-3*x4;
writeln('x1= ',x1:8:5,' x2= ',x2:8:5,
|
|
|
|
|
||
|
Проверка в ППП "Eureka"
4*x1+x2-x4=-9
x1-3*x2+4*x3=-7
3*x2-2*x3+4*x4=12
x1+2*x2-x3-3*x4=0
Ответ:
Х1=-3.000000
Х2=4.000000
Х3=2.000000
X4=1.000000
Если функция f(x) непрерывна на отрезке [a,b] и известна ее первообразная F(x), то определенный интеграл от этой функции в пределах от а до b может быть вычислен по формуле Ньютона-Лейбница
Как правило, выразить первообразную функцию удаётся не всегда, поэтому приходиться прибегать к приближённому интегрированию. Существует много численных методов: прямоугольников, трапеций, парабол или Симпсона и т.д.
Метод прямоугольников
Из математики известно, что интеграл равен площади криволинейной трапеции, ограниченной кривой f(x) осью Х и ординатами в точках а и b.
Для приближенного вычисления площади разобьём отрезок [а,b] на n части длинной h =( b - a )/ n .
В точках разбиения проведем ординаты до пересечения с кривой y=f(x), а концы ординат соединим прямоугольными отрезками, тогда площадь криволинейного приближенного прямоугольника можно считать равной площади фигуры ограниченной ломанной линией aABb. Площадь этой фигуры, которую обозначим через S, равна сумме площадей прямоугольников.
S = h ( y 0 + y 1 + y 2 +…+ yn )
Таким образом, приближенное значение интеграла по формуле прямоугольников запишется в виде
Точность метода с постоянным шагом h примерно e
Метод трапеции
В этом методе начальные построения те же, только при вычислении площади криволинейной трапеции ординаты сверху соединяются ломаной линией.
Получается множество прямоугольных трапеций. Площадь одной трапеции равна:
S
тр
=
Отсюда: y
= h.
Точность Е
Метод Симпсона (парабол)
В этом методе отрезок [a,в] разбивается на 2n
частей, длинной h=
|
||
|
Расчетная формула имеет вид :
у
y0 = f(a), y1 = f(a+2h), y2 = f(a+2h)… y2n-1 = f(в-h)
y2 n = f(в).
|
ci
=
у
|
|
|
|
end;
y:=y*(b-a)/n;
writeln('y=',y:8:5);
readln;
end.
ОТВЕТ:
y=0.28099
|
|
|
|
|
|
x:=x+h;
end;
y:=s*h;
writeln('y=',y:8:5);
readln;
end.
ОТВЕТ:
y=0.28173
|
||
|
|
|
|
|
|
|
c:=-c;
if x<= b-h then goto 10;
y:=s*h/3;
writeln('y=',y:8:5);
readln;
end.
ОТВЕТ:
y= 0.27919
Решение интеграла в ППП "Eureka"
y=integ((sin(x^2+0.5)/cos(x^2+0.5))/(1+2*x^2),x,0.4,0.8)
y=0.2823564
2.4 Методы решения дифференциальных уравнений
При использовании различных протекающих во времени процессах первым этапом является составление дифференциального уравнения, описывающего процесс, а вторым – поиск решения этого уравнения. Дифференциальным уравнением называется равенство, связывающее значение аргумента, неизвестной функции некоторых ее производных. Наивысший порядок входящих в уравнение производных называется порядком дифференциального уравнения.
Рассмотрим уравнение вида:
y=f(x,y) (1)
Уравннение (1) имеет бесконечное множество решений (рис. 1) – через каждую точку плоскости проходит интегральная кривая. Чтобы выделить одну кривую, нужно указать точку плоскости, через которую проходит кривая, т.е. указать так называемые начальные уравнения (значения x=x0 и y=y0 ) (2)
Метод Эйлера
Одним из методов решения дифференциального уравнения (1) с начальным условием (2) является метод Эйлера.
Будем рассматривать уравнение (1) на некотором отрезке [a,b]. Пусть отрезок поделен на n частей с шагом
Обозначим X0 =a, X1 =X0 +h, X2 =X0 +2h,…, Xn =X0 +nh=b. Обозначим искомые y(X1 ),…y(Xn ) через y1 …yn .
Методика решения уравнения (1) с начальными условиями (2) связяна с разложением решения в ряд Тейлора в h-окрестности точки X0 .
При отбрасывании членов ряда, содержащие производные второго и высшего порядков, получим
где f(X,y) – правая часть уравнения (1).
Таким образом,
.
При достаточно малой величине шага h метод Эйлера дает решения с большей точностью, т.к. погрешность близка к h2 (h<<1) на каждом шаге интегрирования.
Метод Рунге-Кутта
Недостатком метода Эйлера является змедление вычислений при выборе малой величины шага h, задающей точность решения.
Наиболее распространенным методом численного интегрирования дифференциальных уравнений служит метод Рунге-Кутта, обеспечивающий ускорение за счет большей точности вычислений на каждом шаге. Точность метода Рунге-Кутта оценивается величиной E≈h2 .
Уточнение достигается за счет специального подбора координат четурех точек, в которых вычисляется первая производная f(x,y). Вместо первой производной h∙f(x,y) используемой в формуле Эйлера, вычисляется усредненная первая производная fi .
Формулы интегрирования по методу Рунге-Кутта имеют вид:
где
y’=(1-y2 )cos(x)+0.6y
при х0 =0; xn =1; у0=0; h=0.1
program eyler;
label 100;
const h=0.1; x0=0; xk=1; у0=0;
х0=а;
var h,y,x:real;
i: integer;
function f (x,y: real): real;
begin
f:= (1-y*y)*cos(x)+0.6*y;
end;
begin
y:=y0; x:=x0;
100: y:=y+h*f(x,y);
x:=x+h;
writeln(‘ x=',x:5:1,' y=',y:8:5);
if x<xk then goto 100;
readln;
end.
x=0.1 y=0.1000
x=0.2 y=0.2045
x=0.3 y=0.3107
x=0.4 y=0.4156
x=0.5 y=0.5168
x=0.6 y=0.6121
x=0.7 y=0.7004
x=0.8 y=0.7814
x=0.9 y=0.8554
x=1.0 y=0.9234
при х0 =0; xn =1; у0=0; h=0.1
program rungekutta;
label 100;
var
x,p,x0,y0,xk,y,a,b,c,d,h:real;
function f(x,y:real):real;
begin
f:= (1-y*y)*cos(x)+0.6*y;
end;
begin
x0:= 0; xk:=1; y0:= 0; h:=0.1;
x:=x0;y:=y0;
100: a:=h*f(x,y);
b:=h*f(x+h/2,y+a/2);
c:=h*f(x+h/2,y+b/2);
d:=h*f(x+h,y+c);
p:=(a+2*b+2*c+d)/6;
y:=y+p;
writeln('x=',x:8:1,'y=',y:8:5);
if x<xk then goto 100;
readln;
end.
ответ:
x=0.1 y=0.1025
x=0.2 y=0.2082
x=0.3 y=0.3141
x=0.4 y=0.4173
x=0.5 y=0.5156
x=0.6 y=0.6076
x=0.7 y=0.6926
x=0.8 y=0.7705
x=0.9 y=0.8419
x=1.0 y=0.9081
3. Оптимизационные модели
3.1. Решение транспортной задачи
Транспортная задача является частным случаем общей задачи линейного программирования. В линейном программировании функция цели и система ограничений заданна линейно.
Транспортная задача может быть решена основным методом линейного программирования – симплекс метода , но для неё разработаны более удобные и эффективные методы, в частности метод потенциала . Алгоритм транспортной задачи был впервые применён для рационализации перевозов груза, поэтому получил название транспортная задача .
Постановка задачи
Имеется m отправителей и n потребителей однородного груза. Запасы грухов у отправителей – ai , потребность в грузе у получателей – bj . Известна стоимость Сij перевозки единицы от каждого отправителя до каждого получателя. Требуется определить оптимальную схему перевозки груза от отправителей к получателям так, чиобы суммарные транспортные расходы были min. Обычно условие задачи записывается в виде таблицы:
В1 | В2 | Вn | Запасы ai |
|
А1 | С11 X11 |
С12 X12 |
С1n X1n |
a1 |
А2 | С2 1 X21 |
С22 X22 |
С2n X2n |
a2 |
Аm | Сm1 Xm1 |
Сm2 Xm2 |
Сmn Xmn |
am |
Потребность bj |
b1 | b2 | bn | S ai = S bj |
xij – количество груза, перевозимого от ai отправителя к bj потребителю.
При решении транспортной задачи должны выполняться 4 условия:
1. Все запасы грузов должны быть вывезены, т.е.
2. Все потребности в грузе должны быть удовлетворены, т.е.
3. Суммарные транспортные затарты должны быть min , т.е.
F=C11 ∙X11 + C12 ∙X12 +…+ Cmn ∙Xmn ® min
или
Существуют следующие методы решения задач:
1 Метод приближением условно оптимальными планами.
2 Метод потенциалов.
3 Метод рент.
4 Метод Филкерсона и т.д.
Расстановка поставок методом двойного предпочтения
1 итерация
В1 | В2 | В3 | B4 | Uj | ||
А1 | 5 |
4 |
2 45 |
2 45 |
90 | 0 |
А2 | 3 80 |
6 |
3 |
1 15 |
95 | -1 |
А3 | 1 10 |
2 90 |
3 |
7 |
100 | -3 |
Фикт. | 0 |
0 -3 |
0 135 |
0 |
135 | -2 |
90 | 90 | 180 | 60 | |||
Vi | 4 | 5 | 2 | 2 |
Fmin =90+90+240+15+10+180=625
2 итерация
В1 | В2 | В3 | B4 | Uj | ||
А1 | 5 |
4 |
2 90 |
2 |
90 | 0 |
А2 | 3 35 |
6 |
3 -1 |
1 60 |
95 | 2 |
А3 | 1 55 |
2 45 |
3 |
7 |
100 | 0 |
Фикт. | 0 |
0 45 |
0 90 |
0 |
135 | -2 |
90 | 90 | 180 | 60 | |||
Vi | 1 | 2 | 2 | -1 |
Fmin =180+105+60+55+90=490
Конечная таблица
В1 | В2 | В3 | B4 | Uj | ||
А1 | 5 |
4 |
2 90 |
2 |
90 | 0 |
А2 | 3 |
6 |
3 35 |
1 60 |
95 | 1 |
А3 | 1 90 |
2 10 |
3 |
7 |
100 | 0 |
Фикт. | 0 |
0 80 |
0 55 |
0 |
135 | -2 |
90 | 90 | 180 | 60 | |||
Vi | 1 | 2 | 2 | 0 |
Fmin =180+105+60+90+20=455
3.2. Расчёт сетевого графика
Сетевая модель называется сетевым графиком, на котором в определённом порядке показаны все операции по созданию объекта. Векторы или нити на графике – это выполняемые работы. Узлы – это события, т.е. момент начала или окончания ряда работ. Сетевой график в отличие от линейного даёт не только перечень работ, но и взаимосвязь между ними. На основе расчёта графика контролируется ход работ, основное внимание уделяется критическим работам, для остальных рассчитывается резерв времени. В основу построения сети закладывают три понятия: работа, событие, путь.
Основные расчётные параметры – ранние и поздние сроки начала и окончания работы, и резервы времени.
Рассмотрим фрагмент графика.
|
|
|
|
|
|
|
i-j- данная работа
t-j- время данной работы
h-i- предшествующая работа
j-k- последующая работа
tkp - время критического пути
tij PH - раннее начало данной работы
tij PO - раннее окончание данной работы
tij ПН - позднее начало работы
tij НО - позднее окончание данной работы
Rij - общий или полный резерв, времени работы
Rij - частный резерв времени работы
Раннее начало исходных работ полагается равное нулю. T 1 i РН = 0
Раннее окончание любой работы равно сумме её раннего начала и продолжительности.
tij PP = tij PH + tij
Раннее начало любой работы равно max раннему окончанию предшествующих работ.
tij PH = maxh th PO
max ранее окончание завершающих работ равно критическому времени
maxj tjN PO = t кр .
Позднее окончание завершающих работ - равно критическому времени. Позднее окончание работ. Позднее начало любой работы равно разности её позднего окончания и продолжительности: tij ПН = tij НО - tij
Позднее окончание любой работы равно min- му позднему началу последующих работ:
tij НО = mink tjk ПН
Все параметры сетевого графика не отрицательны.
Для работ критического пути ранние поздние параметры совпадают.
Полный резерв времени показывает насколько можно увеличить продолжительность данной работы не увеличивая t- критическое.
|
|
Частный или свободный резерв времени показывает, на сколько можно увеличить продолжительность данной работы, не изменяя раннего начало последующих работ.
Частный резерв равен разности раннего начала последующих работ и раннего окончания данной работы.
rij = tjk рн - tij ро
riN = t кр - tjN ро
rij
Код работы |
Длит. работы |
Тр.н. | Тр.о. | Тп.н. | Тп.о. | Общ. резерв |
Частн. резерв |
1-2 | 4 | 0 | 4 | 0 | 4 | 0 | 0 |
1-3 | 5 | 0 | 5 | 8 | 13 | 8 | 6 |
1-7 | 3 | 0 | 3 | 11 | 14 | 11 | 11 |
2-3 | 7 | 4 | 11 | 6 | 13 | 2 | 0 |
2-4 | 9 | 4 | 13 | 10 | 19 | 6 | 4 |
2-7 | 10 | 4 | 14 | 1 | 14 | 0 | 0 |
2-8 | 8 | 4 | 12 | 13 | 21 | 9 | 6 |
3-4 | 6 | 11 | 17 | 13 | 19 | 2 | 0 |
3-5 | 8 | 11 | 19 | 19 | 27 | 8 | 0 |
4-5 | 0 | 17 | 17 | 27 | 27 | 10 | 2 |
4-8 | 1 | 17 | 18 | 20 | 21 | 3 | 0 |
4-10 | 20 | 17 | 37 | 19 | 39 | 2 | 2 |
5-6 | 11 | 19 | 30 | 27 | 38 | 8 | 0 |
5-10 | 9 | 19 | 28 | 30 | 39 | 11 | 11 |
5-12 | 7 | 19 | 26 | 39 | 46 | 20 | 20 |
6-11 | 4 | 30 | 34 | 40 | 44 | 10 | 10 |
6-12 | 8 | 30 | 38 | 28 | 46 | 8 | 8 |
7-8 | 0 | 14 | 14 | 21 | 21 | 7 | 4 |
7-9 | 10 | 14 | 24 | 14 | 24 | 0 | 0 |
8-9 | 3 | 18 | 21 | 21 | 24 | 3 | 3 |
8-10 | 7 | 18 | 25 | 32 | 39 | 14 | 14 |
9-10 | 15 | 24 | 39 | 24 | 39 | 0 | 0 |
10-11 | 5 | 39 | 44 | 39 | 44 | 0 | 0 |
11-12 | 2 | 44 | 46 | 44 | 46 | 0 | 0 |
Решение
1-2-7-9-10-11-12
Ткрит = 46
Заключение
Современные офисные пакеты
ArjFolder 2.85
Бесплатный архиватор ArjFolder, созданный независимым французским программистом Рафаэлем Мунье, предназначен, как нетрудно догадаться по названию, для работы с ARJ-файлами. Фактически ArjFolder с помощью функций Проводника Windows 9x строит программную оболочку для DOS-утилиты Arj (эта вызываемая из командной строки утилита входит в состав дистрибутива; вообще говоря, она распространяется условно-бесплатно, так что называть ArjFolder бесплатным пакетом не совсем правильно). Дистрибутив ArjFolder представляет собой самораспаковывающийся EXE-модуль объемом 730 Кбайт. В ходе инсталляции пользователю предлагается установить ArjFolder вместе с утилитой Arj или без нее. Для полноценной работы с архивами следует выбрать первую возможность, в противном случае программа не сможет формировать и пополнять архивы, а ограничится только просмотром содержимого архивов и их распаковкой. После инсталляции архиватор встраивается в Проводник Windows 9x. В системном меню "Пуск| Программы" появляется раздел с программой настройки ArjFolder, предназначенной для управления привязкой архиватора к файлам распознаваемых им типов (программа позволяет создавать, пополнять и распаковывать ARJ-файлы, а также просматривать и распаковывать сжатые файлы и архивы в форматах ACE, ZIP, GZIP, TAR, CAB и RAR). Кроме того, в контекстное меню объектов Windows добавляется команда Add to Arj ("Включить в Arj-архив"). С ее помощью можно создавать или пополнять ARJ-архивы и самораспаковывающиеся EXE-файлы. В случае если с программой связан какой-нибудь из распознаваемых ею типов файлов, щелчок на таком файле вызывает двухпанельное окно, похожее на Проводник (к сожалению, это единственный и не очень удобный способ вызвать ArjFolder). Упакованные в архиве объекты изображаются в правой панели окна подобно содержимому обычной папки. Контекстные меню позволяют открывать, распаковывать, удалять или просматривать эти файлы. Добавлять файлы в ARJ-архив и распаковывать их можно с помощью перетаскивания, для остальных типов архивов перетаскиванием можно только распаковывать файлы. Из богатейшего ассортимента опций командной строки, предусмотренных в DOS-программе Arj, Windows-оболочка задействует лишь несколько основных, в частности возможность создавать многотомные архивы для записи на дискеты, защиту с помощью пароля, упаковку вложенных каталогов, упаковку скрытых и системных файлов (опции действуют при создании нового архива). К сожалению, интеграция архиватора с Windows недостаточно полна: если в программах типа ZIP Magic или WinRAR (да и в файловых оболочках типа DISCo Commander) архивы по своему "поведению" практически неотличимы от обычных каталогов, то оснащенный средствами ArjFolder Проводник в левой панели показывает вместо дерева дисков и каталогов только один архив, не имеющий контекстного меню, а в практически бесполезной строке адреса может содержаться только имя текущего архива. На панели инструментов при этом отсутствует кнопка перехода к родительскому каталогу, и, что самое неприятное, - в меню Файл нет команды Открыть. Все операции с архивами производятся в текстовом окне DOS, что тоже не очень удобно. Еще один недостаток - программа не показывает структуру упакованных каталогов, изображая содержимое архива в виде единого плоского списка (впрочем, это свойственно большинству рассмотренных программ). Следует также заметить, что отдельные элементы интерфейса (в целом англоязычного) остались не переведенными с французского (так, вместо привычного обозначения MB вы увидите Mo). Для пользователей Windows, имеющих дело с несложными ARJ-архивами и избегающих командных строк, данная программа может стать простым бесплатным решением, остальные, скорее всего, предпочтут что-нибудь более совершенное, например программу WinRAR с подключенным внешним модулем Arj.
Список используемой литературы:
1. Конспект лекций по информатике
2. Методические указания к лабораторным работам
3. Журнал «Мир ПК»