LINUX.ORG.RU

Численные методы. Интерполяция


0

1

Сейчас дали домашку с темой двумерная последовательная интерполяция.
Имеет ли смысл мне получать интерполяционный многочелен, добавляя в программу кучу классов для работы с полиномами, или лучше в каждой точке вычилсять значение примерно такой штуки:
sum(p=0..n, sum(j=0..m, Zij*product(i=0..m, product(q=0..n, <Дробь>*<Дробь>))))

★★

Последнее исправление: sol_linux (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Даже не знаю, все таки мне кажется нужно все реализовывать самим (да и это довольно интересно)

sol_linux ★★
() автор топика
Ответ на: комментарий от dave

Лорчую вопрос. ООП в математических задачах, на мой взгляд и по моему опыту, только добавляет сложности.

buddhist ★★★★★
()

«двумерная последовательная интерполяция» даже и не гуглится :( почти совсем

А вот билинейная или бикубическая привели к ru.wikipedia.org страничке, а там внизу «Последовательная кубическая интерполяция»

cool-e-bin
()

> двумерная последовательная интерполяция

У нас в двухгодичном курсе «численных методов» такой интерполяции не было (ВМиК МГУ, примерно 1996 год).

pacify ★★★★★
()
Ответ на: комментарий от cool-e-bin

ihttp://solidbase.karelia.ru/edu/meth_calc/files/08.shtm
Раздел: Многомерная интерполяция

sol_linux ★★
() автор топика
Ответ на: комментарий от pacify

Ну вообщем просто «Последовательная интерполяция»

sol_linux ★★
() автор топика

Мне тоже наравилось все усложнять в этих слишком простых лабах.

amaora ★★
()
Ответ на: комментарий от AIv

Произвольного. Но вообще у меня жутко начинает возрастать погрешность (поверхность ужасно изгибается) уже на матрице задания 5x5

sol_linux ★★
() автор топика
Ответ на: комментарий от sol_linux

Дык Вас чего, не учили что интерполяции высокого порядка вредны и неприменимы? В многомерном случае актуальна мультилинейная (ее на шаблонах можно сваять для произвольной размерности), в двумерном до бикубической (непрерывна первая производная).

AIv ★★★★★
()
Ответ на: комментарий от hatefu1_dead

Болтать начинает очень сильно.

AIv ★★★★★
()
Ответ на: KISS от beastie

+1.

Главное - алгоритм разработать, а уж на каком языке его описывать и посредством каких средств выводить - дело десятое. Matlab дает возможность сосредоточиться на алгоритме и не сидеть за документацией к GUI днями и ночами.

Dikar ★★
()
Ответ на: комментарий от Dikar

Я занимаюсь числ методами, не использую матлаб (производительность ни к черту) и не сижу над документацией к GUI. ЧЯНТД?

AIv ★★★★★
()
Ответ на: комментарий от Dikar

+1

А потом отточенный в матлабе алгоритм переносится на С. И никаких проблем с пиратским софтом: в статьях не стыдно будет писать, мол, матлаб использовал. А честно пишешь: разработанный математический пакет =)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Помню, мне одногруппник рассказывал. Дали одному его корешу задание... на сортировку. сделать на дельфях. тот сказал, а можно на php? ну он типа php знает немного и т.п... преподу как-то пофик, сказал, можно... принёс... «программу», скрипт из нескольких строчек... в одной из них вызов что-то наподобие «sort»...

GSL хорошо использовать для промышленных целей ;) когда надо чтобы работало, и быстро. а когда задают домашку - как правило хотят, чтобы студентота сама реализовала... алгоритм. для того типа алгоритмы и учат ;)

BattleCoder ★★★★★
()
Ответ на: комментарий от BattleCoder

Реализовать алгоритм двумерной интерполяции даже несчастными бикубическими сплайнами - задача далеко нетривиальная. Плюс очень хорошо надо знать матчасть.

А вот GSL позволяет это сделать легко и непринужденно.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от pacify

hugin, получается очень даже недурно и на полном автомате. у меня там ещё не все выложины, никак руки не доходят.

beastie ★★★★★
()
Ответ на: комментарий от AIv

ЧЯНТД?

обьясняю на пальцах: ты занимаешся численными методами и не седиш над документацией, значит у тебя уже есть опыт, наработки и знания в этой области. а ТС-у всего-то домашнее задание сделать надо. чуеш разницу?

mathlab/octave дают в этом плане дают гораздо больше выразительных способностей, позволяют _быстро_ смоделировать алгоритм и не заморачиваться с внутренней кухней матриц и т.п., не имеют ограничений float/double, а именно там по незнанию можно сильно напортачить. и дебажить свою сишную программу ты будеш в эоны дольше, чем пол милисекунды более медленных расчётов.

beastie ★★★★★
()
Ответ на: комментарий от beastie

А где в ДЗ ТС-а сказано про гуи?

А применять он тоже в жизни будет матлабовскую поделку, или все таки сделает нормальную реализацию на плюсах для боевой программы?

А что, научится дебажить сишную программу это не есть элемент обучения?

AIv ★★★★★
()
Ответ на: комментарий от AIv

Вам, видимо, везет. Когда мне нужно было заниматься подобным ,хоть и на matlab, при необходимости вывести на экран таблицу, график или что - то еще, приходилось смотреть в документацию на GUI и функции. Вы с рожденья знаете софт на котором работаете? А может просто вы на нем работаете часто и знаете много о нем, а не один семестр за лабами проводите?

Dikar ★★
()
Ответ на: комментарий от Dikar

Зачем тут гуй нужен вообще? (да и зачем он нужен везде=)) Ну на плюсах я пишу скорее для того, чтобы больше практиковаться на нем. А для вывода всяких графиков можно использовать OpenGL (или какой-нибудь gnuplot)

