Описание функции, использующей глобальную переменную

function y=fglobal(x)

global p

y=x-p.*cos(x);

Пример вызова функции fglobal:

global p

i=1;

for p=0.3:0.1:0.6

z(i)=root(0.1,1,0.0001,@fglobal); i=i+1;

end

>> z

z =

0.2877 0.3725 0.4502 0.5205

Класс Function Functions

Функции этого класса работают с нелинейными функциями скалярного аргумента как с функциями-параметрами.

Класс предназначен для решения следующих задач:

·        нахождение нулей функций (решение уравнений);

·        оптимизация;

·        вычисление определенных интегралов;

·        обыкновенные дифференциальные уравнения.

• fminsearch(манипулятор_функции, начальное_приближение) вычисляет точку локального минимума функции;

• fmaxsearch(манипулятор_функции, начальное_приближение) вычисляет точку локального максимума функции;

• fzero(манипулятор_функции, начальное_приближение) вычисляет точку локальный нуль функции;

• quad(манипулятор_функции, нижняя_граница, верхняя_граница) вычисляет определенный интеграл по методу Симпсона.

 

Некоторые стандартные функции обработки векторов и матриц в среде Matlab: length, size, sum, min, max, mean, prod, diag, find, tril, triu, sort, sortrows, randperm, issorted, ind2sub, sub2ind, reshape.

Length- размер вектора

Size- размерность матрицы

sum – вычисляет суммы элементов столбцов матрицы, возвращает вектор-строку сумм столбцов исходной матрицы;

min – вычисляет минимальные значения среди элементов столбцов матрицы, возвращает вектор-строку минимальных значений столбцов исходной матрицы;

max – вычисляет максимальные значения среди элементов столбцов матрицы, возвращает вектор-строку максимальных значений столбцов исходной матрицы;

У этих функций может может быть еще один выходной параметр, содержащий индексы минимальных элементов столцов:

[min_stolb, ind_min]=min(A);

[max_stolb, ind_max]=max(A);

 

mean – вычисляет средние значения элементов столбцов матрицы, возвращает вектор-строку средних значений столбцов исходной матрицы;

prod – вычисляет произведения элементов столбцов матрицы, возвращает вектор-строку средних значений столбцов исходной матрицы.

Функции sum, min, max, prod, mean могут иметь второй целочисленный аргумент – номер индекса, по которому осуществляется соответствующее действие (dim – dimension),, по которому осуществляется соответствующее действие (dim – dimension), например:
 sum(A, dim).
Если dim=1, то возвращается вектор-строка сумм столбцов; если dim=2, то возвращается вектор-столбец сумм строк.

diag – возвращает столбец диагональных элементов матрицы.

find(A) – возвращает номера ненулевых элементов матрицы, элементы нумеруются по столбцам.

triu(X) возвращает нижнюю треугольную часть матрицы X (u pper tri angular part of X).

triu(X,k) возвращает элементы на и выше k-й диагонали матрицы Х, т. е. tril(X) соответствует k=0/

tril(X) возвращает нижнюю треугольную часть матрицы X (l ower tri angular part of X.

tril(X,k) возвращает элементы на и ниже k-й диагонали матрицы Х, т. е. tril(X) соответствует k=0/

issorted(a) — применяется к вектору a; возвращает значение истина (1), если a упорядочен по неубыванию, иначе ложь (0).

A(p,:) — p-я строка матрицы А;

A(:,q) — q-й столбец матрицы А.

issorted(A(:,q) — возвращает такой же результат, как и upor_stolb(A,q).

issorted(A,'rows') — возвращает значение истина (1), если строки матрицы А упорядочены по первым своим элементам (по первому столбцу).

Получение индексов (subscripts) элемента матрицы по номеру (linear index) соответствующего одномерного массива – функция sub2ind

[I,J]=ind2sub(size(A), Ind)

Ind = sub2ind(size(A),I,J)

A(:) – матрица А вытягивается в вектор «по столбцам».

Функция reshape(A, n, m) возвращает матрицу размером n х m, сформированный из элементов массива A путем их последовательной выборки по столбцам. Если число элементов массива A не равно произведению n х m, выводится сообщение об ошибке.

В частности, reshape можно использовать для формирования из вектора матрицы.  

sort(a) — возвращает вектор, полученный из вектора a упорядочиванием по возрастанию.

sort(a, 'ascend') — эквивалентно sort(a).

sort(a, 'descend') — возвращает вектор, полученный из вектора a упорядочиванием по убыванию.

sort(A)  возвращает матрицу, полученную из матрицы А упорядочиванием каждого ее столбца по возрастанию. Допустим последний в списке аргумент – строка 'ascend'   или 'descend'. Допустим второй аргумент:
                                                          sort(A,dim)
dim=1 – упорядочиваются столбцы матрицы,
dim=2 – упорядочиваются строки матрицы.

 [B,IX] = sort(любой набор аргументов с предыдущих слайдов)

IX — массив номеров элементов в исходном массиве (соответствующем столбце исходной матрицы). 

Функция sortrows возвращает матрицу, строки которой упорядочены по возрастанию элементов столбца (строки не изменяются, но переставляются).

sortrows (A)  по возрастанию элементов первого столбца.

sortrows(A,column)  по возрастанию элементов столбца с номером column.

[B,index] = sortrows(A) — массив index содержат исходные номера элементов столбца, по которому происходит упорядочение.      

 






Выбор строки, столбца, произвольной части матрицы в среде Matlab.

33. Возможности решения систем линейных алгебраических уравнений в среде Matlab.

Решатели \, /.

           Для решения систем линейных уравнений рекомендуется использовать именно их, а не A-1 или inv(A):

1) X = A\B- правое деление, для систем AX = B;

           X = B/A- левое деление, для систем XA =B. В этом случае X и B не векторы-столбцы, а векторы-строки. Для решения данным способом необходимо преобразовать векторы-столбцы в векторы-строки.
Метод решения уравнения выбирается в зависимости от вида матрицы А. Если матрица плотная (мало нулевых элементов), то используется метод Гаусса. Для неплотных матриц применяются другие методы.

2) В может не только вектором, но и матрицей. Т.е. можно вычислить несколько решений Х (одно для каждого столбца В в случае \ или для каждой строки В в случае /).

3) Матрица А необязательно квадратная, т. е. есть возможность решать переопределенные и недоопределенные системы.

Специальные методы решения систем линейных уравнений, для неплотных матриц


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: