- •Основы работы и программирования, компьютерная математика Учебный курс
- •Isbn ооо «Харвест», 2008
- •Предисловие
- •Введение
- •Глава 1 знакомство с matlab и простейшие вычисления
- •1.1. Рабочая средаMatlab
- •1.2. Арифметические вычисления
- •1.3. Вещественные числа
- •1.4. Форматы вывода результата вычислений
- •1.5 Комплексные числа
- •1.6 Векторы и матрицы
- •1.7 Встроенные функции. Функции, задаваемые пользователем
- •1.8 Сообщения об ошибках и их исправление
- •1.9 Просмотр и сохранение переменных
- •1.10 Матричные и поэлементные операции над векторами и матрицами
- •1.11 Решение систем линейных уравнений
- •Вопросы для самопроверки
- •Глава 2 работа с массивами
- •2.1 Создание векторов и матриц
- •2.2 Применение команд обработки данных к векторам и матрицам
- •2.3 Создание специальных матриц
- •2.4 Создание новых массивов на основе существующих
- •2.5 Вычисление собственных значений и собственных векторов. Решение типовых задач линейной алгебры
- •Вопросы для самопроверки
- •Глава 3 м-файлы
- •3.1 Файл-программы
- •3.2 Файл-функции
- •Вопросы для самопроверки
- •Глава 4 программирование
- •4.1 Операторы отношения и логические операторы
- •4.2 Операторы цикла
- •4.3 Операторы ветвления
- •4.4 Оператор переключения switch
- •4.5 Оператор прерывания цикла break
- •4.6 Пример сравнения быстродействия матричных и скалярных операций
- •Вопросы для самопроверки
- •Глава 5 высокоуровневая графика
- •5.1 2D графика
- •5.1.1 Графики в линейном масштабе
- •5.2 Специальные виды 2d - графиков
- •5.2.1 Представление функции в виде дискретных отсчетов
- •5.2.2 Лестничные графики
- •5.2.3 Графики с указанием погрешности
- •5.2.4 Графики в логарифмическом и полулогарифмическом масштабах
- •5.2.5 Графики параметрических функций
- •5.3 3D графика
- •5.3.1 Линейчатые поверхности
- •5.3.2 Каркасные поверхности
- •5.3.3 Контурные графики
- •5.3.4 Сплошная освещенная поверхность
- •5.4 Оформление, экспорт и анимация
- •5.4.1 Оформление графиков
- •5.4.2 Сохранение и экспорт графиков
- •5.4.3 Анимация
- •Вопросы для самопроверки
- •Глава 6 прикладная численная математика
- •6.1 Операции с полиномами
- •6.2 Решение уравнений и их систем
- •6.3 Минимизация функции одной переменной
- •6.4 Минимизация функции нескольких переменных
- •6.5 Вычисление определенных интегралов
- •6.6 Решение дифференциальных уравнений
- •6.7 Аппроксимация и интерполяция данных
- •6.8 Интерполяция двумерных и многомерных данных
- •Вопросы для самопроверки
- •Глава 7 символьные вычисления
- •7.1 Символьные переменные, константы и выражения
- •7.2 Вычисления с использованием арифметики произвольной точности
- •7.3 Команды упрощения выражений – simplify, simple
- •7.4 Команда расширения выражений – expand
- •7.5 Разложение выражений на простые множители – команда factor
- •7.6 Приведение подобных членов – команда collect
- •7.7 Обеспечение подстановок – команда subs
- •7.8 Вычисление пределов – команда limit
- •7.9 Вычисление производных – команда diff
- •7.10 Вычисление интегралов – команда int
- •7.11 Разложение в ряд Тейлора – команда taylor
- •7.12 Вычисление суммы ряда – команда symsum
- •7.13 Решение уравнений и их систем – команда solve
- •7.14 Решение дифференциальных уравнений – команда dsolve
- •7.15 Прямое и обратное преобразования Лапласа – команды laplace,ilaplace
- •7.16 Графики символьных функций – команды ezplot, ezpolar
- •7.17 Прямой доступ к ядру системы Maple – командаmaple
- •7.18 Разложение рациональной дроби на сумму простейших дробей
- •7.19 Интерполяционный полином Лагранжа
- •7.20 Решение неравенств и систем неравенств
- •7.21 Разложение в ряд Тейлора функции нескольких переменных
- •7.22 Решение дифференциальных уравнений с помощью степенных рядов
- •7.23 Решение тригонометрических уравнений
- •Вопросы для самопроверки
- •Приложения Приложение 1. Справочная система matlab
- •Приложение 2. Знакомство с пакетами расширения системыMatlab
- •Приложение 3. Задания для самостоятельной работы
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Литература
7.8 Вычисление пределов – команда limit
Для вычисления пределов функции F(x), заданной в аналитическом (символьном) виде, служит команда limit, которая используется в одном из следующих вариантов:
limit(F,x,a) – возвращает предел символьного выражения F в точке x = a;
limit(F,x,a,'right') или limit(F,x,a,'left') – возвращает предел в точке a справа или слева.
Продемонстрируем приемы вычисления пределов на следующих примерах:
а) ; б) с) ; д) ;
е) ; ж) .
Решения в указанном порядке имеют вид:
>> syms a x
>> limit(sin(a*x)/(a*x),x,0)
ans =
1
>> limit((1+3/x)^(2*x),x,inf)
ans =
exp(6)
>> limit(1/(1-x),x,1)
ans =
NaN
Здесь переменная NaN означает, что предела функции в точке x = 1 не существует.
>> limit(1/(1-x),x,1,'right')
ans =
-inf
Правосторонний предел функции в точке x = 1 существует и равен - ∞.
>> limit(1/(1-x),x,1,'left')
ans =
inf
Левосторонний предел функции в точке x=1 существует и равен +∞.
>> limit(x*(log(a+x)-log(x))/5,x,inf)
ans =
1/5*a
7.9 Вычисление производных – команда diff
Для вычисления в символьном виде производных от выражения S служит команда diff, записываемая в форме diff(S, x, n). Она возвращает символьное значение n-ой производной (производной степени n) от символьного выражения или массива символьных выражений S по переменной x, т. е.
Sn(x) = .
В формате diff(S, x) находится первая производная (n = 1 по умолчанию).
Найти первую и третью производные функцииy = x2sinx.
Решение:
>> syms x
>> y=x^2*sin(x);
>> diff(y,x)
ans =
2*x*sin(x)+x^2*cos(x)
>> diff(y,x,3)
ans =
6*cos(x)-6*x*sin(x)-x^2*cos(x)
Если S массив, то diff возвращает массив, элементами которого являются производные от исходных функций, образующих массив.
Например:
>> syms a x
>> Y=[a*log(x);x^a]
[ a*log(x)]
[ x^a]
>> diff(Y,x)
ans =
[ a/x]
[ x^a*a/x]
Если выражение S зависит от нескольких переменных, например, S=S(x,y), то ее частная производная (или S'x(x,y) ) по аргументу x есть производная этой функции по x при постоянном значении y.
В декартовой системе координат на плоскости xOy градиент функции S(x,y) есть вектор
grad S = .
Частными производными второго порядка функции S=S(x,y) называются частные производные от ее первых производных , , т. е.
= , = , = , = .
Частные производные второго порядка обозначаются также символами
S''xx(x,y), S''xy(x,y), S''yx(x,y), S''yy(x,y). Аналогично определяются и обозначаются частные производные более высоких порядков. Смешанные производные второго порядка, отличающиеся только порядком дифференцирования, равны между собой при условии их непрерывности: S''xy(x,y) = S''yx(x,y).
Рассмотрим пример. Для функции двух переменных
f(x,y) = arcsinxy
найти gradf(x;y) и вычислить его в точке (0;0). Проверить выполнение условия f''xy(x,y) = f''yx(x,y).
Решение:
>> syms x y
>> f=asin(x*y);
>> x1=diff(f,x)
x1 =
y/(1-x^2*y^2)^(1/2)
>> pretty(x1)
y
---------------
2 2 1/2
(1 - x y )
Т. е. = .
>> y1=diff(f,y)
y1 =
x/(1-x^2*y^2)^(1/2)
>> pretty(y1)
x
---------------
2 2 1/2
(1 - x y )
Т. е. = . Тогда grad(arcsinxy) = .
>> subs([x1 y1],[x y],[0 0])
ans =
0 0
Итак, grad(arcsinxy)│(0;0) = (0;0).
>> xy=diff(x1,y)
xy =
1/(1-x^2*y^2)^(1/2)+y^2/(1-x^2*y^2)^(3/2)*x^2
>> [m]=simple(xy)
m =
1/(1-x^2*y^2)^(3/2)
>> pretty(m)
1
---------------
2 2 3/2
(1 - x y )
Следовательно, = .
>> yx=diff(y1,x)
yx =
1/(1-x^2*y^2)^(1/2)+y^2/(1-x^2*y^2)^(3/2)*x^2
>> [m]=simple(yx)
m =
1/(1-x^2*y^2)^(3/2)
>> pretty(m)
1
---------------
2 2 3/2
(1 - x y )
Значит, = .
Окончательный результат:
grad(arcsinxy)│(0;0) = (0;0) и f''xy(x,y) = f''yx(x,y) = .