LINUX.ORG.RU

Численные методы


0

1

Есть система вида стенка-пружина-кубик-пружина-кубик. Стенка неподвижна, у кубиков есть трение относительно пола (ну или просто внутреннее трение в пружинах, не важно).

Нужно численно получить поведение системы при известных началных условиях.

Для одного кубика это делается легко методом конечных разностей. А тут как?

★★★★

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

Написать нужные дифуры, решить их одним из способов.

Хорошо переформулирую вопрос: помогите составить нужные дифуры.

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

Ну, это уже не development...

Нарисуйте кубики и силы, действующие на них. Получите для последнего кубика: сила упругости (условно пропорциональная расстоянию между этими кубиками) + сила трения (будем считать ее постоянной для простоты); на первый кубик действуют две силы упругости и одна сила трения. Получим уравнения вида \ddot x_1 m = k(x_2-2x_1) + F_{упр}; \ddot x_2 m = k(x_1 - x_2) + F_{упр}. Приводим систему к виду, не содержащему «чужой» переменной x и решаем.

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

почему кстати на лоре нельзя изображения вставлять в комментарии, чтобы показывать в сообщениях формулы, например, API Google Chart?
Это же понять невозможно \ddot x_1 m = k(x_2-2x_1) + F_{упр}; \ddot x_2 m = k(x_1 - x_2) + F_{упр}.
Из-за конфиденциальности нету избражений, чтобы айпи никто не узнавал у друг друга через ссылки на изображения?

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

Ну, это уже не development...

Это единственный технический раздел :)

Спасибо, чего-то я ступил, действительно.

F_{упр} должно быть F_{тр}

Это же понять невозможно

Все возможно, нормальный TeX.

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

F_{упр} должно быть F_{тр}

Точно, извиняюсь: голова после вчерашнего праздника до сих пор квадратная :)

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

Это же понять невозможно \ddot x_1 m = k(x_2-2x_1) + F_{упр}; \ddot x_2 m = k(x_1 - x_2) + F_{упр}.

Если вам непонятно - прогоните через латех.

Вот вам скриптик:

cat /home/eddy/bin/formulator 
#!/bin/sh
prefix="tmp_$$"
output=$(date +%y.%m.%d_%H:%M:%S.png)
tex="$prefix.tex"
cat > $tex << EOF
\documentclass[12pt]{minimal}
\usepackage[koi8-r]{inputenc}	% Классическая кодировка
\usepackage[english,russian]{babel}	% Правила переноса слов
\usepackage[intlimits]{amsmath}	% Мат. команды
\usepackage{amsfonts}		% Шрифты
\usepackage{amssymb}		% Спец. символы
\usepackage{wasysym}		% Для астрономических символов типа знаков зодиака
\parindent=0pt
\begin{document}
\setbox0=\hbox{
EOF
echo $* >> $tex
cat >> $tex << EOF
}
\textheight=\ht0
\textwidth=\wd0
\advance\textheight by \dp0
\advance\textwidth by 2em
\copy0
\end{document}
EOF
latex $tex
dvipng -D 600 $prefix.dvi -o $output
rm -f $prefix*

Eddy_Em ☆☆☆☆☆
()

Для одного кубика это делается легко методом конечных разностей. А тут как?

M2 * X2" = (X2 - X1) * K2 - X2' * G2,

M1 * X1" = (X1 - X2) * K1 - X1' * G1

как-то так. Всё это точно так же расписываешь в разностную схему, выражаешь x(i, n+1) через x(i, n), x(i, n-1) и считаешь итерациями.

ну или просто внутреннее трение в пружинах, не важно

это важно, будут разные формулы диссипации. Выше модель для трения кубиков о поверхность.

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

Немного наврал, второе уравнение будет таким

M1 * X1" = X1 * K1 - (X2 - X1) * K2 - X1' * G1

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

Только у Вас почему то трение не о поверхность а о жидкость (вязкое трение). Трение о поверхность в первом приближении не зависит от скорости. При трении о поверхность система остановится с деформированными пружинами, при вязком трении в итоге все пружины распрямятся.

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

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

За метод Верле спасибо.

Вот только судя по описанию уравнение со скоростью с помощью него не решить :)

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

олько у Вас почему то трение не о поверхность а о жидкость (вязкое трение)

Да, точно. Такая модель может подойти к трению в пружине, хотя и тут много НО.

