Заггубил съм си записките по ЕИТ в Геодезията, а от учебника не ми става ясно как да обърна квадратна матрица .... (там пише за последователни ортогонализации, но аз съм ги забравил тези неща)
1. Транспонирах матрицата A и по този начин получих matricata A*
2. Извърших умножението (A*)(A)
3. Сега трябва да обърна получената от умножението квадратна матрица
4. ........
Благодаря !
Формули за обръщане на матрица
-
- Мнения: 32
- Регистриран на: Съб Мар 22, 2008 1:02 pm
Формули за обръщане на матрица
Програмирам на Delphi
-
- Мнения: 32
- Регистриран на: Съб Мар 22, 2008 1:02 pm
Благодаря, но бих предпочел математически формули, понеже ми трябват в една програма, на Pascal, която вече прави транспониране и умножение на матрици, сега остава да направи обръшането на квадратна симетрична матрица и изравнението е почти готово ....smart написа:в Excel има една много удобна функция за намиране на обратна матрица - MINVERSE - може да я пробвашуспех
Разбира се за проверка на програмката, с удоволствие ще използвам функцията на Excel, стига да разбера как се използва ...
Програмирам на Delphi
-
- Мнения: 141
- Регистриран на: Пон Ное 23, 2009 8:58 am
- Местоположение: София
-
- Мнения: 32
- Регистриран на: Съб Мар 22, 2008 1:02 pm
Решавам елементарен пример от учебника по ТМОГИ, с който мога да си контролирам резултатите, докато правя програмата ....Красимир Колев написа:Колко е голяма получената матрица ?
Матрицата, която трябва да се инвертира ( обърне ) е 4x4, но за в бъдеще, ще трябва да имам универсални формули и за по-голям размер ....
( Постепенно трябва да постигна универсалност на програмата )
Програмирам на Delphi
-
- Мнения: 141
- Регистриран на: Пон Ное 23, 2009 8:58 am
- Местоположение: София
Пише, че програмираш на Делфи. За продуктите на Борланд има една камара добавки (статични библиотеки, пакети обекти и т.н.). Със сигурност има и някоя с матрични функции. По принцип има една универсална формулка, обаче не съм я пробвал, защото ми се струва, че е доста мудна и бавна (аз па пиша на C++). Ако искаш, ше я изровя и ше драсна някакви обяснения
А за тестове дали работи правилно, някой по-горе каза - Excel ти е варианта. Аз навремето така си тествах едно параметрично изравнение 


-
- Мнения: 32
- Регистриран на: Съб Мар 22, 2008 1:02 pm
Програмирам на Делфи, напоследък на Lazarus ( Free Pascal ) ....Красимир Колев написа:Пише, че програмираш на Делфи. За продуктите на Борланд има една камара добавки (статични библиотеки, пакети обекти и т.н.). Със сигурност има и някоя с матрични функции. По принцип има една универсална формулка, обаче не съм я пробвал, защото ми се струва, че е доста мудна и бавна (аз па пиша на C++). Ако искаш, ше я изровя и ше драсна някакви обясненияА за тестове дали работи правилно, някой по-горе каза - Excel ти е варианта. Аз навремето така си тествах едно параметрично изравнение
Търсих много, но то си е и въпрос на късмет дали и кога, ще намеря библиотека, обект, компонент, функция или процедура, която да върши това, от което се нуждая ....
Ако не ти представлява трудност, изрови тази униерсална формулка, нищо, дали е бавна или не, ако драснеш и обяснения за нея - супер !
Да Excel ще върши работа за тестване на самото обръщане на квадратна симетрична матрица ( примерът който правя в момента е точно за параметрично изравнение на трилатерация /измерени само дължини/ в една малка мрежа от няколко точки ... ).
Програмирам на Delphi
-
- Мнения: 141
- Регистриран на: Пон Ное 23, 2009 8:58 am
- Местоположение: София
За параметрично изравнение не ти трябва обръщане на матрица. Алгоритъма на Гаус за решаване на системата нормални уравнения върши страхотна работа. По този начин освен, че решаваш изравнението, така или иначе намираш и обратната матрица и то без да си блъскаш главата с матрични преобразувания
. Проблема е, че имаше един доста тегав за "циклене" момент. Все пак ше питам дебелите книги за формулата, а ако искаш, давам и сорс код (С++ обаче) за съставяне и решаване на СНУ. Тестван и работещ.

