Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Система компьютерной математики Octave. Лабораторный практикум
.pdf
'Times New Roman'},
'callback',{@b_fcn,txt});
mk = uicontrol(pn,'position',[0,295,160,30],
'style','text',
'string','Гарнитура шрифта');
set(f,'visible','on');
Функции-обработчики:
%Файл b_fcn.m
function b_fcn(obj,event,txt)
s = get(obj,'string');
v = get(obj,'value');
set(txt,'fontname',s{v});
end
%Файл p_fcn.m
function p_fcn(obj,event,txt)
set(txt,'fontangle',get(obj,'string'));
end
%Файл w_fcn.m
function w_fcn(obj,event,txt)
set(txt,'fontweight',get(obj,'string'));
end
Вид приложения во время работы представлен на рисунке.
130

В последнем примере продемонстрируем вывод графиков на форму. Ограничимся случаем графика, заданного в виде x = x(t), y = y(t), где t изменяется от
0 до 2π.
Разместим на форме место для графика (объект
axes
) и панель с необходимыми нам элементами управления. Панель является контейнером, который может содержать другие элементы управления.
Для ввода выражений x(t), y(t) предусмотрим поля ввода текста с поясняющими названиями-метками, для вызова функции – построителя графика – командную кнопку. Для простоты (и для демонстрации альтернативного варианта) доступ к элементам управления формы будем осуществлять через глобальные дескрипторы этих элементов управления.
Главная программа:
f = figure('position',[100,100,350,350],...
'name','Построение графиков',...
'numbertitle','off',...
'visible','off');
global g;
global e1;
global e2;
% добавляем на форму график, панель и элементы уравления
g = axes('position',[0.17,0.25,0.7,0.7]);
p = uipanel(f,'position',[0,0,1,0.20]);
m1 = uicontrol(p,'position',[20, 35, 50, 30],...
'style', 'text','fontsize',12,
'string','x(t) = ');
131

m2 = uicontrol(p,'position',[20, 5, 50, 30],...
'style', 'text','fontsize',12,
'string','y(t) = ');
e1 = uicontrol(p,'position',[80, 35, 150, 30],...
'style', 'edit','fontsize',12,
'string','sin(3*t+1)');
e2 = uicontrol(p,'position',[80, 5, 150, 30],...
'style', 'edit', 'font-
size',12,'string','cos(5*t)');
b1 = uicontrol(p,'position',[240, 5, 100, 60],...
'style', 'pushbutton',...
'fontsize',12,...
'string','Построить',...
'callback', @fcall);% вызываем функцию по-
строения графика
fcall();
% выводим форму на экран
set(f,'visible','on');
Функция-обработчик:
function fcall()
global g;
global e1
global e2;
fx=inline(get(e1,'string'));
fy=inline(get(e2,'string'));
t=0:0.01*pi:2*pi;
x=fx(t);
y=fy(t);
plot(g,x,y,'linewidth',3);
grid on
end
Чтобы получить другой график, следует отредактировать поля ввода
и снова нажать кнопку «Построить график».
Другие возможности форматирования текста:
1) 'horizontalalignment' – выравнивание по горизонтали:
- 'center' – по центру (значение по умолчанию);
- 'left' – по левому краю;
- 'right' – по правому краю;
2) 'verticalalignment' – выравнивание по вертикали:
- 'bottom' – по нижнему срезу;
- 'middle' – посередине;
- 'top' – по верхнему срезу.
132

Варианты заданий к лабораторной работе № 9
Вариант 1
Разработать пользовательское приложение для вычисления значений функции, заданной аналитически. Поместить на форму командную кнопку, набор
радиокнопок, элементы управления для ввода самой функции и массива ее аргументов. Вывести в текстовое поле сумму или произведение полученных значений в зависимости от выбранной радиокнопки.
Вариант 2
Разработать пользовательское приложение для построения графика функции f(x,a) при различных значениях параметра a (функция задана аналитически). Поместить на форму командную кнопку, элементы управления для ввода
самой функции, пределов изменения аргумента x, массива параметров и поле
для вывода графика функции.
Вариант 3
Разработать пользовательское приложение для построения графика функции
двух переменных. Поместить на форму командную кнопку, набор радиокнопок
для выбора метода построения графика, поле для вывода графика функции, элементы управления для ввода самой функции и границ области построения.
133

