- •Введение
- •Лабораторная работа ип1 Знакомство с Matlab
- •1. Рабочая среда Matlab
- •2. Данные Matlab
- •Типы данных
- •Числовые константы
- •Символьные константы
- •Переменные
- •3. Выражения
- •3.1. Арифметические выражения
- •3.2. Логические выражения
- •3.3. Порядок вычисления выражений
- •4. Сообщения об ошибках и исправление ошибок
- •5. Завершение вычислений
- •6. Завершение работы с системой
- •7. Резюме
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •Лабораторная работа ип2 работа с матрицами в matlab
- •1. Общие сведения
- •2. Одномерные массивы – векторы
- •3. Двумерные массивы – матрицы
- •4. Использование двоеточия
- •4.1. Автозаполнение
- •4.2. Индексация
- •5. Поэлементные и матричные операции
- •6. Стандартные функции для работы с матрицами
- •7. Логическое индексирование
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •10. Упражнения
- •2. Диалоговый ввод/вывод
- •3. Управление последовательностью исполнения операторов
- •3.1. Оператор условия if
- •3.2. Оператор переключения
- •3.3. Оператор цикла с определенным числом повторений
- •3.4. Оператор цикла с неопределенным числом повторений
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип4 визуализация данных в matlab
- •1. Общие сведения
- •2. Построение таблицы значений функции
- •3. Двумерная графика
- •3.1. Общие правила построения графиков
- •3.2. Оформление графиков
- •3.3. Построение графиков
- •3.4. Управление свойствами графиков
- •4. Трехмерная графика
- •4.1. Общие принципы построения трехмерных графиков
- •4.2. Построение трехмерных графиков
- •4.3. Управление свойствами трехмерных графиков
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип5 файл-функции
- •2. Описание m-функции
- •3. Обращение к m-функции
- •4. Параметры-функции
- •5. Разновидности m-функций
- •5.1. Подфункции
- •5.2. Вложенные функции
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •2. Аппроксимация
- •2.1. Моделирование полиномом по методу
- •2.2. Аппроксимация произвольной функцией
- •3. Интерполяция
- •3.1. Кусочная интерполяция
- •3.2. Кубические сплайны
- •3.3. Интерполяция произвольной нелинейной функцией
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип7 Вычисление функций разложением в ряд
- •1. Общие сведения
- •2. Индивидуальное задание
- •Лабораторная работа ип8 Решение нелинейных уравнений в среде Matlab
- •1. Общие сведения
- •2. Поиск корней полиномов
- •3. Решение одного нелинейного уравнения
- •4. Решение систем нелинейных уравнений
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип9 обмен данными с текстовым файлом
- •1. Общие сведения
- •2. Открытие файла
- •3. Запись в текстовый файл
- •3.1. Запись строковых значений
- •3.2. Запись числовых значений
- •4. Чтение из текстового файла
- •4.1. Последовательное чтение строк
- •4.2. Последовательное чтение нескольких символов
- •4.3. Чтение чисел из текстового файла
- •4.4. Альтернативный доступ к текстовому файлу
- •5. Закрытие файла
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •Заключение
- •Список рекомендуемой литературы
- •Программирование в matlab
- •428015 Чебоксары, Московский просп., 15
3.4. Оператор цикла с неопределенным числом повторений
Синтаксис оператора
while выражение
операторы
end
Оператор цикла с неопределенным (заранее неизвестным) числом повторений while многократно выполняет операторы, составляющие тело цикла, пока управляющее выражение истинно (не равно нулю). Если изначально выражение ложно, то цикл while не выполнится ни разу. В теле цикла обязательно должны быть операторы, которые изменяют значения операндов управляющего выражения. Иначе получится бесконечный цикл. Цикл с неопределенным числом повторений называют также циклом без параметра.
Пример, вычислить машинную точность, т.е. погрешность операций над числами с плавающей точкой – наименьшее число, которое различает машина (машинный эпсилон). Для сравнения напечатать значение стандартной константы Matlab eps = 2-52.
e = 1;
while 1 + e ˜= 1,
e = e/2;
end;
disp(['машинный eps = ', num2str(2*e)])
disp(['стандартное значение eps = ', num2str(eps)])
Значение переменной е шаг за шагом уменьшается в два раза до тех пор, пока машина не станет воспринимать ее ненулевое значение, как ноль. В результате получим (в формате long)
машинный eps = 2.220446049250313e-016
Стандартное значение eps = 2.220446049250313e-016
4. Контрольные вопросы
Как можно создать файл с программой на языке Matlab?
Под какими именами можно сохранять m-файлы?
Где хранятся переменные, используемые при выполнении скрипта?
Как выполнить последовательность операторов, оформленную в виде скрипта?
Как организовать ввод данных с клавиатуры?
Как выполняется вывод результатов работы скрипта в рабочее окно Matlab?
Как вывести значения нескольких переменных в одну строку?
Как вывести в одной строке пояснительный текст и числовое значение?
Какие управляющие структуры можно использовать при написании Matlab-программ?
Каков синтаксис и как работает оператор if?
Для чего используется переключатель switch?
Каковы правила использования оператора for?
Что общего и чем отличаются циклы с параметром и без?
Каковы правила использования оператора while?
5. Индивидуальные задания
5.1. Используя цикл for решить задачу, определяемую вариантом в соответствии с табл. 3.2.
5.2. Используя цикл while решить задачу, определяемую вариантом в соответствии с табл. 3.3.
Таблица 3.2
Вариант |
Задание |
1 |
2 |
1 |
Два простых числа, разность которых равна 2, называют близнецами. Найти всех близнецов среди натуральных чисел из диапазона [А, В] |
2 |
Два натуральных числа, каждое из которых равно сумме делителей другого числа, не считая самого числа, называют дружественными (так 284, делители которого 1+2+4+71+142=220 и 220 с делителями 1+2+4+5+10+11+20+22+44+55+110=284, являются дружественными). Определить, являются ли два числа, введенные с клавиатуры, дружественными |
3 |
Вывести на экран все простые делители и НОД двух натуральных чисел, введенных с клавиатуры |
4 |
Определить, является ли введенное с клавиатуры число совершенным, т.е. равным сумме всех своих положительных делителей, кроме самого числа (например, число 6 совершенно: 6=1+2+3) |
5 |
Вычислить сумму четных составных чисел, принадлежащих отрезку натурального ряда, заданного границами [A, B] |
6 |
Вывести на экран в возрастающем порядке все трехзначные числа из диапазона [A, B], в десятичной записи которых нет одинаковых цифр, и сумма цифр равна некоторому наперед заданному числу |
7 |
Вывести полные записи всех чисел 5*4*, в которых разные пропущенные цифры обозначены *, если известно, что данные числа кратны некоторому А |
8 |
Вывести на экран трехзначные натуральные числа из диапазона [A, B], сумма цифр которых равна некоторому N |
Окончание табл. 3.2
1 |
2 |
9 |
Определить, являются ли два числа, введенные с клавиатуры, взаимно простыми, т.е. не имеют общих простых делителей (например, 8 и 9 - взаимно простые числа) |
10 |
Вычислить среднее значение простых чисел, принадлежащих отрезку натурального ряда, заданного границами |
11 |
Вывести на экран все простые делители и НОК двух натуральных чисел, введенных с клавиатуры |
12 |
Вывести на экран номера "счастливых" четырехзначных автобусных билетов (сумма двух первых цифр равна сумме двух последних) и среди них подсчитать количество билетов, сумма первых двух цифр которых равна некоторому натуральному А |
Таблица 3.3
Вариант |
Задание |
1 |
Для заданного х вывести на экран K многочленов Чебышева, больших некоторого наперед заданного числа А. Вычислить их сумму |
2 |
Вывести на экран первое число Фибоначчи, большее некоторого наперед заданного числа А, и число Фибоначчи, стоящее перед ним |
3 |
Для заданного х вывести на экран многочлены Чебышева, величины которых попадают в заданный интервал [А, В) |
4 |
Вычислить сумму чисел Фибоначчи, которые не превосходят некоторое наперед заданное число А. Вывести на экран числа слагаемые |
5 |
Вывести на экран К чисел Фибоначчи, непосредственно предшествующих некоторому наперед заданному числу А. Вычислить их произведение |
6 |
Определить наименьшее значение натурального х, n-й многочлен Чебышева от которого >A |
7 |
Вывести на экран числа Фибоначчи из заданного диапазона [А, В]. Вычислить их произведение |
8 |
Для заданного х определить номер n наименьшего многочлена Чебышева, такого что |
9 |
Вывести на экран К чисел Фибоначчи, больших некоторого наперед заданного числа А. Вычислить их сумму |
10 |
Вывести на экран числа Фибоначчи, большие А, сумма которых не превышает В |
11 |
Для заданного х определить наибольший многочлен Чебышева, такой что |
12 |
Для заданного х вывести на экран номера многочленов Чебышева, не превосходящих по величине заданного числа А |
Примечание: Многочлены Чебышева для заданного х могут быть вычислены по рекуррентным соотношениям , , , . Значения аргумента х задаются из диапазона (1, ).