Тема: Новий алгоритм
Я тут створив новий алгоритм обчислення определителя(рос.)
Що з ним можна зробити??
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Алгоритми та структури даних, технології → Новий алгоритм
Я тут створив новий алгоритм обчислення определителя(рос.)
Що з ним можна зробити??
Новий алгоритм обчислення визначника матриці? Ну якщо він працює краще за той що використовує LU розклад з бібліотеки LAPACK, то думаю вам варто опублікувати статтю або захистити кандидатську.
Якщо він не кращий - тоді нічого не потрібно робити.
Цікаво, який такий "новий" алгоритм ви могли придумати.
Хоча ні, брешу - не цікаво.
Можете в кошик перенести, там йому місце.
Так, і детермінант українською - визначник.
Я не знаю, що саме використовує LU розклад з бібліотеки LAPACK. Підозрюю, що це удосконалений метод Гаусса чи якийсь чисельний ітераційний метод.
Мій алгоритм грунтується на класичному визначенні визначника (даруйте за тавтологію). Він найточніший із всіх можливих. Але за це доводиться розплачуватись швидкістю.
Ви всіх заінтригували - а що, є НЕТОЧНІ алгоритми обчислення визначників?
Ви всіх заінтригували - а що, є НЕТОЧНІ алгоритми обчислення визначників?
Тю-ю-ю!! Всі чисельні методи не точні.
Алгоритм Гаусса теж не точний, бо є машинні похибки "усечения и округления". Ділення найбільш вразливе до них. А в методі Гаусаа його до біса.
Якщо ж взяти класичне визначення визначника, то в ньому немає жодної операциї ділення.
Ви всіх заінтригували - а що, є НЕТОЧНІ алгоритми обчислення визначників?
Вас на першому курсі про машинний нуль і те чим float відрізняється від double не вчили?
Про точність - це питання не алгоритму, а методів обчислення. Ми обговорюємо якийсь алгоритм, з якими він працює числами - 4-байтовими float чи абстрактними класами, що уособлюють обчислювані числа - немає різниці. Ще раз прочитайте питання.
Цікаво, який такий "новий" алгоритм ви могли придумати.
Хоча ні, брешу - не цікаво.
Можете в кошик перенести, там йому місце.
Так, і детермінант українською - визначник.
Ги-ги-ги
Про точність - це питання не алгоритму, а методів обчислення. Ми обговорюємо якийсь алгоритм, з якими він працює числами - 4-байтовими float чи абстрактними класами, що уособлюють обчислювані числа - немає різниці. Ще раз прочитайте питання.
Ну, не зустрічав я обчислення визначника канонічним методом. Тому довелось алгоритм робити самому.
Ну, не зустрічав я обчислення визначника канонічним методом. Тому довелось алгоритм робити самому.
Ви, здається, маєте на увазі, що не зустрічали реалізації обчислення визначника канонічним методом. Бо якби ви не зустрічали алгоритму, то не вважали б його канонічним...
Про точність - це питання не алгоритму, а методів обчислення. Ми обговорюємо якийсь алгоритм, з якими він працює числами - 4-байтовими float чи абстрактними класами, що уособлюють обчислювані числа - немає різниці. Ще раз прочитайте питання.
Прочитайте визначення терміну алгоритм і поясніть що ви маєте на увазі під методами обчислення. І подумайте чому алгоритм Кехена називається алгоритмом, а не методом обчислення?
elektryk написав:Ну, не зустрічав я обчислення визначника канонічним методом. Тому довелось алгоритм робити самому.
Ви, здається, маєте на увазі, що не зустрічали реалізації обчислення визначника канонічним методом. Бо якби ви не зустрічали алгоритму, то не вважали б його канонічним...
Саме так.
Прочитайте визначення терміну алгоритм і поясніть що ви маєте на увазі під методами обчислення. І подумайте чому алгоритм Кехена називається алгоритмом, а не методом обчислення?
Так, я надто поспішав і тому висловився некоректно.
Я мав на увазі, що алгоритм обчислення детермінанту навряд чи буде ефективно вирішувати проблему неточних обчислень в елементарних арифметичних операціях; принаймні, для створення такого алгоритму потрібен неабиякий математичний хист, і це буде явно складніше за LU-факторизацію, до якої ОП так і не дістався.
Будь-який алгоритм має складатися з певних елементарних операцій, зрозумілих виконавцю. Якщо ми говоримо про класичний алгоритм обчислення визначника, то такими елементарними операціями швидше за все будуть арифметичні дії з числами; а алгоритми Кехена чи Карацуби за елементарні операцію мають дії із цифрами. Мені видалося очевидним, що ОП не деталізує свої дії до такого рівня, а покладається на стандартну реалізацію FPU.
Звідси найголовніше - обчислення ділення на комп'ютері дає точно таку саму точність, як і будь-яка інша операція з рухомою комою; це досягається часом, потрібним на таку операцію. Втім, ефективність алгоритму явно дає виграш порівняно із стандартним методом навіть з урахуванням втрат на ділення.
koala написав:elektryk написав:Ну, не зустрічав я обчислення визначника канонічним методом. Тому довелось алгоритм робити самому.
Ви, здається, маєте на увазі, що не зустрічали реалізації обчислення визначника канонічним методом. Бо якби ви не зустрічали алгоритму, то не вважали б його канонічним...
Саме так.
То, може, викладете його сюди на загальне обговорення?
Та нема чого викладати. Канонічний метод обчислення - це звичайна формула. Вона є в будь-якому довіднику. І все! Я просто взяв бейсик та й запрограмував її. Це зробить будь хто.
Повторюю: спосіб дуже повільний. Але в окремих випадках, коли матриця погано обусловлена(рос.), тобто визначник близький до нуля є сенс примінити канонічну формулу.
Я тут створив новий алгоритм обчислення определителя(рос.)
Що з ним можна зробити??
зробити з нього детермінант
Обумовлена погано, хочете сказати? Давайте спробуємо: ваш "канонічний" проти мого LU. Подивимося, в кого краще порахує.
Обумовлена погано, хочете сказати? Давайте спробуємо: ваш "канонічний" проти мого LU. Подивимося, в кого краще порахує.
Так, так обумовлена. Ось бачите, як ви мене збагачуєте.
Згода.
Новий алгоритм обчислення визначника матриці? думаю вам варто опублікувати статтю або захистити кандидатську. Якщо він не кращий - тоді нічого не потрібно робити.
Може підкажете видання. Або просто якусь фірму з математичного забезпечення.