- •А.К. Ефремов интегрированная
- •Рекомендовано редсоветом мгту им. Н.Э. Баумана
- •Isbn 5-7038-2301-3 мгту им. Н.Э. Баумана, 2003
- •1. Интерфейс системЫ matlab
- •1.1. Программная группа matlab
- •1.2. Командное окно matlab
- •1.2.1. Главное меню
- •1.2.2. Панель инструментов
- •1.3. Настройка параметров рабочего пространства
- •1.4. Справочная система matlab
- •2. Работа в режиме прямых вычислений
- •3. Базовые объекты системы matlab
- •3.1. Способы формирования матриц и векторов
- •3.2. Матричные операции и функции
- •3.3. Решение линейных уравнений
- •3.4. Вычисление корней полиномов
- •3.5. Обработка данных
- •4. Графические средства системы matlab
- •4.1. Графические объекты на плоскости
- •4.1.1. Функция plot
- •4.1.2. Функции fplot и ezplot
- •4.1.3. Другие графические функции
- •4.1.5. Обработка данных
- •4.2. Построение трехмерных поверхностей и тел
- •4.2.1. Основные графические функции
- •4.2.2. Дополнительные возможности
- •5. Основы программирования в среде matlab
- •5.1. Общие положения
- •5.2. Примеры простых программ
- •Xlabel('sin(X)') % Надпись по оси х
- •Xlabel('X') % Надпись по оси абсцисс
- •5.3. Программа с использованием внешней функции
- •5.4. Дополнительные программы
- •5.4.1. Дифференцирование функций
- •Xlabel('Число элементов массивов')
- •Xlabel('Число элементов массивов')
- •5.4.2. Функции eval, feval
- •Xlabel(‘t’), ylabel(‘y, dy/dt’)
- •Xlabel(‘y’), ylabel(‘dy/dt’)
- •6. Символьные вычисления
- •6.1. Определение символьной переменной
- •6.2. Основные функции
- •6.3. Математический анализ
- •6.3.1. Функция limit – предел функции одной переменной
- •6.3.2. Функция diff – дифференцирование функции одной переменной
- •6.3.3. Функция int – интегрирование функции одной переменной
- •6.3.4. Функция symsum – суммирование членов рядов
- •6.3.5. Функция taylor – разложение функции в ряд Тэйлора
- •6.4. Символьное решение уравнений
- •6.4.1. Решение отдельных уравнений
- •6.4.2. Решение систем уравнений
- •6.4.3. Решение дифференциальных уравнений
- •7. Пакет моделирования динамических систем simulink
- •7.1. Рабочая среда Simulink
- •7.2. Представление динамической системы в виде структурной схемы
- •7.3. Основные приемы работы в среде Simulink
- •7.4. Модель с ветвлением соединений
- •7. 5. Интегрирование дифференциального уравнения
- •Список литературы
- •Оглавление
- •Приложение
- •Разделы справочной системы
- •Программирования и отладки программ
- •Графические средства matlab
- •Символьные вычисления (symbolic math toolbox)
6.3. Математический анализ
6.3.1. Функция limit – предел функции одной переменной
Система MATLAB реализует важную математическую операцию – вычисление предела, т е. . Предел может быть конечным числом (в том числе 0), а также и . В точках разрыва функции можно различать пределы слева: и справа: ; при равенстве этих пределов существует предел в точке a.
Синтаксис команды ():
limit(f) – предел при :
первый замечательный предел:
» x=sym('x'); limit(sin(x)/x)
ans =
1
второй замечательный предел :
» limit((1+x)^(1/x))
ans =
exp(1)
» limit((x-sin(x))/x^3)
ans =
1/6
» limit(x^x)
ans =
1
limit(f,a) – предел при (предварительно с помощью функции findsym(f) определяется независимая переменная – в данном случае х),
» limit((pi-2*x)*tan(x),pi/2)
ans =
2
limit(f,x,a) – явный предел при ,
» syms t x;
» limit((1+2*t/x)^(3*x),x,inf)
ans =
exp(6*t)
limit(f,x,a,’left’), limit(f,x,a,’right’) – вычисление соответственно левого и правого пределов.
» syms x a
» v=[(1+a/x)^x,exp(-x)]; limit(v,x,inf,'left')
ans =
[ exp(a), 0]
Упражнение. Найти пределы
; ; .
6.3.2. Функция diff – дифференцирование функции одной переменной
Синтаксис функции:
diff(f) – автоматическое определение переменной с помощью findsym(f) и дифференцирование – ,
» x=sym(‘x’)
» diff(sin(x)^2);
ans =
2*sin(x)*cos(x)
» simple(ans)
……………….
ans =
sin(2*x) % Предшествующие преобразования условно опущены
diff(f,v) – дифференцирование по переменной v,
» syms x y, u=x^y; v=diff(u,x), w=diff(u,y)
v =
x^y*y/x
w =
x^y*log(x)
» simplify(v)
ans =
x^(y-1)*y
diff(f,x,n) – производная n-го порядка :
» for n=1:7, clc, n, diff(x^6,n), pause, end
Упражнение. Найти производную функции и вычислить ее значение при x=0.5. Ответ: 0.8591.
6.3.3. Функция int – интегрирование функции одной переменной
Синтаксис функции:
int(f) – вычисление первообразной после автоматического определения независимой переменной x, т.е. ,
» int(1/cos(x))
ans =
log(sec(x)+tan(x))
» int(1/x)
ans =
log(x)
int(f,v) – интегрирование по переменной v, т.е. ,
» u=x^y;
» int(u,x)
ans =
x^(y+1)/(y+1)
» int(u,y)
ans =
1/log(x)*x^y
» int([1-exp(-x), x^2])
ans =
[ x+exp(-x), 1/3*x^3]
int(f,a,b), int(f,v,a,b) – определенный интеграл, т.е. ,
» int(exp(-x^2),-inf,inf) %
ans =
pi^(1/2) %
Упражнение. Вычислить интеграл и найти его значение при . Ответ: 1.0.
6.3.4. Функция symsum – суммирование членов рядов
Синтаксис функции:
symsum(s) – суммирование ряда с общим членом s(k) в пределах от 0 до k-1. Сумма натуральных чисел от 0 до k-1;
» syms k
» u=symsum(k)
ans =
1/2*k^2-1/2*k
» factor(u) % или simple(u)
ans =
1/2*k*(k-1)
symsum(s,kl,ku) – суммирование ряда по индексу k от kl до ku, т.е.
» symsum(k,1,3)
ans =
6
сумма , т.е.
» symsum(k^2,1,5)
ans =
55
сумма , т.е.
» symsum(1/k^2,1,inf)
ans =
1/6*pi^2
сумма , т.е.
» symsum(x^k/sym('k!'),k,0,inf)
ans =
exp(x)
С помощью функции sym создано символьное выражение для факториала k!, поскольку символ ! не воспринимается системой MATLAB как знак факториала.
Сумма , т.е.
» symsum((-1)^k/k,1,inf)
ans =
-log(2)
» -log(2)
ans =
-0.6931
6.3.5. Функция taylor – разложение функции в ряд Тэйлора
Разложение функции в окрестности точки а имеет вид ряда Тэйлора
,
который при представляет собой ряд Маклорена .
Синтаксис функции:
taylor(f) – возвращение по умолчанию шести членов ряда Маклорена;
taylor(f,n) – возвращение разложения в ряд Маклорена, удерживается n-1 членов;
taylor(f,a) taylor(f,a,n) – то же для ряда Тэйлора.
Пример: разложим функцию в ряд Маклорена, удерживая 6 (по умолчанию), 3 и 10 членов, вычислим значения функции при и сравним с точным:
» syms x;
» f=exp(-x);
» u3=taylor(f,3)
u3 =
1-x+1/2*x^2
» u6=taylor(f)
u6 =
1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5
» u10=taylor(f,10)
u10 =
1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5+1/720*x^6-1/5040*x^7+1/40320*x^8-1/362880*x^9
» x=1.0;
» s3=subs(u3); s6=subs(u6); s10=subs(u10);
» a=exp(-1)
a =
0.3679
» disp(a-s3)
-0.1321
» disp(a-s6)
0.0012
» disp(a-s10)
2.5246e-007
Упражнение. Разложить в ряд Тэйлора функцию в окрестности точки с точностью до 9 членов разложения.