И считать надо коненоч не тупо конечными разносятми (первый порядок точности, все разойдется нафик), а взять метод Верле (Верлета),

При желании порядок сходимости можно сделать больше первой степени, будет схема расходиться или нет зависит от правильного выбора шага (это характерно для любого метода). В общем, это офтопик.

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

Вообще то методом Верле интегрируют у-я молекулярной динамики, которые тоже со скоростью и еще много с чем. Если в википедии смотрели и не увидели там скорости не пугайтесь, гляньте тут напр http://www.moldyn.ru/library/manual/p1-4.htm

Что такое трение в пружине я вообще не понимаю... Вы видели пружину? Где там в ней трение?;-))) Всегда моделируют трение груза в среде, пружина это некая абстракция (первый член разложения реального потенциала в ряд).

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

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

Где там в ней трение?

Внутреннее трение у реальных пружин есть.

В данном случае пружины и грузы - это кусочек модели твердого тела представленного сосредоточенными массами и их связями.

Методами первого порядка пользоваться просто нельзя, т.к. решение никуда не сходится - при уменьшении шага растет число шагов и накопленная ошибка остается той же.

Но решают-же?

Но и правда оффтопик.

Не вижу ничего офтопичного.

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

>Методами первого порядка пользоваться просто нельзя, т.к. решение никуда не сходится - при уменьшении шага растет число шагов и накопленная ошибка остается той же. Но и правда оффтопик.

ОХЩИ! Вот это, я понимаю, глубинное понимание численных методов.

Школьник что ли?

aedeph
()

вариация действия равна нулю. уравнение лагранжа запиши и решай.

anonymous
()
Ответ на: комментарий от alexru

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

Что касается модели твердого тела, то почитайте что нить по молекулярной динамике, там ооооочень много сделано. В таких моделях как правило не вводят никакого трения, там по физике совсем другая диссипация, и исходные ур-я мол. динаимки консервативны вообще то;-) Иногда вводят эквивалент вязкого трения для частиц на границе области (напр подложка при напылениии пленки), но это делают вместе с введением случ источника для эмуляции термостата.

Но решают-же?

С первым порядком точночти? Можете к этим «решателям» присоединится, если Вас не интересует результат;-) Там бывают очень забавные численные артефакты.

Как правило юзают методы от второго порядка и выше.

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

> Школьник что ли?

Да-да, 9-й класс. А что дяденька, я в чем то не прав?;-(

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

>Можете к этим «решателям» присоединится, если Вас не интересует результат;-)

Модель атмосферы и океана, входящая в пятерку лучших в мире, разрабатываемая в Институте Вычислительной Математики РАН, для некоторых уравнений использует разностные схемы первого порядка. Но макакам проще - циферка больше - все гораздо круче. Такой символ веры людей, которые не способны сами посчитать ошибки.

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

Ой дяденька, Вы климатологией заниметесь? Я тоже хочу! Как к Вам попасть? я призер Урюпинской олимпиады по физике!

А если серьезно, то как именно Вы определяете порядок точности?

За макаку спасибо, меня тут один практик (гащовый мастер) давеча тоже повеселил. Плита газовая глючить у мамы начала, вызвали пришел - все грит нормально, не пойму как может глючить. Я давай расспрашивать о предохнранителе в духовке, ну грит термопара, вон спай в огне. А второй спай где спрашиваю? Да нет грит у нее второго спая, один только... Я его и так и эдак - не грит, не бывает. Я грю да блин, студентов этому в учу! А, грит, вы все по букварям а мы на практике, на практике все не так...

Удачного моделирования атомосферы, постарайтесь свопасть с данными метеостанций, полученными на односпайных термопарах!

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

Для описания трения в реальной пружине обыкн. диф. ур-я неприменимы

Что же вы за ерунду пишите. Всё можно, в зависимости от требуемого качества и точности.

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

Мдя? Ну ка, представьте как мне пожалуйста модель, описывающую трение в реальной пружине, скажем находячейся в воздухе, на основе ОДУ. Очень хочется посмотреть, как Вы опишите пространственно-неоднородный процесс, распределенный по всему образцу.

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

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

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

Примерно выглядит так: увеличиваем колв-о степеней свобод модели, т.е. делим пружину на несколько сегментов со своими дополнительными диф. уравнениями. Кол-во сегментов и виды диф. уравнений для них подбираем исходя из своих хотелок (опять офтопик).

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

