2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Прыг-скок в параболе и отсутствие хаоса.
Сообщение30.03.2023, 18:03 
Заслуженный участник
Аватара пользователя


15/10/08
12599
Предлагаю обсудить сие зрелище.

Краткое описание: Мячик скачет в параболическом и полукруглом стакане. Спектром показан ансамбль слегка разбросанных начальных данных. Из зрелища следует, что в случае параболического стакана ЧЗНУ (чрезвычайная зависимость от начальных условий) не наблюдается.

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение30.03.2023, 22:50 


10/03/16
4444
Aeroport
Утундрий
Рандомный чувак в комментах вещает, что:

"Basically it is because a parabola has a single focal point with the property that parallel rays when specularly reflected off the parabola will converge on it. The semicircle also has one focus point but it doesn’t have this property"

Мне кажется, что как рукомахательное объяснение вполне пойдет (во всяком случае, мне оно кажется правдоподобным)

P.S. Два-три дня назад мне это видео вылезло в предложке :o :o

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение30.03.2023, 23:14 
Заслуженный участник
Аватара пользователя


01/09/13
4688
Утундрий в сообщении #1587556 писал(а):
ансамбль слегка разбросанных начальных данных.

а есть описание что и как разбросано?

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение30.03.2023, 23:23 


10/03/16
4444
Aeroport
Geen в сообщении #1587592 писал(а):
а есть описание что и как разбросано?


"200 balls released in a circle ($x^2 + y^2 = 1$) and a parabola ($y = x^2$) respectively. Identical initial conditions for both systems."

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение30.03.2023, 23:29 
Заслуженный участник
Аватара пользователя


15/10/08
12599
ozheredov в сообщении #1587590 писал(а):
Рандомный чувак в комментах вещает...
Советую вам придерживаться следующего рецепта: докладчик по умолчанию не является идиотом.

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 00:44 


10/03/16
4444
Aeroport
Утундрий в сообщении #1587595 писал(а):
Советую вам


конкретизировать в стартовом посте, что именно не являющийся идиотом докладчик подразумевает под словом

Утундрий в сообщении #1587556 писал(а):
обсудить

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 00:48 
Заслуженный участник
Аватара пользователя


15/10/08
12599
ozheredov
Обсудить? Ну, это для начала принять к сведению. Потом, очень желательно, повторить симуляцию самостоятельно. Сделать выводы. И только потом трындеть.

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 01:33 


10/03/16
4444
Aeroport
Утундрий в сообщении #1587603 писал(а):
Потом, очень желательно, повторить симуляцию самостоятельно.


Аааа, понял. Спасибо.

P.S. Извините, мне еще вот это словосочетание не дало уснуть:

Утундрий в сообщении #1587603 писал(а):
принять к сведению


Что именно? Сходить в ясли и узнать, что такое параболоид, полусфера, фокус и динамический хаос? Вроде это у меня уже принято.

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 02:08 
Заслуженный участник
Аватара пользователя


15/10/08
12599
ozheredov
Игнор.

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 09:29 
Заслуженный участник


13/12/05
4622
ozheredov в сообщении #1587590 писал(а):
Рандомный чувак в комментах вещает, что:

"Basically it is because a parabola has a single focal point with the property that parallel rays when specularly reflected off the parabola will converge on it. The semicircle also has one focus point but it doesn’t have this property"

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

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 10:26 


05/09/16
12155
На сайте есть видосик и с другой коникой. Гипербола в итоге хаотизируется
Изображение
Жаль, с эллипсом такого же видосика нет (типа пол-эллипса плюс гравитация).

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

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 13:57 
Заслуженный участник
Аватара пользователя


23/08/07
5500
Нов-ск
1. Это плоский случай? Не осесимметричный?
2. На точки действует сила тяжести? А если её направить не по оси симметрии параболы, а хотя бы чуть скосить?

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 14:11 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
wrest в сообщении #1587629 писал(а):
Жаль, с эллипсом такого же видосика нет
Думаете, эллипс в этом смысле качественно отличается от окружности? Я не думаю. Сойдёт ли в качестве рукомахательного доказательства тот факт, что эллипс приводится к окружности (и наоборот) линейным преобразованием?

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 17:00 


05/09/16
12155
TOTAL в сообщении #1587675 писал(а):
1. Это плоский случай? Не осесимметричный?

Да.
TOTAL в сообщении #1587675 писал(а):
2. На точки действует сила тяжести?

Да.
TOTAL в сообщении #1587675 писал(а):
А если её направить не по оси симметрии параболы, а хотя бы чуть скосить?

Ну там есть какой-то код на питоне, если кто возьмется разобраться...
В закрепленном коменте тут: https://www.youtube.com/watch?v=YoGmq0IdSxk
код: [ скачать ] [ спрятать ]
Используется синтаксис Python
Stripped Python code below. Create a .py file and paste the code therein. Don't forget to create your "DestDir" folder in same directory. (There are much neater scripts elsewhere on the web on this topic. Analytical solutions in Python are not my strong suit...)

*
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as N
from   scipy import interpolate
from   sympy import N as symN
from   sympy.solvers import solve
from   sympy import sqrt,atan,sin,cos,Symbol,re,im,diff
import scipy.linalg as SLA


def mm(* args):
    tmp=N.dot(args[0],args[1])
    for ii in range(len(args)-2):
        tmp=N.dot(tmp,args[ii+2])
    return tmp

