2015-04-13 1 views
-1

Я пытаюсь понять формулуКак понять формулу C = A (я: у,:) * и (A) * б

c=A(i:j,:)*inv(A)*b 

где i,j=1:length(A). Предположим, что A обратимо.

Вышеприведенная формула позволяет скопировать весь элемент из индекса i в индекс j в векторе b. Я также реализовал его по коду matlab, следуя коду. Однако я не понимаю, почему приведенная выше формула позволяет скопировать элементы в вектор b. Посмотрите мою формулу и мою реализацию, пожалуйста, объясните, помогите мне? Большое спасибо Когда я реализую в MATLAB код

A =[ 10  1  7 10  9; 
    3  9  3  1  2; 
    9  2  3  5  4; 
    1  2  8  6  1; 
    5  2  6  6 10] 

b =[ 8; 
    5; 
    8; 
    10; 
    6] 

Тогда c=A(3:5,:)*inv(A)*b=[8;10;6] Результат выглядит как c=b(3:5,:);

Больше расширением: Предположим, что D является матрица 4 на 5, в которой первым 3-ей строки создаются от 3-й строки до 5-й строки A. Последняя строка D - одна. Тогда выше формула

c(1:4,:)=D*inv(A)*b=[8;10;6;1.12]...

Это также скопировать 3 по 5 элементам вектора Ь

+3

Что за что? Подругайте всех, кто дает вам такой код! – knedlsepp

+0

@knedlsepp: Что происходит с моим кодом? Код просто реализует приведенную выше формулу – user8264

ответ

4

Для обратимых матриц A кода c = A(i:j,:)*inv(A)*b является (с точностью до численной ошибки) эквивалентны:

tmp = A*inv(A)*b; 
c = tmp(i:j); 

Матричный продукт A*inv(A) аннулирует друг друга (как и 123*(1/123) или, в целом, x*(1/x) для x~=0), (опять-таки: для обратимых матриц до численной ошибки), так что эквивалентно: не

tmp = b; 
c = tmp(i:j); 

Существует действительно нет оснований делать какие-либо из вышесказанного, вы только ввести числовую ошибку и выиграл» t корректно работает для сингулярных матриц! Просто используйте вместо этого c = b(i:j).

+0

Вы пытались реализовать D = единицы (4,5); D (1: 3,:) = A (3: 5, :); то c = D * inv (A) * b = ???. Он будет скопировать элемент от 3 до 5 и, наконец, создать новый элемент. Предположим, что A обратимо. – user8264

+0

@ user8264: Это не неправильное объяснение. Это неправильный вопрос! – knedlsepp

+0

Извините за мой вопрос. Может быть, я не совсем понял. Однако. Я получаю это от хорошей бумаги и стандарта. Для короткой статьи см. Здесь http://on-demand.gputechconf.com/gtc/2012/posters/P0473_Implementation_gpu_raptor_code.pdf – user8264

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