Привет всем. Есть проблема которая представляет собой переопределённую СЛАУ дальше код
load Pw.txt; Pw load Pi.txt; Pi
% Pw = [ 0.0 11.0 8.25 2.75 5.5 5.0 0.0 11.0 2.0 2.0 9.0 8.25 2.75; % 0.0 0.0 0.0 0.0 0.0 6.0 0.0 0.0 0.0 6.0 0.0 0.0 0.0; % 0.0 0.0 -4.5 -4.5 -3.5 -3.5 -0.75 -0.75 0.0 0.0 0.0 -1.81 -1.81 ] % Pi = [ 95.0 592.0 472.0 232.0 350.0 362.0 97.0 592.0 184.0 263.0 501.0 467.0 224.0 ; % 336.0 368.0 168.0 155.0 205.0 323.0 305.0 336.0 344.0 431.0 363.0 279.0 266.0 ]
m = 20 Q(1:4, 1) = [0; 0; 0; 1]; Q(1:4, 2) = [m; 0; 0; 1]; Q(1:4, 3) = [0; m; 0; 1]; Q(1:4, 4) = [m; m; 0; 1]; Q(1:4, 5) = [0; 0; m; 1]; Q(1:4, 6) = [m; 0; m; 1]; Q(1:4, 7) = [0; m; m; 1]; Q(1:4, 8) = [m; m; m; 1];
for i = 1:size(Pi, 2) B(2*i - 1:2*i, 1) = Pi(1:2, i); end
A1 = A_mat(Pw, Pi)
% 1 ) Вариант % A1t = A1' % AA1 = A1' * A1 % AB1 = A1' * B % x1 = AA1 \ AB1
% 2 ) Вариант x1 = A1 \ B
C(1:3, 1:4) = 0;
for i = 1:3 for j = 1:4 nn = (i - 1) * 4 + j; if nn < 12 C(i, j) = x1(nn); else C(i, j) = 1; end end end
C
Pw(4, 1:size(Pw, 2)) = 1
R = C * Pw
for i = 1:size(R, 2) R1(1:2, i) = [(R(1, i)/ R(3, i)) ;(R(2, i) / R(3, i))]; end
%save out.txt R1 -ascii
for i = 1:size(R1, 2) plot(R1(1, i), R1(2, i), 'o'), hold on, grid on end
C
%R2 = B - A1*x1
Q2 = C * Q for i = 1:size(Q2, 2) Q3(1, i) = Q2(1, i) / Q2(3, i); Q3(2, i) = Q2(2, i) / Q2(3, i); end
%for i = 1:4 % plot(Q3(1, 1), Q3(2, 1), 'ob' ), grid on, hold on % plot(Q3(1, 2), Q3(2, 2), 'og' ), grid on % green x % plot(Q3(1, 3), Q3(2, 3), 'or' ), grid on % red y % plot(Q3(1, 4), Q3(2, 4), 'ob' ), grid on % blue z % axis([0 640 0 480]) %end for i = 1:size(Q3, 2) plot(Q3(1, i), Q3(2, i), '+'), grid on, hold on end
там выделены 2 участка 1) это решение методом наименьших квадратов 2) это решение МАТЛАБА так вот матлаб может решить эту систему, а МНК почему то нет(( если что не понятно пишите я ещё обьясню.
|