def myangle(xp1,yp1):
    if xp1<0 and yp1<0:
        ang = N.pi+N.arctan(yp1/xp1)
    elif xp1>0 and yp1<0:
        ang = N.arctan(yp1/xp1)
    return ang

NN=10000
mycircle = N.array([[1.01*N.cos(2*N.pi*ii/NN),\
                     1.01*N.sin(2*N.pi*ii/NN)] for ii in range(NN)]).T

#Parameters
g             = 9.81 #acceleration
startposition = -.5  #along x axis. 0 is center of circle
noballs       = 10   #number of balls
jumps         = 5    #number of bounces
dt            = .005 #time increment, should be small
eps           = 1e-2 #difference between adjacent balls

def findpaths(xp1,yp1,v0):
    for kk in range(jumps):
        angle = myangle(xp1,yp1)
        dvec = [-N.sin(angle),N.cos(angle)]
        nvec = [-dvec[1],dvec[0]]
        nvec = nvec/N.sqrt(mm(nvec,nvec))
        if kk == 0:
            ivec = [0,-1]
            ivec = N.array([float(ivec[0]),float(ivec[1])])
            ivec = ivec/SLA.norm(ivec)
        else:
            ivec = [1,slope]
            ivec = N.array([float(ivec[0]),float(ivec[1])])
            ivec = ivec/SLA.norm(ivec)
            if slope>0 and xp1<0:
                ivec[0] = -abs(ivec[0])
                ivec[1] = -abs(ivec[1])
            if slope<0 and xp1<0:
                ivec[0] = -abs(ivec[0])
                ivec[1] = abs(ivec[1])
            if slope>0 and xp1>0:
                ivec[0] = -abs(ivec[0])
                ivec[1] = -abs(ivec[1])
            if slope<0 and xp1>xp0:
                ivec[0] = abs(ivec[0])
                ivec[1] = -abs(ivec[1])
            if slope>0 and xp1>xp0:    
                ivec[0] = abs(ivec[0])
                ivec[1] = abs(ivec[1])
        rvec = (ivec-mm(2*mm(ivec,nvec),nvec))
        rvec = N.array([float(rvec[0]),float(rvec[1])])
        rvec = rvec/SLA.norm(rvec)
        v0 = v0*rvec
        vx = v0[0]
        vy0 = v0[1]
        x = Symbol('
x')
        sol = solve(x**2 + (vy0/vx*(x-xp1)-g/2/vx**2*(x-xp1)**2+yp1)**2 - 1,x)
        for ii in range(len(sol)):
            if abs(re(sol[ii])-xp1)>1e-8 and abs(im(sol[ii]))<1e-4:
                soln = re(sol[ii])
        xi,xe = xp1,soln
        xp0 = xp1
        yp0 = yp1
        pathx = N.arange(xi,xe,dt*vx)
        pathy = vy0/vx*(pathx-xi)-g/2/vx**2*(pathx-xi)**2+yp1
        xs = Symbol('
xs')
        slope = diff(vy0/vx*(xs-xi)-g/2/vx**2*(xs-xi)**2+yp1).evalf(subs={xs:xe})
        yp1 = vy0/vx*(xe-xi)-g/2/vx**2*(xe-xi)**2+yp1
        yp1 = float(yp1)
        xp1 = float(xe)
        slope = float(slope)
        Etot = g*(1+y0)
        Ep = g*(1+yp1)
        v0 = (2*(Etot-Ep))**.5
        ballpaths.append([pathx,pathy])
    return ballpaths

ball = []
for ll in range(noballs):
    print('
ball',ll)
    x0 = startposition+ll*eps
    y0 = .0
    xp1 = x0
    yp1 = -N.sqrt(1-xp1**2)
    ds = N.sqrt((y0-yp1)**2)
    t0 = N.sqrt(2*ds/g)
    v0 = g*t0
    xtot0,ytot0 = [],[]
    tt = 0
    while dt*tt<t0:
        ytot0.append(y0-g*(dt*tt)**2/2)
        xtot0.append(x0)
        tt+=1
    xtot,ytot = N.array(xtot0),N.array(ytot0)
    ballpaths = []
    p = findpaths(xp1,yp1,v0)
    xtot = N.concatenate([xtot,p[0][0]])
    ytot = N.concatenate([ytot,p[0][1]])
    #ytot = p[0][1]
    for ii in range(1,jumps):
        xtot = N.concatenate([xtot,p[ii][0]])
        ytot = N.concatenate([ytot,p[ii][1]])
    ball.append([xtot,ytot])

print(len(ball))
for ii in range(len(xtot)):
    print(ii,'
of',len(xtot))
    plt.plot(mycircle[0],mycircle[1])
    for bb in range(noballs):
        plt.plot(ball[bb][0][ii],ball[bb][1][ii],marker='
.')
    plt.savefig('
DestDir/fig'+f"{ii:05d}.png",bbox_inches='tight',pad_inches=0)
    plt.clf()

Как я понимаю, это код
-для окружности
-создаёт тьму картинок .png которые потом ffmpeg-ом собираются в видосик.

 Профиль  
                  
 
 Re: Прыг-скок в параболе и отсутствие хаоса.
Сообщение31.03.2023, 19:36 
Заслуженный участник
Аватара пользователя


01/09/13
4688
wrest в сообщении #1587703 писал(а):
Ну там есть какой-то код на питоне

Как-то слишком длинный код для такой простой задачи....

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group