Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Нахождение нулей функций

Решение типовых задач алгебры и анализа

Решение систем линейных уравнений в системе MATLAB для решения систем линейных уравнений предусмот­рены знаки операций / и \. Чтобы решить систему линейных уравнений вида

A⋅ y = B,

где A – заданная квадратная матрица размером NxN, a B – заданный вектор – столбец длины N, достаточно применить операцию \ и вычислить выражение A\ B.

Операция \ называется левым делением матриц и, будучи примененная к матрицам A и B в виде A\ B, примерно эквивалентна вычислению выраже­ния inv(A)*B. Здесь под inv(A) понимается вычисление матрицы, обратной к матрице A.

Операцию / называют правым делением матрицы. Выражение A/ B при­мерно соответствует вычислению выражения B*inv(A). Значит, эта операция позволяет решать системы линейных уравнений вида y⋅A=B.

 

Нахождение нулей функций

Решение уравнения F(x)=0, или нахождение нулей функции, осуществ­ляется с помощью функции: fzero(name, x0).

В качестве первого аргумента ей передается имя функции, задающей ис­ходное уравнение, вторым аргументом служит начальное приближение к кор­ню. Возвращаемым значением функции fzero является нуль функции name в окрестности точки x0. Определим, в качестве примера, нули функции cos(x) на отрезке от 0 до pi. В качестве начального приближения примем x0=1.


» x=fzero('cos', 1)

x = 1.5708

Если требуется найти корень функции, отличной от стандартной (встроен­ной в систему MATLAB) и тем самым не имеющей в рамках системы MATLAB фиксированного имени, то нужно приписать некоторое имя выражению, вычис­ляющему функцию.

Пусть, например, требуется найти корни уравнения cos(x) = x, что экви­валентно нахождению нулей функции, вычисляемой по формуле y = cos(x)-x, не имеющей в рамках системы MATLAB фиксированного имени. В этом случае нужно в любом простейшем текстовом редакторе (можно в окне редактора-отладчика MATLAB) набрать две строки следующего кода: function y=MyFunction1(x) y=cos(x)-x;

и запомнить их в файле MyFunction1.m, который нужно разместить в текущем каталоге системы MATLAB (узнать его можно командой cd). После этого мож­но воспользоваться функцией fzero:

» x=fzero('MyFunction1',pi/2) x = 0.7391

Если найдено абсолютно точное значение корня, то значение функции в этой точке равно нулю. Таким образом, величина функции в приближенно най­денном нуле косвенно характеризует погрешность результата. Чтобы управляв погрешностью, нужно осуществлять вызов функции fzero с тремя аргументами: fzero(name, x0, tol),

где параметр tol задает требуемую величину погрешности (ошибки). Повторив предыдущие вычисления, потребовав большей точности расчетов (то есть меньшей погрешности): »format long х = fzero('MyFunction1',pi/2, le-8)

x =0.73908513263090 MyFunction1(x)

ans = 9.778322596076805e-010,

откуда видно, что действительно достигнута большая точность нахождения ну­ля функции.

Еще раз подчеркнем, что функция fzero находит нули только вещественно-значных функций одной вещественной переменной. Однако часто бывает необ­ходимо найти комплексные корни вещественнозначных функций, особенно в случае многочленов. Для этой цели в системе MATLAB существует специаль­ная функция roots, которой в качестве аргумента передается массив коэффици­ентов многочлена. Например, для многочлена х4 – Зх3 + Зх2 - Зх + 2, имеющего два вещественных (1 и 2) и два комплексных корня (i и -i), нужно сначала сформировать массив его коэффициентов (расположив по порядку убывания степени х):

Coef = [ 1, -3, 3, -3, 2 ], после чего вызвать функцию

roots: г = roots(Coef)

г = 2.00000000000000

0.00000000000000 +1.OОOOOOOOOOOOOOi 0.00000000000000 -1.OOOOOOOOOOOOOOi 1.00000000000000

В задаче о нахождении нулей функции сложным моментом является нахо­ждение начального приближения к нулю функции, а также априорная оценка их количества. Поэтому важно параллельно с применением функций типа roots или fzero визуализировать поведение искомых функций на том или ином отрез­ке значений аргумента (построить график функции).




Дата добавления: 2015-09-12; просмотров: 31 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Порядок выполнения лабораторной работы 1.| Вычисление определенных интегралов

lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав