Практическое задание: Чисельні методи розв’язання нелінійних рівнянь на ПК

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Чисельні методи розв’язання нелінійних рівнянь на ПК













Чисельні методи розв’язання нелінійних рівнянь на ПК



Мета роботи: ознайомитись з методикою і вивчити різні алгоритми розв’язування нелінійних рівнянь на ЕОМ.

Завдання: Методами поділу відрізка пополам, методом хорд, методом дотичних та методом ітерацій знайти всі корені нелінійного рівняння. Точність знаходження коренів вважати рівною 0,0000001.

Методом поділу відрізка пополам:

clear, clc

f = @(x) atan (2*x) - 0.2*((x-1)^4)+sin(x);% функция

exp = 0.0000001;% точность

a = 2;% нижний предел

b = 4;% верхний предел

fplot (f, [a, b]), hold on% рисуем функцию

=f(a);=f(b);=(a+b)/2;=1;=f(p);abs(fp)>expfa*fp<0=p;=p;;=(a+b)/2;=n+1;=f(a);=f(p);;= p;% корень(x0, f(x0), 'or')on(['x_0=', num2str(x0)])

Методом хорд:

clear, clc = @(x) atan (2*x) - 0.2*((x-1)^4)+sin(x);=2;=4;=0.0001;(abs(a-b)>e)=a - (f(a)*(b-a))/(f(b) - f(a));f(c)*f(b)>0=c;=c;;(['Ответ x=' num2str (c, 3)]);0 = с;% корень

plot (x0, f(x0), 'or')

grid on(['x_0=', num2str(x0)])

Методом дотичних:

clear, clc;

f = @(x) atan (2*x) - 0.2*((x-1)^4)+sin(x);= @(x) (2/(4*(x^2)+1)) - 0.8*((x-1)^3)+cos(x);


a=0; b=1; N=0;=f(a); y2=f(b);=df(a); z2=df(b);=4;

ezplot (f, [a, b]), hold on

1=((z2*b - z1*a) - (y2-y1))/(z2-z1);=f(s); z=df(s);= N + 2;z==0 | b-a < 2*e=s;;z>0=s; y2=y; z2=z;=s; y1=y; z1=z;

if z~=0=(a+b)/2;=f(x);

fprintf ('Метод касательных \n \n');

fprintf ('x =%.5f \n', x);('y =%.5f \n \n', y);

fprintf ('Количество итераций:%i \n', N);

ezplot (f, [-0.5 1]), hold on(x, y, 'or'), grid on

grid on

Метод ітерацій:

clear, clc = inline ('atan(2*x) - 0.2*((x-1)^4)+sin(x)');%ф.inline чтобы задать строку = -10:0.01:10;

y = f(x);

plot (x, y); grid

% Метод простых итераций= 1e-4;= 1;

% значение производной в начальной точке:

L0 = 2e-6./(f (x0+1e-6) - f (x0-1e-6));= 0;= x0;= 100;abs(razn)>eps= x - L0*f(x);=xn-x;=xn;=iter+1;on(x, f(x), 'or'), grid on

Обчислимо вираз: =L0


де h = 10-6, отримаємо:

Комбінований:

clear, clc

syms x

f = x^3+6*x-5;

a=0.5;=1;=0.000001;=0;=(a+b)/2;=diff(f);=diff(f1);(abs(b-a)>eps)((subs (f1, x, c)*subs (f2, x, c))>=0)=a - (b-a)*subs (f, x, a)/(subs (f, x, b) - subs (f, x, a));=b-subs (f, x, b)/subs (f1, x, b);=a-subs (f, x, a)/subs (f1, x, a);=b - (b-a)*subs (f, x, b)/(subs (f, x, b) - subs (f, x, a));=i+1;('b=% f \n', double(b))(f, [0.5 1]), hold on(b, subs (f, x, b), 'or')

grid on


нелінійний рівняння хорда ітерація

Висновок: Я навчилась розв’язувати нелінійні рівняння на ПК різними чисельними методами: половинного ділення, хорд, дотичних(Ньютона), ітерацій (послідовних наближень), комбінаційний (хорд та дотичних).

Источник: https://www.bibliofond.ru/detail.aspx?id=878813