Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Метод Ньютона с использованием аналитического представления функции




Метод половинного деления

e = 1e-04; %Устанавливаем допустимую погрешность

dx = 0.1; %шаг х при поиске интервала, содержащего корень

a = -1;

b = a;

while fun(a)*fun(b) > 0 %Определяем интервал, на котором

b = b + dx; % функция F(x) меняет знак

end;

a = b - dx;

x = (a+b)/2; % Первое приближение корня -

% середина найденного интервала

I = 1; % Счетчик итераций устанавливаем в "1"

X=[x]; % Формирование массивов для графиков

Y=[fun(x)];

while abs(fun(x)) > e

if fun(x) * fun(a) < 0 %Если функция имеет разные знаки

%на концах отрезка,

b = x; %сдвигаем правую границу

else

a = x; % иначе сдвигаем левую границу

end;

x = (a+b)/2; %и вычисляем следующее приближение

I = I + 1; %увеличиваем количество итераций на 1

X = [X x];

Y = [Y fun(x)];

end;

Str = ['Значение корня: ' num2str(x) '; Количество итераций: ' num2str(I)];

disp(Str)

figure %Построение двух графиков в одном графическом окне

subplot(2, 1, 1);

plot(X, '-r'), grid on

subplot(2, 1, 2);

plot(Y, '-b'), grid on

x0=0.5;

x=fzero('fun', x0) % проверка

 

syms x; % cимвольная (аналитическая) переменная

% определяется аналитическое описание функции F(x)

f = (1 - x)^(1/2) - tan(x);

f1 = diff(f); % определяется производная функции F'(x)

ezplot(f), grid on % строится график функции для визуального

% определения первого приближения корня.

x0 = input('Задайте значение x0: ') % вводом с клавиатуры

% задается первое приближение корня

err = 1e-05; % задается допустимая погрешность вычисления корня

delta = x0; % текущая погрешность вначале равна допустимой погрешности

X = [ x0 ]; % формируется вектор последовательных приближений

% корня к его конечному значению

n = 1; % номер первого приближения

N = [ n ]; % формируется вектор номеров приближений корня

 

% организуется цикл определения последовательных приближений корня

% методом Ньютона

while abs(delta) > err % повторять вычисления пока текущая погрешность

% больше допустимой

x1 = x0 - subs(f, x, x0) / subs(f1, x, x0); % Вычисляется следующее

% приближение корня.

delta = x1 - x0; % вычисляется текущая погрешность вычислений

x0 = x1; % следующее приближение становится текущим

X = [X x1]; % в вектор Х добавляется следующее приближение

n = n+1; % номер следующего приближения

N = [N n]; % в вектор N добавляется номер следующего приближения

end;

str_out = 'x = '; % формируется строка вывода результатов вычисления корня

res = num2str(x1);

str_out = strcat(str_out, ' ', res);

disp(str_out); % строка вывода отображается в командном окне

plot(N, X, 'Linewidth', 3, 'Color', [0 1 0]), grid on % строится график

% приближения корня

Задание №2.




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 248; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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