КАТЕГОРИИ: Архитектура-(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, т.е. сделать замену переменных , где . В данном случае = 103.5. Новые данные: xi = –2.5, –1.5, …, 2.5. Тогда Ф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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |