Полная версия этой страницы:
ОММ
Alex SUN
12.2.2006, 19:30
Выкладываю программу курса.
Говорят еще, что будет некое практическое задание...
Если дело до него дойдет, можно будет писать в этот топ.
qBot |+1/2>
12.2.2006, 20:35
Прака должно быть 2 ! Это и на сайте написано и вроде всегда так было
Но вот слухи или нет, что их как-то на экзамене надо предъявлять
Нато Тихонова на эту тему потрясти
Если кто знает, когда, кому, при каких обстоятельствах и каким образом сдавать эту байду, которую раздали для решения, напишите сюда, пжлста
В прошлом году было так: в середине семестра Тихонов раздал каждому личное задание на лекции. В него входило две задачки. К первой из них было указание решить ее с помощью пакета матлаб.
Вторую же нужно было решить численно с использованием любого доступного языка программирования. (вроде как ЛабВью уже не катит.. насчет матлаба не в курсе)
К экзамену все это надо было оформить в виде отчета с картинками по первой задаче и описанием метода решения и кодом программы доля второй задачи.
На экзамене иногда смотрели только этот отчет, чаще еще и что-то по курсу спрашивали.
Надо было уметь изменить с ходу код своей программе, если препод попросит заменить начальные или граничные условия или уберет неоднородность или еще что.. в общем, в своем коде надо разбираться..
вроде все..
Ну и отлично
Цитата(Iney @ 3 апреля 2006г. - 20:28)
На экзамене иногда смотрели только этот отчет, чаще еще и что-то по курсу спрашивали.
Мне нравится

(первый вариант

)
Сэнкс Iney
Экзамен в этом году состоит из 3-х частей:
1) Теория (по курсу лекций) -
Там, где Тихонов пользовался на лекциях прозрачками,
нам на экзаменах можно будет пользоваться литературой

Однако, "простые" (со слов Тихонова) выкладки
мы должны уметь делать сами

2) Нетривиальные задачи метематической физики
и математичского моделирования -
Есть ряд непростых задач, которые нужно уметь решать.
Скоро выложу сюда условия и решения.
3) Проэкты №1 и №2 -
Тут все остается так же, как и в прошлом году - см. пост Iney

Ну и конечно для сдачи экзамена (по крайней мере Тихонову)
необходимо общее понимание и знание курса
Обещаные задачки - часть 1.
Часть 2 ожидается
p.s. бее...
все номера перемешались

Скоро перевыложу архивом.
Ой! У нас тоже что-то подобное было... Но в результате наши решения зачастую содержали ошибки.. Так что надо внимательнее к ним подходить...
Ну и большинство преподавателей требовали с ходу объяснить решение по распечатке... Тихонов просил "набросать примерный ход решения" без решения перед глазами, естественно. Может в этом году строже будет... Но набросать решение - это уже неплохо!
Тихонов вообще жоский чел, у меня (правда, на досрочном) спросил, что будет, если изменить граничные условия, тип уравнения, чего-то еще (не помню уже), потом начал спрашивать, зачем нужна эта строчка в проге, а эта зачем, а эта... Не идите к нему.
А еще у нас один парень написал прогу не на СИ, а на Дельфи (я в этом 0, так что могу название перепутать, сорри). Тихонов ему сказал, мол, ну я Дельфи не секу, так что будем надеяться, что у Вас все верно=)
Цитата(Jesper @ 7 апреля 2006г. - 22:20)
Тихонов ему сказал, мол, ну я Дельфи не секу, так что будем надеяться, что у Вас все верно=)
Йеспер, спасибо за полезный совет
Black Arrow
7.4.2006, 22:40
а у первого потока (лектор - Боголюбов

) как дела с экзаменом обстоять будут, никто не в курсе?)
2 Black Arrow
Боголюбов у нас давал свои прозрачки и просил объяснить, что на них написано. И очень любит тех, кто ходил к нему на лекции. В целом он гораздо лучше Тихонова. Хотя, вроде бы они договариваются, что принимают каждый у своего потока)
Респект за info всем сочувствующим!

Выкладываю 2-ю часть методички.
Архивы размером больше 1.5 mb я на этот форум выкладывать не умею.
Никак.
Сорри...
ivandasch
9.4.2006, 13:35
Немного комментов по работе по ОММ
1. Первую задачу из Боголюбова Кравцова нужно решить ЛЮБЫМ пакетом для решения PDE. Большинству хватит Matlab. Но есть ряд задач, которые принципиально не решаются таким образом. Советую попробовать FreeFEM++ или FemLab. Графики ни в коем случае не должны быть трехмерными и цветными. Они должны бть двумерными и в изолиниях.
2. Вторая задача - это параболическое уравнение.Вторую задачу можно сделать на любом языке программирования или математического пакета, причем в обязательном порядке должен быть представлен алгоритм решениия тридиагональной матрицы, aka прогонка. Графики тоже должнгы быть двумерными, желательно представить серию решений при разных t.
3.Любого нормального математика раздражает документы, сверстанные в Worde. За это оценки не снижают, ессно, но впечатление можно легко улучшить, сверстав отчет в TeX. У меня есть рыба примерного отчета в TeX, могу поделиться. Далее есть
могу легко объяснить как сделать прогонку на С и С++. Большинству понравится наверно вариант на С

