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 ] 

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



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

Сейчас этот форум просматривают: dgwuqtj


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

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