2013-02-15 2 views
1

Учитывая матрицу 100x100, где каждый элемент представляет значение функции в пространстве, я хотел бы найти значения параметров A, B, C, D, E для функции f (x , у) = а + в х + с у + Д х^2 + E у^2, что соответствует лучшим заданным значениям матрицы, где х представляет собой номер строки и у представляет собой номер столбцаКак найти функцию фитинга для значений матрицы [nxn]

Для иллюстрации цели на меньшем примере, предположим, что мы имеем 3x3 матрицу Т:

T = [0.1 0.2 0.1; 0.8, 0.6, 0.5; 0.1, 0, 1] 

в этом случае F (1,1) = 0,1 и F (3,2) = 0.

значение конкретно матрицы, для которых я хотел бы найти подходящую функцию (поверхность) отображается на изображении ниже:

enter image description here

Я был бы очень благодарен, если любой предложил способ найти 3D-функцию, которая соответствует (наилучшим образом) заданной матрице.

Редактировать

Можно ли найти припадок прямо или это neccesary (или лучше) Ф.О. первого представления данных в виде матрицы [X, Y, F (X, Y)]:

vals = [] 
for(i = 1: 100) 
for j = 1 : 100 
if(T(i,j) ~= 0) 
vals = [vals;i, j, T(i,j)]; 
end; 
end; 
end; 
+0

Я не думаю, что это вопрос программирования. Это расширенный математический вопрос. –

+0

Думаю, вы хотели сказать «f (x, y) = A + B * x + C * y + D * x^2 + E * x * y + F * y^2'. Об этом обычно думают многомерные полиномиальные функции. – Phonon

+0

Это не имеет смысла, поскольку вы начинаете с A + B, вы должны удалить хотя бы один из них. Кроме того, ваши переменные кажутся линейными независимо, поэтому почему бы не попробовать линейную регрессию? –

ответ

1

Эти ребята, похоже, сделали это в одной строке:

http://www.mathworks.com/matlabcentral/newsreader/view_thread/134076

x = % vector of x values 
y = % vector of y values 
z = % f(x,y) 

V = [1 x y x.^2 x.*y y.^2]; 
a = V \ z ; 

Фро м the help page:

  • Если A представляет собой прямоугольный м-с-п матрица с т ~ = п, и В представляет собой вектор-столбец с элементами м или матрица с т строками, то A \ B возвращает наименьших квадратное решение системы уравнений A * x = B.