.
2 ivandasch
Давай на си алгоритм кидай.
Белка-летяга
9.4.2006, 15:47
угу
кидай
а можно оба на си?
матлаб лень учить
2 ivandasch
можно мне тоже?
ivandasch
9.4.2006, 16:11
Первую задачу на С? Хехе, это весч не самая простая, да. Если область несложная, типа прямоугольника, тогда нормально, я делал. Если область сложная - нужно юзать Finite Element Methods. Это триангуляция Делоне, быстрое интегрирование, выбор сплайнов. Нет, это совсем непросто, я на это пока забил.Сейчас кину программулину, консольную на С++. Могу кинуть графическую, использующую Qt4. Но это пока лишнее

.
ivandasch
9.4.2006, 16:19
Итак, скину часть с моей графической проги, для научника:
Метод решения уравнения с тридиагональной матрицей:
файл tridiag.h
Код
#ifndef TRIDIAG_H
#define TRIDIAG_H
int tridiag_solve(double* d,int Nd,double *c,int Nc, double *b,int Nb,
double *r,int Nr,double *x, int Nx);
double vect_eucl_norm(double *x, int Nx);
#endif
файл tridiag.cpp
Код
#include "tridiag.h"
#include <cmath>
using namespace std;
int tridiag_solve(double* d,int Nd,double *c,int Nc, double *b,int Nb,
double *r,int Nr,double *x, int Nx)
{
//basic initialization
double *lambda = new double[Nc],
*delta = new double[Nc];
//forward
for ( int i = 0; i < Nc; i++)
{
if(i == 0)
{
lambda[i] = r[i]/c[i];
delta[i] = -1.0*d[i]/c[i];
}
if(i == Nc-1)
{
lambda[i] = (r[i] - b[i-1]*lambda[i-1])/(c[i] + b[i-1]*delta[i-1]);
delta[i] = 0;
}
else
{
lambda[i] = (r[i] - b[i-1]*lambda[i-1])/(c[i] + b[i-1]*delta[i-1]);
delta[i] = -1.0*d[i]/(c[i] + b[i-1]*delta[i-1]);
}
}
//backward
for(int i = Nc-1; i>=0; i--)
{
if(i == Nc-1)
{
x[i] = lambda[i];
}
else
{
x[i] = delta[i]*x[i+1] + lambda[i];
}
}
delete[] delta;
delete[] lambda;
return 0;
}
double vect_eucl_norm(double *x, int Nx)
{
double u = 0;
for(int i = 0; i< Nx; i++)
{
u+= x[i]*x[i];
}
return sqrt(u);
}
Это решает уравнение вида:
Что-нибудь слышно про сдачу ММФ на компах?
qBot <+1/2|+1/2>
10.4.2006, 22:02
Весь вечер дома тихо... ничего не слышно, кроме пылесоса
Alex SUN
10.4.2006, 23:16
)))))))))Четверг.
4-я пара.
Сдаем!

ММФ+ОММ - теория
можно пользоваться всем
Белка-летяга
12.4.2006, 2:57
а какие группы участвуют?
ivandasch
15.4.2006, 21:13
Ура, я сделал это!!! Задача такая
)
=u(2,t)=0, u(x,0) = sin(2 \pi x))
Я сподобился сделать MEX-функцию tridiag, которая решает методом прогонки систему с трехдиагональной матрицей. Кто не знает - MEX-функция - это dll, которая MATLAB определяется как встроенная функция. Она написана на С++. Получается довольно быстро.
Матлаб говно. Лучше на си писать.
ivandasch
15.4.2006, 21:44
Ну вообще-то там вычислительная часть на С сделана. Кстати Матлаб отнюдь не ерунда. По крайней мере графики рисовать там хорошо. А для линукса я могу дать версию, у меня есть
P.S. Меня всегда удивляло такое отношение. Фанатизм не есть хорошо. Матлаб удобен для определенных целей, его ожно расширять плагинами, которые вполне можно сделать на С. Зачем тратить свое время на интерфейсную часть? Особенно если за это не заплатят. Тем более я сомневаюсь, что "своя" программа будет также хорошо сохранять в векторные форматы картинки. Я в свое время на это забил, время не хотелось тратить.
Цитата(NoNAME2 @ 15 апреля 2006г. - 22:39)
Матлаб говно. Лучше на си писать.
Для таких элементарных задач си не нужен!
И у этого "говна" больше возможностей!
Alex SUN
16.4.2006, 10:20
2 ivandasch:
Спасибо огромное!
Начинаю разбираться с кодом tridiag.zip
Уже интересно
qBot <+1/2|+1/2>
16.4.2006, 10:25
Имхо, физику сейчас вообще не неужно писать ни каком С/С++ и других
низкоуровневых языках, ибо это изобретание велосипеда.
Профессиональные пакеты решают ! MatLab, LabVIEW, Mathematica и т.е. и никакой с тебе не нужен !
Если ты что-то начал на С писать - ты программист, а не физик