И это даже не обязательно делать, модель всегда приближение физики с нужной точностью. Если требуется наблюдать качественно явление, то может хватить простого члена типа x' * u, или g(x, x') в общем виде.

Если впадать в маразм, давайте озадачимся описанием движения самой пружины (она же тоже материальная) и придём к выводу, что модель из топика вообще никак нельзя решать системой диф.уравнений.

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

к тому же в процессе моделирования невозможно понять остались вы врамках исходных допущений или уехали далеко за их пределы.

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

Никакая численная модель (и мат. модель) не является универсальной, их делают с определённым ожидаемым результатом и с относительно известной областью применимости.

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

Вы путаете мокрое (физ-мат модель) и соленое (методы решения применяемых в ней ур-й).

ФИз мат модель - это идеи, записанные в терминах математики. Их можно и словами записать, напр Рухадзе делает великолепные доклады без единой формулы, все совершенно понятно.

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

Если впадать в маразм, давайте озадачимся описанием движения самой пружины (она же тоже материальная) и придём к выводу, что модель из топика вообще никак нельзя решать системой диф.уравнений.

Построение модели как раз и состоит в том, что бы пренебречь какими то процессами. Если грузы много тяжелей пружины и еще при ряде ограничений самой пружиной можно пренебречь. В некторых случаях пружиной пренебречь нельзя, и тогда да - ОДУ тут не работают, четсно пришем ур-я теории упругости, потом их при необходимости преобразуем и как то решаем, но еще раз - РЕШЕНИЕ уравнений и ПОСТОРЕНИЕ моеди это совершенно разный процессы.

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

> Для этого всегда есть «юнит-тесты»

Все это целиком и полностью укладывается в теорему Геделя;-)

Здравый смысл? Я еще не видел гидродинамика, к-й бы сказал - нет, мы это посчитать не можем потому что тут ГД не работает. Ладно, вообще ушли от темы.

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

Вы путаете мокрое (физ-мат модель) и соленое (методы решения применяемых в ней ур-й).

Нет, мы ничего не путаем :) Это Вы не понимаете одной вещи (см. картинку в конце). Флуд и офтопик, так флуд и офтопик...

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

Допустим, есть у нас урмат, выбрали некий численный метод решения и получили численную схему расчёта. Теперь есть некая система диффуров, получили схему расчёта и для этой модели.

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

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

В некторых случаях пружиной пренебречь нельзя

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

ОДУ тут не работают, четсно пришем ур-я теории упругости

ОДУ всегда работают. Своё «ур-е теории упругости» можете заменить эквивалентной системой диф. уравнений. Сделать это можно по любому сценарию - из физ. соображений делением на сегменты или через формальный откат численной схемы.

еще раз - РЕШЕНИЕ уравнений и ПОСТОРЕНИЕ моеди это совершенно разный процессы.

Смотрите что получается, когда за дело берутся любители всё делить на части.

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

Да-да, все можно, но... произведя такую замену Вы теряете возможность пользоваться аналитикой, это раз. Такая замена в числ методах требует некоторого обоснования, есть всякие критериии на шаги и проч - делая такую замену нужно четко пониматбь что делаешь, это два. И наконец, бывает что прямой переход корректен, а обратный нет (например от уравнения Фоккера-Планка можно перейти к стох. ДУ, а назад нет - переход неоднозначен).

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

AIv ★★★★★
()

Просто для информации - все сошлось, получились интуитивно похожие на правду графики.

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

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

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

Интуитивно похожие на правду графики отличаются от правильных графиков как мин численными значенями. Не говоря о том, что в озвученнйо задаче возникают биения (если трение невелико), и глазом оценить правильность этих биений - надо быть нереально крутым спецом в теории колебаний.

Даже обычный синус может отличаться от пральных значений по амлдитуде, частоте и фазе весьма существенно, но инутитивно вы этого не заметите - синус и синус...

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

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

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

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

Порядок схем обычно определяется скоростью сходимости численного решения к аналитическому. (при наличии оной)

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

А еще есть максимальный порядок полинома, который на схеме решается точно.

Числа эти в общем случае не совпадают.

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

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

В общем по задаче надо смотреть. А про интерес к климатологии я кстати серьезно. У нас хорошие алгоритмы распараллеливания и есть хорошая адаптивная сетка на сфере, в климатологии мне кажется было б востребовано;-)

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