- •ПРЕДИСЛОВИЕ
- •ВВЕДЕНИЕ
- •ЧАСТЬ 1. ПЕРВОЕ ЗНАКОМСТВО С MATHCAD
- •Введение. Общие правила работы в среде Mathcad
- •§1. Ваши первые примеры
- •1.1. Ввод данных, формул, вывод решения
- •1.3. Построение графика функции одной переменной
- •1.4. Построение графика функции двух переменных
- •1.5. Освоение функции CreateMesh для форматирования графика
- •§2. Решение уравнений
- •2.2. Нахождение корня уравнения. Операторная скобка Given – Find
- •§3. Учебная задача
- •3.1. Постановка задачи
- •§4. Индивидуальные задания по части 1
- •ЧАСТЬ 2. МАТРИЦЫ И ВЕКТОРЫ В MATHCAD
- •Введение. Общие сведения о матричной алгебре в Mathcad
- •§5. Осваиваем технику работы с матрицами и векторами
- •5.1. Ввод матрицы и вектора
- •5.3. Обращение к столбцу матрицы
- •5.6. Запись массивов данных на диск
- •5.7 Соединение (композиция) матриц и векторов
- •§6. Алгебра матриц
- •6.1. Транспонирование матриц
- •6.2. Умножение матрицы на скаляр
- •6.3. Операции умножения матриц
- •6.4. Сложение матриц
- •6.5. Операции с квадратными матрицами
- •6.6. Решение примеров с действиями алгебры матриц
- •6.7. Специальные приемы работы с матрицами
- •6.8. Ранг матрицы
- •§7. Некоторые применения матриц и векторов
- •7.1. Нахождение всех корней уравнения n-й степени
- •7.2. Применение матриц и векторов для решения систем линейных уравнений
- •7.3. Применение матриц и векторов в задаче интерполяции
- •§8. Учебная задача
- •8.1. Постановка задачи
- •8.2. Решение
- •§9. Индивидуальные задания по части 2
- •ЧАСТЬ 3. ПРОГРАММИРОВАНИЕ В MATHCAD
- •Введение. О программировании в среде Mathcad
- •§10. Осваиваем технику программирования в Mathcad. Ваша первая программа
- •10.2. Выполнение этапа 2 «Разбор способа получения результата. Расчет примеров»
- •10.4. Выполнение этапа 4 «Расчет контрольных примеров применительно к алгоритму»
- •10.5. Выполнение этапа 5 «Составление программы, отладка на контрольных примерах»
- •§11. Задания для самостоятельной разработки программы
- •§12. Учебная задача
- •12.1. Введение
- •12.2. Общие положения
- •12.3. Выполнение фазы 1 решения задачи «Понять существо задачи»
- •12.4. Выполнение фазы 2 решения задачи «Предложить идею алгоритма»
- •12.6. Выполнение фазы 4 «Оценить точность программы, а также ее потенциал в качестве средства для решения других задач»
- •§13. Индивидуальные задания по части 3
- •ЧАСТЬ 4. СИМВОЛЬНЫЕ ПРЕОБРАЗОВАНИЯ В MATHCAD
- •Введение. Сведения о символьных преобразованиях в Mathcad
- •14.1. Опция Evaluate – Symbolically
- •14.3. Опция Symbolics – Expand
- •14.4. Опция Symbolics – Variable
- •§15. Учебная задача
- •15.1. Постановка задачи
- •15.2. Этапы решения
- •15.6. Выполнение этапа 4 «Решение» (на компьютере)
- •§16. Создание анимационных клипов
- •16.1. Общие сведения
- •16.2. Фазы создания анимационного клипа
- •Список использованной литературы
- •2. Арифметические, алгебраические и логические операторы
- •6. Часто употребляющиеся функции
- •8. Графики
- •Общие замечания
- •1. Плоскости
- •2. Прямая линия в пространстве
- •3. Цилиндр
- •4. Конус
Текст программы |
|
Комментарий, см. опи- |
||||
|
|
|
|
|
|
сание Исполнителя |
max_value(M) := |
|
max ← M |
0 |
Переменной max присваивается значение нулевого элемента |
||
|
||||||
|
|
|
|
массива М (предполагаемый максимум) |
||
|
|
number_max ← 0 |
Переменной number_max присваивается нулевая пози- |
|||
|
|
ция массива М (позиция предполагаемого максимума) |
||||
|
|
n ← rows (M) − 1 |
Расчет числа элементов в массиве исходных данных |
|||
|
|
for |
k 1.. n |
Цикл по номерам элементов массива, начиная с первого |
||
|
|
if Mk > max |
Проверка условия – превышает ли текущее значение |
|||
|
|
элемента массива величину предположения о максимуме |
||||
|
|
|
max ← Mk |
max. Если условие выполняется – входим в конструкт if |
||
|
|
|
При выполнении условия заменяем значение мак- |
|||
|
|
|
|
|
|
симума на текущее значение элемента массива, а |
|
|
|
number_max ← k номер – на номер позиции текущего элемента |
|||
|
|
|
max |
|
Если условие не выполняется – в конструкцию if алго- |
|
|
|
ритм «не заходит» |
||||
|
|
number_max |
После завершения цикла вводим шаблон матрицы |
|||
|
|
(<Ctrl>+<M>) и присваиваем ее нулевому элементу зна- |
||||
|
|
чение максимума, а первому – номер позиции, на которой он размещен
12.6. Выполнение фазы 4 «Оценить точность программы, а также ее потенциал в качестве средства для решения других задач»
После ввода протестируйте программу. Выведите вектор, возвращаемый функцией, и убедитесь, что максимальное число равно 2.5, размещается на позиции 4:
max_value(M) = 2.5
4
А затем попытайтесь обобщить программу так, чтобы она искала и максимальный, и минимальный элемент массива M и указывала номера позиций в массиве, на которых эти элементы расположены.
§13. Индивидуальные задания по части 3
Общая часть всех задач: в файле April.prn находятся данные о среднесуточных температурах в каждые сутки апреля. Структура файла (рис. 3.17): в столбце № 0 записаны даты апреля (по формату это – обычные числа в формате с двумя позициями после десятичного разделителя). В столбце 1 записаны среднесуточные температуры, измеренные с точностью до 0.1 °С. Для того чтобы осмыслить задачу (фазы 1 и 2, см. в §12 описание учебной задачи), постройте график изменения температур. Он имеет вид, показанный на рис. 3.18.
122
Столбец № 0: Столбец № 1: Дата Температура
Среднесуточные температуры, градусы Цельсия
Даты апреля
Рис. 3.17. Структура файла |
Рис. 3.18. Изменение температур в апреле. |
April.prn. |
|
Варианты:
№1. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать массив. В столбце № 0 должны быть даты апреля, в которые температуры были отрицательными, а в столбце № 1 – значения этих отрицательных температур. Если отрицательных температур в массиве исходных данных нет, функция должна выводить сообщение «Нет дней с отрицательной температурой».
№2. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать массив средних значений температур за 5-дневки (если хотите, усложните задачу, чтобы функция возвращала массив средних температур за заданное число дней, не обязательно за 5).
№3. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать дату, начиная с которой сумма всех положительных температур с начала апре-
ля превысит заданное значение (для примера 10 °С). Функция должна помочь крестьянам установить дату сева. Эта дата определяется по числу накопленных (т. е. просуммированных) положительных температур с начала апреля. Пример: для сева яровой пшеницы накопленные положительные температуры должны быть не менее 10 °С.
№ 4. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать дату, для которой имело место самое большое (т. е. самое близкое к 0) значение отрицательной температуры. Если отрицательных температур в мас-
123
сиве исходных данных нет, функция должна выводить сообщение «Нет дней с отрицательной температурой».
№5. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать: (а) дату, для которой имело место значение температуры, самое близкое к среднемесячной температуре; (б) среднемесячную температуру; (в) значение температуры, самое близкое к среднемесячной.
№6. Разработайте программу-функцию, аргументами которой являются: (а) массив дат и температур апреля; (б) шифр дня недели, приходящегося на 01.04. Шифры: 0 – воскресенье, 1 – понедельник, … , 6 – суббота. Функция должна возвращать массив дат и температур всех воскресений апреля.
№7. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать значение высоты ростков помидоров, посаженных 01.04, если известна формула, определяющая высоту. Высота ростков на текущую дату пропорциональна корню квадратному из суммы положительных температур, накопленных к текущей дате; коэффициент пропорциональности равен 1.5.
№8. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать значение месячной (за апрель) оплаты за электроэнергию, израсходованную Вашей сплит-системой. Сплит-система настроена на поддержание задан-
ной температуры в комнате (например, на 22 °С). Расход электроэнергии в данные сутки пропорционален квадрату отклонения температуры в эти сутки от заданной для сплит-системы. Коэффициент пропорциональности равен 0.01. Стоимость 1 кВт-ч электроэнергии равна 1.1 рубля.
№9. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать: (а) продолжительность дня (светлой части суток), в который имела место самая высокая за весь апрель температура; (б) дату этого дня; (в) значение температуры в этот день. Указание. Продолжительность светлой части суток внутри годичного периода изменяется по закону синуса. Минимальное значение (9 часов) приходится на 22.12. Максимальное значение (15 часов) приходится на 22.06. Выведите формулу для продолжительности светлой части суток и используйте ее для расчета продолжительности светлой части суток в апреле.
№10. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать (а) продолжительность периода, в течение которого все температуры от текущей даты до конца апреля были положительными; (б) дату, начиная
124
с которой в апреле уже не было отрицательных температур или, если период положительных температур отсутствует, сообщение «Нет дат с положительными температурами»; (в) температуру на дату п. (б) или, если период положительных температур отсутствует, сообщение «Нет положительных температур».
№ 11. Разработайте программу-функцию, аргументом которой является массив дат и температур апреля. Функция должна возвращать максимальное (по абсолютной величине) отклонение температуры в апреле от среднемноголетней, заданной формулой: < среднемноголетняя температура, рассчитываемая по номеру суток апреля> = – 5 + 0.5 <номер суток апреля>. Например, среднемноголетняя температура в 10-е сутки ап-
реля равна: -5 +0.5 10 = 0°С.
125