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

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

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
=
−
′
′
x
x
t
∂
0)0,(=x
u
=
=
=−′
′
Варианты заданий к лабораторной работе № 8
Вариант 1
А) Написать программу решения методом конечных разностей краевой за-
дачи для дифференциального уравнения
xyy
на отрезке [0; 3]
05
с условиями y(0) = 3, y(3) = 1. Построить график функции y(x).
Б*) Найти решение уравнения
∂ ),(),(),(
2
txu
∂
2
a
=
∂
txu
2
∂
b
+
txu
на отрезке x =
∂
[0; 2], t = [0;10] при условиях
Значения параметров
;
),0( Ttu
),2( Ttu
;
0
.
1
: a2 = 0.04, b = -0.5, T0=200, T1 = 100.
Вариант
2
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения
на отрезке
0sin5
xyy
-
[0; 7]
с условиями
y(0) = 1, y(7) = 1.
Построить график функции
120
y(x).
x
x
t
∂
0)0,(=x
u
=
=
=+′−′
′
x
x
t
∂
0)0,(
=
x
u
=
=
1
+
′
x
x
x
t
∂
0)0,(
=
x
u
=
=′−+′
′
x
x
t
∂
Б*) Найти решение уравнения
[0; 1], t = [0;10] при условиях
;
∂ ),(),(),(
2
txu
∂
2
a
=
∂
txu
2
∂
b
+
txu
на отрезке x =
∂
),0( Ttu
),1( Ttu
Значения параметров
;
0
.
1
2
:
a
= 0.01, b = 0.1,
T
=100,
0
T
= 200.
1
Вариант 3
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения с условиями y
(0) = -1, y(4) = 6.
Построить график функции
∂ ),(),(),(
Б
*)
Найти решение уравнения
∂
[0; 1], t = [0;10]
),1( Ttu
Значения параметров
при условиях
;
),0( Ttu
;
0
.
1
2
:
a
= 0.04, b = -0.6,
на
02
yyxy
отрезке
y(x).
2
txu
∂
2
a
=
T
0
txu
2
=100,
b
+
T
= 100
1
∂
txu
на
отрезке
∂
Вариант 4
А) Написать программу решения методом конечных разностей краевой за
y
дачи для дифференциального уравнения
′′
0
−
y
2
=+
y
на
отрезке
-
[0; 4]
x =
-
[0; 5]
с условиями y
Б
*)
Найти решение уравнения
[0; 1], t = [0;10]
∂
∂
Значения параметров
(0) = -1, y(5) = 0.
при условиях
;
),0( Ttu
x
;
0
),(
txu
dT
=
1
1
x
=
Построить график функции
2
∂ ),(),(),(
txu
∂
2
a
=
∂
txu
2
+
y(x).
∂
b
txu
на
отрезке
∂
.
2
:
a
= 0.04, b = -0.1,
T
= 100,
0
dT
= 10.
1
Вариант 5
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения с условиями y
(0) = -2, y(6) = 0.
Построить график функции
∂ ),(),(),(
Б) Найти решение уравнения
x = [0; 2], t = [0;10]
при условиях
yxy
0)3(
на
отрезке
y(x).
2
txu
∂
2
a
=
∂
txu
2
∂
b
+
txu
на
∂
x =
[0; 6]
отрезке
-
121
0)0,(=x
u
=
=−+′′
x
x
t
∂
100
)0,
(
=
x
u
=
=+′+′
′
==′
x
t
∂
100
)0,
(
=
x
u
=+′−′
′
=−=
′
;
),0( Ttu
∂
x
∂
Значения параметров
;
0
),(
txu
2
x
=
.
dT
=
1
2
:
a
= 0.02, b = 0.1,
T
= 100,
0
dT
= 50.
1
Вариант 6
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения с условиями y
(0) = 3, y(3) = 0.
Построить график функции
∂ ),(),(),(
Б
*)
Найти решение уравнения
∂
[0; 2], t = [0;10]
∂
x
∂
),1( Ttu
при условиях
;
),(
txu
dT
=
0
x
=
.
1
;
0
на
0)2(
yxy
отрезке
y(x).
2
txu
∂
2
a
=
txu
2
∂
b
+
txu
на
отрезке
∂
Значения параметров
2
:
a
= 0.2, b = -0.5,
dT
= 10,
0
T
= 100.
1
Вариант 7
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения
на
02
yyy
отрезке
-
[0; 3]
x =
-
[0; 3]
с условиями
Б
*)
t = [0;10]
∂
∂
yy
.
Построить график функции
1)3(,0)0(
Найти решение уравнения
при условиях
;
),(
txu
=
x
∂
0
x
=
),(
txu
=
x
∂
2
x
=
dT
dT
;
0
.
1
y(x).
∂
txu
=
2
∂
2
a
∂
),(),(
txu
на
2
отрезке
x = [0; 2],
Значения параметров
:
2
a
= 0.08,
dT
= 10,
0
dT
= -10.
1
Вариант 8
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения с условиями
yy
.
Построить график функции
2)2(,3)0(
на
02
yyxy
отрезке
y(x).
-
[0; 2]
122
x
t
∂
0)0,(=x
u
=
=⋅+′′
=−=
′
x
t
∂
0)0,(
=
x
u
=
=
=⋅−′+′′
−==
′
x
t
∂
100
)0,
(
=
x
u
=
1
+
x
==′
Б*) Найти решение уравнения
[0; 1], t = [0;10] при условиях
;
∂
txu
=
2
∂
2
a
∂
),(),(
txu
2
⋅+
),(
txuc
на отрезке x =
),0( Ttu
∂
x
∂
Значения параметров
;
0
),(
txu
1
x
=
.
dT
=
1
2
:
a
= 0.04, c = -0.1,
T
= 100,
0
dT
= 40.
1
Вариант 9
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения с условиями
yy
.
Построить график функции
0)4(,1)0(
∂
Б
*)
Найти решение уравнения
∂
[0; 2], t = [0;5]
Значения параметров
при условиях
;
),0( Ttu
),1( Ttu
;
0
.
1
2
:
a
= 0.16, c = 0.5,
на отрезке
0sin
xyy
y(x).
txu
=
2
a
T
2
∂
= 20,
0
txu
2
T
),(),(
= 100.
1
),(
⋅+
txuc
на
отрезке
Вариант 10
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения
на
0cos)(
xyyy
отрезке
-
[0; 4]
x =
-
[0; 6]
с условиями
Б
*)
[0; 2], t = [0;5]
∂
Значения параметров
yy
.
3)6(,2)0(
Найти решение уравнения
при условиях
;
),(
txu
=
x
∂
0
x
=
.
),2( Ttu
1
dT
;
0
2
:
a
= 0.16, c = -0.2,
Построить график функции
∂
txu
=
2
∂
2
a
∂
dT
0
2
= 0,
),(),(
txu
T
⋅+
= 40.
1
y(x).
),(
txuc
на
отрезке
Вариант 11
А) Написать программу решения методом конечных разностей краевой за
y
дачи для дифференциального уравнения
с условиями
yy
.
Построить график функции
0)5(,5)0(
′′
0
+
y
=
2
на отрезке
y(x).
x =
-
[0; 5]
123
x
t
∂
0)0,(=x
u
=
=′+′′
==′
x
t
∂
100
)0,
(
=
x
u
Б*) Найти решение уравнения
∂
txu
=
2
∂
2
a
∂
),(),(
txu
2
⋅+
),(
txuc
на отрезке x =
[0; 1], t = [0;1] при условиях
∂
x
∂
),1( Ttu
Значения параметров
;
),(
txu
=
0
x
=
.
1
dT
;
0
2
:
a
= 0.09, c = 2,
dT
= 0,
0
T
= 100.
1
Вариант 12
А) Написать программу решения методом конечных разностей краевой за
дачи для дифференциального уравнения
yxy
на отрезке
03
-
[0; 4]
с условиями
Б
*)
[0; 2], t = [0;5]
∂
∂
Значения параметров
yy
.
Построить график функции
0)4(,7)0(
Найти решение уравнения
при условиях
;
),(
txu
=
x
∂
0
x
=
),(
txu
=
x
∂
2
x
=
dT
dT
;
0
.
1
2
:
a
= 0.16,
y(x).
∂
txu
=
2
∂
2
a
∂
dT
= -50,
0
dT
),(),(
txu
2
= 100, c=-0.1.
1
⋅+
txuc
),(
на
отрезке
x =
Лабораторная работа № 9
РАЗРАБОТКА ИНТЕРФЕЙСА
ПОЛЬЗОВАТЕЛЬСКИХ ПРИЛОЖЕНИЙ
Цель работы: научиться средствами
фейс для пользовательских приложений
Octave
.
разрабатывать оконный интер
В пакете
Octave,
как и в
Matlab,
можно создавать пользовательские прило жения с графическим интерфейсом, размещая на форме элементы управления Форма реализуется функцией
figure
,
которая создает графическое окно с параметрами по умолчанию и возвращает дескриптор окна. Изменить пара метры окна можно или непосредственно при вызове функции, или после вызова с помощью функции
set
.
Пример 1.
-
­.
-
f = figure('name', 'Пустая форма'); set(f, 'position', [100,250,300,200]);
124
Свойство
'name'
определяет заголовок формы, свойство
'position'
–
положение и размеры формы в формате [x, y, width, height], где x, y – точка привязки левого нижнего угла формы к экрану монитора, а width и height – ши­рина и высота рабочей области формы. Заметим, что из заголовка можно убрать номер фигуры, задав свойству
f = figure('name', 'Пустая форма','numbertitle', 'off ');
'numbertitle'
значение 'off ':
Получить значение любого свойства объекта можно с помощью функции
get('имя_свойства')
.
Пример 2. Выполним программу
f = figure; position = get(f, 'position') color = get(f, 'color') Получим position = 300 200 560 420 color = 1 1 1
Таким образом, по умолчанию положение и размеры формы задаются зна-
чениями x=300, y=200, width=560, height=420. Цвет рабочей области – свойство
color – задается значениями 1 1 1, что соответствует белому цвету в формате RGB (все три компоненты могут изменяться от 0 до 1).
Чтобы разместить на форме элемент управления, нужно вызвать функцию
uicontrol
h = uicontrol(parent, 'property', 'value', 'property', 'value', …)
Аргумент
. Синтаксис вызова:
parent
– это дескриптор "родительского" элемента управления, чаще всего это сама форма, но в качестве родителя может выступать элемент управления Меню (
uimenu
) или Панель (
125
uipanel
).
Пара аргументов
'property', 'value'
присваивает значение свойству с именем свойства
'property'
'style'
:
. Тип элемента управления определяется значением
'pushbutton' – командная кнопка (значение по умолчанию); 'radiobutton' – радиокнопка; 'checkbox' – флажок; 'text' – надпись; 'edit' – поле ввода; 'listbox' – выбор из нескольких вариантов;
и некоторые другие. Свойство
'units'
определяет, в каких единицах задаются размерные вели-
чины:
'centimeters' – в сантиметрах; 'inches' – в дюймах; 'characters' – в символах; 'pixels' – в пикселях.
Свойство Свойство
'string'
'visible'
содержит текст, выводимый на элемент управления.
определяет видимость элемента управления. По
умолчанию это свойство имеет значение экране. При задании значения
'off
' данный элемент отображаться не будет.
'on'
и элемент отображается на
При создании формы рекомендуется отключить ее отображение, поместить на
нее все необходимые элементы управления и только потом сделать ее видимой.
Обработка событий. Для обработки событий, относящихся к какому-либо элементу управления, необходимо написать функцию – обработчик события, а в свойствах элемента управления связать данное событие с функцией­обработчиком.
Перечислим основные свойства-события:
'callback' – щелчок левой кнопкой мыши;
'buttondownfcn' – нажатие правой кнопки мыши;
'keypressfcn' – нажатие клавиши на клавиатуре.
События мыши связываются с тем элементом управления, на котором в момент щелчка находился курсор мыши, а события клавиатуры – только с самой формой.
Функция-обработчик получает в общем случае три параметра:
–
object
– элемент управления, с которым связано событие;
–
event
–
handles
– дополнительная информация о событии – пока не используется;
– указатели на элементы управления формы. Они нужны для
доступа из функции обработчика к другим элементам формы. Указатели на другие элементы управления можно передать функции-обработчику и через глобальные переменные, однако первый вариант предпочтительнее.
126
Пример. Создадим форму и поместим на нее текстовое поле (надпись) и кнопку. При каждом нажатии на кнопку число в текстовом поле будет увели­чиваться на единицу.
Приведем текст программы с необходимыми комментариями.
% создаём форму
f = figure('position',[400,400,300,150],...
'name','Счётчик нажатий',...
'numbertitle','off',...
'color',[0.7,0.7,0.1],...
'visible','off');
% создаём текстовое поле
txt = uicontrol(f,'position',[80,70,140,60],...
'style','text',...
'string','0',...
'fontsize',28,...
'backgroundcolor','yellow');
% создаём командную кнопку
btn = uicontrol(f,'position',[60,20,180,30],...
'style','pushbutton',...
'string','Нажми меня!',...
'callback',{@fcn,txt});
% делаем форму видимой
set(f,'visible','on');
Заметим, что при создании командной кнопки свойство '
callback
' ссыла­ется на структуру, состоящую из указателя на функцию-обработчик нажатия кнопки
btn
и дескриптора текстового поля
txt
. Текст функции
fcn
поместим в
файл с тем же названием.
% файл fcn.m function fcn(obj,event,txt) num = str2num(get(txt,'string')) + 1; set(txt,'string',num2str(num)) end
Пояснения. Переменная
текстового поля. Функция
txt
содержит дескриптор элемента управления –
get
возвращает значение свойства '
127
string
' поля
txt
, а функция
str2num
преобразует полученную текстовую строку в число.
К результату прибавляем единицу и записываем в переменную
num
.
Теперь нужно вывести новое значение в текстовое поле. Для этого преобра-
зуем число
'string'
num
поля
в строку функцией
txt
.
num2str
и результат присваиваем свойству
При разработке интерфейса программист может управлять параметрами
текста, используя следующие свойства:
–
'fontname'
– значение свойства задает гарнитуру шрифта, например 'Arial', 'Courier New', 'Times New Roman', 'Verdana' и другие установленные в системе шрифты;
–
'fontsize'
– значение свойства задает размер символов. По умолчанию размер символов 10pt задается в ''точках'' (points), однако программист может указать другие единицы измерения с помощью свойства 'fontunits';
–
'fontangle'
'normal' 'italic' 'oblique'
– значение свойства задает наклон символов: – прямой (по умолчанию); – курсив;
– наклонный.
Курсив и наклонный почти не отличаются друг от друга, но курсив
в отличие от наклонного присутствует практически во всех шрифтах;
–
'fontweight'
– значение свойства задает насыщенность шрифта. Пере-
числим эти значения в порядке возрастания насыщенности:
'light'
– светлый;
'normal' 'demi' 'bold’
– нормальный (по умолчанию);
– полужирный; – жирный.
Следует отметить, что в подавляющем большинстве шрифтов реализова-
ны только два варианта – 'normal' и 'demi'.
Для исследования шрифтов разработаем небольшое приложение. Поместим на форму поле для ввода текста, две группы радиокнопок для вы-
бора наклона и насыщенности шрифта и поле выбора гарнитуры шрифта.
Программа состоит из нескольких файлов, рекомендуется разместить их все
в отдельной папке.
Главная программа:
f = figure('position',[100,100,640,360], 'name','Параметры текста', 'numbertitle','off', 'visible','off'); qp = uibuttongroup(f,'position',[0.03,0.02,0.3,0.25], 'title','Наклон'); txt = uicontrol(f,'position',[20,120,400,220], 'style','edit', 'string','Yes!',
128
'fontsize',120, 'backgroundcolor','yellow'); p1 = uicontrol(qp,'position',[10,50,150,20], 'style','radiobutton', 'string','normal', 'callback',{@p_fcn,txt}); p2 = uicontrol(qp,'position',[10,30,150,20], 'style','radiobutton', 'string','italic', 'callback',{@p_fcn,txt}); p3 = uicontrol(qp,'position',[10,10,150,20], 'style','radiobutton', 'string','oblique', 'callback',{@p_fcn,txt}); qw = uibuttongroup(f,'position',[0.35,0.02,0.3,0.25], 'title','Насыщенность'); w1 = uicontrol(qw,'position',[10,50,150,20], 'style','radiobutton', 'string','normal', 'callback',{@w_fcn,txt}); w2 = uicontrol(qw,'position',[10,30,150,20], 'style','radiobutton', 'string','demi', 'callback',{@w_fcn,txt}); w3 = uicontrol(qw,'position',[10,10,150,20], 'style','radiobutton', 'string','bold', 'callback',{@w_fcn,txt});
pn = uipanel(f,'position',[0.67,0.02,0.3,0.92]); bx = uicontrol(pn,'position',[10,10,170,280], 'style','listbox', 'string',{'Arial', 'Arial Rounded MT Bold', 'Book Antiqua', 'Broadway', 'Candara', 'Chiller', 'Colonna MT', 'Comic Sans MS', 'Cooper Black', 'Corbel', 'Courier New', 'David', 'Georgia', 'Gungsuh', 'Harlow Solid Italic', 'Monotype Corsiva', 'Old English Text MT',
129
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]