- •3. Программирование в matlab
- •Структура файлов сценариев
- •Свойства файлов сценариев:
- •Пример использования файла сценария
- •Пример использования файла функции
- •4. Управляющие структуры в matlab
- •Приведите формат оператора цикла с заданным числом повторений.
- •Как организовать регулярные циклы с шагом отличным от единицы в matlab?
- •Приведите формат оператора цикла с неизвестным числом повторений, и пояснить, как с его помощью реализуется циклический процесс?
Структура файлов сценариев
% Основной комментарий //в первой строке
% Дополнительный комментарий //последующие строки
Тело файла с любыми выражениями
Свойства файлов сценариев:
- не имеют входных и выходных параметров;
- работают с данными из рабочей области;
- в процессе выполнения не компилируются;
- представляют собой последовательность операций, аналогичную сессии.
Пример использования файла сценария
Р ассмотрим работу с файлом сценарием на примере, вычислении функции y(x), в интервале -3..5 с шагом 0,2, если параметр b=0,2. Последовательность действий:
Создам M-файл командой: File=>New=>M-file
О ткрывается окно редактора, в которое вводится программа.
Рис.1. Окно редактора M-файла
3. Сохраняется файл в окне Editor командой: File=>Save as=>FuncY.m
4. В окне Command Window необходимо задать конкретные значения (входные параметры) и вызвать файл по имени в командной строке.
Рис.2. Ввод исходных данных, вызов функции Y и ее график в отдельном окне.
Структура файлов функций с одним выходным параметром
function var=f_name(Список_параметров)
% Основной комментарий
% Дополнительный комментарий
Тело файла с любыми выражениями
var=<выражение> % вводится, если требуется, чтобы функция возвращала
результат вычислений
Структура файлов функций с несколькими выходными параметрами:
function [var1,var2,…]=f_name(Список_параметров)
%Основной комментарий
%Дополнительный комментарий
Тело файла с любыми выражениями
var1=<выражение>
var2=<выражение>
Такая функция напоминает процедуру.
Свойства файла функции:
- начинается с объявления function, с указанием имя переменной var – выходного параметра, имя самой функции и список ее входных параметров;
- функция возвращает свое значение и может использоваться в виде
name(Список_параметров) в математических выражениях;
- все переменные в теле файла являются локальными;
- является самостоятельным программным модулем;
- правила вывода комментариев те же, что у фалов сценариев;
- при обнаружении файла функции, он компилируются, и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATLAB;
- служит средством расширения системы MATLAB.
Статус переменных в функциях
Переменные, указанные в списке параметров функции, являются локальными и служат для переноса значений, которые подставляются на их место при вызовах функций. Изменение значений переменных в теле функции не влияет на значения, которые те же самые переменные могут иметь за пределами функции.
Пример использования файла функции
Рассмотрим работу с файлами функциями на примере, вычислении функций y(x), z(x) и t(x)=y(x)-z(x) в интервале -3..3 с шагом 0,2.
Последовательность действий:
Создадим M-файл командой: File=>New=>M-file
В каждое окно редактора поочередно ввести программы для расчета функций F1(x)… F3(x) с последующим сохранением командой: File=>Save as=>F1.m (F2.m, F3.m).
В окне Command Window задаем исходные значения и выводим график F1(X) и F2(X).
>> % Исходные данные
>> xmin=-3; % начальное значение
>> xmax=3; % конечное значение
>> h=0.2; % шаг аргумента
>> X=xmin:h:xmax; % вектор аргумента
>> % График локализации корней
>> plot(X,F1(X),'-b*',X,F2(X),':m.'); grid on;
Рис.3. Вывод заданных функций и корней уравнений
Анализируем график, находим визуально окрестности существования корней (для F1(x) этот интервал равен -2..-1, F2(x) имеет два корня и два интервала: первый -2..-1, второй 1..2, а функция F3(x) – один корень и один интервал, который можно принять 1..2), вызываем файлы-функции по имени относительно найденных окрестностей.
>> x1= fzero('F1(x)',[-2 -1]); % Корень функции F1(x)
>> x1
x1 =
-1.4328
>> x2= fzero('F2(x)',[-2 -1]); % Первый корень функции F2(x)
>> x2
x2 =
-1.5708
>> x3=fzero('F2(x)',[1 2]); % Второй корень функции F2(x)
>> x3
x3 =
1.5708
>> x4=fzero('F3(x)',[1 2]); % Корень системы уравнений F1(x) и F2(x)
>> x4
x4 =
1.4622
>> Result=strcat('Roots: x1=',num2str(x1),' x2=',num2str(x2),' x3=',num2str(x3),' x4=',num2str(x4));
% строка результата
>> title(Result); % заголовок графика
>>
Система MATLAB с помощью функции fzero() находит точные корни уравнений.