-
- Мнения: 32
- Регистриран на: Съб Мар 22, 2008 1:02 pm
Честита Коледа
Четох "Метод на последователната ортогонализация или пряк начин за решаване на задачата на посредственото изравнение" от учебника ЕИТ в геодезията на проф.д-р т.н.Георги Златанов 1979г. стр.75, формула /2.3.51/:
X = -(A*A)-1 A*F; където А* е транспонираната на матрицата с коефициентите A;
Ако намериш формула за изравнение и ( C++ source code тестван и работещ ) - супер, ще напрегна сивото вещество, да преведа от C++ на Pascal.... ще питам тук - там, все някой ще помогне ....
Благодаря

Четох "Метод на последователната ортогонализация или пряк начин за решаване на задачата на посредственото изравнение" от учебника ЕИТ в геодезията на проф.д-р т.н.Георги Златанов 1979г. стр.75, формула /2.3.51/:
X = -(A*A)-1 A*F; където А* е транспонираната на матрицата с коефициентите A;
Ако намериш формула за изравнение и ( C++ source code тестван и работещ ) - супер, ще напрегна сивото вещество, да преведа от C++ на Pascal.... ще питам тук - там, все някой ще помогне ....
Благодаря

Програмирам на Delphi
-
- Мнения: 141
- Регистриран на: Пон Ное 23, 2009 8:58 am
- Местоположение: София
Честита ви коледа 
Като за програмисти препоръчвам "Обобщение на МНМК за изравнение на нормално разпределени измервания" пак на проф. Златанов (лека му пръст). Сравнително нова е, 1996, само че не пише издателство, ала бала ... Ама така поне като гледам как е опакована, най-вероятно е ВИАС-ко произведение
. Аз я купувах от едната от книжарниците в старата сграда. На предната корица пише "Книга за инженера и програмиста". Има доста неща, които на друго място не съм срещал, примерен код на Basic и C++, също и това, което ти трябва.
P.S. Имаш лично съобщение

Като за програмисти препоръчвам "Обобщение на МНМК за изравнение на нормално разпределени измервания" пак на проф. Златанов (лека му пръст). Сравнително нова е, 1996, само че не пише издателство, ала бала ... Ама така поне като гледам как е опакована, най-вероятно е ВИАС-ко произведение

P.S. Имаш лично съобщение

За много години!
ето един линк http://alglib.sources.ru/linequations/s ... c/ldlt.php
има два метода единия е Холецки той решава цялата матрица (примерно КООРД - константно време за обръщане на матрицата независимо дали е плътна или разредена),
другият е Гаус-Жордан за симетрични близко диагонални матрици, силно разредени (примерно ТПЛАН - много бърз ако е разредена диагонална лента, колкото по плътна матрицата толкова по-бавен) това е най-ефективно за полигони - получават се силно разредени матрици. И за да стене близко диагонална се ползва алгоритъма на KM ( Катхила-Макки http://www.mathnet.ru/php/getFT.phtml?j ... what=fullt )
ето един линк http://alglib.sources.ru/linequations/s ... c/ldlt.php
има два метода единия е Холецки той решава цялата матрица (примерно КООРД - константно време за обръщане на матрицата независимо дали е плътна или разредена),
другият е Гаус-Жордан за симетрични близко диагонални матрици, силно разредени (примерно ТПЛАН - много бърз ако е разредена диагонална лента, колкото по плътна матрицата толкова по-бавен) това е най-ефективно за полигони - получават се силно разредени матрици. И за да стене близко диагонална се ползва алгоритъма на KM ( Катхила-Макки http://www.mathnet.ru/php/getFT.phtml?j ... what=fullt )
Рано е да закъсняваш, късно е да подраняваш.
-
- Мнения: 32
- Регистриран на: Съб Мар 22, 2008 1:02 pm
За много години
Благодаря Незнайко1
Точно днес ( 13.януари.2010 ) успях превеждайки формулите на Красимир Колев от C++ да тествам успешно два примера за изравнение .... единия от стар учебник по ТМОГИ, другия от старо ръководство по ТМОГИ ....
Ще пробвам и твоите линкове в най-близко възможно бъдеще.
Нищо не ми пречи да имам два варианта за изравнение, или пък специален вариант за изравнение на полигони ....
( Уж на 13-ти би трябвало да не ми върви, но днес ми провървя, странно но факт ....
Благодаря още веднъж
)

Благодаря Незнайко1

Точно днес ( 13.януари.2010 ) успях превеждайки формулите на Красимир Колев от C++ да тествам успешно два примера за изравнение .... единия от стар учебник по ТМОГИ, другия от старо ръководство по ТМОГИ ....
Ще пробвам и твоите линкове в най-близко възможно бъдеще.
Нищо не ми пречи да имам два варианта за изравнение, или пък специален вариант за изравнение на полигони ....

( Уж на 13-ти би трябвало да не ми върви, но днес ми провървя, странно но факт ....

Благодаря още веднъж




Програмирам на Delphi