2011-01-29 3 views
0

У меня есть этот код:MATLAB: преобразование матрицы в элемент-за-элементом умножения

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); 

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

ответ

0

Я не совсем понимаю вопрос. Это не 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, который представляет собой квадратную форму. Также, если положительно определен и симметричен, вы можете немного упростить его.