sol_linux ★★
() автор топика
Ответ на: комментарий от AIv

если он с головой дружит, то будет в жизни применять нормальную реализацию на матлаб, а не поделку на сях и только если он упрётся в bottle-neck, перепишет критические участки в чём-либо другом или изменит алгоритм. каждому инструменту своё место, когда-нибудь ты это тоже поймёш.

beastie ★★★★★
()
Ответ на: комментарий от sol_linux

Ну на плюсах я пишу скорее для того, чтобы больше практиковаться на нем.

ну, если just for fun, то ни кто за руку не держит. но учти, что у double слишком низкая точность, особенно для значений стремящихся к нулю, что в свою очередь ведёт к быстро прогрессирующему накоплению погрешности, в проть до сплошного мусора на выходе. можно конечно задействовать bignum, но это уже будет не fun.

beastie ★★★★★
()
Ответ на: комментарий от sol_linux

it depends. может и float хватить, а может и long double не хватить, зависит от расчётов и алгоритма. особенно это проявляется как раз на итерационных расчётах при умножении на значения меньше единицы.

beastie ★★★★★
()
Ответ на: комментарий от Dikar

GUI для численного моделирования не нужен. Вообще. Данные хранятся в файлах и выводятся в файлы, графики строятся стандартными графопостроителями, таблицы выводятся в виде текста, если хочется красоты генерится LaTeX вариант. Где тут место GUI?

Да, есть задачи требующие GUI (напр визуализации каких то сложных данных, что бы можно было картинку мышкой крутить а стандартные визуализаторы по каким то причинам не устраивают) - когда до таких дорастете, то с GUI проблем уже не будет;-)

AIv ★★★★★
()
Ответ на: комментарий от beastie

> каждому инструменту своё место, когда-нибудь ты это тоже поймёш.

Какое у матлаба место я давно понял - это инструмент для хомяков не асиливших реализацию своих задач на нормальных ЯП.

Фразы про нехватку точности во float/double вызывают ухмылку - такие вещи решаются на уровне алгоритма, а не тупым не переходом на супер-пупер форматы чисел.

AIv ★★★★★
()
Ответ на: комментарий от AIv

Так как я не математик, то решил тогда все сделать красиво. Matlab был требованием преподавателя и одновременно довольно простым инструментом.

Dikar ★★
()
Ответ на: комментарий от sol_linux

gnuplot использовал вместе с maxima, и тут могу согласиться, небольшой инструмент. OpenGL для вывода графика в лабораторной... мои глаза пока не настолько покраснели.

Зачем нужен гуй? Если вы читаете это форум в lynx/w3m/links, то готов вам посочувствовать, иначе попрошу не вы...ся.

Dikar ★★
()
Ответ на: комментарий от beastie

??? Вы в психологии разбираетесь еще хуже чем в числ. методах, хоть и в Берлине сидите... аргументировано сказать че то можете?

AIv ★★★★★
()
Ответ на: комментарий от Dikar

У меня коллеги решают в матлабе системы ОДУ (небольшинькие). Для чего то простого оно хорошо подходит, кто ж спорит... но когда с такими навыками придется решать задачи где играет роль производительность и размер потребляемой памяти, то глаза не то что покраснеют - они лопнут нафиr и вытекут на клаву, с гуем ли, без гуя;-)

Мы учим студентов связке питон-С++. Через 1.5 года после начала обучения нормой считается защита бакалавра с драфтом кодом, на порядок опережающим по производительности все мировые аналоги в данной области. Еще через 2 года магистерский диплом с применением этого кода к актуальным физическим задачам.

AIv ★★★★★
()
Ответ на: комментарий от Dikar

> Так как я не математик, то решил тогда все сделать красиво.

И да, уж взяли бы тогда ексель. Он формулы понимает, чуть ли не с размерностью, тока мышкой кликай. Знакомый из керосинки в екселе кандидатскую сделал. Вот только в таких задачах гуй ничего кроме APM не поднимает, но это же неважно? Зато красиво!

AIv ★★★★★
()
Ответ на: комментарий от Dikar

Никаких проблем, какой курс? Идете на диплом к Морозову (ваш прорректор по науке), с НГ к нам придет очередной набор из МФТИ (середина третьего курса). Морозов Вас к нам и направит (в ИПМ).

AIv ★★★★★
()
Ответ на: комментарий от AIv

В смысле с НГ придет очередное пополнение, к-е будем учить с нуля, и Вы можете присоединится.

AIv ★★★★★
()
Ответ на: комментарий от AIv

а чего мне с вами спорить? вы ж светило науки, не имеющее аналогов в мире! то что хотел, я уже сказал. кто хотел услышал.

beastie ★★★★★
()
Ответ на: комментарий от beastie

> вы ж светило науки, не имеющее аналогов в мире!

Я??? Нет, хотелось бы быть таким но пока увы. Ну не хотите спорить, не спорьте;-)

AIv ★★★★★
()
Ответ на: комментарий от AIv

Четвертый курс МИРЭА. До специалиста доучусь уж у себя, а как быть с магистратурой/аспирантурой буду думать ближе к диплому.

Dikar ★★
()
Ответ на: комментарий от Dikar

Так учитесь же у себя конечно. Но ничего не мешает ходить к нам на занятия (если хотите) и делать диплом де-факто у нас. Во всяком случае если Морозов Вас на диплом возьмет;-)

AIv ★★★★★
()
Ответ на: комментарий от AIv

У меня базовая кафедра в одном из московских НИИ. Там я прохожу практику и работаю на ставке 0.8, живу в области, так что времени на доп. обучение в данный момент нет. Если у вас дают такие знания остается только позавидовать ;)

Dikar ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.