Лабораторная работа №3 Графика в matlab. Двумерная и трёхмерная графика. Интерполяции и аппроксимации данных


Использование математического пакета MATLAB для исследования функций



бет6/10
Дата24.05.2023
өлшемі1,85 Mb.
#96609
түріЛабораторная работа
1   2   3   4   5   6   7   8   9   10
Использование математического пакета MATLAB для исследования функций


Решение уравнений

Для решения уравнений вида f(x) = 0 (то есть для нахождения нулей функции) предназначена встроенная функция MATLAB fzero, которая находит приближённое значение корня уравнения по заданному начальному приближению.


Самый простой способ обращения к этой функции выглядит так:

х=fzero(fun,x0),


где х0 – это начальное приближение к корню; fun – функция, корень которой вычисляется; а х – полученное приближение значения корня.


Аргумент х0 может быть задан либо в виде скалярного значения, вблизи которого возможно наличие корня, либо в виде вектора из двух значений [m n] (причем n > m), элементы которого представляют собой интервал, на границах которого функция fun имеет разные знаки (что означает наличие хотя бы одного корня на этом промежутке).
Аргумент fun задается либо как указатель на функцию (например, @sin, @cos или @myfun), либо как формула с одной независимой переменной, заключённая в одинарные кавычки, либо как имя файл-функции (в одинарных кавычках), вычисляющей левую часть уравнения.
Рассмотрим случай задания аргумента fun в виде файл-функции.
В файл-функциях описываются функции, определяемые пользователем. Такие функции используются при решении многих задач, основанных на численных методах. Файл-функции представляют собой разновидность m-файлов. Вообще, в MATLAB существуют два типа m-файлов: файл-программы и файл-функции.
Допустим, требуется найти нули функции f(x) = х2sin(x) Сначала нужно создать файл функцию. Для этого выполните следующие действия:
1. В главном окне MATLAB выберите команду File  New  m-file (ФайлНовый m-файл), чтобы вызвать редактор m-файлов системы MATLAB.
2. Наберите в редакторе m-файлов две строки кода, изображённые на рис. 3.22.



Рис. 3.22. Окно редактора кода с текстом файл-функции


Первая строка – это заголовок функции, где задаётся имя функции (в нашем примере myf) и список входных и выходных параметров (в данном случае имеется один входной (х) и один выходной (f) параметр). Во второй строке задаётся тело функции – выражение, вычисляющее значение функции. Обратите внимание, что при вводе функции использованы операторы поэлементного возведения в степень и поэлементного умножения, чтобы функцию можно было использовать и при работе с массивами. Кроме того, во избежание вывода на экран лишней информации, в конце второй строки кода поставлена точка с запятой.


3. Сохраните файл в текущем рабочем каталоге. Для этого в окне редактора m-файлов выберите команду FileSave as (ФайлСохранить как). В раскрывшемся диалоговом окне не изменяйте содержимое полей File name (Имя файла) Files of type (Тип файла), в которых автоматически отобразятся требуемые имя и тип файл-функции. Имя m-файла обязательно должно совпадать с именем функции (в данном случае для функции выбрано имя myf).
Перед тем как искать нули функции с помощью функции fzero, построим график заданной функции.
Файл-функции можно применять в качестве аргументов других функций, поэтому для построения графика вместо функции plot воспользуемся функцией fplot, работать с которой намного проще. В первом аргументе функции fplot достаточно задать имя файл-функции, график которой требуется построить, а во втором – вектор-строку из двух элементов, определяющих границы отрезка, на котором нужно построить график.
Чтобы построить график нашей функции на отрезке [0, 10], ввёдем следующие команды (командой grid on укажем программе отобразить сетку на графике):

» fplot(‘myf’,[0 10]); grid on.


Преимуществом использования функции fplot для построения графиков является то, что она автоматически подбирает шаг аргумента, что позволяет более точно описать поведение функции.


Как следует из графика (рис. 3.23), на отрезке [0, 10] функция имеет четыре корня. Один из корней равен нулю, а три других располагаются около значений х = 3, х = 6 и x = 9.



Рис. 3.23. График функции f(x) = х2sin x


С помощью функции fzero найдём более точные значения этих корней:

>> x1=fzero('myf',3)


x1 =
3.1416
>> x2=fzero('myf',6)
x2 =
6.2832
>> x3=fzero('myf',9)
x3 =
9.4248

Вместо имени файл-функции в первом аргументе функции fzero можно явно задать исследуемую функцию, введя соответствующее ей выражение в одинарных кавычках. Результат вычислений будет таким же:


» х1= fzero(‘x.^2.*sin(x)’,3)


х =
3.1416.

Если функцию fzero вызвать с двумя выходными параметрами, то можно получить значение функции в найденной точке:


» [x1,f]=fzero(‘myf’,3)


x1=
3.1416
f=
1.2087e-015.

Как видно по значению функции, точность вычисления корня с помощью функции fzero довольно высока.


Например, первым аргументом функции fzero может быть и встроенная функция системы MATLAB:

» х= fzero(‘sin’,3)


x=
3.1416.

Для решения систем нелинейных уравнений вида f(х) = 0 (где х – вектор или матрица неизвестных, а f – функция, значением которой является вектор или матрица) в MATLAB предназначена функция fsolve. Данная функция относится к функциям пакета Toolbox Optimization.






Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет