Задача подбора значений

AIR1kk

Привет.
Есть две матрицы, скажем, 10 на 10. В одной все значения A[i j] известны.
А во второй все B[i j] неизвестны :) Надо их найти.
А условия, которые должны выполняться, это известные средневзвешенные значения каждой строки и столбца A с весами, равными соответствующими строками и столбцами матрицы B.
То есть известны величины (сумма по i A[i, j] * B[i, j])/(Сумма по i B[i, j]) для каждого j и аналогично для строк (исправлено, было "известные средние значения произведения строк A и B (сумма по i A[i, j] * B[i, j] для каждого j) и столбцов A и B (сумма по j A[i, j] * B[i, j] для каждого i).".
Ещё условие есть, что значения в каждой строке и каждом столбце не возрастают слева-направо и сверху-вниз. Подойдёт любое решение
Как поступить? Возможно, это какая-то известная задача с простым способом решения?
Решений, конечно, может быть много, это понятно, подойдёт любое

var24

Мысли по задаче:
Пусть C - транспонированная B.
Тогда у тебя в условии A*C=D1, C*A=D2, при этом средние значения произведений строк и столбцов из условия - это следы матриц D1 и D2, деленные на размерность матрицы.
След не зависит от порядка умножения матриц, и если твои средние значения не равны, то задача некорректна.

AIR1kk

Оопс, спасибо за замечание, неправильно условие написал, что-то задумался :)
Известны не средние значения произведения строк, а средневзвешенные значения каждой строки и столбца A с весами, равными соответствующими строками и столбцами матрицы B.
То есть известны величины (сумма по i A[i, j] * B[i, j])/(Сумма по i B[i, j]) для каждого j и аналогично для строк.
То есть это не следы D1 и D2, конечно.

griz_a

Сообщение удалил

AIR1kk

Ещё может быть такая формулировка поможет:
Есть функция от двух переменных S(x, y при этом я точно знаю, что x и y - умеренно коррелируют между собой. По сути мне надо эту функцию найти.
Мне известна функция S1(y которая является по сути средним значением функции S(x, y) при всех значениях y и мне известна функция S2(y которая является по сути средним значением функции S(x, y) при всех значениях x. S1 и S2 монотонны.
Вот это более общая задача, а в первом посте как раз требование найти значения этой функции в нескольких точках

AIR1kk

ага, только неизвестных больше, чем уравнений :grin:

griz_a

А, я про столбцы не прочитал. Со столбцами хуже...

AIR1kk

Кстати, первую часть (просто заполнение матрицы А) решил не теоретически, а итерационным методом (хз как он называется точно, взял какие-то значения, потом смотрел какое отличие среднего значения по каждой строке получилось от первоначально заданного, корректировал на него, потом смотрел какое отличие среднего по каждому столбцу получилось от изначально заданного, корректировал на него, потом опять по строкам, опять по столбцам и т.д.. Получилось всего 6 итераций, потому что изначально поставил обдуманно :) ) Для рабочих целей мне этого оказалось достаточно.
А вот теоретически так и не придумал общее решение для общей задачи :(

Xephon

Ещё условие есть, что значения в каждой строке и каждом столбце не возрастают слева-направо и сверху-вниз. Подойдёт любое решение
Это условие на матрицу коэффициентов A или на матрицу неизвестных B?
Если второе, то как ты добиваешься этого своим итерационным методом.

AIR1kk

Первое, конечно, матрица В мне известна, ищу А

Xephon

Первое, конечно, матрица В мне известна, ищу А

Есть две матрицы, скажем, 10 на 10. В одной все значения A[i j] известны.
А во второй все B[i j] неизвестны

Так всё же — что ищется, и что известно? :)

AIR1kk

Опп, попутал, ну в формулировке задачи значит второе.
Но у меня, повторю, отлично приближения сошлись на 6-й итерации

Xephon

Но у меня, повторю, отлично приближения сошлись на 6-й итерации

То есть у тебя чудесным образом выполнились условия: b_11<=b_21<=b_31<...
Ты изначально матрицу B заполнил, тоже исходя из таких условий, да?
Оставить комментарий
Имя или ник:
Комментарий: