2014 dxdy logo

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

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


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


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



Начать новую тему Ответить на тему
 
 Математический маятник и дифф.-алгебр. система уравнений
Сообщение25.11.2019, 20:53 


25/11/19
1
Здравствуйте!
Помогите сформулировать систему нелинейных уравнений для численного решений задачи математического маятника.

Суть:
Есть система уравнений
$\noindent
\xi'(t) = u(t)\\
\eta'(t) = v(t)\\
u'(t) = -\frac{2}{m}\lambda (t)\xi (t)\\
v'(t) = -\frac{2}{m}\lambda (t)\eta (t) - g\\
0 = \xi^2(t) + \eta^2(t) - l^2
$

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

То что я сделал, так это нашел $\lambda' = -\frac{3mg}{2l^2}v(t)$ и с помощью неявного метода трапеций составил систему нелинейных уравнений и "скормил" это fsolve() Матлаба.
Вот участок кода:
код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
    % x1 = v, x2 = u, x3 = xi, x4 = eta, x5 = lambda
    fsystem = @(x) [
        (v(i) + h/2*(fv(lambda(i), eta(i)) + fv(x(5), x(4)))) - x(1);
        (u(i) + h/2*(fu(lambda(i), xi(i)) + fu(x(5), x(3)))) - x(2);
        (eta(i) + h/2*(v(i) + x(1))) - x(4);
        (xi(i) + h/2*(u(i) + x(2))) - x(3);
        (lambda(i) + h/2*(fl(v(i)) + fl(x(1)))) - x(5);
        (x(3)^2 + x(4)^2) - l^2;
        x(3)*x(2) + x(4)*x(1)
        ];
   
    x = [v(i), u(i), xi(i), eta(i), lambda(i)];
    options = optimset('Display','off', 'Algorithm', 'levenberg-marquardt');
    x = fsolve(fsystem, x, options);
   
    v(i+1) = x(1);
    u(i+1) = x(2);
    xi(i+1) = x(3);
    eta(i+1) = x(4);
    lambda(i+1) = x(5);
 


Получились следующие графики:
Изображение
Изображение

Алгебраическое ограничение не дрейфует, но вот скрытое ограничение ведет себя странно.

 Профиль  
                  
 
 Re: Математический маятник и дифф.-алгебр. система уравнений
Сообщение25.11.2019, 22:59 
Заслуженный участник


10/01/16
2318
tudexaon
Система решается (почти) явно.
Домножая третье на Эту, а четвертое - на Кси, и вычитая, избавимся от лямбды.
Решение будем искать в виде $\xi = l\cdot \sin \varphi, \eta =l \cdot \cos \varphi$. Подставляя все это дело, получим (надо проверить, делал на коленке) для $\varphi$ уравнение "физического" маятника $\ddot{\varphi} =-\frac{g}{l} \sin \varphi$.
У него есть первый интеграл (энергии)....

 Профиль  
                  
 
 Re: Математический маятник и дифф.-алгебр. система уравнений
Сообщение01.12.2019, 13:22 
Аватара пользователя


31/08/17
2116
как искать множители Лагранжа написано тут https://dxdy.ru/topic128178.html

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

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



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

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


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

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