
- •Часть I. Mathcad 5
- •Часть II. Maxima. 11
- •Часть III. Лабораторные работы 20
- •Часть I. Mathcad
- •Арифметические вычисления
- •Использование формул в Mathcad
- •Работа с векторами и матрицами
- •Построение графиков в среде Mathcad
- •Чтение и запись данных
- •Знакомство с Mathcad
- •Часть II. Maxima.
- •Интерфейс Maxima.
- •Принципы работы с wxMaxima.
- •Списки.
- •Массивы.
- •Векторы и матрицы.
- •Построение графиков функций.
- •Решение уравнений.
- •Условные выражения и циклы.
- •Чтение и запись данных
- •Часть III. Лабораторные работы лабораторная работа № 1 функциональный масштаб. Интерполяция
- •Интерполяция лагранжа, ньютона.
- •Контрольные задания
- •Примеры выполнения заданий в пакете maxima
- •Лабораторная работа № 2 численное интегрирование
- •Задания.
- •Пример выполнения работы.
- •Лабораторная работа № 3 применение интеграла вероятности для анализа данных
- •Стандартные функции системы mcad
- •Стандартные функции системы Maxima (пакет distrib)
- •Контрольные задания
- •Лабораторная работа № 4 моделирование случайных величин. Метод монте-карло Формирование непрерывных случайных величин
- •Вычисление интегралов методом Монте-Карло
- •Стандартные функции maxima для генерации случайных величин.
- •Задания.
- •Задание “а” (Моделирование выборки)
- •Задание “в” (Выборка из файлов данных)
- •2. Выборочные распределения
- •Задание “a” (Моделирование выборки)
- •Лабораторная работа № 6 метод наименьших квадратов
- •Задания
- •Приложение Некоторые встроенные функции Mathcad
- •Основные законы распределения
- •Литература
- •Составители: Радченко Юрий Степанович
Решение уравнений.
Процесс решения уравнений в любой математической программе зависит от сложности и типа уравнения. Некоторые из них можно решить аналитически, другие решаются только численно. Maxima обладает возможностью как аналитического, так и численного решения уравнений. Сначала необходимо ввести уравнение в строке ввода Maxima, например:
(%i1) 3*x^3-2*x^2+5*x-8=0;
(%o1)
или
(%i1) eq1:3*x^3-2*x^2+5*x-8=0;
(%o1) .
Для решения уравнений предусмотрено довольно много функций. Перечислим некоторые из них.
1) realroots(Уравнение) — ищет действительные корни полиномиального уравнения с действительными коэффициентами (Меню «Уравнения -> Корни полинома (вещественные)»):
(%i4) realroots(eq1);
(%o4)
2) nroots(Уравнение,min,max) — находит количество корней полиномиального уравнения с действительными коэффициентами на отрезке [min,max]:
(%i5) nroots(eq1,0,inf);
(%o5) 1.
3) allroots(Уравнение) — ищет все корни полиномиального уравнения (Меню «Уравнения -> Корни полинома»):
(%i6) allroots(eq1);
(%o6) [x=1.176534437353076,
x=1.483762909456726*%i-0.2549338853432,
x=-1.483762909456726*%i-0.2549338853432]
4) solve([Список уравнений], [Список переменных]) (Меню «Уравнения -> Решить...»):
(%i10) solve([eq1],[x]);
5) find_root(Уравнение, Переменная, Левая граница,Правая граница) — выполняет поиск корня на указанном отрезке методом деления отрезка пополам (Меню «Уравнения -> Решить численно...»):
(%i26) find_root(x^2-1=sin(x),x,0,2);
(%o26) 1.409624004002596
Вычисление пределов, производных, интегралов доступно в Меню «Анализ». Например, вычислим первый замечательный предел («Анализ -> Найти предел»):
(%i28) limit(sin(x)/x, x, 0);
(%o28) 1
Для вычисления производной достаточно использовать пункт меню «Анализ -> Дифференцировать», который скрывает в себе функцию
diff(Выражение, Переменная), например:
(%i1) f:(x^2)*exp(-x^2);
(%o1)
(%i2) diff(f, x);
(%o2)
.
Для
вычисления интеграла нужно использовать
пункт меню «Анализ -> Интегрировать».
Например, вычислим интеграл
:
(%i4) y:a*x^2;
(%o4)
(%i5) integrate(%, x, 0, 1);
(%o5)
.
Условные выражения и циклы.
В языке системы Maxima заложены основные исполнимые операторы, которые есть в любом языке программирования. Синтаксис условного оператора совпадает с аналогичным оператором языка Паскаль и может быть проиллюстрирован примерами:
sgn: if x>=0 then 1 else -1;
if x>=0 then y:1 else y:-1
Допустима также сокращённая форма оператора
a: if x>0 then 55;
Оператор цикла может задавиться несколькими способами в зависимости от того, известно ли заранее необходимое количество повторений тела цикла. Его синтаксис рассмотрим на примере вычисления факториала числа 5:
1 способ p:1$ for k:1 thru 5 step 1 do p:p*k$ display(p); |
2 способ p:1$ for k:1 while k<=5 step 1 do p:p*k$ display(p); |
3 способ p:1$ for k:1 unless k>5 step 1 do p:p*k$ display(p); |
4 способ p:1$ for k:1 next k+1 thru 5 do p:p*k$ display(p); |
Если шаг равен 1, то «step 1» можно опустить.
В условных выражениях и циклах вместо простых операторов можно использовать составные, которые в терминах Maxima называются блоками. Обычный блок имеет вид:
block([a,b,c], a:1, b:a+1, c:b*2, c:c*5);
Вначала располагается список локальных переменных блока [a,b,c] (может быть пустым), далее — набор операторов. Значением блока является значение последнего его оператора. Допускается использовать упрощённый вид блока:
(x:1, x:x+5, b:x)