Справочник от Автор24
Поделись лекцией за скидку на Автор24

Системы компьютерной математики

  • 👀 473 просмотра
  • 📌 444 загрузки
Выбери формат для чтения
Статья: Системы компьютерной математики
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Системы компьютерной математики» pdf
Системы компьютерной математики (Основы работы в Mathcad) Введение Для решения задач компьютерного моделирования пищевых технологий используются различные программные средства. Одним из них является Mathcad. Mathcad – математический пакет, т.е. пакет программ для математических вычислений. Кроме Mathcad существуют и другие математические пакеты, например, Mathlab, МАТЕМАТИКА и др., однако Mathcad – самый распространённый. Лабораторные занятия по дисциплине приведены в пакете Mathcad. Практикум состоит из модуля « Основы работы в Mathcad» содержит две лабораторные работы. В них рассматривается работа с основными окнами и решаются задачи построения графиков, действий над матрицами, решения алгебраических уравнений, дифференцирования, интегрирования и построения законов распределения. Задачи решаются как в численной, так и в символьной формах. В данной работе рассмотрена работа в версиях Mathcad-13 и Mathcad-14. §1 Знакомство с Mathcad Войдите в пакет Mathcad. Обратите внимание на то, что вся работа в Mathcad должна проводиться на латинском (английском) алфавите. После запуска появляется окно (рис. 1.1). Рис. 1.1. Окно после запуска Вверху расположены две строки с типовыми элементами интерфейса. Верхняя строка – титульная. Она отображает название загруженного или вводимого с клавиатуры документа. Если у документа еще нет имени, там появляется надпись Untitled (без названия). 1 Ниже расположено меню. Рассмотрим и раскроем его опции. Опции File (Файл), Edit (редактирование) типичны для всех приложений Windows, поэтому их рассматривать не будем. Опция View (вид) содержит ряд строк, первая из которых – Toolbars (инструментальные строки). Раскроем её (рис. 1.2) и рассмотрим некоторые её опции. Обращение к первой опции Standart вызывает на экран стандартную панель. Эта панель во многом идентична соответствующим панелям других приложений Windows, однако, там имеется опция f(x), с помощью которой вызываются встроенные функции Mathcad. Мы рассмотрим её несколько позднее. Вызовем и кратко рассмотрим некоторые другие строки. Строка Formatting (форматирование) аналогична соответствующим опциям других приложений. Строкой Math (математика) вызывается математическая панель. Она содержит кнопки, дублирующие опции Calculator (калькулятор), Graph (графика), Matrix (матрицы), Calculus (вычисления), Рис. 1.2 Строка “ Toolbars” Boolean (Булевы функции), Greek (Греческий), Programming (Программирование), Symbolic (Символьные вычисления). Строка Graph (графика) вызывает панель графики, строка Matrix (матрицы) обеспечивает операции над матрицами, с помощью строки Calculus (вычисления) производятся дифференцирование, интегрирование, суммирование и произведение, строка Boolean (Булевы функции) вводит булевы функции, строка Greek (Греческий) вводит греческий алфавит, строка Programming (Программирование) вызывает панель программирования, строка Symbolic (Символьные вычисления) делает возможным решение некоторых задач в символьном (аналитическом) виде. Со всеми этими опциями мы столкнемся при решении конкретных задач. Все панели могут передвигаться обычным способом по экрану, а панели Standart, Formatting, Math, Graph, Matrix, Calculus, Boolean простым передвижением могут преобразовываться в строки меню. На рис. 1.3 показано меню с такими строками. Рис. 1.3 Меню Mathcad с вызванными опциями Остальные опции строки опции View мы не рассматриваем. Мы не рассматриваем также другие строки меню, тем более, что многие из них дублируют разобранные выше опции. Алфавит системы Mathcad содержит: строчные и прописные латинские и греческие буквы; арабские цифры от 0 до 9; системные переменные; операторы; имена встроенных функций; спецзнаки; строчные и прописные буквы кириллицы (при работе с русифицированными документами); укрупненные элементы языка: типы данных, операторы, функции пользователя и управляющие структуры. К типам данных относятся числовые константы, обычные и системные переменные, массивы (векторы и матрицы) и данные файлового типа. Числовые константы задаются с помощью арабских цифр, десятичной точки (а не запятой) и знака – (минус). Например: 123 – целочисленная десятичная константа; 2 12.3 – десятичная константа с дробной частью; 12.3 * 10.5 – десятичная константа с мантиссой (12.3) и порядком 5. Знак умножения * при выводе числа на экран меняется на привычную математикам точку, а операция возведения в степень (с применением спецзнака ^) отображается путем представления порядка в виде надстрочного элемента. Диапазон возможных значений десятичных чисел лежит в пределах от 10 -307 до 10307 (это машинный ноль и машинная бесконечность). Большинство вычислений система выполняет как с действительными, так и с комплексными числами, которые обычно представляются в алгебраическом виде: Z = ReZ+ i* ImZ или Z = ReZ+ j* ImZ, здесь ReZ – действительная часть комплексного числа Z, ImZ – его мнимая часть, а символы i или j обозначают мнимую единицу, т. е. корень квадратный из -1. Такое представление характерно и для системы Mathcad (за исключением того, что знак равенства не есть знак присваивания). Итак, если ReZ = 2, а ImZ = 3, то комплексная числовая константа в системе Mathcad должна быть задана в виде 2+ i* 3 или 2+ j* 3. Однако система не всегда знает, какой символ применить для обозначения мнимой единицы. Поэтому, перед использованием любых операций с комплексными числами, полезно вначале определить i или j как мнимую единицу (т. е. присвоить им значение квадратного корня из -1). Имена переменных (идентификаторы) в системе Mathcad могут иметь практически любую длину, и в них могут входить любые латинские и греческие буквы, а также цифры. Однако начинаться они могут только с буквы, например: х, xl, alpha, X, coordinate. Кроме того, идентификатор не должен содержать пробелов. Строчные и прописные буквы в именах различаются! Имя не должно совпадать с именами встроенных функций. Для набора + и – используются соответствующие клавиши клавиатуры. Деление набирается клавишей /. После входа в Mathcad на экране появляется красный крестик, который обозначает место, где будет производиться запись. Его можно перемещать по экрану мышью. При вводе любого символа на месте крестика появляется рамка – шаблон. Любое введённое выражение (формула, уравнение и т.п.) должно записываться внутри одного шаблона. При переходе к следующей записи первый шаблон исчезает. Если подвести курсор к записи без шаблона и нажать на клавишу мыши, шаблон появится снова. Удаление записей в Mathcad можно производить несколькими способами. 1. Для удаления одного или нескольких выражений одновременно можно, нажав левую кнопку мыши, обвести все удаляемые выражения пунктиром, и затем нажать del или backspace. 2. Для удаления одного выражения можно, подведя курсор к выражению, активизировать его и, передвинув уголок в крайнее правое выражение, нажать del. 3. Для удаления одного выражения можно также, подведя к нему курсор, активизировать его, а затем зачернить и нажать del. Задача 1.1. Войдите в Mathcad. 1. Поиграйте красным крестиком на экране, переместите его курсором по экрану. Введите любой символ. Появится рамка – шаблон. Нажав на клавишу мыши, выделите участок с рамкой, нажмите кнопку с ножницами на панели инструментов. Шаблон исчезнет. 3 2. Рассмотрите в верхней части экрана меню с двумя группами команд. Выведите панели инструментов. Для этого нажав мышью кнопку команды View (вид), выведите подменю с рядом подкоманд. Если около кнопок с надписями Toolbar (инструментальная панель), Mathpallete (математическая панель) и Formatbar (панель форматирования) не стоит галочка, нажмите на них и этим выведите на экран эти панели. 3. Освойте перемещение панелей по экрану и их преобразование в строки меню. Задача 1.2. Элементарные вычисления в Mathcad. Все формулы в Mathcad набираются только в латинском алфавите, поэтому, прежде чем начинать работу, перейдите на английский язык. 1. Выведите показанную на рис. 1.4 математическую панель (если она не выведена). Нажмите кнопку с изображением калькулятора. Появится показанная на рис. 1.5 панель калькулятора. Рис. 1.4. Математическая панель Mathcad. Рис. 1.5. Панель калькулятора. На панели калькулятора имеется ряд кнопок, таких как n! ( факториал n), тригонометрических функций (tan, sin, cos ), логарифмов (ln, log ) , а также цифры и знаки =, +, –, х, := ( присвоения). Следует различать кнопки := (присвоение) и = (равно). Здесь же находятся кнопки х2, хy , служащие для возведения в степень, кнопки вычисления корня, нахождения модуля. Арифметические действия в Mathcad можно совершать, вводя знаки операций с клавиатуры или с панели калькулятора. Знак умножения в Mathcad – точка, но набирается он на клавиатуре знаком *. Деление набирается клавишей /. Если в процессе решения задачи происходит нарушение грамматики Mathcad, то все содержание шаблона окрашивается в красный цвет и появляется разъяснение ошибки. К сожалению, часто на хорошем английском языке. А) Вычислить 4! (факториал числа четыре). Нажмем кнопку «n!». На экране, в том месте, где расположен крестик, появится шаблон: прямоугольная рамка, внутри которой расположен черный прямоугольник со знаком «!». Подведя курсор к этому прямоугольнику, введем мышью или с клавиатуры число 4 и нажмем кнопку « = » на клавиатуре или на панели вычислений. Мгновенно высветится ответ. Зачерненная точка рядом с ответом служит для вставки размерности, пока мы ею не пользуемся. Б) Вычислить логарифм натуральный от 25. Аналогично предыдущему, нажмем на панели калькулятора кнопку «ln», внутри появившихся кнопок вставим число 25 и, нажав «=», получим ответ. Аналогично вычисляются sin, cos, tg любого угла в радианах, десятичный логарифм log, модуль числа. 4 В) Вычислить е25. Нажмём на панели калькулятор кнопку «ex». В появившемся зачернённом прямоугольнике верхнего индекса наберем число 25, нажмем «=». Большую роль в наборе чисел играет расположение уголка (На экране – он голубого цвета). Например (рис. 1.6), если уголок расположен, как показано в левой части рисунка, то любые знаки операций (сложение, вычитание и т.п.) будут добавляться к показателю степени, если же уголок расположен, как показано в правой части рисунка, то они будут добавляться ко всему выражению. Рис. 1.6. Влияние расположения уголка на вычисления в Mathcad. Г) Вычислить два выражения: Выражения отличаются тем, что в первом случае корень изe15  47  566  sin(0.6) влекается из трех слагаемых, а во втором случае только из числа 47. 15 6 Для набора первого выражения наберём e15 , как это было e  47  56  sin(0.6) объяснено в предыдущем примере и, добившись того, чтобы уголок «обнимал» всю степень, нажмем +. После этого нажмём кнопку калькулятора, введем число 47 , добьемся, чтобы уголок «обнимал» только число 47 и продолжим набор выражения. Для набора 566 наберем сначала 56, затем нажмем на панели калькулятор кнопку хy и введём показатель степени 6. При наборе второго выражения уголок после ввода числа 47 должен «обнимать» как число 47, так и корень. Остальной набор не отличается от первого примера. 5 | 6 | 4 . Д) Вычислить дробь 82 При решении задачи знак модуля вводится с панели калькулятора, а дробь – с кнопки клавиатуры / (нижний правый угол клавиатуры) 5  6  4 8 2 5  16.469 . Вычисление значений функций в Mathcad. Все вычисления в Mathcad можно производить, набирая их на клавиатуре, или с помощью окна встроенных функций. Простые выражения типа вычисления функции набираются непосредственно на экране. Задача 1.3. Вычислить в Mathcad функцию y = 4x2+5x+3 для x=1, 2, …,10. Решение. Сначала (рис. 1.7) набирается диапазон значений x: х:=1,2..10. Здесь: 1) используется знак присвоения «:=» , а не знак «=», 2) набирается первое значение х, затем через запятую второе его значение, чем задаётся шаг вычислений, и, наконец, последнее значение. Две точки между 1 и 10 набираются нажатием клавиши с русской буквой Ж клавиатуры или кнопки m..n панели матрицы. Затем, опять-таки через знак присвоения, набирается выражение для у. Причём следует набирать у(х), а не просто у. Mathcad выполняет команды слева направо и сверху вниз. Поэтому выражение для у(х) должно быть расположено справа и несколько ниже выражения «х:=». После этого следует набрать «х=» ( равно, а не присвоить) и появится столбец со всеми значениями х. 5 Так же после нажатия «у(х) =» (у(х) равно) появляется столбец вычисленных значений у(х). Построение диапазона изменения аргумента х называется РАНЖИРОВКОЙ. 2 x  1  10 y ( x)  4x  5x  8 x y ( x)  1 17 2 34 3 59 4 92 5 133 6 182 7 239 8 304 9 377 10 458 Рис. 1.7. Вычисление многочлена. Задача 1.4. Вычислить функцию y= 3x4-7x3+4x2-9x+2 для х = 0, 0.5, 1, 1.5,..., 3. Пояснение. Обратите внимание, что здесь задано излишнее количество данных для ранжировки х. Необходимыми данными, которые и следует вводить, являются: первое значение, второе значение через запятую, последнее значение после двоеточия, вводимого, как указано выше. Задача 1.5. Вычислить значения функции двух переменных z = 3x2 +4y2 + 8 для значений х = 1, 1.5, 2.0, ..., 5 и для значений у = 0, 0.5, 1.0, ..., 5. Пояснение. Задача решается аналогично предыдущим: сначала производится ранжировка обеих независимых переменных х и у. Затем набирается выражение для функции «z(x,y):=». После этого набирается «х =», «у =» и «z(x,y) =». §2 Построение графиков в Mathcad Одним из многих достоинств Mathcad является лёгкость построения графиков. Панель графиков вызывается нажатием кнопки с изображением графиков на математической панели (рис. 2.1). На панели графиков расположены девять кнопок с изображением различных типов графиков (название графиков каждой кнопки высвечивается при подводе к ней курсора Рис. 2.1. Панель графиков и ожидании в течение 3-5 секунд): X-Y Plot – графики в декартовых координатах, Polar Plot – графики в полярных координатах, 3D Bar Chart – столбиковые диаграммы, Surface Plot – трехмерный график, Cunter Plot – карта линий уровня, Vector Field Plot – векторное поле, 3D Scatter Plot – трехмерный точечный график. Сначала нас будет интересовать левая верхняя кнопка Х-У графиков в декартовой системе координат (По- английски X-Y Plot ). 6 Задача 2.1. Построить график функции y(x) =4x2+5x+8. (рис. 2.2.) 2 Для этого нужно: y ( x)  4x  5x  8 1) набрать, как и в прошлый раз, условие задачи, 600 2) вызвав панель графиков, нажать на кнопку с изображением декартовых графиков. 400 Появятся два вложенных друг в друга квадрата, внутри которых есть несколько точек. y( x) 4) Сначала нужно подвести курсор к средней точке 200 оси абсцисс и набрать там аргумент х. 5) Затем следует подвести курсор к средней точке около оси у и набрать там наименование функции 10 5 5 10 x в виде у (х). 6) Щёлкнем несколько раз мышью вне графика. На Рис. 2.2. Панель графиков экране появится график параболы. Поместим курсор внутрь графика и щёлкнем левой клавишей мыши. Появится окно, показанное на рис. 2.3. Оно состоит из трёх страниц. На рис. 2.3 представлена первая страница. Рис. 2.3. Первая страница окна формирования графиков. В левом нижнем углу страницы имеются точки Boxed (коробочка), Crossed (оси), None (нет). Нажав на вторую точку, введём в график оси координат. На первой странице имеются строки X-Axes (ось Х) и Primary Y-Axes (первая ось Y), а под ними ряд надписей, левая часть которых относится к оси Х, а правая – к оси Y: Log Scale (логарифмическая шкала) вводит логарифмический масштаб для соответствующей оси; Grid lines (сетка) – её нажатие вводит координатную сетку на график; Numbered ( оцифровка) – оцифровка сетки; Auto scale (автоматическая шкала); Show markers (показ маркеров); Auto grid ( автоматическое разбиение сетки). Наличие надписей Enable secondary Y-Axes (возможность второй оси Y) и Secondary Y-Axes (вторая ось Y) дает возможность формировать графики различного масштаба для различных функций. 7 На рис. 2.4 представлена вторая страница того же окна. Рис. 2.4. Вторая страница окна формирования графика Из левого столбца (trace (след) 1, trace 2 и т.д.) следует, что на одном графике можно наносить до 16 различных функций. Вводя соответствующие значения в остальные столбцы, можно изменять вид (сплошная линия, пунктир, точки), цвет, толщину и т. д. каждой функции. На третьей странице окна задаётся заголовок (Title), место его расположения Above (сверху), Belove (снизу), наименования осей (Axis Labels). Выбрав те или иные требования к графику, нажмём ОК и получим желаемый график. Заполнив графы двух страниц, как показано на рис. рис. 2.3 и 2.4, получим график, показанный на рис. 2.5. 100 y( x) 50 10 x 10 Рис. 2.5. График функции с осями и сеткой Задача 2.2. Изменить на построенных ранее графиках: А) толщину линии, Б) Заменить сплошную линию пунктиром, В) Изменить цвет графика на зелёный, Г) произвести нанесение осей координат, оцифровку осей. Д) Расположить над графиком заголовок «График функции». Как уже говорилось, на одном графике можно строить до 16 различных кривых. Построим на том же графике еще и кривую y= 3x4-7x3+4x2-9x+2. Для этого: 1) наберём обе функции; 2) введём первую функцию, как было описано выше; 8 3) затем подведём курсор к записи на оси Y и нажмём клавишу «запятая» клавиатуры. Под записью у(х) появится маркер, в который введем имя второй функции. Результат приведен на рис. 2.6. 100 50 y1( x) y2( x) 10 5 5 10 50 x Рис. 2.6. Построение двух кривых на одном графике. Задача 2.3. Изменить на построенных ранее графиках: А) толщину линии, Б) Заменить сплошную линию пунктиром, В) Изменить цвет графика на зеленый, Г) произвести нанесение осей координат, оцифровку осей. Д) Расположить над графиком заголовок «Графики функций». Задача 2.4. Построить самостоятельно график функции, заданной в полярных координатах: r(φ)=sin(2 φ). Такие графики задаются нажатием кнопки с изображением графика в полярных координатах. На рис. 2.7 приведено построение. Графики в полярных координатах(Polar Plot). r    sin  2 90 120 0.8 0.6 0.4 0.2 150 r 60 180 30 210 330 240 300 270  Рис. 2.7. Четырёх лепестковая роза полярных координатах. Задача 2.5. Построить самостоятельно фигуру r(φ)=0.3+cos(φ). 9 Трёхмерные графики. В Mathcad можно строить различные трёхмерные графики: поверхности, уровней, столбиковые диаграммы и т. п. Для примера построим график поверхности, описываемой функцией z= 55x2 +25y2. 1. Запишем саму функцию z (х,у)= 55x2 +25y2. 2. Вызовем график поверхности с панели графиков и поставим в нижнем левом углу z. Затем, выйдя из графика, щелкнем курсором. График будет построен (рис. 2.8). 2 z ( x  y)  55x  25y 2 z Рис. 2.8 Пространственный график в Mathcad Введя курсор внутрь графика, и щелкнув мышью, мы снова вызовем трёхстраничное окно, в котором можно установить все параметры графика. На странице View (вид) устанавливается тип графика: Display as – показывать в виде (поверхности, линии уровней, столбиковой диаграммы), тип осей Axis (в виде непосредственно осей, в виде плоскостей, отсутствие осей), показ заднего плана (Back Planes):показывать (Show),заполнять цветом поверхность (Fill Color) и кромку (Edge Color) и угол, под которым показываются оси координат. В зависимости от выбранного типа графика меняется набор надписей на остальных страницах. Например, для графика Surface Plot (график поверхности) на странице Color and Lines (цвет и линии) нанесены надписи: Shading (затенение). На странице Axis (оси) нанесены те же, что и для случая плоских графиков надписи, но теперь уже для трёх осей: Grid Lines – нанесение сетки координат, Numbered – нумерация соответствующей оси, Autoscale – автоматическая разметка осей, Show Markers – показать метки по осям, Autogird – автоматический показ сетки координат, Numbers of Grids – оцифровка сетки. Задача 2.6. Построить график функции, приведённой в тексте, выбрав зеленый цвет поверхности, розовый цвет заднего плана, угол представления 45 градусов и оцифрованные оси. Построить для той же функции график уровней и столбиковую диаграмму. Задача 2.7. Построить график функции z= 3x3 – 4y2. 10 §3 Действия над матрицами в Mathcad Понятие о встроенных функциях Mathcad. Большинство задач в Mathcad решаются с помощью так называемых встроенных функций, т.е. с помощью заранее составленных программ решения той или иной задачи. Каждая такая программа имеет своё имя, по которому она вызывается. Имя можно набирать с клавиатуры, но можно и вызывать с помощью кнопки f(x) главного меню. Нажав эту кнопку, мы вызовем панель Insert Function (вставить функцию), в которой имеется два окна: Function Category (тип функции) и Function Name (имя функции). Выбрав тип и имя, и нажав кнопку ОК, мы вызовем данную функцию (рис. 3.1). Рис. 3.1.Панель вызова функции Пусть, например, нужно найти синус числа 45. Вызвав панель вставки функции, выберем категорию Trigonometric и название sin, нажмём ОК. На экране появится шаблон со словом sin внутри и скобками. Вставив в скобки число 45, нажмём «=». Получим sin(45)=0.851. Можно было бы набрать левую часть на клавиатуре и, после нажатия знака =, получить тот же ответ. Аналогично используются и другие встроенные функции. В Mathcad массивы могут записываться в виде векторов (одномерные массивы), в виде матриц (двумерные массивы) и в виде таблиц. Мы рассмотрим пока только запись матриц и векторов. Для действий над ними имеется панель Matrix (матрица), показанная на рис. 3.2. Рис. 3.2. Панель матриц Для ввода матриц и векторов нажмём кнопку панели матриц ввода Insetrt Matrix (ввести матрицу), показанное на рис. 3.3. 11 и вызовем этим окно        Рис. 3.3. Окно ввода матриц и векторов.        Рис. 3.4. Шаблон вектора. При вводе вектора в графе columns (столбцы) следует проставить 1, а в графе rows (строки) проставить размер вектора. Появится шаблон, показанный на рис. 3.4. Ниже представлено три пятиэлементных массива-вектора: два из них – численные, третий – буквенный, четвёртый состоит из выражений. При задании буквенных массивов и массивов – выражений необходимо предварительно присваивать им численные значения (за каждой буквой в компьютере должно стоять число). После задания выражений вектора можно, записав его имя и поставив знак =, получить его значение. Рисунок лишний раз иллюстрирует, что Mathcad различает строчные и заглавные буквы. Над векторами определены показанные на рис. 3.5. операции сложения, вычитания, транспонирования, умножения по математическим правилам умножения матриц. Знак транспонирования следует вводить с панели Matrix (матрица). Порядковый номер элемента, который является его адресом, называется индексом. Нижняя граница индексации задается значением системной переменной ORIGIN, которая может принимать значение 0 или 1. a  2  0   0   0  b  3 1 1  2  c  8       v  2 V  4 vV  6 d  10       e  23 3 9   12  4    a  b w   c    d e    16     20     2x    2 3x   W   5  x     x3  x5    x    2  3  w  8     10   23    T T w  ( 2 3 8 10 23 ) x  7 14     147    2 W   4  1.646  10    7    4 W  14 147 2 1.646  10 T 5 w  W  1.64  10 7  5 w  W  1.64  10 Рис. 3.5. Запись векторов в Mathcad. Имя массива увязано с именами индексированных переменных, значениями которых являются элементы массива. Для этого достаточно в виде подстрочного индекса указать 12 индекс элемента. Например, если третий из представленных массивов имеет имя V, то его элементами при ORIGIN=0 будут индексированные переменные: v0 = 0, V1 = b, w3 = d, W4 = x. При задании ORIGIN=1, получим: v1 = 0, V1 = a, w3 = c, W4 = x3 – x5. Задача 3.1. Ввести все векторы рис. 3.5 и произвести над ними все действия, проведенные на рисунке. Матрицы в Mathcad вводятся так же, как и векторы, но число столбцов в них – больше единицы. Элементами матрицы могут быть также числа, буквы, выражения. Как и в случае векторов, буквенные элементы и элементы – выражения должны быть предварительно определены численно. На рис. 3.6 показаны различные способы ввода матриц. a  3 b  1 c  5 d  9 e  7 f  0 x  2  1 2  v1   4 3  5 6   a b c  d e f V    10 20  v2   12 21   4 11    3 1 5  9 7 0 V 2 3  x x x    2 W   x  5 x  10 x   x  x x  3  x5    2 4 8   14 2  3  W  2 2  2   3 7  Рис. 3.6. Ввод матриц. Задача 3.2. Ввести все матрицы, приведенные на рис. 3.6. Элементы матриц являются индексированными переменными, имена которых совпадают с именами матриц. Для каждой индексированной переменной указываются два индекса: один – для номера строки, другой – для номера столбца. Например, для матрицы W средний элемент обозначается как W1,1 , а последний как W2,2. Индексы набираются через запятую. На рис. 3.7 показано изменение индексации при различных значениях переменной ORIGIN (набирается обязательно заглавными буквами).  1 3 8  P   9 11 21   7 10 45    ORIGIN  0 P1  1  11 P1  2  21 ORIGIN  1 P1  1  1 P1  2  3 Рис. 3.7. Роль переменной ORIGIN 13 В Mathcad определены следующие действия над векторами и матрицами: А) сложение – вычитание, В) скалярное и векторное умножение, Г) обращение, Д) транспонирование, Е) сортировка, Ж) выделение столбцов. Они выполняются с использованием следующих кнопок панели Matrix: – кнопка индексации элементов матрицы, – кнопка обращения матрицы, – кнопка скалярного произведения векторов и матриц, – кнопка транспонирования матрицы, – кнопка векторного произведения двух векторов, – кнопка сложения элементов вектора, – кнопка выделения столбца матрицы, – кнопка вычисления детерминанта матрицы. На рис. 3.8 произведены все эти действия над матрицами, приведёнными на рис. 3.6. Задача 3.3. Произвести над матрицами все действия, показанные на рис. 3.8.  11 22  v1  v2   16 24   9 17     21 15 5  v1  V   39 25 20   69 47 25     2 3 0.667  T W   4 14 0.286  8 2 2    9 18  v1  v2   8 18   1 5     25 50  5v1  3v2   16 48   13 3     62 136    174 327  V v2   W 1  10.286 2.143 39    2.75 0.5 10.5   3.821 0.786 15     177.524 928.762 191.238    3 W   641.714 2.4  103 11.81     11.492 111.401 48.762  Рис. 3.8. Действия над матрицами 14 Задача. 3.4. Ввести две произвольные матрицы. Перемножить. Например:  1 2  B   3 4  5 6   1 2 3 A    4 5 6  9 12 15  B A   19 26 33   29 40 51     22 28  A B     49 64   1 2 3  M   6 7 8   9 11 0     29 10 15  N   30 19 14   25 41 38     14 151 127  M N   164 521 492   591 119 19     104 293 167  N  M   18 227 62   121 755 403    Рис. 3.9. Пример выполнения задачи 3.4 Проверьте на бумаге правильность произведенных выше действий. Обращение и вычисление определителя возможно только для квадратных матриц. Задача 3.5. Введите произвольную квадратную матрицу (рис. 3.10), найдите обратную ей и вычислите определитель, используя показанные выше кнопки встроенных операторов. Как известно, умножение матрицы на обратную дает единичную матрицу. Проверим, правильно ли было проведено обращение. 1 2 3  1.083 0.5 0.583    C   4 5 4  C  12 7 8 9   C C 1  1 0 0   0 1 0 0 0 1   C 1    0.667  0.25  1 0.5  0.667  0.25   1 0 0  1 C C   0 1 0  0 0 1   Рис. 3.10. Пример выполнения задачи 3.5. Задача 3.6. Найти скалярное и векторное произведения двух заданных трёхэлементных векторов (рис. 3.11). Проверить на бумаге правильность вычислений.  1  Vx   2  3    1  Vy   4   9    Vx Vy  20  30  Vx  Vy   6   6    Рис. 3.11. Пример выполнения задачи 3.6. Проверим правильность скалярного умножения, перемножив VxТ и Vy . Получили также –20. 15 При рассмотрении матриц больших размеров удобно выделять их столбцы. Задача 3.7. Используя кнопку выделения столбцов, выделите столбцы произвольной матрицы, например как показано на рис. 3.12.  1 2 3  A   6 7 8   9 11 13     2   A 1   7   11    Рис. 3.12.Пример выполнения задачи 7. В Mathcad имеется большое количество встроенных функций для действий над матрицами и векторами. Рассмотрим некоторые из них. Вычисление максимального и минимального элементов матрицы или вектора производится с помощью встроенных функций max(A) и min(A). Задача 3.8. Вычислить максимальный и минимальный элемент произвольной матрицы (рис. 3.13).  1 2 13  A   6 7 8   9 11 3    max ( A)  13 min ( A)  7 Рис 3.13. Вычисление максимального и минимального элемента матрицы. Определение количества столбцов и строк в матрице удобно для проверки действий над многомерными матрицами и векторами. Оно производится с помощью встроенных функций сols(A) – число столбцов матрицы А и rows(A) – число строк матрицы А. Задача 3.9. Определить число строк и столбцов в произвольной матрице (рис. 3.14).  2  5 A    2   0 7 9   4 3  7 8  rows ( A)  4 cols ( A)  3  9 10  Рис. 3.14. Пример выполнения задачи 3.9. Единичная матрица размером N формируется встроенной функцией Idenfity(N), а след матрицы – встроенной функцией tr(A) (рис. 3.15) 1 2 13    A   6 7 8   9 11 3    tr ( A)  9  1 0 identity ( 5)   0  0 0  0 0 0 0  1 0 0 0 0 1 0 0  0 0 1 0 0 0 0 1  Рис. 3.15. Формирование единичной матрицы и вычисление следа матрицы. 16 Графики матричных и векторных зависимостей. В Mathcad возможно построение графиков по данным, записанным в векторной и матричной форме. На рис. 3.16 показано построение двумерного графика по данным векторов Vx и Vy, а на рис. 3.17 – построение трёхмерного графика по заданным в матрице аргументам и вектору функции. 10 8  2   4  Vy   3.5     8   8.2     3  4  Vx   7     10   11    6 Vy 4 2 2 4 6 8 10 12 2 Vx Рис. 3.16. Построение двумерного графика по векторным данным. Заданы двумерная матрица аргументов S и вектор значений функции этих аргументов Y. Показано построение графика.  2.9 105    5  2.9 10  1.7 106   1.7 106  S   0  6  2 10  6  1 10  6  1 10  1 106  6 1.5 10  8.5 10 6  6 1.5 10   6 8.5 10  6 5 10   6 5 10   0  7  1 10  6 5 10   110   107   110    104   Y   101    107    105     106   100     S0  S1  Y Рис. 3.17. Трёхмерный график данных, записанных в векторной форме. 17 Операции над матрицами в аналитической (символьной) форме. Системы компьютерной алгебры снабжаются специальным процессором для выполнения аналитических (символьных) вычислений. Его основой является ядро, хранящее всю совокупность формул и формульных преобразований, с помощью которых производятся аналитические вычисления. Чем больше этих формул в ядре, тем надежней работа символьного процессора и тем вероятнее, что поставленная задача будет решена, разумеется, если такое решение существует в принципе (что бывает далеко не всегда). Ядро символьного процессора системы Mathcad несколько упрощенный вариант ядра известной системы символьной математики Maple V фирмы Waterloo Maple Software , у которой MathSoft (разработчик Mathcad) приобрела лицензию на его применение, благодаря чему Mathcad стал системой символьной математики. Введение в систему Mathcad символьных вычислений придает ей качественно новые возможности. Символьные вычисления выполняются, в конечном счете, столь же просто для пользователя, как, скажем, вычисление квадрата х. Операции, относящиеся к работе символьного процессора, содержатся в подменю позиции Symbolic (Символика) главного меню. Чтобы символьные операции выполнялись, процессору необходимо указать, над каким выражением эти операции должны производиться, т е надо выделить выражение. Для ряда операций следует не только указать выражение, к которому они относятся, но и наметить переменную, относительно которой выполняется та или иная символьная операция. Само выражение в таком случае не выделяется, ведь и так ясно, что если маркер ввода выделяет переменную какого-либо выражения, то это выражение уже отмечено наличием в нём выделяемой переменной Символьные операции разбиты на пять характерных разделов. Это операции с выражениями, операции с переменными, операции с матрицами, операции преобразования, стиль эволюции. Первыми идут наиболее часто используемые операции Они могут выполняться с выражениями, содержащими комплексные числа или имеющими решения в комплексном виде. Символьный процессор системы Mathcad обеспечивает проведение в символьном виде трёх наиболее распространенных матричных операций транспонирования и обращения матриц, а также вычисления их определителя. При символьных вычислениях, прежде всего, следует вызвать панель символьных вычислений нажатием кнопки на математической панели. После этого появится панель символьных вычислений, показанная на рис. 3.18. Рис. 3.18. Панель символьных вычислений 18 Для символьных операций над матрицами нам понадобится только предпоследняя строка этого окна, с помощью кнопок которой и производятся транспонирование, обращение матрицы и нахождение её определителя. Задача 3.10. Используя кнопки панели символьных вычислений, провести аналитическое транспонирование и обращение произвольной матрицы (рис. 3.19). ORIGIN  1  1 2 3  A   5 2 9  1 8 4   A  28  1 5 1  T A  2 2 8 3 9 4    64 16 12  1 1 A    11 1 6  28  38 6 8    Рис. 3.19. Пример символьного решения матричных задач . §4 Решение алгебраических уравнений в Mathcad Алгебраические уравнения в Mathcad решаются как численными, так и аналитическими методами. Рассмотрим оба метода. Численное решение системы линейных алгебраических уравнений. При численном решении систем линейных уравнений используется специальный вычислительный блок, открываемый служебным словом – директивой Given. Блок имеет следующую структуру: Задание начальных приближений Given Уравнения Ограничительные условия выражения с функцией Find Задача 4.1. Пусть надо решить систему уравнений: 3x+8y-9z=12 5x-9y+2z=34 8x-6y+5z=98. Для этого необходимо совершить следующие действия: 1) Набрать начальные приближения – произвольные числа х:=1 y:=1 z:=1. 2) Набрать с клавиатуры директиву Given (дано); 3) Набрать систему уравнений, обязательно записывая знак умножения, причем знак = нужно набирать не на арифметической панели, а на панели Boolean, которая выводится на экран кнопкой математической панели. 4).Набрать выражение otvet:= Find(x,y,z) 5). Набрать otvet = После этого будет получен ответ в виде вектора – столбца. 19 Вместо названия otvet можно использовать любой набор букв и цифр, начинающийся с буквы. Этот набор обозначает имя, которое Вы присваиваете вектору ответов. На рис. 4.1 показано решение этой системы. x  1 y  1 z  1 Given 3 x  8 y  9 z 12 5x  9y  2z 34 8x  6y  5z 98 otvet  Find ( x  y  z)  11.457  otvet   3.913   5.964    Рис. 4.1. Решение системы линейных уравнений в решающем блоке Задача 4.2. Решите самостоятельно приведенные ниже системы линейных алгебраических уравнений б) 4.5x+7.9y-2.1v+6.75w+7.9u= 43 а) 5x+6y-9z+2v-7w=90, 5.6x+7.2y+9.8z+3.9v+3.4w+8.3u=12.54 3x-4y+5z-3v+4w=12, 5.6x+98.5y+43.7z+67.85v+4.9w+21.5u = 54.98 9x+y +3z-2v +9w=51, 65.75x+54.32y-78.32z-565.9v+32w+78.54u = 55.5 7x+2y-8z+v +10w=32, 54.2x+76.45y+32.23z+ 45.71v+43.43w+ u = 65.21 6x+5y-4z+3v-2w= 87. 8.9x+9.8y-5.6z+6.5v-4.5w+2.1u = 0 Подобным образом можно решать и нелинейные уравнения. Однако они имеют несколько корней. Задавшись начальными приближениями, мы найдём в лучшем случае один корень, ближайший к начальному приближению. Таким способом имеет смысл искать корни трансцендентных уравнений, имеющие, как известно, бесконечное количество корней. Задача 4.3. Найти корень трансцендентного уравнения X sin(x)+ cos(x) =25 ближайший к x=1. Набираем задачу описанным выше способом и находим значение х. Однако получить решение при начальном приближении 10 нам не удастся. Mathcad позволяет решать системы линейных алгебраических уравнений в матричной форме. Решение можно получить двумя способами. 1 способ. Как известно, система линейных алгебраических уравнений в матричной форме имеет вид: AX=B, где А – квадратная матрица коэффициентов, X – вектор-столбец неизвестных, В – вектор-столбец правых частей. Решение системы в матричной форме: X= A–1·B. 20 Решим в матричной форме систему 11x+12y+31z = 9, 4x+52y+69z = 8, 7x+86y+93z = 7. 1) Введём матрицу А. 2) Введём вектор – столбец В. 3) Набор выражения для Х желательно выполнять, используя соответствующую кнопку матричной панели. 4) После этого наберем X = и сразу получим вектор ответа. Решение в Mathcad представлено на рис. 4.2.  1 12 31  A   4 52 69   7 86 93     9  B   8  7   X  A 1 B  7.694  X   1.016   0.435    Рис. 4.2. Решение системы линейных уравнений в матричной форме 2 способ. Возможно получения решения матричного уравнения с помощью специальной функции lsolve, как показано на рис. 4.3. ORIGIN  1  1 12 31  A   4 52 69   7 86 93     9  B   8  7   X  lsolve ( A  B)  7.694  X   1.016   0.435    Рис. 4.3. Решение системы линейных алгебраических уравнений с использованием встроенной функции lsolve Задача 4.4. Решить системы а), б) задачи 4.2 в матричной форме самостоятельно. Численное решение нелинейных алгебраических уравнений. В Mathcad корни алгебраических уравнений и систем определяются с помощью следующих встроенных функций: 1) Функция root (expr, var) вычисляет действительное значение переменной var, при котором выражение expr равно нулю, т.е. она вычисляет один действительный корень уравнения. При этом необходимо задать его начальное приближение. На рис. 4.4 приведён пример использования этой функции для нахождения действительного корня уравнения x2 +2x+1 = 0. Само уравнение не набирается! x  2   2 root x  2x  1  x  1 Рис. 4.4. Нахождение одного корня полинома. 21 2) Функция polyroots (v) позволяет вычислять все корни полинома. Например, для решения уравнения 8х2 +2х +3 = 0 набираем или считываем из таблицы функций (кнопка f(x)) функцию polyroots и в скобках заполняем вектор, вставляя коэффициенты уравнения. Нажимаем клавишу = и получаем ответ (рис. 4.5). Следует обратить внимание, на то, что элементы вектора записываются в обратном порядке.   3    0.125  0.599i  polyroots   2       0.125  0.599i    8    Рис. 4.5. Вычисление корней с помощью функции Polyroots. Полученное решение соответствует случаю отрицательного дискриминанта квадратного уравнения, что приводит к комплéксным корням уравнения. Задача 4.5. Вычислить в Mathcad корни приведённого выше уравнения. Задача 4.6. Вычислить все корни многочленов а) 5x5+6x3+8x2+2x = 0. б) 5x4+8x3+3x2+9x+8 = 0. в) 4x4+8x–3 = 0. Решение алгебраических уравнений в аналитической (символьной) форме. Mathcad предоставляет возможность решения алгебраических уравнений в символьной (аналитической) форме. Преимуществом символьного решения является возможность решения уравнений с буквенными значениями коэффициентов. Правда, более или менее сложные уравнения символьно в Mathcad не решаются, поэтому приходится обращаться к численным методам. Решение систем линейных уравнений. Символьное решение линейных систем алгебраических уравнений производится с помощью двух операций: Solve (Решить) и lsolve. Ниже на рис. рис. 4.6 – 4.10 показано решение систем линейных уравнений различными методами. Задача 4.7. Система линейных алгебраических уравнений задана матрицей A коэффициентов и вектором B правых частей. Найти аналитическое решение. Сначала вводим матрицу и вектор. 8 6 5 2  21    3 3 2 1  A   4 2 3 1   7 4 5 2   10 B    8     18  а) решение с использованием встроенной функции lsolve. Функция набирается с клавиатуры или из окна встроенных функций. Стрелка набирается с панели символьных решений.  3    lsolve ( A  B)     5     11  Рис. 4.6. Символьное решение системы с использованием встроенной функции lsolve 22 б) Решение с использованием оператора solve. Здесь помимо оператора solve использован оператор float (плавающая точка) и задана точность решения – 4 значащих цифры. Операторы solve и float набираются последовательно. 8  3 A   4  9 5 2  3 2 10  6  1  2 3 4 5 2    10    11 B    8     23  x   solve  x  y  z  t y  A B  ( 24.51 38.37 1.592 18.08 ) float  4 z   t Рис. 4.7.Символьное решение системы линейных уравнений с заданной точностью. в) Решение в скалярной форме  8x  6y  5z  2t 10    3x  3y  2z  10t 11    4x  2y  3z  t 8     9x  4y  5z  2t  solve  x  y  z  t  ( 11.84 19.12 2.531 8.694 ) float  4 Рис. 4.8. Символьное решение системы линейных уравнений в скалярной форме. г) Решение с созданием решающего блока и директивы Given. Директива Given и оператор Find набираются с клавиатуры Given 3 x1  4 x2  4 x3  6 x4  8 x5 21 5 x1  7 x2  8 x3  7 x4  9 x5 34 9 x1  12 x2  9 x3  8 x4  4 x5 41 13 x1  3 x2  19 x3  18 x4  9 x5 14 23 x1  13 x2  9 x3  8 x4  19 x5 24  7638   2539      Find ( x1  x2  x3  x4  x5)           81617  20312   7361  2539   15059  10156  28569   20312  Рис. 4.9. Символьное решение системы линейных уравнений с использованием директивы Given 23 д) Решение системы с буквенными коэффициентами. Given a1 x1  b1  x2 d1 a2 x1  b2  x2 d2  b2  d1  d2  b1    (  a2 )  b1  b2  a1  Find ( x1  x2)    ( a2 d1  d2  a1)   ( a2)  b1  b2  a1    Рис. 4.10. Символьное решение системы линейных уравнений, заданных в буквенной форме. Задача 4.8. Решить приведённую выше систему всеми рассмотренными способами. Задача 4.9. Решить самостоятельно приведенную ниже систему 3x1+4x2+4x3+6x4 = 21, 5x1+7x2+8x3–7x4 = 34, 9x1+12x2+9x3+8x4 = 41, 13x1+3x2+19x3+18x4=141/ Символьное решение нелинейных алгебраических уравнений Задача 4.10. Решить приведённые ниже уравнения 1. Решение уравнения четвертой степени с численными коэффициентами с использованием оператора solve.  ( 1.1260186005688105923)  .75699694283657936689  i  4 3 2 3x  5x  7x  9x  10   ( 1.1260186005688105923)  .75699694283657936689  i   solve  x   .29268526723547725894  1.3133859400283537322  i   .29268526723547725894  1.3133859400283537322  i    2. Решение квадратного уравнения с буквенными коэффициентами. 2 a x  b  x  c 1     1  2  2   ( b)   b  4 a c   2 a  0 solve  x    1    1  2  2     b  4  a  c (  b )     2 a  3. Решение квадратного уравнения с буквенными коэффициентами с формированием решающего блока. Given 2 x y 2  x    2  y2 24 r 2 r 2 1 1       2 2   f    r  Find ( x  y)   1 1 2 1 2 1 2 2 2 2         4  r        4  r  2 2  Но кубическое уравнение с буквенными коэффициентами уже не решается! Задача 4.11. Решить приведённые ниже уравнения самостоятельно. 1) x2 + x +1 = 0. 2) 3x3 + 2x2 + 5x + 6 = 0. 3) ax4 + bx2 + d = 0. §5 Дифференцирование и интегрирование в Mathcad Символьное дифференцирование в Mathcad. 1) Записать дифференцируемую функцию. 2) Ввести с панели вычислений (Сalculus) знак дифференцирования 3) Нажать кнопку  из панели символьных решений (рис. 5.1). 5 4 3 2 y ( x)  6x  4x  7x  12x  6x  17 d 4 3 2 y ( x)  30 x  16 x  21 x  24 x  6 dx d2 dx 2 3 2 y ( x)  120 x  48 x  42 x  24 d3 dx 3 2 y ( x)  360 x  96 x  42 d4 dx 4 y ( x)  720 x  96 d5 dx y ( x)  720 5 d6 6 y ( x)  0 dx Рис. 5.1. Численное дифференцирование в Mathcad. Задача 5.1. Провести дифференцирование приведённой выше функции. Задача 5.2. Найти самостоятельно первую, вторую и третью производные для функций: y = 7x15 + 9x4 + 5x + 8 y = 3x +10x2 25 Вычисление неопределённых интегралов в Mathcad. 1. Вызвать панель интегрирования и дифференцирования (Сalculus), нажав на арифметической панели кнопку с изображением интегралов и производных. 2. Нажать кнопку с изображением неопределённого интеграла и вызвав его, вставить подынтегральную функцию. 3. Справа от интеграла нажать кнопку  и получить ответ.      3 2 5x  7x  8x  9 x 2 dx  9 5 2  x  7 x  8 ln ( x)  x 2 Задача 5.3. Найти интеграл приведённой выше функции. Задача 5.4. Вычислить самостоятельно нижеприведённые интегралы.  n  x dx    sin ( x) 3  cos ( x) dx       2 2x  8x  5 dx x ( x  3)  1  dx a  x dx x  1 dx  ln ( x)  Два последних интеграла не имеют первообразных функций, но Вы посмотрите их интегрирование в Mathcad.    2 2    3 Численное дифференцирование и интегрирование. Для проведения численного дифференцирования необходимо: 1. Задать диапазон изменения аргумента. 2. Записать дифференцируемую функцию. 3. Вызвать с панели знак дифференцирования. Нажать равно. 2 x  1  1.5  5 y ( x)  3x  14x  5 d y ( x) dx d2 dx -8 -5 6 -2 6 1 6 4 6 7 6 10 6 13 6 16 6 2 y ( x) 6 Задача 5.5. Найти самостоятельно первую, вторую и третью производные для функций: а) y = 7x15 + 9x4 + 5x + 8 при х = 0, 5 .. 30. б) y = 3x +10x2 при х = 2, 4 .. 12. 26 Разложение функции в ряды Тейлора - Маклóрена. Разложение в ряд Маклóрена (т.е. в окрестности точки ноль) производится символьной командой меню symbolics (символьно) – variable (переменная) – expand to series (разложить в ряд). Например, необходимо разложить в ряд около нуля функцию ех. 1. Набираем эту функцию и выделяем её. 2. Нажимаем в меню опцию symbolics. Появляется окно, в котором выделяем опцию variable. 3. В появившемся подокне выбираем опцию expand to series. 4. Появляется окно с надписью order of approximation (порядок разложения). 5. Вводим число 6, нажимаем ОК и получаем ответ Задача 5.6. Разложить в ряд Маклóрена с вычислением 10 членов нижеприведенные функции: е2х Разложение в ряд Тейлора около любого значения х производится кнопкой series окна символической математики. При нажатии этой кнопки появляется следующая запись: series    В первый её прямоугольник записывается разлагаемая функция, во второй – переменная по которой происходит разложение и её значение, около которого оно производится. В третий прямоугольник записывается число членов разложения. После щелканья мышью получим ответ. Пример. 1 3 x 3 3 2 1 3 3 e series  x 3  4  e  e  ( x  3)   e  ( x  3)   e  ( x  3) 2 6 Задача 5.7. Разложить в ряд Тейлора около заданных значений х, с заданным числом членов функции:  а) sin(2x) около х = – , 5 членов ряда. 3 б) 1x 5 около х = 1, 4 члена разложения. §6 Аппроксимация и обработка наблюдений в Mathcad Аппроксимация функций. 1. Кусочно-линейная аппроксимация. Кусочно-линейная аппроксимация производится функцией linterp(vx, vy,x). Здесь vx – вектор аргументов x – точек, через которые должна пройти кривая, vy – вектор ординат y тех же точек, x –значение аргумента аппроксимирующей функции. 27  1  2 vx   3    4 5    98   85  vy   32     79   30    x  0  0.1  5 120 100 80 vy linterp ( vx  vy  x) 60 40 20 1 2 3 vx  x 4 5 6 Рис. 6.1. Кусочно-линейная аппроксимация. Задача 6.1. Провести кусочно-линейную аппроксимацию приведённого примера. Аппроксимация сплайнами. При небольшом числе узловых точек (менее 10) линейная интерполяция оказывается довольно грубой. При ней даже первая производная функции аппроксимации испытывает резкие скачки в узловых точках. Для целей экстраполяции функция linterp не предназначена и за пределами области определения может вести себя непредсказуемо. Гораздо лучшие результаты дает сплайн-аппроксимация. При ней исходная функция заменяется отрезками квадратных или кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов рассчитываются так, чтобы непрерывными были первая и вторая производные. Линия, которую описывает сплайнфункция, напоминает по форме гибкий стержень, закреплённый в узловых точках (отсюда и название аппроксимации: splain – гибкий стержень). Для осуществления сплайновой аппроксимации система Mathcad предлагает четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции: cspline(Vx, Vy) – возвращает вектор Vs вторых производных при приближении в опорных точках к кубическому полиному; pspline(Vx, Vy) – возвращает вектор Vs вторых производных при приближении к опорным точкам параболической кривой; lspline(Vx, Vy) – возвращает вектор Vs вторых производных при приближении к опорным точкам прямой. Наконец, четвёртая функция interp(Vs, Vx, Vy, x) возвращает значение у(х) для заданных векторов Vs, Vx, Vy и заданного значения x. 28 Таким образом, сплайн-аппроксимация проводится в два этапа. На первом с помощью функций cspline, pspline или Ispline отыскивается вектор вторых производных функции у(х), заданной векторами Vx и Vy её значений (абсцисс и ординат). Затем, на втором этапе для каждой искомой точки вычисляется значение у(х) с помощью функции interp. На рис 6.2 приведён пример аппроксимации квадратическими (параболическими) сплайнами. Аппроксимация проведена для тех же заданных точек, что и в предыдущем примере. Набраны вектора Vx, Vy и с помощью функции pspline получены коэффициенты сплайнов. Чтобы убедиться, что аппроксимирующая кривая проходит через заданные точки, функция interp вычислена для заданных значений х. Поэтому результатом interp явились заданные значения у. Чтобы более точно просмотреть аппроксимирующую кривую для графика х задан в том же интервале, но с шагом 0.1. Как видим из графика, аппроксимация сплайнами совершенно не похожа на кусочно-линейную аппроксимацию. В функции interp – Vx, Vy – те же векторы заданных значений, а Vs – вектор коэффициентов уравнений для сплайнов, полученный из функций pspline или cspline. 1  98    2 vx   3    4 5      85  vy   32     79   30    x  0  0.1  5 150 100 vy interp( pspline ( vx  vy)  vx  vy  x) 50 2 4 6 vx  x Рис. 6.2. Аппроксимация сплайнами. Задача 6.2. Набрать в Mathcad и получить графики решения для приведённого выше примера. Статистические функции Mathcad. В Mathcad существуют целый набор встроенных функций для вычисления числовых характеристик случайной величины. К ним относятся: 1. mean (A) – возвращает среднее значение вектора А. 2. cvar(A, B) – возвращает корреляционный момент случайных векторов А и В. 3. stdev( A) – возвращает стандартное (среднеквадратическое) отклонение элементов вектора A. 4. corr(vx,vy) – возвращает коэффициент корреляции векторов vx и vy. 5. hist(i,v) – функция построение гистограммы. Здесь i – вектор границ интервала, v – вектор случайных наблюдений. Ответ получаем в виде вектора размерностью векто29 ра i, в котором помещено количество значений случайной величины, попавшей в каждый интервал и др. На рис. 6.3 показано вычисление среднего арифметического и среднеквадратического (стандартного) отклонения вектора случайных величин х.  6.4   7.6  x   2.3  mean ( x)  4.8    1.8  stdev ( x)  2.318  5.9    Рис. 6.3 Вычисление среднего арифметического и среднеквадратического отклонения. Задача 6.3. Провести вычисления вышеприведённого примера. Задача 6.4. Вычислить коэффициенты корреляции и ковариации по заданным реализациям случайных величин x, y и z, w.  768.4   983.3  x   692.1    597.0    859.0     10     11   12     13   14  z     15   16     17   18     19   374   565  y   126    877    492    corr ( x  y)  0.135 cvar ( x  y)  4414.988  100    121    144     169   196  w    225    256     289   324     361  corr ( z  w)  0.996 cvar ( z  w)  239.25 Рис. 6.4.Вычисление корреляционного момента и коэффициента корреляции. Примечание: случайная величина w является неслучайной функцией (квадратом) величины z. Поэтому теоретически коэффициент корреляции должен был быть равен 1. Задача 6.5. Известен курс двух валют: доллара США и монгольского тугрика. Спрашивается: зависит ли тугрик от доллара? 30 И курс доллара, и курс тугрика являются случайными величинами. Из предмета «Теория вероятностей» известно, что мерой статистической связи двух случайных величин является их коэффициент взаимной корреляции, определяемый по формуле: где Kx,y – корреляционный момент двух случайных величин, а Dx, Dy – дисперсии случайных величин. Коэффициент корреляции может изменяться в пределах 1  rx  y  1. В таблице приведён курс доллара и тугрика за определённый период времени. Найти коэффициент корреляции. 5 1 90 67 34 34 21 100 5 55 2 9 11 Задача 6.6. Произведено 500 наблюдений. Результаты наблюдений сведены в статистический ряд. По заданным реализациям случайной величины Х построить её гистограмму. Интервалы наблюдений Число наблюдений в данном интервале Частота m n –4; –3 –3; –2 –2; –1 –1; 0 0; 1 1; 2 2; 3 3; 4 6 25 72 133 120 88 46 10 0,012 0,05 0,144 0,266 0,24 0,176 0,092 0,02 Требуется построить гистограмму этого ряда. Гистограмма реализуется в Mathcad с помощью нескольких функций. Так как нам уже заданы частоты попадания случайной величины в каждый интервал, то мы построим её следующим образом. Сформируем векторы интервалов наблюдений v и частот f.  4   3   2     1  v   0     1   2     3   4     0.012    0.05    0.144    0.266  f    0.245    0.176    0.093     0.02  31 Используя функцию Histogram, найдём центры каждого интервала.  3.5   2.5  1.5  0.5 H  0.5   1.5  2.5   3.5 H  histogram ( v  f) 0  0 0  0 8  0 0  0 Построим плоский график, введя по оси абсцисс первый столбец матрицы Н, а по оси ординат – вектор f. 0.4 f 0.2 4 3 2 1 1 2 3  H0 Рис. 6.5. Построение плоского графика. 4 Вызовем на панели форматирования (Formating Currently Selected X-Y Plot) окно Traces (следы) и в столбце Type выберем строку Solid Bar. Получим график гистограммы, показанной ниже. 0.4 f 0.2 4 3 2 1  H0 1 2 3 4 Рис. 6.6. График гистограммы. Задача 6.7. Во многих случаях при статистических вычислениях требуется проводить выравнивание статистических рядов, т.е. сортировку их по возрастанию аргумента. Для этого можно использовать функцию csort. 32 Пусть для значений аргумента Х, представленного вектором х произведены наблюдения Y и Z, представленные векторами y и z. Для сортировки необходимо сформировать матрицу М, в которой первый столбец составляет вектор х, второй – вектор у, третий – вектор z. Так как нам удобнее начинать отсчёт с 1, введём ORIGIN=1. Дальнейшая последовательность действий понятна из рис. 6.7. Цифра 1 в функции csort(М,1) означает, что сортировка производится по первому столбцу. ORIGIN  1 5   6 1 x    4 3   2  3.5     6.1   4.7  y    2.9    7.3     8.9   M 1  x  M 2  y 1  2 3 M 4 5  6 M  csort ( M  1)  12.9    34.2    98.0  z    21.7    43.4     45.8   M 3  z 4.7 98   8.9 45.8  7.3 43.4   2.9 21.7  3.5 12.9   6.1 34.2  Рис. 6.7 Сортировка по Х. §6 Построение законов распределения случайных величин в Mathcad В Mathcad имеется целый ряд встроенных функций, позволяющих строить законы распределения случайных величин. К ним, в частности, относятся функции: 1) dnorm(x,μ,σ) – плотность вероятности для нормального распределения. Здесь x – случайная величина, μ – её математическое ожидание, σ – среднеквадратическое отклонение. 2) dunif(x,a,b) – равномерная плотность вероятности, где a, b – границы интервала распределения. 3) dt(x,d) – плотность вероятности для распределения Стьюдента, где d – число степеней свободы. 4) dchisq(x,d) – плотность распределения χ- квадрат, где х – случайная величина, d – число степеней свободы. 5) dF(x,d1,d2) – плотность вероятности Фишера, х, d1, d2 – где – x, d1, d2, – случайная величина и две степени свободы, соответственно. 33 Все встроенные функции плотностей вероятностей в Mathcad начинаются с буквы d (distribution) – распределение. Ниже приводятся примеры вычисления и построения графиков наиболее часто используемых законов распределения. Задача 7.1. По заданным результатам наблюдений построить график нормального закона распределения. Выражение для нормального закона распределения имеет вид, где m – математическое ожидание, а σ – среднеквадратическое отклонение случайной величины х. Поэтому, прежде всего, нужно вычислить эти величины, что и показано на рис. 7.1. 0.2 dnorm( x  4  2) 0.1 10 5 5 10 15 x Рис. 7.1.Построение нормального закона распределения Задача 7.2. Построить равномерный закон на интервале 10-20. 0.2 0.15 dunif ( x  5  10) 0.1 0.05 10 5 5 x 10 15 Рис. 7.2. Построение равномерного закона распределения. 34 20 Задача 7.3. Построить закон распределения хи - квадрат. Распределением хи - квадрат с “d” степенями свободы называется распределение суммы квадратов “d” независимых случайных величин, каждая из которых подчинена нормальному закону распределения с математическим ожиданием, равным нулю и дисперсией, равной единице. Аналитически это распределение выражается через гамма- функцию. Закон распределения хи - квадрат используется во многих задачах математической статистики. В Mathcad этот закон строится с помощью встроенной функции dchisq(x,d) , где х – случайная величина, d- число степеней свободы. На рис. 7.3 показано построение закона хи - квадрат для двух значений степеней свободы 0.15 dchisq ( x  5) 0.1 dchisq ( x  10) 0.05 5 10 15 x 20 25 30 Рис. 7.3. Построение закона распределения хи - квадрат. Задача 7.4. Построить самостоятельно закон распределения хи - квадрат с 4-мя степенями свободы. Задача 7.5. Построить закон z- распределения Фишера. Распределением Фишера с “d1” и “d2” степенями свободы называется распределение F(χ), где Здесь ξ и η – независимые, нормально распределенные случайные величины с нулевым математическим ожиданием и дисперсией, равной единице. Распределение Фишера используется в дисперсионном анализе. В Mathcad распределение Фишера строится с помощью встроенной функции dF(x,d1,d2), где х – случайная величина, а “d1” и “d2” – «степени свободы». На рис. 7.4 показано построение распределения Фишера для нескольких значений степеней свободы. 35 1 dF ( x  3  10) dF ( x  10  40) 0.5 2 4 6 x Рис. 7.4. Построение закона распределения Фишера. Задача 7.5. Построить в Mathcad закон распределения Стьюдента. Распределением Стьюдента или t- распределением называется распределение отношения где ξ , ξi – независимые, нормально распределенные случайные величины с нулевым математическим ожиданием и единичной дисперсией. Параметр ‘d” называют числом степеней свободы. Распределение Стьюдента широко используется в дисперсионном анализе. В Mathcad распределение Стьюдента строится встроенной функцией dt(x,d), где х – случайная величина, а d – число степеней свободы. На рис. 7.5. приведено построение этого закона для двух значений степени свободы. 0.4 0.3 dt ( x  0.1) 0.2 dt ( x  500) 0.1 6 4 2 x 2 4 6 Рис. 7.5. Построение закона распределения Стьюдента. Как известно, функция или интегральный закон распределения F(x) показывает вероятность попадания случайной величины х на отрезок оси абсцисс (-∞, х) и математически записывается как x F ( x)   f ( x )dx  где f(x) – соответствующая плотность вероятностей. 36 В Mathcad эти законы строятся с помощью встроенных функций pnorm(x,m,σ) – интегральный нормальный закон распределения с математическим ожиданием m и среднеквадратичным отклонением σ; punif(x,a,b) – интегральный равномерный закон распределения в пределах а и b. pchisq(x,d) – интегральный закон распределения хи – квадрат с d степенями свободы; pF(x,d1,d2) – интегральный закон распределения Фишера со степенями свободы d1 и d2. pt(x,d) – интегральный закон распределения Стьюдента со степенью свободы d. Задача 7.6. Построить функцию распределения для нормального закона с математическим ожиданием m=5 и среднеквадратическим отклонением σ=2. Построение функции приведено на рис. 7.6. pnorm( x  5  2) 1.1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 101112 13141516 x Рис. 7.6.Построение интегральной функции нормального закона Задача 7.7. Построить функцию распределения равномерного закона в пределах а=0, b=10. Функция построена на рис. 7.7. punif ( x  0  10) 1.1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 101112 13141516 x Рис. 7.7. Построение интегрального закона равномерного распределения Задача 7.8. Построить функции распределения для распределений хи-квадрат, Фишера и Стьюдента. Соответствующие функции построены на рис. 7.8-7.10. 37 1.1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 pchisq ( x  5) 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 101112 13141516 x Рис. 7.8. Функция распределения хи-квадрат. 1.1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 pt ( x  0.1) pt ( x  500) 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 x Рис. 7.9. Функция распределения Фишера. pF ( x  3  3) pF ( x  10  40) 1.1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 x Рис. 7.10. Функция распределения Стьюдента. 38
«Системы компьютерной математики» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 462 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot