Автоматихация производства ЭВА (1075779), страница 30
Текст из файла (страница 30)
q1=-1; q2=-1,5; q4=-1,5.
е) Вычисляем оставшиеся элементы новой симплекс таблицы:
dij=~dij-pj~qi
у3 | х2 | Ресурсы |
-1 | 1 | 2 y1 |
-1,5 | 3 | 12 y2 |
0,5 | 0 | 4 х1 |
-1,5 | 2 | -12 z |
d12=1-0·2=1;
d22=3-0·3=3;
d42=10-4·2=2;
d13=10-4·2=2;
d23=24-4·3=12;
d43=0-4·3=-12;
Второй столбец показывает, что прибыль можно улучшить (d42>0). Строим новую симплекс таблицу, определив новый центр:
min(2/1;12/3;4/0)=2/1 O=1
у3 | х2 | Ресурсы |
-1 | 1 | 2 y1 |
1,5 | -3 | 6 y2 |
0,5 | 0 | 4 х1 |
0,5 | -2 | -16 z |
p1=~p1b=-1; p3=~p3b=2.
q2=-b~q2=-3; q3=-b~q3=0; q4=-b~q4=-2.
d21=-1,5-(-1)·3-1,5;
d31=0,5-(-1)·0=0,5;
d41=-1,5-(-1)·2=0,5;
d23=12-2·3=6;
d33=4-2·0=4;
d43=-12-2·2=-16.
Можно ещё улучшить.
Находим новый центр:
min(2/-1;6/1,5/4/0,5)=6/1,5=4
у3 | х2 | Ресурсы |
0,67 | -1 | 6 y1 |
0,67 | -5 | 4 y2 |
-0,33 | 1 | 2 х1 |
-0,33 | -1 | -18 z |
d12=1+2·(-1)=-1;
d32=0+2·0,5=1;
d42=-2+2·0,5=-1;
d13=2-4·(-1)=6;
d32=4-4·0,5=2;
d43=-16-4·0,5=-18.
ПРИЛОЖЕНИЕ
Учебная pascal-программа преобразования и решения системы из n ЛАУ:
uses crt; const n=6; type qw=array[1..n,1..n]of real; linM=array[1..n]of real;
var m2:qw;b2:linM; sym:char; i,j,k,t:integer; zz:real;
const m1:qw=(( 58,-43, 0, 0, 0, 0), (-43,116,-43, 0, 0, 0),
( 0,-43,116,-43, 0, 0), ( 0 ,0,-43,116,-43, 0),
( 0 ,0, 0,-43,116,-43), ( 0 ,0, 0, 0,-43, 68));
Xr:linM=(150,0,0,0,0,0);DefX:linM=(1,0,0,0,0,0); {1 метит заданный параметр}
x:array[1..n]of integer=(1,2,3,4,5,6); b1:linM=(600,1200,1200,1200,1200,1000);
procedure UppCase(u:integer);
begin {1. Все коэф u-й строки а1 приравниваем 0, кроме а1[u,u]}
For j:=1 to n Do If j<>u Then m1[u,j]:=0;
{2. Замена компоненты free-вектора на a1[u,u]*Xr[u]}
b1[u]:=m1[u,u]*Xr[u];
{3. Для всех (кроме j=u) b1[j]:=b1[j]-a1[j,u]*Xr[u] }
For j:=1 to n do If j<>u Then
begin b1[j]:=b1[j]-m1[j,u]*Xr[u]; m1[j,u]:=0 end;
End;
procedure printMM; var i,j:integer;
begin clrscr;
for i:=1 to n Do for j:=1 to n Do
begin gotoXY((j-1)*8+1,i); write(m1[i,j]:0:3) end;
for i:=1 to n do
begin gotoXY(6*(n+2),i); write('* X',x[i],' * ',b1[i]:0:4)end;
end;
procedure confirm(k:integer); {преобр к ненулеы коэфф по диаг}
var t,i,j:integer; alf:real; b:boolean;
begin {Поиск нулевого коэфф на диагонали ПНУ} b:=false; i:=k;
Repeat if m2[i,k]<>0 then begin {нашли} t:=i; b:=true end; inc(i)
Until ((b) or (i>n));
if b=false then begin writeLn; writeLn('Система не совместна');
readln;halt(1)end; {Аварийный выход}
{Перестановка строки m2[t,j=k..n] <-->m2[k,j=k..n]}
for j:=k to n do begin alf:=m2[k,j];m2[k,j]:=m2[t,j];m2[t,j]:=alf end;
{same for matr B and X}
alf:=b2[k]; b2[k]:=b2[t]; b2[t]:=alf;
i:=X[k]; X[k]:=X[t]; X[t]:=i;
End;
BEGIN For i:=1 to n do If defX[i]=1 Then UppCase(i); {Преобразование САЛ}
For j:=1 to n do b2[j]:=b1[j]; {Пеересылка free-вектора}
k:=1; {Первая итерация понижения ранга (далее ПНУ-правый нижний угол)}
Repeat {получение k+1-й m2 (меньшего ранга) из к-й m1}
for i:=k to n do for j:=k to n do m2[i,j]:=0; {Сброс к-го ПНУ m2}
for j:=k to n do m2[k,j]:=m1[k,j]; {Пересылка 1-й линии длиной (n-k)}
for i:=k+1 to n do {Двойной цикл просмотра большего квадрата : m1}
for j:=k+1 to n do { и формирования меньшего квадрата: m2}
m2[i,j]:= (m1[i,j] - m1[i,k]*m1[k,j]/m1[k,k]); {формула пересчета}
for j:=k+1 to n do b2[j]:=b1[j]-b1[k]*m1[j,k]/m1[k,k]; {то же для b2}
confirm(k+1); {Проверка: ни одно число на диагонали не должна быть = 0}
for i:=1 to n do for j:=1 to n do
m1[i,j]:=m2[i,j]; {пересылка m2 -> m1: подготовка k+1-й итерации}
for i:=1 to n do b1[i]:=b2[i]; {то же для free-вектора b2 --> b1}
Inc(k); {Переход к следующей итерации}
Until k=n; printMM; {Печать матриц} writeln;
Xr[n]:=b2[n]/m2[n,n]; {Начало обратной прогонки}
For i:=n-1 DownTo 1 Do
Begin zz:=b2[i];k:=n;For j:=i To n-1 Do Begin zz:=zz-m2[i,k]*Xr[k];dec(k)End;
Xr[i]:=zz/m2[i,i] End;
For i:=1 to n Do WriteLn('X',X[i],'=',Xr[i]:0:5); {печать результата}END.
ЛИТЕРАТУРА
1. В.Г. Алексеев, В.Т. Григорьев, Ю.Н. Нестеров Моделирование технических объектов (ТО) конструкторско - технологического проектирования ЭВА. МГТУ. 1991 (45с) (посвящена моделированию ТО на макроуровне)
2. В.Г.Алексеев, Ю.Н.Нестеров Моделирование технических объектов (ТО) конструкторско-технологического проектирования ЭА на макроуровне. 1993, МГТУ. (50 с)
3. Норенков И.П. Основы автоматизированного проектирования CAE, CAD. МГТУ, 2000.
4. В.Т.Алексеев, Ю.Н.Нестеров. Технология ЭВА. Оборудование и А. М. ВШ, 1984
5. Технология и автоматизация производства РЭА. Учебник для ВУЗОВ И.П.Бушминский.
6. Л. Сегерлинд. Применение метода конечных элементов./ Пер. с англ. М:Мир, 1979, 350 с.