Я новичок в Матлабе.
Я делаю расширенное моделирование фильтра Калмана, которое требует вычисления якобианов (частичных функций дифференцирования) для заданной функции. Я использую функцию для получения значений Якобиана:
function [H] = jacobH(x1,x2)
H = [ -(2*x1(1,:,:) - 2*x2(1,:,:))/(8*pi*((x1(1,:,:) - x2(1,:,:))^2 + (x1(3,:,:) - x2(3,:,:))^2)^(3/2)), 0,
-(2*x1(3,:,:) - 2*x2(3,:,:))/(8*pi*((x1(1,:,:) - x2(1,:,:))^2 + (x1(3,:,:) - x2(3,:,:))^2)^(3/2)), 0];
end
Якобиан в основном дифференцирует 1/(4*pi*sqrt((x1-x2)^2+(y1-y2)^2)) относительно x,y
Например, если я передаю jacobH(x1(:,1,1), x2(:,1,1)) тогда я должен получить H как матрицу 1x4 с [value1, 0, value2, 0]. value1 и value2 различаются для разных входов.
Но я получаю только одно значение. Я не знаю, где я ошибся.
Я искал похожие вопросы, но ни один из них не имеет отношения к моей проблеме.
Кроме того, есть ли более эффективный способ сделать это?
Любая помощь приветствуется!
jacobian
, которая дает вам красивое символьное выражение (которое вы, конечно, можете преобразовать в числовое, если хотите). - person Wouter Kuijsters   schedule 08.02.2015