Составление уравнения колебания математического маятника

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Лабораторная работа №1

Математический маятник

На нерастяжимой, невесомой нити длинной L подвешен груз массой m, груз откланяется на угол α. Записать дифференциальное уравнение средних  колебаний маятника без учета действия внешних сил, сопротивления воздуха. Написать программу для решения дифференциального уравнения численным методом. Решить данное дифференциальное уравнение в программной среде MathCad. Сравнить результаты.

Решение

1.  Составление дифференциального уравнения колебания маятника при средних колебаниях:

с одной стороны:

момент инерции равен

угловое ускорение

а с другой стороны

получаем  , где

 , где

Решение дифференциального уравнения методом конечных разностей

Зададим начальные условия:

              где h  - шаг

Разностная схема имеет вид:

               

исходное уравнение перепишется в виде:

     

Решение будем искать на интервале (a,b) = T,    откуда   

Составим программу:

{

int T = 100, n, alpha, v;

float h = 0.09, l = 10 ,u[90000],  k ;

UpdateData(TRUE);

alpha = m_integer;

n =T/h;

k = l/9.8;

u[0] = alpha;

v = m_integer1;

u[1] = u[0]-v*h;

for (int i=1; i<=n-1;i++){

u[i+1] = 2*u[i] - h*h*k*sin(u[i]*3.14/180) - u[i-1];

}

CClientDC dc(this);

CPen NewPen(PS_SOLID, 1, RGB(255,0,255));

dc.SelectObject(&NewPen);

dc.MoveTo(0,150);

dc.LineTo(600, 150);

m_PrevX=0;

m_PrevY=u[0];

int y, b;

for (int j=1; j<=n;j++){

y = j*h*1.2;

b= u[j];

dc.MoveTo(50+m_PrevX, 150-m_PrevY);

dc.LineTo(50+y, 150-b);

m_PrevX=y;

m_PrevY=b;

}

}


Пример выполнения программы при значениях начального угла равного 15 и длины нити равной 5.

Решение в среде MathCad 2001

Для решения дифференциального уравнения в среде MathCad используется блок

Given/ Odesolve.

Пример решения дифференциального уравнения при начальных условиях: длина нити равна 5 а начальный угол 15.


Вывод: в лабораторной работе было составлено уравнение колебания математического маятника, которое было решено численными способами: на основе программной среды MathCad 2001, и составления собственной программы для решения данного дифференциального уравнения. Как видно из графиков эти решения совпадают.

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
352 Kb
Скачали:
0

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.