
- •Лабораторна робота №1
- •Лабораторна робота №2
- •Лабораторна робота № 3 Тривимірна графіка. Графічне оформлення результатів інженерних розрахунків.
- •Лабораторна робота № 4 Матричні операції. Розв’язування систем Лінійних рівнянь.
- •Лабораторна робота № 5 Розв’язування алгебраїчних
- •Лабораторна робота № 6 Елементи програмування
- •Лабораторна робота № 9 Розроблення інтерфейсу користувача засобом guide
- •Лабораторна робота № 10 Визначення напруги і сили струму в електричному контурі
- •Лабораторна робота № 11 Операційне середовище системи matlab. Режим прямих обчислень.
- •Лабораторна робота № 12 Моделювання руху маятника
- •Лабораторна робота № 12 Розв’язування рівняння теплопровідності (дифузії)
Лабораторна робота № 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.