![](/user_photo/2706_HbeT2.jpg)
- •Тема2 Пошаговые вычисления в командном окне. Содержание.
- •1.2. Формат вывода результата вычислений.
- •1.7. Задания.
- •1.1. Арифметические вычисления.
- •1.3. Использование элементарных функций.
- •1.3.1 Некоторые встроенные элементарные функции:
- •1.3.2 Некоторые специальные константы:
- •1.5. Векторы.
- •1.5.1 Ввод, сложение вычитание.
- •1.5.3 Основные функции для работы с векторами.
- •1.6. Матрицы.
- •1.6.1 Различные способы ввода матрицы.
- •1.6.4 Действиями с матрицами и элементами матриц.
- •Содержание.
- •2.1 Создание м-файлов.
- •2.2 Создание файл-функций.
- •2.3 Задания.
- •2.1 Создание м-файлов.
- •2.2 Создание файл-функций.
- •Содержание.
- •3.7 Задания.
- •3.2 Построение графиков функции одной переменной.
- •3.3 Несколько графиков функций в одних осях.
- •3.4 Несколько графиков в одном графическом окне.
- •3.5 Вывод графиков в отдельные окна.
- •3.6 Оформление графиков.
- •Содержание.
- •5.6 Задания.
- •5.2 Оператор цикла while:
- •5.3. Оператор ветвления if.
- •5.5 Способы ввода данных и вывода результатов.
Содержание.
5.1 Оператор цикла for.
5.2 Оператор цикла while.
5.3 Оператор ветвления if.
5.4 Функции от функций.
5.5 Способы ввода данных и вывода результатов.
5.6 Задания.
__________________
5.1 Оператор цикла for:
for count = start:step:final
команды MatLab
end
Здесь count – переменная цикла; start – её начальное значение; final – конечное значение; step – шаг на который увеличивается (или уменьшатся) переменная count. Если шаг равен 1, то его можно не указывать.
Например, создадим матрицу Q,
размера
,
элементы которой вычисляются по формуле:
,
для этого в М-файле hil
создадим цикл:
------------------------------------------------------------------------------------------------------------------------
% Задание размера матрицы Q
n = 4;
% Инициализируем матрицу Q и заполняем её нулями
Q = zeros(n);
% Вычисляем элементы матрицы Q
for i = 1:n
for j = 1:n
Q(i, j) = 1/(i + j - 1);
end
end
% Отображаем матрицу на экране
disp('Матрица Q = ')
disp(Q)
------------------------------------------------------------------------------------------------------------------------
5.2 Оператор цикла while:
while условие цикла
команды MatLab
end
В условии цикла используются операции отношения или логические операторы:
Обозначение |
Операции отношения |
= = |
равенство |
< (>) |
Меньше (больше) |
< = (> =) |
Меньше или рано (больше или равно) |
~ = |
Не равно |
Логические операторы |
Условие |
Запись в MatLab |
Эквивалентная запись |
Логическое « и » |
|
and (x<3, k = = 4) |
(x<3) & (k = = 4) |
Логическое « или » |
|
or (x = = 1, x = = 2) |
(x = = 1) | (x = = 2) |
Логическое « нет » |
|
not ( x = =2) |
~ (x = = 2) |
Пример. Найдем сумму диагональных элементов матрицы Q. Набираем команды внимательно, чтобы не произошло зацикливание программы. В случае зацикливания надо принудительно прервать выполнение M-файла. Для этого следует нажать клавиши Ctrl+C или Ctrl+Break.
Продолжаем М-файл hil.
------------------------------------------------------------------------------------------------------------------------
s = 0;
k = 1;
while k <= n
s = s + Q(k, k);
k = k+1;
end
% Отображаем сумму на экане
disp('Сумма диагональных элементов матрицы Q = ')
disp( s );
-----------------------------------------------------------------------------------------------------------------------
У цикла while нет переменной цикла, в отличие, от цикла for, поэтому пришлось до начала цикла присвоить переменной k значение нуль, а затем увеличивать k на единицу.
5.3. Оператор ветвления if.
Оператор if может применяться в простом виде
if условие
команды MatLab
end
Например, напишем файл-функцию Rfun для вычисления выражения
проверяющую значение аргумента.
------------------------------------------------------------------------------------------------------------------------
function f = Rfun(x);
if abs(x) < 1
warning ('результат комплексный')
end
f = sqrt(x^2-1);
-----------------------------------------------------------------------------------------------------------------------
Команда warning служит для вывода предупреждения в командное окно.
Теперь вызов Rfun от аргумента, меньшего единицы по модулю, приведет к выводу в командное окно предупреждения:
>> y = Rfun(0.2)
Warning: результат комплексный
y =
0 + 0.9798i
В общем виде оператор ветвления представляет конструкцию
if - elseif – else
Напишем файл-функцию ifdem, демонстрирующую работу if - elseif – else.
-----------------------------------------------------------------------------------------------------------------------
function ifdem(a);
if (a == 0)
disp('a равно нулю')
elseif a == 1
disp('a равно 1')
elseif a == 2
disp('a равно 2')
elseif a >= 3
disp('a больше или равно 3')
else
disp('a меньше 3, но не равно 0, 1, 2')
end
----------------------------------------------------------------------------------------------------------------------
В зависимости от выполнения того или иного условия работает соответствующая ветвь программы, если все условия неверны, то выполняются команды, размещенные после else.
Вызовем функцию ifdem с аргументом 1.2:
При организации циклических вычислений следует, позаботься о том, чтобы внутри цикла не возникало ошибок, и не было зацикливания программы. Для досрочного прерывания цикла можно использовать команду break. Оператор break прерывает цикл и происходит выполнение операторов, расположенных в строках следующих за последним end.
Например, напишем программу prch, определяющую является ли заданное число N простым.
------------------------------------------------------------------------------------------------------------------------
N = input('Ведите число: ')
% Предполагаем, что число простое (pr=1)
pr = 1;
% Перебираем все возможные делители числа N от 2 до N/2
for i=2:N/2
% Если N делится на i,
if mod(N,i) == 0
% то число N не является простым (pr=0)
pr =0;
% и прерывается выполнение цикла
break;
end
end
% Если pr равно 1, то N - простое число
if pr == 1
disp('ПРОСТОЕ ЧИСЛО')
else
disp('НЕ ЯВЛЯЕТСЯ ПРОСТЫМ ЧИСЛОМ')
end
------------------------------------------------------------------------------------------------------------------------
Прервать не только цикл, но и программу можно также оператором error.
Например, изменим начало программы prch.
------------------------------------------------------------------------------------------------------------------------
N = input('Ведите число: ')
ost = round(N)- N;
if (N > 0) & (ost == 0)
% Предполагаем, что натуральное число простое (pr=1)
pr = 1;
else
error('ЧИСЛО N НЕ ЯВЛЯЕТСЯ НАТУРАЛЬНЫМ')
end
% Перебираем все возможные делители числа N от 2 до N/2
........
------------------------------------------------------------------------------------------------------------------------
Теперь, если ввести число, не являющимся натуральным, то программа прервется и укажет об ошибке ввода.