![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Расчет в пакете 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 – корни уравнения В арианты лабораторных работ
|