Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Система компьютерной математики Octave. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
'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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]