Сейчас конечно, учитывая консервативность и медлительность нашего образования (и сознания), долго еще будут пользовать С очень активно, но в скором времени его роль будет сходить на нет.
P.S. Имхо, это почти как: надо написать текст курсовика - ща возьму и с и сделаю себе ворд

Логика линуксеров/юниксеров; но неэффективно ! Надо уметь пользоваться тем, что другие уже сделали давно....
ivandasch
16.4.2006, 10:48
На юниксоидов не надо гнать

. Как раз подход Unix-way - не делать все самому, использовать специализированные утилиты. Например нет эффективного решения задачи в матлаб - напиши на С плагин, не трать свое время на реализацию GUI. Кстати, напомню, Matlab, Maple, Mathematica - поддерживают ВСЕ ОС для рабочих станций. В нормальных странах используются UNIX-workstation.
Насчет С/С++/Fortran ты не прав, очень много есть проблем , которые пока невозможно эффективно решать даже на четырехпроцессорной рабочей станции. Кластерные вычисления, сложные алгоритмы, огромные объемы данных - там ничего, кроме С и Fortran использоваться не может!
Цитата(qBot <+1/2|+1/2> @ 16 апреля 2006г. - 10:25)
Имхо, физику сейчас вообще не неужно писать ни каком С/С++ и других низкоуровневых языках, ибо это изобретание велосипеда.
Профессиональные пакеты решают ! MatLab, LabVIEW, Mathematica и т.е. и никакой с тебе не нужен !
Было бы очень здорово, если бы это было правдой. Но когда программа считает 3-4 недели, невольно задумаешься об эффективности. И такие задачи - отнюдь не экзотика.
ivandasch
16.4.2006, 11:06
Абсолютно верно. Например сейчас на современном уровне аэродинамическая задача считается с такой точностью, что учитывается каждая заклепка на самолете.
Посчитай такое на матлаб

)). Я не говорю про газодинамику, ударные волны, задачи магнитной гидродинамики и прочая, прочая, прочая. А задачи восстановления изрображений?. Да и вообще некорректные задачи. Там матлаба явно не хватит
qBot <+1/2|+1/2>
16.4.2006, 15:17
Ну если такие задачи действительно можно считать настолько распространенными, то соглашусь, что был излишне категоричен в своих суждениях.
Уверен, что для аеро/газодинамики есть свои пакеты

