Для вычисления в символьном виде производных от выражения S служит функция diff, записываемая в формате diff(S,'v') или diff(S, sym('v')) Она возвращает символьное значение первой производной от символьного выражения или массива символьных выражений S по переменной v. Эта функция возвращает
• diff(S, n) — возвращает п-ю (п — целое число) производную символьного выражения или массива символьных выражений S по переменной v.
• diff(S, V, n) и diff(S, n, V) – возвращает п-ю производную S по переменной v.
Примеры:
» x =sym( 'x' ); y=sym( 'у' );
» diff(x^y)
ans =
х^у*y / x
» slmplify(ans)
ans =
x^(y-1)*y
» diff(s1n(y*x), x, 3)
ans =
- cos(y*x)*y^3
» diff([x^3 sin(x) exp(x)], x)
ans =
[ 3*x^2, cos(x), exp(x)]
2. Функция интегрирования – int
Функция int вычисляет неопределенные и определенные интегралы
• int(S) — возвращает символьное значение неопределенного интеграла от символьного выражения или массива символьных выражений S по переменной, которая автоматически определяется функцией findsym. Если S — скаляр или матрица, то вычисляется интеграл по переменной 'х'.
• int(S, v) — возвращает неопределенный интеграл от S по переменной v .
• int(S, a, b) — возвращает определенный интеграл от S с пределами интегрирования от а до b, причем пределы интегрирования могут быть как символьными, так и числовыми.
• int(S, v, a, b) — возвращает определенный интеграл от S по переменной v с пределами от а до b.
• solve(expr1, expr2,... exprN, var1, var2,... varN) — возвращает значения переменных var1, при которых соблюдаются равенства, заданные выражениями exprI. Если в выражениях не используются знаки равенства, то полагается ехргI
= 0;
• solve(expr1, expr2, ..... exprN) — аналогична предшествующей функции, но переменные, по которым ищется решение, определяются функцией findsym.
Примеры решения уравнений:
» syms x у;
» so1ve(x^3 -1, x)
ans =
[ 1]
[ -1/2+1/2*i*3^(1/2)]
[ -1/2-1/2*i*3^(1/2)]
» syms a b с
» solve(a*x^2+b*x+c)
ans =
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
»S = solve(‘x+y=3’, ‘x*y^2=4’, x, y)
S =
x : [ 3x1 sym ]
y : [ 3x1 sym ]
» S.x
ans =
[4]
[1]
[1]
» S.y
ans =
[-1]
[2]
[2]
» solve(‘sin(x)=0.5’, x)
ans =
0.52359877559829887307710723054658
7. Решение дифференциальных уравнений – dsolve
Для решения дифференциальных уравнений в форме Коши MATLAB имеет следующую функцию:
• dsolve( 'eqn1', 'eqn2', ...) — возвращает аналитическое решение системы дифференциальных уравнений с начальными условиями. Они задаются равенствами eqnl
(вначале задаются уравнения, затем начальные условия).
По умолчанию независимой переменной считается переменная 't', обычно обозначающая время. Можно использовать и другую переменную, добавив ее в конец списка параметров функции dsolve. Символ D обозначает производную по независимой переменной, то есть d / dt, при этом D2 означает d2 / dt2 и т. д. Имя независимой переменной не должно начинаться с буквы D.
Начальные условия задаются в виде равенств 'у(а)=b' или 'Dy(a)=b', где у — независимая переменная, а и b — константы. Если число начальных условий меньше, чем число дифференциальных уравнений, то в решении будут присутствовать произвольные постоянные С1, С2 и т. д.
Примеры применения функции dsolve:
» dsolve('D2x = -2*x')
ans =
Cl*cos(2^(1/2)*t) + C2*sin(2^(l/2)*t)
» dsolve('D2y = -2*x + y', 'у(0) = 1 , 'х')
ans =
(2*х*ехр(х) + (- С2 + 1)*ехр(х)^2 + С2 / ехр(х)
Графические возможности Simbolic
1. Графопостроитель – funtool
Команда funtool
создает интерактивный графический калькулятор, позволяющий быстро построить две функции одной переменной - f(x) и g(x). Например, одна может задавать собственно функцию, а другая — ее производную. Функции обозначаются как ' f = ' и ' g = ' и после знака равенства можно набрать функции с помощью клавиш калькулятора в его нижней части. С помощью полей 'х = ' и ' а = ' можно задать диапазон изменения переменной х и значение масштабирующего параметра а.
При запуске команды funtool появляются окна для двух функций и окно калькулятора (рис. 4.1). По умолчанию заданы функции f(x)
= х и g(x) = 1, предел изменения х от -2? до 2? и а = 1/2.
Верхний ряд кнопок вычислителя относится только к функции f(x) и задает следующие операторы:
• df/dx — символьное дифференцирование f(x);
• int f
— символьное интегрирование f(x) при наличии замкнутой формы;
Рис. 4.1. Внешний вид графопостроителя funtool
• simple f — упрощение выражения, если таковое возможно;
• num f — выделение числителя рационального выражения;
• den f — выделение знаменателя рационального выражения;
• 1/f — замена f(x) на 1 / f(x);
• finv — замена f(x) инверсной функцией.
Второй ряд клавиш выполняет операции масштабирования и сдвига f(x) с применением параметра 'а'.
Третий ряд клавиш предназначен для осуществления бинарных операций над функциями f(x) и g(x).
Четвертый ряд клавиш служит для работы с памятью калькулятор и иных операций:
• Insert — помещает текущую функцию в список функций.
• Cycle — выполняет текущую функцию из списка.
• Delete — удаляет выделенную функцию из списка.
• Reset — устанавливает f, g, x, а и fxl i st в исходное состояние.
• Help — выводит описание калькулятора.
• Demo — запускает демонстрационный пример.
• Close — завершает работу с калькулятором.
Благодаря описанным средствам вычислитель позволяет задать инересующую вас функцию, выполнить ее преобразования (например, дифференцирование и интегрирование) и, наконец, построить график функции и результатов ее преобразования (рис.4.2)
Рис. 4.2. Построения графиков некоторых функций
Таким образом, графопостроитель funtool является весьма удобным средством визуализации графиков самых различных функций.
2. Графики поверхностей – ezsurf и ezsurfc
Команда ezsurf служит для построения графиков поверхностей, задаваемых функциями двух переменных f(x, у):
• ezsurf(f) — построение поверхности f(x,y) с параметрами х и у, меняющимися по умолчанию от -2? до 2?;
• ezsurf(f,domain) — построение поверхностиf(x,y) с пределами изменения х и у, заданными параметром domain;
• ezsurf(x,y,z) — построение поверхности, заданной параметрически зависимостями x(s, t), y(s, t), z(s, t) при s и t, меняющихся в интервале от -2? до 2?;
• ezsurf(x,y,z,[smin, smax, tmin, tmax]) — построение поверхности, заданной параметрически зависимостями x(s, t), y(s, t), z(s, t) при s
и t
меняющихся в заданном интервале.
Следующий пример показывает действие этой команды:
» syms x у
» ezsurf(rea1(asec(x+i*y)))
Рис. 4.3. Пример построения графика поверхности командой ezsurf
Аналогичная по синтаксису записи группа команд ezsurfc строит еще и контурный график поверхности на плоскости, лежащей под поверхностью.
Применение средств символьных вычислений в
теоретической механике
1. Решение задач статики.
При решении некоторых прикладных задач оптимизации желательно получать аналитические решения, устанавливающие функциональную связь между заданными параметрами и величинами, подлежащими определению. В этом случае целевая функция оптимизации имеет явное выражение и её максимум (минимум) определяется обычными методами математического анализа. Рассмотрим следующую задачу о равновесии конструкции:
З а д а н и е С 1. Определение наибольшего значения реакции опоры для
составной конструкции
На плоскую конструкцию, состоящую из двух невесомых элементов, которые в точке С соединены шарниром, наложены следующие связи:
1) Шарнирная опора на катках в точке А ;
2) Неподвижный цилиндрический шарнир в точке D ;
3) Горизонтальный невесомый стержень в точке К.
На конструкцию действуют:
1. Пара сил с моментом М = 5 кН м ( в точке Е).
2. Две сосредоточенные силы F1 = 4 кН ( в точке D ) и F2 = 6 кН ( в точке А ), образующие в точке приложения с контуром элемента соответственно углы ? и 300
.
3. Перпендикулярно к действующему участку ( участок АВ
Длина каждого участка конструкции а = 0,4 м. Предполагая, что конструкция находится в равновесии, найти при каком значении угла наклона ? силы F1 реакция шарнира D (
) имеет наибольшее значение, определить для этого случая реакции всех связей и усилия в шарнире С .
Решение. Для определения искомых реакций можно поступить двояко, либо мысленно расчленить систему тел (составную конструкцию) на отдельные твёрдые тела и рассмотреть равновесие каждого из тел в отдельности, либо, применяя принцип затвердевания, вначале рассмотреть равновесие всей конструкции, а затем равновесие её отдельных элементов.
Рис. 4.4. Схема составной конструкции
I. Прежде рассмотрим равновесие всей конструкции.
1. Объект равновесия – составная конструкция.
2. Связи – шарнирная опора на катках в точке А, неподвижный цилиндрический шарнир в точке D иневесомый стержень в точке К . На конструкцию действуют сосредоточенные силы F1 и F2 , равномерно распределённая нагрузка интенсивности q и пара сил с моментом М.
3. Действие связей заменим их реакциями RA , ХD , УD
, S . Равномерно распределённую нагрузку заменим равнодействующей
Q = q 2 a = 8 kH.
Другие активные силы - F1 , F2 и пара сил с моментом М.
4. Составим уравнения равновесия ( система координат Dху изображена на ри-
сунке 4.5a)
Fix = ХD
- F2 + F1 sin ? – Q cos 600
+ S = 0
Fiy = YD – Q sin 600 + RA - F1 cos ? = 0 ( а )
miC = - F2 sin 300 a + F1cos? a + F1 sin? 2a – M – YD a +
+ RА a cos 300 + S a + XD 2 a = 0.
Данная система уравнений содержит четыре неизвестных XD , УD , S , RA .
II. Рассмотрим теперь равновесие правой части конструкции ( Рис. 4.5b ).
1. Объект равновесия – правая часть конструкции.
2. Связи – шарнирная опора на катках в точке А и соединительный шарнир С. На объект равновесия действует сосредоточенная сила F2 , равнодействующая распределённой нагрузки Q и реакции связей XC , УC ,RA .
3. Составим уравнения равновесия ( в системе координат Cху )
Fix = XC - F2 - Q sin 300 = 0
Fiy = RA
+ YC - Q cos 300 = 0 ( б )
miC = - F2 sin 300 a + RA cos 300 a = 0
Решаем систему шести уравнений (а) – (б) с шестью неизвестными, система (б) является независимой и содержит три неизвестных. Находим, из третьего уравнения
RA = F2 tg 300 = 6 tg 300 = 3,464 кН ,
из первого – XC = F2 + Q sin 300 = 10 кН,
из второго уравнения УС = Q cos 300 – RA = 3,464 кН.
Решаем систему уравнений (а), для этого воспользуемся символьными вычислениями системы MATLAB