MATLAB: преобразование из матрицы в поэлементное умножение - PullRequest
0 голосов
/ 29 января 2011

У меня есть этот код:

KM = [1 0; 0 1];    
syms x, syms y;
% definition of force field 
V = [x y]*KM*[x ; y]
Vdx = -diff(V,x);
Fx = @(x,y) eval(Vdx);

Матрица KM динамически меняет форму потенциального V. Fx я использую в решателе оды.Я хочу написать Fx (A, B), где A, B - матрица.Мне нужно преобразовать результат V = (x ^ 2 + y ^ 2) в V = (x. ^ 2 + y. ^ 2).Есть идеи?

1 Ответ

0 голосов
/ 30 января 2011

Я не совсем понимаю вопрос. Не Fx = @(x,y) -2*KM(1,1)*x-(KM(2,1)+KM(1,2))*y;, когда вы делаете математику от руки.

Общий V равен V = KM(1,1)*x^2+(KM(1,2)+KM(2,1))*x*y+KM(2,2)*y^2, который является просто квадратичной формой. Также, если он положительно определен и симметричен, вы можете немного упростить его.

...