я вот когда занимался вихрями на летней школе, то на FEMLABE на ноуте замоделировать нужное явление не смог по причине нехватки памяти... Но нашел в инете коммерческий и закрытый проект, который эти вихри щелкал как орехи, причем какими-то НЕсеточными методами !
Но, имхо, это все программизм уже какой-то. Зачем ФИЗИКУ заклепки-то на самолете считать ?!? Или там и без заклепок набежит на неделю вычислений?
P.S. Появилось желание заботать ОММ и найти че-нить на ВМиК про кластерные сети... или у нас на фф читают об них что-то тоже?
P.P.S. еще вспомнил про идею сделать у себя дома для Mathematica сеть небольшую - благо условия вроде позволяют
Цитата(qBot <+1/2|+1/2> @ 16 апреля 2006г. - 15:17)
Но, имхо, это все программизм уже какой-то. Зачем ФИЗИКУ заклепки-то на самолете считать ?!? Или там и без заклепок набежит на неделю вычислений?
Нет, ну зачем же заклепки... Как тебе, например, задача о проводимости металла с магнитными примесями. При низких температурах там включается очень интересная физика, и выключаются все привычные аналитические методы.
Можешь узнать у своего куратора, чем он занимается, и сколько это требует машинного времени
ivandasch
16.4.2006, 15:27
Ну во-первых, ФИЗИКУ нужно и не такое считать, Во-вторых пакет считал разностными методами(не аналитикой же

), в-третьих для изучения MPI тебе нужно обращаться в НИВЦ, в-четвертых GRID-MATHEMATICA отдельный и очень дорогой проект, обычная mathematica может использовать во всей красе только многопроцессорные системы.

)
P.S. Насчет программизма - это больше работы МАТЕМАТИКУ, доказывать устойчивость, аппроксимацию и сходимость этих зубодробительных методов. Ну и придумывать их тоже.
P.P.S. А что за предмет такой ОММ? По-моему ээто появилось от того, что не хотелось называть ММФ-2. Курс странный какой-то, часть УрМатФиз, часть ЧМ, часть введение в модные фишки в Математической физики:). Дурацкий курс, имхо.
2 ivandasch +1
Предмет - муть редкостная. Более дурацкий курс - только МСС на пятом курсе 
Дело в том, что курс ММФ не влезал в 1 семестр и решили сделать 2. Но на 2 материала не хватало, и пришлось впарить туда, как ты правильно выразился "модные фишки". Причем нелинейные уравнения, вейвлеты и т.п. заслуживают по отдельному курсу. И на многих кафедрах эти отдельные курсы читаются. Что же касается ЧМов, то они являются общим курсом для всех в 8 семестре. Вот и думаешь, нафига нам сдался этот ОММ??
ivandasch
16.4.2006, 16:13
Дело даже в том, что нормально можно было сделать курс Основы Математической Физики годовым. А то получилось не два н полтора. Добавили хотяб немного функциоанльного анализа и теории ПДО - получился бы очень неплохой курс. А в итоге имеем то, что есть

P.S. Появлилсь ли вопросы по поводу выложенного мной? Может что непонятно, всегда готов ответить.
Alex SUN
26.4.2006, 15:14
Господа, а кто начал что-нибудь делать/разбирать по ОММ?
Отзовитесь!
Я бы не прочь вступить в дискуссию
Цитата(ivandasch @ 15 апреля 2006г. - 21:44)
для линукса я могу дать версию, у меня есть
У тебя случайно нет математики под линукс?
Хочу попробовать
А то математика у меня стоит на vmware, приходится делить на двоих оперативу...
Заранее спасибо!
ivandasch
27.4.2006, 19:05
Валялась где-то. Но учти, что это убогое зрелище, Motif в линуксе без напильника выглядит просто ужасно, придется докачать шрифты с их сайта. Жаль, что кейген работает только в винде, мне пришлось погеморроится в свое время. В этом смысле matlab с maple молодцы(сделаны на жабе). Скоро у меня будет maple 10 для всех OS, но ключик придецца тебе самому в осле поискать.
qBot <+1/2|+1/2>
27.4.2006, 20:39
Могу принести, хоть завтра ! У меня есть 5.1. Там и под лин и под вин...
ivandasch
27.4.2006, 20:43
Дак это старая

)). Там много вкусностей нету. Да и тормозит больше, я опробовал. 5.3 намного лучше. Только обольщаться по поводу этого не стоит. Помнится мне Арсеньев А.А. рассказывал, как его докторант в Германии над немцем издевался - пока у немца mathematica тормозила, наш уже на бумажке ответ выписывал

. Да и сам я , признаюсь, редко этим пользуюсь....
qBot <+1/2|+1/2>
27.4.2006, 20:47
Ага-Ага... Вот только 5.3 еще не вышла и даже нет про нее на сайте ничего

И ничего принципиально нового в 5.2 по сравнению с 5.1 нету. 64 битность пока не нужна
2 ivandasch: спасибо большое за участие!
к математике привык уже... в маррle мне синтаксис меньше нравится
Вано, тащи 5.1 под пингвина, меня она пока вполне устраивает
ivandasch
27.4.2006, 20:55
Звиняйте, перепутал с 5.2
)). Мог бы конечно сказать про спец сборку от самого Стефана Вольфрама......
Вообще пакет интересный, но тормозит правда...... Кстати в 5.2 используется(ave!) многопоточность, что реально ускоряет расчеты(у меня гипертрединг, скорость реально увеличилась). И, что мне нравится в математике, тормознутость от версии к версии не возрастает - отличный пример софтописателям
.
Известно, когда надо сдавать проги по ОММ?
Или можно прямо к экзамену?
Цитата(Rainbow @ 1 мая 2006г. - 11:17)
Или можно прямо к экзамену?
Не можно, а нужно!
Экзамен, как я понял состоит из трех частей. Первая: беседа по проге, которую заранее пишешь, вторая: теория, третья: умение решать задачи из методички.
qBot <+1/2|+1/2>
7.5.2006, 9:17
Цитата(Dushes @ 1 мая 2006г. - 20:07)
Кого куда решать??? Какие задачи?.. Из какой методички - самое главное
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.