Программирование арифметических выражений и построение кусочного графика функции с помощью среды MATLAB
Российский государственный университет
нефти и газа имени И.М.Губкина
Кафедра «Информатики»
Реферат на тему:
"Программирование
Выполнил:
Студент гр. РБ 13-01
Шевцов Д.М.
Проверила:
профессор кафедры информатики
Храброва Оксана Юрьевна
Москва-2013
Оглавление
ВВЕДЕНИЕ
MATLAB - матричная лаборатория - наиболее
развитая система
MATLAB предназначен прежде всего
для программирования
MATLAB - система программирования
высокого уровня, работающая как
интерпретатор и включающая
MATLAB — программный продукт, нацеленный на разработку и отладку алгоритмов расчета. MATLAB применяется, главным образом, в инженерных расчетах.
Достоинства:
- «элегантная поддержка матриц»;
- удобный графический интерфейс;
- простота в работе.
Недостатки:
- дороговизна лицензий;
- неполная поддержка статистических функций;
Содержание задания №1
1) Рассчитать целочисленные выражения U и R.
2) Разработать блок-схему для арифметических выражений A и B и параметра F.
3) Заполнить таблицу
Вид данных: вх / вых данные |
Математическое обозначение |
Соответствующий индикатор |
Тип данных |
4) В MATLAB создать приложение согласно разработанной блок-схеме. В программе предусмотреть вывод всех исходных и вычисленных значений через интерфейс. Вывести значения A, B и F в двух форматах (с плавающей и фиксированной точкой). Проверить работоспособность программы в режиме отладки. В заголовке указать ФИО автора, группу и вариант.
*значения X и Y вводятся с клавиатуры.
Подготовка программы для выполнения задания
1) Открываем приложение MATLAB.
2) В меню создаем New script.
3) Сохранение script.
В появившемся окне Editor нажимаем на кнопку "Run" При нажатии кнопки Run наш скрипт сохраняется. Сохраняем наш файл в нужную папку и называем файл, используя только латиницу.
4) Для последующей работы в Commander Window очищаем сообщение с помощью команды clc (Clear Command Window).
Выполнение задания
1. Расчет U и R.
По заданию нам необходимо рассчитать значения U и R. Для начала преобразуем формулы для среды MATLAB. Они будут выглядеть следующем образом.
U=fix(26/9) - 5
R=27 - rem(16,3)
Записываем в редактор Editor формулы U и R. Результаты выводятся в Command Window.
Ответ: U=-3; R=26;
2. Алгоритм расчетов выражений.
Логическая структура для расчетов выражений А и В будет следование.
Следование - последовательность операторов (групп операторов), выполняемых друг за другом в порядке следования в тексте программы
Ниже представлен алгоритм расчетов арифметических выражений А и В.
Логическая структура для расчета параметра F будет ветвление.
Ветвление - управляющая структура, которая в зависимости от выполнения заданного условия определяет выбор для исполнения одного из двух или более заданных в этой структуре групп операторов;
ДА НЕТ
3. Заполнение таблицы.
Вид данных: вх / вых данные |
Математическое обозначение |
Соответствующий индикатор |
Тип данных |
Входные |
X |
X |
Real |
Входные |
Y |
Y |
Real |
Входные |
U |
U |
Integer |
Входные |
R |
R |
Integer |
Входные |
d |
d |
Real |
Входные |
z |
z |
Real |
Выходные |
A |
A |
Real |
Выходные |
B |
B |
Real |
Выходные |
F |
F |
Real |
4. Создание приложения в MATLAB
1. Создание интерфейса.
В Command Window прописываем команду clc, а затем создаем графический интерфейс с помощью команды guide.
При запуске команды guide появ
Нажимаем на флажок Save new figure
as и сохраняем в нужную папку и нажимаем
кнопку "ОК". Имя файлы обязательно
писать только на Латинице.
*для открытия существующего файла нужно
перейти на вкладку Open Existing GUI и выбрать
путь к этой папке.
После нажатия кнопки "ОК" появляется окно редактора GUI Layout Editor
В этом редакторе можно вручную создавать все элементы интерфейса: панели, кнопки и т.д.
2. Подготовка интерфейса.
На этом этапе нам необходимо подготовить интерфейс для работы приложения. Для этого нам понадобятся следующие компоненты:
- кнопка Push Button , при нажатии на которую наше приложение будет рассчитывать наши параметры.
- поле Edit Text , необходимое для ввода X и Y.
- компонент Static Text . В этот компонент будет выводится значения.
На следующем рисунке я показал, что получилось у меня после добавления компонентов на интерфейс.
Для редактирования компонентов нужно нажать на них два раз. В окне Inspector можно изменять различные параметры, например, положение компонентов, его цвет, текст в нем, его размеры и т.д.
Для нашего задания изменим параметр FontSize (изменение размера текста), String(редактирование текста на компоненте) и BackgroundColor (цвет заливки компонента).
После редактирования интерфейс выглядит следующим образом:
После подготовки нашего интерфейса, нажимаем "Run" . Открывается рабочее окно, где можно набрать значения в Edit Text или нажать кнопку Push Button.
* При нажатии кнопки "Run" все наши изменения с интерфейсом записываются в виде кода в файл, который мы подготовили для интерфейса.
Так как мы не задали никакого действия под кнопку, на интерфейсе ничего не происходит. Поэтому мы закрываем запустившееся окно и переходим непосредственно к его коду.
3. Завершение создания приложения.
На этом этапе нам нужно, чтобы приложение считывало значения из Edit Text при нажатии клавиши, а затем подставляло это значение в наши арифметические выражения.
1) Считывание значений из Edit Text с помощью Get function.
get (handles.tag name, 'tag property')
tag name - имя компонента;
tag property - свойства компонента;
! При использовании текста из Edit Text tag property будет 'string'.
Итак, команда для считывания X и Y в нашем приложении будет выглядеть следующим образом:
x = get(handles.edit1, 'string');
y = get(handles.edit2, 'string');
Запишем код в файл в функции Push Button:
2) Преобразование параметра из string в integer/real.
Программное обеспечение MATLAB берет значение из Edit Text в виде символьной строки. Для использования значений параметров необходимо преобразовать формат значений (из формата string в формат real/integer). Это можно сделать, используя команду
sscanf (variable, format)
То есть с помощью этой команды мы считываем значения в текстовом формате и переводим эти значения в численный формат.
Для нашего приложения изменим формат значений X и Y:
X = sscanf (x, '%f')
Y = sscanf (y, '%f')
Запишем код в файл в функции Push Button:
3)
Запись арифметических
4) Вывод в компонент Static Text значения A, B и F с помощью команды Set function.
set(handles. tag name, 'tag property', variable)
tag name - имя компонента;
tag property - свойства компонента;
variable - параметр, который мы используем.
Итак, команда для считывания X и Y в нашем приложении будет выглядеть следующим образом:
set(handles.text6,'string',A)
set(handles.text7,'string',B)
set(handles.text8,'string',F)
Запишем код в файл в функции Push Button:
5) Запуск приложения с помощью кнопки Run .
6) Заполнение заголовка.
По заданию в заголовке нужно записать ФИО, номер группы и вариант. Для этого открываем окно редактора GUI Layout Editor. Кликаем 2 раза на поле фигуры. Меняем параметр Name.
Использование приложения
(ниже представлены примеры
ЗАМЕТКИ
Некоторые моменты, на которые стоит обратить внимание.
1. После входа в программу, необходимо сразу же сохранится.
2. Если у Вас есть параметр X и выражение Y, в котором используется параметр X, то необходимо сохранять размер текста параметра. Пусть, Y=sin(X), а параметр X=1. При написании кода в MATLABE будет:
Но если параметр в выражении Y написать с маленькой буквы, то MATLAB выведет ошибку, так как параметр X и x - это разные параметры.
Аналогично, если вы будете выводить значение в Static Text , то необходимо указать "настоящее" tag name (имя компонента).
set(handles.text6,'string',A)
- правильно
set(handles.Text6,'string',A)
- ошибка
- Необходимо учесть ОДЗ (область допустимых значений) для выражений A и B.
Для арифметического выражения B ОДЗ будет от -∞ до +∞.
Для арифметического выражения
A в ОДЗ не входят X=R=26 и Y=0. Если в Edit Text записываются
данные значения, то необходимо записать
в text6 «значение X/Y не удовлетворяют».
Чтобы выполнить данное условие, необходимо
сделать условия на параметры X и Y.
Код будет выглядеть следующим образом:
if Y==0 set(handles.text6,'string','
elseif X==R set(handles.text6,'string','
else set(handles.text6,'string',A)
end
Содержание задания №2
Создать приложение для построения графика кусочной функции f(x), определенной на интервале [a,b] следующим образом:
Начальные значения параметров a,b,c, количество узлов N и вид функции F1(x), F2(x) заданы:
Ход работы:
1. Создать проект и сохранить его в отдельной папке. В заголовке интерфейса указать ФИО, № группы и вариант.
2. Разместить
компоненты для ввода
3. Вывести значения кусочной функции f(x) на заданном интервале [a,b] с шагом h в Command Window.
Выполнение задания
1. Создание интерфейса и его редактирование.
Создаем папку с Вашими ФИО и номером группы. В Command Window прописываем команду guide и сохраняем файл в созданную папку. Более подробнее о создании интерфейса Вы можете прочитать в Задании №1.
После того, как появляется окно редактора GUI Layout Editor добавляем необходимые нам компоненты.
По заданию необходимо добавить компоненты Edit Text для ввода значений параметров a, b, c, n. Удобнее разместить эти компоненты в Panel . После добавляем кнопку Push Button и область для построения графиков axes .
Результат после добавления всех компонентов на интерфейс можно увидеть на рисунке:
После редактирования интерфейса в меню Inspector внешний вид интерфейса стал следующим:
2. Написание кода приложения.
Код программы записываем под function PushButton.
Для того, чтобы вывести значения из Edit Text воспользуемся командой get и преобразуем формат значений через команду sscanf:
a = get(handles.edit1, 'string');
a = sscanf(a1,'%f')
b = get(handles.edit2, 'string');
b = sscanf(b1,'%f')
c = get(handles.edit3, 'string');
c = sscanf(c1,'%f')
n = get(handles.edit4, 'string');
n = sscanf(n1,'%f')
Следующим действием посчитаем шаг табуляции h. Формула для расчета h
Преобразуем формулу h для среды MATLAB и выведем значение в Static Text:
h = (b-a)/(n-1)
set(handles.text6,'string',h)
Для того, чтобы построить график F(x) нужно:
1) задать диапазон значений x с шагом табуляции
h.
2) написать формулу функции на языке MATLAB.
3) написать команду для
4) оформить график на интерфейсе (построение сетки и изменение цвета графика).
1) По заданию х находится в интервале
[a,b]. В MATLAB диапазон записывается следующим
образом:
x = a:h:b
где a - начало отрезка, b - конец
отрезка, h - шаг табуляции.
так как у нас кусочная функция, то x будет находится в двух интервалах.
x1 = a:h:c
x2 = c:h:b
2)
Формула для F1:
y1 = -(x1+3).^2/2+5
Формула для F2:
y2 = exp(x2/3)-5
3) Для построения графика можно воспользоваться командой plot(variable(x),variable(y))
Так как у нас кусочная функция, то вид команды будет иметь вид:
plot(x1,y1, x2,y2)
После ввода кода в компоненте axes строится графики y1(x1) и y2(x2):
4)
Построение сетки можно осуществить с
помощью команды grid on.
Для изменения цвета графиков нужно после
параметров, которые задают этот график,
в '' написать символ, который отвечает
за параметр Color.
Например:
Для того, чтобы сделать заголовок над компонентом axes, нужно написать команду title('заголовок')
3. Запуск приложения
Так выглядит интерфейс после написания кода в файл, интерфейс будет выглядеть так:
ЗАМЕТКИ
1) Для построения более точного графика, нужно увеличить количество узлов n. Соответственно, шаг табуляции h уменьшается и разность между соседними точками уменьшается, тем самым график строится более точно. Пример:
2) Построение графиков
можно производить в Command Window без
интерфейса, что намного упрощает работу.
Например, x находится в интервале [-pi;pi],
функция y=sin(x);
Для построения графика, как уже было описано
выше нужно задать интервал переменной
x, написать функцию на языке MATLAB и записать
команду plot(x,y).
При нажатии Enter в новом окне figure строится
график
3) Если поставить после формулы/значения параметра ; то значение этого параметра не будет выводится в Command Window, но все равно сохраняется в окне Workspace
ЛИТЕРАТУРА
- Кетков Ю. Л., Кетков А. Ю., Шульц М. М., MATLAB 7 Кетков программирование численные методы;
- Интернет-ресурсы;
- Лекции;
- Программирование в Delphi
- Программирование в Паскале. Одномерные массивы
- Программирование как часть кибернетики
- Программирование линейных алгоритмов
- Программирование линейных алгоритмов
- Программирование микрокомпьютера. Общая информация
- Программирование на HTML
- Программа управления рисками ОАО «Мостотрест»
- Программа финансового оздоровления предприятия
- Программа формирования универсальных учебных действий у обучающихся на ступени начального общего образования
- Программа экономических и политических преобразований С.Ю. Витте
- Программирование
- Программирование
- Программирование