2009-12-10 3 views
0

У меня матричное уравнение ниже:Как найти параметры матричного уравнения в matlab?

[M] = [A][R] + [B][L] 

где: A и B = 2 с помощью 2-х матриц

M, R, L, а = 2 с помощью 1 матрицы.

Для того, чтобы оценить одно конкретное значение A и B, у меня есть 9 различных данных [M], [R] и [L]. Предположим, что эти 9 данных являются одногрупповыми, и у меня есть сотни групповых данных.

И мне нужно найти значение A и B, связанное с конкретными групповыми данными.

Так ли у кого-то или что-то знать с MATLAB, как получить значения [A] и [B] для каждой группы просто дать вход [M], [R] и [L] данных в MATLAB?

ответ

0

Вы не можете подбирать разные размеры. Это уравнение не имеет для меня никакого смысла.

UPDATE:

Это обновленный уравнение имеет смысл.

Это звучит как проблема с установкой наименьших квадратов. Вы собираетесь ввести свои данные и получить наилучшую оценку для коэффициентов. Я должен был бы узнать больше о точной природе данных, группировок и т. Д., Но я бы рекомендовал вам начать чтение о возможностях MATLAB для наименьших квадратов.

Фиксация наименьших квадратов начинается с придумывания модели. Давайте предположим, что у вас есть три независимых переменных (х, у, г) и одну зависимую переменную (V):

alt text http://www.equationsheet.com/latexrender/pictures/33a65b75846d5933d7c269c41c400384.gif

Теперь у вас есть четыре коэффициента, нужно решить для. У вас будет n наборов точек, где n> 4, поэтому вам нужно будет поменять наименьшие квадраты.

Если вы заменяете свои точки в уравнение вы будете в конечном итоге с матричным уравнением:

alt text http://www.equationsheet.com/latexrender/pictures/9b5ef4e1d0b3b3870cd8423e1db7f1b4.gif

Если вы предварительного умножения обеих сторон транспонированной alt text http://www.equationsheet.com/latexrender/pictures/74c29fdfadc279708cff1e31fa585a4f.gif, вы будете иметь квадратную матрицу, вы можете инвертировать и решить для коэффициентов.

Эта формулировка также позволяет полиномы более высокого порядка.

+0

Почему нет? [Xm; Ym], [xr; yr], [xl; yl] и C являются матрицами 2 на 1. A и B - матрицы 2 на 2. Итак, [Xm; Ym] = A x [xr; yr] + B x [xl; yl] + C - просто нормальное матричное уравнение, верно? – Bree

+0

Hi duffymo, Я просто изменяю уравнение, надеюсь, что вы не поняли уравнение. лучший – Bree

+0

MUCH лучше! Я соответствующим образом обновлю ответ. – duffymo

2

Я что-то не так с тем, как вы создали свою проблему. Независимо от того, какие значения M, R и L имеют ваше уравнение, у вас будет бесконечное количество решений.

Независимо от значений M, R и L одно решение - [A] = [0], [B] = [0], [C] = [M]. Фактически, если вы установите [C] = [M], то [A] и [B] могут быть любыми матрицами, для которых [A] [R] = [0] и [B] [L] = [0], и их бесконечное число.

Пост-Комментарии редактировать

ОК, я более внимательно прочитать свой комментарий ниже немного. Я думаю, что первоначальный способ, которым вы сформулировали свой вопрос, немного вводит в заблуждение. В своих новых композициях, у вас есть 9 экземпляров

Xm = а Хг + бел.руб + CXP + DYP

Это, как правило, положить в терминах матрицы 9x4 Умножения четыре вектора, дающий 9 вектор:

y = X b

Где y - вектор 9x1, содержащий ваш Xm, X - это матрица 9x4, содержащая ваши 9 строк значений Xr, Yr, Xp и Yp, а b - неизвестное, которое мы хотели бы решить для ,

Если все уравнения линейно независимы, система переопределена, поэтому вы не можете получить точное решение, которое наилучшим образом подходит. Для того, чтобы сделать линейную наименьших квадратов в Matlab команда:

b = X\y 

б будет 1x4 вектор, содержащий, B, C, и D, который является приближением наименьших квадратов к решению. См. Это matlab reference.

+0

Hi Charles, Спасибо за ваш ответ, yups .. это имеет смысл (я должен исключить C хотя). Простым уравнением является линейное уравнение с 4 независимыми переменными (входы) и 1 зависимой переменной (выход). уравнение: Xm = aXr + bYr + cXp + dYp где a, b, c, d - постоянные. Чтобы найти те a, b, c, d. У меня есть 9 разных значений Xm, связанных с 9 различными значениями Xr, Yr, Xp, Yp. Что мне нужно знать, есть ли простой способ найти a, b, c, d в matlab. – Bree

+0

Я думаю, что у вас все еще слишком много свободных переменных. Если вы ограничиваете A и B кратным единичной матрице, ваше уравнение становится равным M = a R + b L где a и b - просто цифры. Это однозначно разрешимо, если R и L линейно независимы.Если R и L не линейно независимы, то ваше уравнение равно M = D R где D ~ (A + B), и вы вернулись к бесконечному числу решений. –

+0

У меня появилась идея, и спасибо за это. Попробовав несколько данных, он пришел к выводу, и было бы нелегко просто вычислить коэффициент (a, b, c, d) для моей системы. Я разрабатываю систему слежения за глазами в Matlab через веб-камеру. Преуспеть с отслеживанием глаз, но не знаю, как трансформировать глаза в глаза. в моем последнем уравнении индексы m = monitor, r = правый зрачок, l = левый зрачок. Я думаю, что для системы, как правило, недостаточно, начните кластеризацию. Еще раз спасибо за ответ – Bree

Смежные вопросы