Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Расчет в пакете MATLAB



Функция отделения и уточнения корней

function RTS=dixotomia(pol,eps);

% метод половинного деления для решения алгебраических уравнений

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

% формирует вектор действительных корней уравнения

% левая граница интервала, содержащего все корни уравнения

A0=-1-max(abs(pol))/(abs(pol(1)));

disp(A0)

% правая граница интервала, содержащего все корни уравнения

A1=-A0;

disp(A1)

d=A0;

d1=d;

i=1;

while d<=A1 % цикл отделения действительных корней (шаг 0.1)

d=d+0.1;

if polyval(pol,d)*polyval(pol,d1)<0

K(i)=d1;K(i+1)=d;

i=i+2;

end;

d1=d;

end;

disp(K);

% количество действительных корней

nrts=i-1;

i=1; j=1;

while i<nrts % цикл уточнения действительных корней

X=K(i); X1=K(i+1); x=X; x1=X1;

% метод половинного деления

while abs(polyval(pol,x)-polyval(pol,x1))>eps

x1=X; x=(X+X1)/2;

if polyval(pol,x)*polyval(pol,x1)>0

X=(X+X1)/2;

else

X1=(X+X1)/2;

end;

end;

% вектор, содержащий действительные корни уравнения

RTS(j)=x1; i=i+2; j=j+1;

End

RTS;

End

Результаты вычислений:

>> dixotomia([1 3 -12],0.00001) – вызов функции; полином задается значениями коэффициентов

-13 – левая граница интервала, содержащего корни уравнения

13 – правая граница интервала, содержащего корни уравнения

-5.3000 -5.2000 2.2000 2.3000 – интервалы изоляции корней

RTS =

-5.2749 2.2749 – корни уравнения

В арианты лабораторных работ





Дата публикования: 2015-04-07; Прочитано: 218 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...