=
′
)(xyy
=
)(a
y
Вариант 4
Разработать пользовательское приложение для аппроксимации таблично заданной функции. Поместить на форму командную кнопку, элементы управления для ввода двух массивов: значений аргументов и значений функции, набор
радиокнопок для выбора типа аппроксимации (линейная, квадратичная или
сплайновая) и поле для вывода графика функции.
Вариант 5
Разработать пользовательское приложение для вычисления определенного
интеграла для функции, заданной аналитически. Поместить на форму командную кнопку, элементы управления для ввода пределов интегрирования
и подынтегрального выражения, набор радиокнопок для выбора метода интегрирования и текстовое поле для вывода результата.
Вариант 6
Разработать пользовательское приложение для решения задачи Коши для
дифференциального уравнения вида
форму командную кнопку, поле для вывода графика решения
для ввода правой части уравнения, границ отрезка и начального значения
на отрезке [a; b] . Поместить на
),( yxfy
, поля
.
Вариант
7
Разработать пользовательское приложение для вычисления корней полино
ма. Поместить на форму командную кнопку, поле для ввода коэффициентов
полинома и два списка (для вывода отдельно вещественных и отдельно ком
плексных корней полинома) с поясняющими надписями
.
Вариант
8
Разработать пользовательское приложение для решения системы линейных
алгебраических уравнений вида
AX = B.
Поместить на форму командную кноп
ку, поля для ввода матрицы коэффициентов и правой части системы уравнений
и поле для вывода полученного решения
.
-
-
-
Вариант
Разработать пользовательское приложение для построения траектории дви
жения точки
звено
звено
OA
AB
стить на форму командную кнопку, поля для ввода длин звеньев
ловой скорости вращения второго звена, поле для вывода траектории движения
точки
B.
9
B
плоского механизма, состоящего из звеньев
вращается вокруг точки
вращается вокруг точки
OA и AB.
O с
A с
единичной угловой скоростью, второе
постоянной угловой скоростью ω. Поме
OA и AB и уг-
134
Первое
-
-

=′′
)(xyy
=
)(a
y
)(b
y
Вариант 10
Разработать, используя функцию comet(…), пользовательское приложение
для построения анимированной траектории математического маятника, колеблющегося в двух перпендикулярных направлениях (фигур Лиссажу). Поместить на форму командную кнопку, элементы управления для ввода частот колебаний по осям Ox и Oy, поле для ввода скорости анимации и поле для вывода
графика функции.
Вариант 11
Разработать пользовательское приложение для вычисления определенного
интеграла для функции, заданной таблично. Поместить на форму командную
кнопку, элементы управления для ввода значений независимой переменной и
соответствующих значений подынтегральной функции, текстовое поле для вывода результата. Для вычисления интеграла использовать сплайновую интерполяцию табличных данных.
Вариант 12
Разработать пользовательское приложение для решения краевой задачи для
дифференциального уравнения вида
форму командную кнопку, поле для вывода графика решения
ввода правой части уравнения, границ отрезка и краевых значений
на отрезке [a; b] . Поместить на
),( yxfy
, поля для
и
Лабораторная работа № 10
ВЫПОЛНЕНИЕ ИССЛЕДОВАТЕЛЬСКОГО ПРОЕКТА
Цель работы: научиться использовать
работе магистра
.
Octave в
научно-исследовательской
Лабораторная работа
факультативной. Допускается выполнение задания командой из
Для выполнения лабораторной работы необходимо
1)
самостоятельно изучить теорию явления, предлагаемого для численного
моделирования, по литературным источникам
"
Выполнение исследовательского проекта" является
2–3
студентов
:
[10–12];
.
.
2)
разработать расчетную часть и интерфейс приложения в виде программы
на языке
3)
Octave;
выполнить расчеты при различных начальных значениях, причем выбор
начальных значений должен иллюстрировать основные теоретические резуль
таты исследования рассматриваемого процесса
4)
написать отчет по лабораторной работе, включающий в себя основные
;
теоретические положения, программу и результаты численных расчетов
в текстовом и графическом виде
.
135
-

