lection_matlab_all / matlab_11
.pdfДля решения систем алгебраических уравнений и одиночных уравнений служит функция solve:
• solve( expr1, expr2, ..., exprN, var1, var2, ..., varN ) — возвращает значения переменных var, при которых соблюдаются равенства, заданные выражениями expr. Если в выражениях не используются знаки равенства, то полагается expr = 0;
При отсутствии аналитического решения и числе неизвестных, равном числу уравнений, ищется только одно численное решение, а не все решения. Возврат результата возможен в следующих формах:
•для одного уравнения и одной переменной решение возвращается в виде одномерного или многомерного массива ячеек;
•при одинаковом числе уравнений и переменных решение возвращается в упорядоченном по именам переменных виде;
•для систем с одним выходным аргументом решение возвращается в виде массива записей.
Примеры:
>>syms х у;
>>solve( х^3-1, х ) ans =
[ |
1] |
[-1/2 + 1/2*i*3^(1/2)] [-1/2 - 1/2*i*3^(1/2) ]
>> solve( 'sin(x)=0.5', х ) → ans = 0.523598775598298873077107...
>> S = solve( 'х+у=3', 'х*у^2=4', х, у ); → |
S — структура |
|||
х: [3x1 sym] |
||||
>> S.x |
|
>> S.у |
||
|
у: [3x1 sym] |
|||
|
||||
ans = |
|
ans = |
||
|
|
|||
[ 4] |
|
[ -1] |
|
|
[ 1] |
|
[ 2] |
|
|
[ 1] |
|
[ 2] |
|
Функция simplify(S) пытается упростить символьное выражение S. Если упрощение невозможно, то возвращается исходное выражение.
Примеры:
>>syms a b x;
>>V = [ sin(х)^2 + соs(х)^2, log(a*b) ] V = [ sin(x)^2+cos(х)^2, log(a*b) ]
>>simplify(V) → ans = [1, log(a*b)]
>>simplify( ( а^2 - 2*а*b + b^2 )/( a - b ) ) → ans = a-b
Функция simple (S) также выполняет различные упрощения для выражения S и, кроме того, выводит как промежуточные результаты, так и самый короткий конечный результат. При этом используется более глубокий анализ и распознаётся больше спец. функций.
Примеры: |
|
|
cos(х)^2 + sin(х)^2 |
1 |
combine(trig) |
2*cos(x)^2 - sin(x)^2 |
3*cos(x)^2 - 1 |
simplify |
cos(x)^2 - sin(x)^2 |
cos(2*x) |
combine(trig) |
cos(х) + (-sin(х)^2 )^(1/2) |
cos(x) + i*sin(x) |
radsimp |
cos(x) + i*sin(x) |
exp(i*x) |
convert(exp) |
•expand(S) расширяет выражения, входящие в массив S. Рациональные выражения она раскладывает на простые дроби, полиномы — на полиномиальные разложения и т. д. Функция работает со многими алгебраическими и тригонометрическими функциями.
•factor(S) поэлементно разлагает выражения вектора s на простые множители, а целые числа — на произведение простых чисел.
•numden(А) преобразует каждый элемент массива А в рациональную форму в виде отношения двух неприводимых полиномов с целочисленными коэффициентами.
•horner(P) возвращает символьный полином или массив символьных полиномов Р, преобразованный по схеме Горнера, минимизирующей число операций умножения.
•collect(S, v) обеспечивает комплектование выражений в составе вектора или матрицы S по степеням переменной v.
Функция ezplot позволяет строить графики функций, заданных в символьной форме:
•ezplot(f) — строит график символьно заданной функции f(х) независимой переменной х в интервале [-2*pi, 2*pi];
•ezplot(f, xmin, xmax) или ezplot(f, [xmin, xmax]) — делает то же, но позволяет задать диапазон изменения независимой переменной х от xmin до xmax;
•ezplot (f, [xmin xmax], fig) — обеспечивает спецификацию графика с помощью параметра fig.
Функция ezcontour служит для построения с помощью карт линий уровня контурных графиков функций вида z = f(x, y):
•ezcontour (f) — строит контурный график с настройкой по умолчанию;
•ezcontour (f, domain) — строит контурный график с заданными параметром domain пределами изменения х и у.
•ezcontour (..., n) — обеспечивает ранее указанные построения при явном задании числа линий n.
Похожая на рассмотренную выше функция ezcontourf строит контурные графики с функциональной окраской (заполняет соотв. цветом) областей между линиями равного уровня.
Для построения трехмерных графиков заданных в виде символьных выражений функций служит функция ezplot3:
•ezplot3( x, у, z ) — строит трехмерный график функции, заданной параметрически уравнениями x(t), y(t), z(t) при настройке по умолчанию;
•ezplot3( х, у, z, [tmin tmax] ) — строит трехмерный график функции, заданной параметрически уравнениями x(t), y(t), z(t) при изменении аргумента t от tmin до tmax;
Функция ezsurf используется для построения графиков поверхностей, задаваемых функциями вида z = f(x,y):
•ezsurf (f) — построение поверхности f(x,y) с параметрами х и у в интервале [-2*pi, 2*pi];
•ezsurf (f, domain) — построение поверхности f(x,у) с пределами изменения х и у, заданными параметром domain
•ezsurf (x, у, z) — построение поверхности, заданной параметрически зависимостями x(t), y(t), z(t) при t меняющимся в интервале [-2*pi, 2*pi].