Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Преобразование уравнения к итерационному виду

Уравнение F (x) = 0 преобразуется к виду, пригодному для итерационного процесса, следующим преобразованием

,

где m - отличная от нуля константа.

В этом случае

. (2.15)

Функция f (x) должна удовлетворять условиям теоремы 2.2. Дифференцируя (2.15), получим

. (2.16)

Для выполнения условия 3 теоремы 2.2, достаточно подобрать m, так чтобы для всех х Î

. (2.17)

Пример 2.2. Решение уравнения методом простой итерации в пакете MАTLAB

 

1. Создание файла Func.m, содержащего описание функции

 

% листинг файла Func.m

function z=Func(x)

z=x.^4-11*x.^3+x.^2+x+0.1;

 

2. Создание файла Func1.m, содержащего описание функции

 

% листинг файла Func1.m

function z=Func1(x,m,f)

z=x-m*feval(f,x);

3. Создание файла Func2, содержащего описание функции f 2 (2.16)

 

% листинг файла Func2.m

function z=Func2(x,m,f)

dx=10^-7;

x1=x+dx;

tmp1=x-m*feval(f,x);

tmp2=x1-m*feval(f,x1);

z=abs((tmp2-tmp1)/dx);

 

4. Построение графиков функций f 1, f 2 (рис. 2.6)

 

>> dx=10^-3;

>> x1=-0.1;x2=0.8;

>> x=x1:dx:x2;

>> m=-0.05;

>> plot(x,Func1(x,m,'Func'));

>> hold on

>> plot(x,Func2(x,m,'Func'),'--');

>> grid on

Рис. 2.6

 

(Из рис. 2.6 видно, что условия о достаточном условии сходимости итерационного процесса выполняются на интервале [0.21;0.8].)

5. Создание файла My_Iter.m, описание функции, возвращающей значение производной на каждом шаге итерационного процесса

 

% листинг функции My_Iter.m

function z=My_Iter(f,x0,eps,q,m)

x(1)=x0;

i=1;

while abs(x(i)-Func1(x(i),m,f))>q/(1-q)*eps

x(i+1)=Func1(x(i),m,f);

i=i+1;

end;

z=x;

 

6. Задание параметров итерационного процесса

 

>> q=0.01;

>> eps=10^-5;

 

7. Вычисление значений корня уравнения на каждом шаге итерационного процесса

 

>> z=My_Iter('Func',x0,eps,q,m)

 

8. Визуализация итерационного процесса (рис. 2.8)

 

>> plot(z,'-o');

Рис. 2.9

9. Вывод точного значения корня

 

>> Ni=length(z);

>> z(Ni)

ans =

0.3942

 

10. Вывод значения функции

 

>> Func(z(Ni))

ans =

-1.8185e-006

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

x = fzero(fun,x0)

x = fzero(fun,x0,options)

x = fzero(fun,x0,options,P1,P2,...)

[x,fval] = fzero(...)

[x,fval,exitflag] = fzero(...)

[x,fval,exitflag,output] = fzero(...)

 

Здесь

fun - строковая переменная, содержащая имя файла;

x0 - начальное приближение или интервал поиска решения;

options - параметры, задающие точность и способ представления результатов вычислений;

P1, P2, … - дополнительные аргументы, передаваемые в функцию fun (F=feval(FUN,X,P1,P2,...));

fval - переменная, в которую функция fzero() возвращает значение корня уравнения f (x)=0;

exitflag - переменная, знак которой свидетельствует о наличии корня на данном интервале (exitflag =1 - корень существует);

output - переменная, в которую функция fzero() возвращает название метода, использованного для нахождения корня уравнения.

 

Пример 2.3. Решение уравнения с использованием функции fzero().

 

>> x=fzero('Func',0.8)

x =

<== предыдущая лекция | следующая лекция ==>
Метод простой итерации | Лекция № 3. Методы решения систем линейных
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 974; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.