
- •Математические методы моделирования физических процессов
- •Введение
- •Лабораторная работа № 1 численное решение обыкновенных дифференциальных уравнений первого порядка
- •Порядок выполнения работы
- •Лабораторная работа № 2 численное решение ду высших порядков или систем оду
- •Порядок выполнения работы
- •Лабораторная работа № 3 численное решение краевых задач
- •Порядок выполнения работы
- •Лабораторная работа № 4 численное решение дифференциальныхных уравнений в частных производных
- •Порядок выполнения работы
- •Лабораторная работа № 5 численное решение систем линейных алгебраических уравнений
- •Порядок выполнения работы
- •Лабораторная работа № 6 численное решение нелинейных уравнений и их систем
- •Порядок выполнения работы
- •Лабораторная работа № 7 аппроксимация данных методом наименьших квадратов
- •Порядок выполнения работы
- •Лабораторная работа № 8 решение задач одномерной и многомерной оптимизации
- •Порядок выполнения работы
- •Библиографический список
- •Приложения
- •Первые навыки работы в matlab
- •Численное решение оду и их систем
- •Численное решение краевых (граничных) задач
- •Аналитическое решение линейных сиситем алгебраических уравнений
- •Численное решение линейных или нелинейных систем алгебраических уравнений
- •Аппроксимация данных
- •Приближение данных полиномом
- •Интерполяция сплайнами
- •Аппроксимация данных при помощи регрессии
- •Одномерная и многомерная оптимизация
- •Основные математические функции в matlab
Одномерная и многомерная оптимизация
В MATLAB имеются функции для поиска минимума функции одной или нескольких вещественных переменных:
Для функции одной переменной используется функция fminbnd:
fminbnd(hFunction, x0, x1)
[xm,ym, flag,output]=fminbnd(f1,x0,x1)
где hFunction – дескриптор функции, для которой находится минимум, а x0 и x1 задают границы отрезка поиска, xm, ym значения минимума аргумента и функции, output – позволяет получить полную информацию о процессе нахождения минимума, в частности о количестве итераций.
Найдем
при помощи fminbnd
минимум
функции
,
» % задаем функцию
» f1=inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6','x');
f1 = Inline function:
f1(x) = 1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6
где ./ – оператор поэлементное деления.
» % задаем на области исследования мелкую сетку для х
» xi=[0:0.01:3];
» % вычисляем функцию на этой сетке
» yi=feval(f1,xi);
» % строим график функции
» plot(xi,yi,'k:');
» % определяем локальный минимум функции на отрезке [0.5,1]
» xmin1=fminbnd(f1,0.5,1);
xmin1 = 0.6370
» % или с одновременным нахождением минимума и значения функции
» [xm,ym]=fminbnd(f1,0.5,1);
xm = 0.6370
ym = 11.2528
Для функции многих переменных используется функция fminsearch:
fminsearch(hFunction, x0)
[xm,ym,flag,output]=fminsearch(hFunction, x0)
где hFunction – дескриптор функции нескольких переменных, для которой находится минимум, а x0 – это вектор аргументов функции, с которого начинается поиск минимума.
Найдем
при помощи fminsearch
минимум функции
» % задаем функцию
» f2=inline('x(1).^2+x(2).^2','x');
f2 =
Inline function:
f2(x) = x(1).^2+x(2).^2
» % определяем минимум, задавая исходную точку x=1, y=1
» xmin=fminsearch(f2,[1 1]);
xmin =
1.0e-004 * % погрешность
-0.2102 0.2548 % искомое решение
Приложение 7
Основные математические функции в matlab
№ п/п |
Математическая функция |
Функция в MATLAB |
№ п/п |
Математическая функция |
Функция в MATLAB |
1 |
sin(x) |
sin(x) |
10 |
arcsin(x) |
asin(x) |
2 |
cos(x) |
cos(x) |
11 |
arccos(x) |
acos(x) |
3 |
tg(x) |
tan(x) |
12 |
arctg(x) |
atan(x) |
4 |
|
exp(x) |
13 |
sinh(x) |
sinh(x) |
5 |
ln(x) |
log(x) |
14 |
cosh(x) |
cosh(x) |
6 |
lg(x) |
log10(x) |
15 |
tgh(x) |
tgh(x) |
7 |
|
sqrt(x) |
16 |
arcsinh(x) |
asinh(x) |
8 |
|
x^2 |
17 |
arccosh(x) |
acosh(x) |
9 |
|
abs(x) |
18 |
arctgh(x) |
atanh(x) |
Редактор Т.А. Жирнова
ИД № 06039 от 12.10.01
Свод. темплан 2006 г.
Подписано в печать 25.07.06. Формат 60х84 1/16. Бумага офсетная.
Отпечатано на дупликаторе. Усл. печ. л. 5,0. Уч.- изд. л. 5,0.
Тираж Заказ .
Издательство ОмГТУ. 644050, Омск, пр. Мира, 11.
Типография ОмГТУ.