lgdt
dt
0)(=t
f
w
Варианты заданий к лабораторной работе № 10
Вариант 1
Проанализируйте свободные и вынужденные колебания математического
маятника при больших амплитудах. В этом случае уравнение колебаний имеет
вид
2
d
2
d
ϕϕ
k
ϕ
)(sin
tf
=++
,
где φ – угол отклонения маятника от вертикали;
g – ускорение свободного падения;
l – длина маятника;
k – коэффициент сопротивления среды.
В случае свободных колебаний
. При наличии вынужденных коле
-
баний исследуйте явление резонанса при периодическом возмущении
Вариант
2
.
Проанализируйте поведение маятника с колеблющейся точкой подвеса (ма
ятника Капицы
2
d
2
dt
где φ
–
g –
l –
k –
a –
w –
угол отклонения маятника от вертикали
ускорение свободного падения
длина маятника
коэффициент сопротивления среды
амплитуда колебаний точки подвеса маятника
частота колебаний точки подвеса маятника
Особенность маятника Капицы
). В
этом случае уравнение колебаний имеет вид
ϕϕ
d
k
dt
a
g
−++
l
2
l
wtw
ϕ
,
0sincos
=
;
;
;
;
;
.
–
верхняя точка равновесия становится
gla2
устойчивой при выполнении условия
Вариант
3
Маятник Галилея представляет собой математический маятник длиной
> .
L,
совершающий колебания вблизи вертикальной стенки, в которую на расстоя
нии
h
под точкой подвеса вбит гвоздь. Проанализируйте поведение маятника
при различных начальных условиях. Рассмотрите случаи движения в среде без
сопротивления и с сопротивлением
.
-
-
136

Вариант 4
Два маятника массами m1 и m2 и длиной l1 и l2 соединены пружиной жестко-
сти k на расстоянии a от точек подвеса.
В предположении малости углов ϕ1 и ϕ2 система дифференциальных урав-
нений, описывающих свободные колебания системы, имеет вид
2
ϕ
d
dt
2
d
dt
g
1
2
ϕ
2
2
1
l
1
g
2
l
2
ka
ka
2
ϕϕϕ
=−++
;0)(
2
lm
11
2
2
lm
22
21
=−++
ϕϕϕ
,0)(
12
где g – ускорение свободного падения.
Исследуйте поведение системы при различных начальных условиях.
Вариант 5
Двойной математический маятник состоит из двух звеньев, массы которых
сосредоточены в их концах. Звенья маятника соединены шарнирно. Несмотря
на то, что двойной маятник можно описать системой двух обыкновенных дифференциальных уравнений, то есть вполне детерминированной моделью, движения маятника сразу же становятся хаотичными.
137

Обозначим:
m1, m2 – массы первого и второго звена маятника;
l1, l2 – их длины;
φ1, φ2 – углы, образованные звеньями маятника с вертикалью.
Тогда уравнение нелинейных колебаний двухзвенного маятника в среде без
сопротивления записывается в виде системы двух дифференциальных уравнений:
2
d
ϕ
1
lmm
121
2
d
l
2
2
dt
++
2
dt
2
d
2
ϕϕ
l
1
dt
ϕ
1
2
2
d
ϕ
lmg
221
ϕϕ
2
2
dt
d
ϕ
−−+
l
1
121
dt
ϕϕ
2
+−+
21
2
d
ϕ
2
dt
ϕϕϕ
g
221
;0)sin()cos(sin)(
−
=+−
=
ϕϕ
21
.
0sin)sin()cos(
Постройте траекторию движения маятника при различных значениях его
параметров.
Вариант 6
Изучите поведение решения системы трех обыкновенных дифференциальных уравнений;
dx
dt
dy
dt
dz
dt
−=
xyA
);(
−−=
yzBx
;)(
−=
Czxy
при различных значениях параметров A, B и C. Найдите значения параметров,
при которых траектория решения становится хаотичной (при A=10, B=28 и
C=8/3 получается так называемый аттрактор Лоренца).
Вариант 7
Изучите поведение системы двух тел, связанных между собой пружинами.
Она состоит из двух тел, массы которых равны m1 и m2, и трех пружин
с коэффициентами жесткости k1, k2, k3. Смещение тел от положений равновесия
определяется координатами x1 и x2.
Данная система описывается системой двух дифференциальных уравнений
второго порядка:
m
m
2
xd
1
1
2
dt
2
xd
2
2
2
dt
++−=
)(
xkxkk
;22121
+−=
.)(
xkkxk
23212
138

Рассмотрите частный случай равенства масс m1 и m2 и коэффициентов жесткости пружин k1=k2=k3.
Вариант 8
Проанализируйте вынужденные колебания системы двух тел, в которой
внешняя периодическая сила приложена к первому телу.
При условии отсутствия трения дифференциальные уравнения движения
тел имеют вид
m
m
2
xd
1
1
2
dt
2
xd
dt
2
2
2
−=
),(
xxk
212
+++−=
022121
ω
;sin)(
tFxkxkk
где m1, m2 – массы грузов; k1, k2 – жесткости пружин; x1, x2 – смещения грузов
из положения равновесия как функции времени t.
Исследуйте поведение системы при различных частотах возмущающей си-
k
лы. Отдельно проанализируйте случай
ω
=
2
, при котором масса
m
2
m
остает-
1
ся все время неподвижной, хотя именно к ней приложена возмущающая сила.
Вариант
9
Исследуйте процесс параметрического возбуждения тока в электрическом
колебательном контуре. В начальный момент времени ток в контуре отсутствует, а конденсатор имеет заряд
Q
. Сердечник соленоида совершает колебатель-
0
ные движения, так что индуктивность изменяется по закону
L(t
) =
L
+Asin ωt,
0
где
L
– начальная индуктивность; A, ω – амплитуда и частота изменения ин-
0
дуктивности.
139
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
