Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаби матлаб.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
570.64 Кб
Скачать

Лабораторна робота № 12 Моделювання руху маятника

Виконав:

Ст.гр. ПФ-21

Ларкін Микола

Перевірила:

Гоблик Н.

2014

Завдання:

Реалізувати на комп’ютері програму моделювання руху фізичного маятника.

Після створення відповідної форми у програмі GUIDE, ми переходим до створення робочого коду.

Для кнопки «OK», яка розташована на формі відкриваємо .m-файл вибравши у контекстному меню Callbacks.

Дописуємо необхідну послідовність команд:

function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)

dz=str2num(get(handles.edit1,'String'))

nu=str2num(get(handles.edit2,'String'))

nmx=str2num(get(handles.edit3,'String'))

nmy=str2num(get(handles.edit4,'String'))

ex=str2num(get(handles.edit5,'String'))

ey=str2num(get(handles.edit6,'String'))

fi0=str2num(get(handles.edit7,'String'))

fit0=str2num(get(handles.edit8,'String'))

global dz

global nmx

global nmy

global ex

global ey

global nu;

t=0; tf=20*pi; y0=[fi0 fit0];

options=odeset('RelTol',1e-8,'AbsTol',[1e-10 1e-10]);

[t,y]=ode45('FM2',[0 tf],y0,options);

subplot(2,3,2:3)

plot(t/2/pi,y(:,1)*180/pi);

grid;

title('Vidhylennja vid vertukali','FontSize',14);

xlabel('Chas (v periodah malyh vlasnyh kolyvan)','FontSize',12);

ylabel('Kyt v gradysah','FontSize',12);

subplot(2,3,5:6);

plot(y(:,1)*180/pi,y(:,2));

grid;

title('Fazovui portret','FontSize',14);

xlabel('Kyt v gradysah','FontSize',12);

ylabel('Kytova shvudkist','FontSize',12);

Після цього зберігаємо файл.

У редакторі m-файлів набрати текст файл-функції:

function z=fm2(t,y)

global dz

global nmx

global nmy

global ex

global ey

global nu

z(1)=y(2);

z(2)=-sin(y(1))-2*dz*y(2)-nmx*sin(nu*t+ex)*cos(y(1))-nmy*sin(nu*t+ey)*sin(y(1));

z=z';

Зберігаємо у робочій папці під назвою fm2.m.

Підставивши данні свого варіанту я отримала такий результат:

Лабораторна робота № 12 Розв’язування рівняння теплопровідності (дифузії)

Виконав:

Ст.гр. ПФ-21

Ларкін Микола

Перевірила:

Гоблик Н.

2014

Завдання:

Використовуючи описаний алгоритм, розв’язати рівняння теплопровідності для

Програма:

Створимо текст функції: m_sitok.m.

function u=m_sitok(k,t,x,init,gr)

%init=u(0,x)

%gr(1)=u(t,a)

%gr(2)=u(t,b)

%u(t(1),)=init

J=length(x);

N=length(t);

dx=mean(diff(x));

dt=mean(diff(t));

s=k*dt/dx^2;

u=zeros(N,J);

u(1,:)=init;

for n=1:N-1

u(n+1,2:J-1)=s*(u(n,3:J)+u(n,1:J-2))+(1-2*s)*u(n,2:J-1);

u(n+1,1)=gr(1);

u(n+1,J)=gr(2);

end

Створимо файл-сценарій: teplo.m.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]