Вышка

Sep. 4th, 2009 10:59 am
[identity profile] irdis.livejournal.com posting in [community profile] useful_faq
Господа, помогите в одном деле.

Есть некая система уравнений примерно следующего вида:

a*10+b*15+c*15+x*1234+y*45=1
a*23+b*10+c*10+x*6234+y*6+z*49=1
a*13+b*23+c*56=1

Вопрос, как все это называется терминами высшей математики? Совсем все из головы вылетело...

И совсем буду благодарен тому, кто подскажет, как это решить средствами Excel 2003

Немного поясню.

Каждая строка уравнения - это один работник. Ну, или, можно считать, что один эксперемент.
Единица - один рабочий день.
цифры - сколько единиц каждого вида работы было сделано за день
a, b, c и.д. - доля рабочего дня на эти виды работ

То есть, в итоге хочется получить, скажем, следующие результаты.

На работу a уходит в среднем 0,1 часть рабочего дня
На работу b - 0,2 часть
На x - 0,01 часть

Date: 2009-09-04 07:31 am (UTC)
From: [identity profile] homa.livejournal.com
Кратко и нестрого: это система линейных уравнений. Для невырожденной системы (имеющей одно решение) количество неизвестных должно совпадать с количеством уравнений. Для решения записываем коэффициенты при соответствующих неизвестных в каждой строчке друг под другом. В отдельном столбце записываем свободный член уравнения (то есть, число без неизвестного). Если в уравнении представлены не все переменные, считаем значение их коэффициента равным нулю. После этого начинаем последовательно исключать неизвестные из уравнений. Для этого берем любой ненулевой коэффициент при первой переменной и вычитаем из остальных уравнений это уравнение, помноженное почленно на такое число, которое позволит обнулить коэффициент в соответствующем уравнении. И делаем так, пока в одной из строчек не останется единственная переменная. Таким образом определяем ее значение, подставляем в остальные уравнения и т. п. В вашем примере сделать это однозначно нельзя, система вырождена. Но проиллюстрировать можно:

Исходная система:
a*10 + b*15 + c*15 + x*1234 + y*45 = 1
a*23 + b*10 + c*10 + x*6234 + y*6 + z*49 = 1
a*13 + b*23 + c*56 = 1

Запишем коэффициенты системы, включая нулевые:
a b c x y z =
10 15 15 1234 45 0 1
23 10 10 6234 6 49 1
13 23 56 0 0 0 1

Умножим первую строчку на 23/10 и вычтем почленно из второй строчки:
10 15 15 1234 45 0 1
0 -24,5 -24,5 3395,8 -97,5 49 -1,3

То же самое делаем с третьей строкой: умножаем первую на 13/10 и вычитаем из третьей и т. д.

В невырожденной системе после этих операций в последней строке останется лишь один ненулевой коэффициент, который и определит значение переменной с этим коэффициентом.

Есть ли такие матричные операции в Экселе я, честно говоря, не знаю ;) Возможно, описание метода вам поможет.

Date: 2009-09-04 08:38 am (UTC)
From: [identity profile] almoner.livejournal.com
В Excel я бы сделал так:
Составил таблицу, в которой столбцы - виды работ, строки - работники.
Строки бы сделал двойной высоты.

Берем первую строку.
В столбцах напротив каждого вида работ в верхнюю ячейку вписываю количество единиц вида работ. А в нижнюю ячейку помещаю формулу - значение верхней ячейки деленное на сумму значений всех верхних ячеек строки. В итоге в нижних ячейках и будут нужные вам доли.
И какая разница, как это все называется?
http://pics.livejournal.com/almoner/pic/00001cg3/
Edited Date: 2009-09-04 08:51 am (UTC)

Date: 2009-09-04 10:47 am (UTC)
From: [identity profile] valery-medved.livejournal.com
может пригодится
http://www.intuit.ru/department/office/vbaexcel/2/6.html

Date: 2009-09-04 03:45 pm (UTC)
From: [identity profile] serg-private.livejournal.com
система уравнений не полная
однако, если вы знаете, сколько у одного работника уходит времени на всю работу, система становится полной и решается как описано выше