b>S=h(y0+y1+y2+…+yn)Таким образом, приближенное значение интеграла по формуле прямоугольников запишется в видеТочность метода с постоянным шагом h примерно h.Метод трапеции В этом методе начальные построения те же, только при вычислении площади криволинейной трапеции ординаты сверху соединяются ломаной линией. Получается множество прямоугольных трапеций. Площадь одной трапеции равна: Sтр=.h Отсюда: y.h + .h + … +.h = = h . + f(a + h) +…+ f(в-h)=+ Точность Е h2 Метод Симпсона (парабол) В этом методе отрезок [a,в] разбивается на 2n частей, длинной h=и ординаты сверху соединяются кривой второго порядка (3 соседних точки). Расчетная формула имеет вид : у(y0 + 4y1+ 2y2 + 4y3 + …+ 4y2n*1 + y2n) y0= f(a), y1= f(a+2h), y2= f(a+2h)… y2n-1= f(в-h) y2n= f(в). Для упрощения расчётов введём переменную сi ci= , тогда формула примет вид: у(f(a)+f(в)+(3+ci)) PROGRAM PRYAMOUGOLNIK; CONST a= 0.4 ; b= 1.2; n=100; var x,y:real; i: integer; function f (x:real):real; begin f:= (sin(x*x+0.5)/cos(x*x+0.5))/(1+2*x*x); end; begin y:=0; x:=a; for i:=0 to n do begin y:=y+f(x); x:=x+(b-a)/n; end; y:=y*(b-a)/n; writeln('y=',y:8:5); readln; end. ОТВЕТ: y=0.28099 PROGRAM TRAPEZIA; CONST a=0.4; b=0.8; n=100; var x,y,h,s:real; n: integer; function f (x:real):real; begin f:= (sin(x*x+0.5)/cos(x*x+0.5))/(1+2*x*x); end; begin h:=(b-a)/n; x:=a+h; s:=(f(a)+f(b))/2; while x<=b-h do begin s:=s+f(x); x:=x+h; end; y:=s*h; writeln('y=',y:8:5); readln; end. ОТВЕТ: y=0.28173 PROGRAM SIMPSON; LABEL 10; CONST a= 0.4; b=0.8; n=100; var x,y,h,s:real; c,n: integer; function f (x:real):real; begin f:= (sin(x*x+0.5)/cos(x*x+0.5))/(1+2*x*x); end; begin h:=(b-a)/(2*n); s:=f(a)+f(b); c:=1; x:=a+h; 10: s:=s+(3+c)*f(x); x:=x+h; 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. Формулы интегрирования по методу Рунге-Кутта имеют вид: где h=(xn - x0)/n i=0,1,2,…n 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.1000x=0.2 ? y=0.2045x=0.3 y=0.3107x=0.4 y=0.4156x=0.5 y=0.5168x=0.6 y=0.6121x=0.7 y=0.7004x=0.8 y=0.7814x=0.9 ? y=0.8554x=1.0 y=0.9234y'=(1-y2)cos(x)+0.6yпри х0=0; xn=1; у0=0; h=0.1 program rungekutta;label 100;varx,p,x0,y0,xk,y,a,b,c,d,h:real;function f(x,y:real):real;beginf:= (1-y*y)*cos(x)+0.6*y;end; beginx0:= 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.1025x=0.2 ? y=0.2082x=0.3 y=0.3141x=0.4 y=0.4173x=0.5 y=0.5156x=0.6 y=0.6076x=0.7 y=0.6926x=0.8 y=0.7705x=0.9 ? y=0.8419x=1.0 y=0.90813. Оптимизационные модели3.1. Решение транспортной задачи Транспортная задача является частным случаем общей задачи линейного программирования. В линейном программировании функция цели и система ограничений заданна линейно.Транспортная задача может быть решена основным методом линейного программирования - симплекс метода, но для неё разработаны более удобные и эффективные методы, в частности метод потенциала. Алгоритм транспортной задачи был впервые применён для рационализации перевозов груза, поэтому получил название транспортная задача. Постановка задачиИмеется m отправителей и n потребителей однородного груза. Запасы грухов у отправителей - ai, потребность в грузе у получателей - bj. Известна стоимость Сij перевозки единицы от каждого отправителя до каждого получателя. Требуется определить оптимальную схему перевозки груза от отправителей к получателям так, чиобы суммарные транспортные расходы были min. Обычно условие задачи записывается в виде таблицы:|
| В1 | В2 | Вn | Запасы ai | | А1 | С11 X11 | С12 X12 | С1n X1n | a1 | | А2 | С21 X21 | С22 X22 | С2n X2n | a2 | | Аm | Сm1 Xm1 | Сm2 Xm2 | Сmn Xmn | am | | Потребность bj | b1 | b2 | bn | ai = bj | | | xij - количество груза, перевозимого от ai отправителя к bj потребителю. При решении транспортной задачи должны выполняться 4 условия:1. Все запасы грузов должны быть вывезены, т.е. i=1…m 2. Все потребности в грузе должны быть удовлетворены, т.е. j=1…n.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=6252 итерация|
| В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 | | | | |
Страницы: 1, 2, 3, 4
|