КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Корректность МНК
Доказано, что решение системы (3.12) существует и единственно, если столбцы матрицы Ф линейно независимы (строки могут быть любыми, даже могут повторяться – т.е. эксперименты могут проводиться при одинаковых значениях xi). Если столбцы линейно зависимы, то det (ФT Ф) = 0 и решения нет. Если столбцы «почти» линейно зависимы, то система (3.12) плохо обусловлена со всеми вытекающими последствиями. Пример 3.6. Пусть xi) = 101, 102, …, 106; f 1(x) = x; f 2(x) º 1. Тогда ФT Ф = Поделим первый столбец на 103.5, получим матрицу
т.е. матрица почти вырождена. Это произошло потому, что xi относительно близки между собой. Чтобы этого не произошло, часто бывает полезно «отцентрировать» xi, т.е. сделать замену переменных
В данном случае ФT Ф = Система стала хорошо обусловленной. Кроме того, при вычислении элементов матрицы Ф и при остальных действиях все операции надо выполнять с высокой точностью, т.к. плохо обусловленные системы очень чувствительны к погрешностям округления.
Приложение 1.
const nn=15; { МЕТОД ГАУССА. ПРОСТОЙ ВАРИАНТ } type masA=array[1..nn,1..nn] of real; masX=array[1..nn] of real; var mtr:masA; x:masx; i,j,n:integer; s:real; error:boolean; procedure Gauss(var aa:masA; var b:masX; n:integer; var error:boolean); var i,j,k,m: integer; a0,a1: real; begin error:=false; { ПРЯМОЙ ХОД } for k:=1 to n-1 do begin { ПОИСК ВЕДУЩЕЙ СТРОКИ} error:=true; for i:=k to n do if aa[i,k] <> 0 then {***} begin error:=false; m:=i; break end; if error then exit; if m<>k then begin for j:=1 to n do { ОБМЕН } begin s:=aa[m,j]; aa[m,j]:=aa[k,j]; aa[k,j]:=s; end; s:=b[m]; b[m]:=b[k]; b[k]:=s; end; { ПРЕОБРАЗОВАНИЕ СТРОК } a0:=aa[k,k]; for j:=k to n do aa[k,j]:=aa[k,j]/a0; b[k]:=b[k]/a0; for i:=k+1 to n do if aa[i,k] <> 0 then begin a1:=aa[i,k]; for j:=k to n do aa[i,j]:=aa[i,j]/a1 - aa[k,j]; b[i]:=b[i]/a1 - b[k]; end; end; { ОБРАТНЫЙ ХОД } if aa[n,n]=0 then begin error:=true; exit; end; b[n]:=b[n]/aa[n,n]; for i:=n-1 downto 1 do begin s:=b[i]; for j:=i+1 to n do s:=s-aa[i,j]*b[j]; b[i]:=s; end; end; { ГОЛОВНАЯ ПРОГРАММА } begin readln(n); for i:=1 to n do begin for j:=1 to n do read(mtr[i,j]); readln(x[i]); end; Gauss(mtr,x,n, error); writeln; if error then writeln(' СИСТЕМА ВЫРОЖДЕНА ')
Дата добавления: 2014-01-07; Просмотров: 270; Нарушение авторских прав?; Мы поможем в написании вашей работы! |