Найти - Пользователи
Полная версия: моделирование на python!!! нужна помощь
Начало » Центр помощи » моделирование на python!!! нужна помощь
1 2 3 4 5 6 7
alexx11
vell
Затем возведя в квадрат v: v^2 = (v^2_x +2(v_x,v_y)+v^2_y), полагая что в условиях задачи индексы x и y отвечают декартовой системе координат, то скалярное произведение двух перпендикулярных векторов даёт нулевой результат. Таким образом уравнение можно записать в новом виде dv/dt = -(k_1 + k_2 |v|)v/m
Что именно здесь не понятно?
udav
1. Первое ур-е делим на второе:
dvx/vx=dvy/vy или d(lnvx)=d(lnvy) или vx=vy + C
2. Из первого ур-я вычитаем второе:
Л.ч. d(vx-vy)/dt==dC/dt=0
П.ч. дробь*(vx-vy)==дробь*C
Получим sqrt(vx^2+vy^2)==sqrt(2*vy^2+2*vy*C+C^2)=-k1/k2
Остается возвести в квадрат и решить квадратное ур-е
А чтобы смоделировать движение нужно знать еще x0 и y0,
тогда надо многократно вычислять значения xk,vk:
v0x=v*cos(a), voy=v*cos(a), задаем какое-нибудь маленькое значение для dt -
чем меньше, тем точнее, а дальше подставляем v0x, v0y в первые ур-я, находим
dvx, dvy, далее vx1=vx0 + dvx, vy1= vy0 + dvy и таким же образом ищется
vx2…vxk
alexx11
udav
sqrt(vx^2+vy^2)==sqrt(2*vy^2+2*vy*C+C^2)=-k1/k2 Остается возвести в квадрат и решить квадратное ур-е
И что мы интересно так найдём? v_x(v_y)? Но зачем, ты ведь в п.1 показал что они vx=vy + C. Константу С? Дак она тоже не из уравнений находится а из начальных условий.
udav
alexx11
Я отредактировал сообщение. Решать систему не требуется - я написал лишнего. Речь идет, как я понял
лишь о моделировании, т. е. использовании численного метода, как писалdoza_and, тогда действительно
оправдано использование python
alexx11
udav А что толку в том что отредактировал, процент бреда как бы не уменьшился.
udav
1. Первое ур-е делим на второе:
Действительно П1 непременно должен быть первым, при решении любых уравнений.
udav
dvx/vx=dvy/vy или d(lnvx)=d(lnvy) или vx=vy + C
Предположив что П1 прокатил, из первого равенства, вытекает второе, а из второго ln (v_x) = ln (v_y) + C, из чего уже v_x = C v_y
udav
2. Из первого ур-я вычитаем второе:
Л.ч. d(vx-vy)/dt==dC/dt=0
П.ч. дробь*(vx-vy)==дробь*C
Получим sqrt(vx^2+vy^2)==sqrt(2*vy^2+2*vy*C+C^2)=-k1/k2
Далее начинается нечто под названием “кручу-верчу”, а в итоге получаем уравнение которое представляет собой линейную комбинацию первого, говоря простым языком тоже самое, если упростить и привести к виду. А причина в том что копать надо в направлении времени t, а не избавляться от него: нам в итоге нужно x(t) и у(t).

В целом очень таки математические рассуждения вышли, на тему диффур и питон. Особенно понравилось “какое-нибудь маленькое значение”, если этот термин применить в доказательстве теоремы и … доказать её - нобелевка, или просто Перельман будет нервно курить в сторонке.
doza_and
vell Вы чтобы народ не смущать напишите откуда вы задачу взяли. Например поступаю в такойто институт, задача по теме Элементы Гамильтоновых систем ну и так далее…
off topic:
Тут както из 8 класса парень пришел, говорит училка по информатике простую задачку дала решить по информатике. Провести моделирование солнечной системы, размер до плутона, 10000-100000 тел. масштаб времени до 1000 лет. Мы знакомому мужику в ГАИШ звонили, консультировались как решать. Задача жесткая, с заполненной матрицей жесткость возникает хаотически по мере сближения тел. Для моделирования расхождений тел - не хватает точности double. Ну еще десяток удовольствий. Похоже в такой постановке задача за пределами возможностей вычислительных средств имеющихся в россии.
udav
alexx11
v_x = C v_y - согласен, дал маху, но твое решение с вводом 3-ей переменной v, которая в одном
случае =vx+vy, а в другом sqrt(vx^2+vy^2) мягко говоря некорректно, а уж скалярное произведение
просто притянуто за уши.
Поскольку речь идет о задаче для 11 класса, то скорее всего имеется ввиду численный метод ее
решения - задавать приращения dt и считать пошагово vx_k, vy_k, а затем x_k, y_k.
А что касается “маленького значения”, то чем меньше dt, тем точнее будет решение - погрешность
является функцией от dt - нормальный термин при решении задач численным методом.
alexx11
udav
случае =vx+vy, а в другом sqrt(vx^2+vy^2) мягко говоря некорректно
Я сказал что новая переменная v=v_x+v_y, затем возвёл в квадрат, (v_x+v_y)^2 = v^2_x +2(v_x,v_y)+v^2_y, (вектора умеем возводить в квадрат?) и заметив что средний член равен нулю, получил v^2 = v^2_x+v^2_y. Взяв корень получим |v| = \sqrt(v^2_x+v^2_y) Некорректно, в каком месте? Поясни пожалуйста!

Причём автор сказал что он школьник, поэтому я ничего сверхъестественного не делал.
udav
alexx11
(вектора умеем возводить в квадрат?)
Мы то умеем. Средний член - это, по-видимому 2(v_x,v_y) - произведение двух проекций (скаляров)
вектора v, а не скалярное произведение векторов, в системе везде фигурируют проекции (числа), а
не вектора.
alexx11
udav
Средний член - это, по-видимому 2(v_x,v_y) - произведение двух проекций (скаляров)
вектора v
.
Сам то понял что сказал? Если v_x и v_y скалярны, то как их сумма даст вектор?

udav
в системе везде фигурируют проекции (числа), а
не вектора
Ради бога, если есть возможность обойтись без векторов, но в этом случае это самая элементарная замена, хотя может быть и не самая простейшая (кратчайшая). Я бы сразу перешёл в сферические координаты, без этих преобразований, т.к. v_x независимо от v_y, а отражение равно исходной системе. Автор же сказал что это снаряд, и выбрать координаты можно так что v_y тождественно равен 0, затем искать только v_x.
P.S.: Объяснять задачу школьнику, и доказывать гуманитарию, который смотрит на дифур как баран на новые ворота - это разные вещи. И поэтому udav, к тебе лично обращаюсь, если ты считаешь задача будет решена верно, только когда до тебя дойдёт, я тебя разочарую. Это может быть намного раньше. Но ежели ты всё таки решил упираться до тех пор пока не случится это событие, то будь конструктивен в своих репликах, не ссылайся на просто “я-то думал” (что это скаляр), в конце-концов апеллируй моё решение если можешь. Как-то так что-ли…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB