- •Основные сведения о символьных вычислениях
- •1. Создание символьных переменных, выражений и матриц
- •Создание символьных выражений
- •2. Вычисление пределов и производных
- •3. Символьное интегрирование
- •Вычисление кратных интегралов
- •4. Разложение функций в ряды. Вычисление сумм рядов и произведений. Разложение функций в ряд Тейлора.
- •Вычисление сумм рядов и произведений.
- •5. Решение алгебраических и трансцендентных уравнений
- •6. Решение дифференциальных уравнений.
- •7. Преобразования Лапласа. Прямое преобразование Лапласа
- •Обратное преобразование Лапласа
- •Порядок выполнения работы
- •Задания на выполнение лабораторной работы
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Содержание отчета
- •Контрольные вопросы.
МИНОБРНАУКИ РОССИИ
Филиал государственного образовательного учреждения высшего профессионального образования
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
в г. Сызрани
Кафедра «Электротехника, информатика и компьютерные технологии»
СИМВОЛЬНЫЕ ВЫЧИСЛЕНИЯ В MatLab
Методические указания к лабораторной работе
Составитель: Дремов Ф.В.
Утверждено на заседании кафедры электротехники, информатики и компьютерных технологий 31.03.11
СЫЗРАНЬ 2011
Лабораторная работа
СИМВОЛЬНЫЕ ВЫЧИСЛЕНИЯ В MatLab
Цель работы: приобретение навыков символьных вычислений в MatLab.
Первоначально в системе MatLab были реализованы классические численные алгоритмы решения уравнений, задач линейной алгебры, нахождения значений интегралов, интерполяции, решения дифференциальных уравнений и их систем. Однако, с течением времени потребности науки и практики технических расчетов потребовали включения в систему средств, позволяющих осуществлять символьные (аналитические) вычисления.
В систему MatLab 7 входит пакет расширения Symbolic Math Toolbox 3.1, который базируется на библиотеке процедур, являющейся ядром символьной математической системы Mapl 9, лидирующей в области автоматизации аналитических решений. Пакет Symbolic Math Toolbox придает системе MatLab новые качества системы аналитических вычислений, которые по общности результатов и точности вычислений часто превосходят численные вычисления. В MatLab существует также возможность напрямую обращаться к функциям ядра Mapl и вызывать процедуры, написанные на встроенном языке этой системы.
Основные сведения о символьных вычислениях
1. Создание символьных переменных, выражений и матриц
Для создания символьных переменных используется функция sym (sym-символ)
Синтаксис: Имя_переменной = sym (‘имя_переменной’)
П р и м е р 1.
>> x = sym(‘x’)
x =
x
>> a = sym(‘alpha’)
a =
alpha
>>
Для задания нескольких переменных используют функцию syms
>> syms a b c
>>
Задание комплексной переменной
>> syms x y real
z = x + i * y
Создание символьных выражений
>> sym (‘символьное_выражение’)
П р и м е р 2.
>> f = sym (‘a * x^z + b * x + c’) % Всё выражение – единая переменная
Чтобы изменять коэффициенты используют другое задание символьного выражения:
>> syms a b c x
>> f = a * x^z + b * x + c
f =
a * x^z + b * x + c
Создание абстрактной функции
>> f = sym(‘f(x)’)
f =
f(x)
Далее созданную абстрактную функцию можно использовать для создания новых функций. Например, для создания функции df возвращающей значение первой производной необходимо выполнить команды
>> df = (subs(f, ‘x’ , ‘x + h’) - f) / ‘h’ % subs –функция с помощью которой
% осуществляется табуляция функции
df =
(f(x + h) – f(x)) / h % функция df – единая переменная
Для того чтобы иметь возможность менять значения x и h необходимо выполнить команды:
>> syms x h
>> df = (subs(f, x, x + h) - f) / h
df =
(f(x + h) – f(x)) / h
П р и м е р 3. Функция возвращающая значение факториала
>> kfac = sym(‘k!’)
>> syms k n
>> subs (kfac, k, 6), subs(kfac, r, n) % 6!, n!
ans =
720
ans =
n!
Для создания символьной матрицы сначала создаются символьные переменные являющимися элементами матрицы, а потом сама матрицы
П р и м е р 4.
>> syms a b c
>> A = [ a b c ; b c a ; c a b]
A =
[ a b c ]
[ b c a ]
[ c a b ]
Далее с символьной матрицей можно выполнять различные операции.
П р и м е р 5.
- Суммирование по строке
>> sym(A(1, :))
ans =
a + b + c
- Замена переменной b на переменную d
>> A = subs(A , b, d)
A =
[ a, d, c ]
[ d, c, a ]
[ c, a, d ]
2. Вычисление пределов и производных
Пределы вычисляются с помощью функции
limit (f, x, x0),
где f – функция предел которой находится,
x – аргумент функции f,
x0 – предельные значения x.
П р и м е р ы 1, 2, 3, 4, 5:
Найти пределы функций:
1) y1 = при
>> syms x;
>> limit(sin(x)/x, x, 0)
ans =
1
2) y2 = при
>> limit((1 – exp(-x)) ./x, x, inf) % inf - бесконечность
ans =
0
3) y3 = при
>> limit((1 - x) ./log(x), x, 1)
ans =
-1
4) ; ,
>> syms x
>> limit(1/(1 - x), x, 1, ‘left’)
ans =
inf
5) ;
>> syms x
>> limit(1 / (1 - x), x, 1, ‘right’)
ans =
–inf
Производные находятся с помощью функции diff (f, x, n),
где f – дифференциальная функция,
x – аргумент,
n – порядок производной.
Порядок вычисления производной:
1) Ввод дифференцирумой функции f
2) Ввод функции diff (f, x, n) с конкретными значениями x и n
3) Enter – решение.
П р и м е р 6.
Найти первую и третью производные функции
>> syms x n
>> y = x * cos(x);
>> diff (y, x)
ans =
- sin(x) *x + cos(x)
>> diff (y, x, 3)
ans =
sin(x) * x – 3 * cos(x)
Функция f может быть вектором или матрицей. В этом случае результатом дифференцирования будет также вектор или матрица, элементами которых являются производные от исходных функций, образующих вектор или матрицу.
П р и м е р 7.
>> syms a x;
>> y = [ x * sin(x); x^5; exp(a + x) ];
>> diff (y, x)
ans =
cos(x) * x + sin(x)
5 * x^4
a * exp(a * x)