Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Выполним отделение корней графическим методом.




1 способ.

Корни отделяются просто, если построен график функции . Точки пересечения графика с осью дают значение корня, и по графику легко определить интервал , в котором находится только один корень.

-

 

2 способ.

Уравнение имеет вид . Все члены уравнения разбивают на две группы, одну из них записывают в левой части уравнения, другую – в правой, т.е. записывают уравнение в виде

После этого строят графики функций и . Абсциссы точек пересечения графиков этих двух функций и являются корнями данного уравнения. По графику и определяют интервал , в котором заключен корень.

Уточнение корней методом проб (метод половинного деления)

Итак, выполнен первый этап – отделение корня.

Второй этап заключается в уточнении корней, в вычислении корней с заданной точностью.

Пусть дано уравнение , где - непрерывная функция. Требуется найти корень этого уравнения с точностью до величин , где малое, нами заданное число.

 

Будем считать, что выполнено отделение корня и известно, что корень находится в интервале . Числа и можно рассматривать как приближенные значения корня, - значение корня с недостатком, а - с избытком. Погрешность этих вычислений не превышает величины . Если , то необходимая точность вычислений достигнута, и за приближенное значение корня можно принять либо , либо . Если же , то требуемая точность не достигнута и необходимо сузить интервал, в котором находится корень . Для этого на отрезке выберем точку , которая делит отрезок пополам =(a+b)/2 (в этом случае метод проб называют методом половинного интервала). Если , то - точный корень уравнения . Если же , то из двух полученных отрезков и выберем тот, на концах которого функция принимает значения противоположных знаков. Затем этот отрезок также делим пополам и проводим те же рассуждения. Процесс деления отрезка пополам продолжаем до тех пор, пока на каком – то этапе либо середина отрезка окажется корнем уравнения (случай, теоретически возможный, но чрезвычайно редко встречающийся на практике), либо отрезок, длина которого меньше заданной малой величины .

Задание.

Задан полином третьей степени

 

,

 

где

Требуется вычислить корень полинома на отрезке

(требуется составить программу в системе MATLAB (M-языке) методом половинного деления или методом Ньютона (по указанию преподавателя)).

В критериях окончания счета на ЭВМ для обоих методов принять

eps=0.001, xk=3.

Пример

Найти корни полинома на отрезке ,

Ручной счет

 

Вычисление корня методом половинного деления

 

K а b c=(a+b)/2 f(a) f (b) f(c) b-a
    3.0 1.5 -2.92 9.79 0.51 3.0
    1.5 0.75 -2.92 0.51 -0.67 1.5
  0.75 1.5 1.125 -0.67 0.51 -0.11 0.75
  1.125 1.5 1.3125 -0.11 0.51 0.173 0.375
  1.125 1.3125 1.218 -0.11 0.173 0.0267 0.187

 

 

Решение нелинейного уравнения методом половинного деления.

 

Для выполнения создается М-файл. Ниже приведен текст М-файла.

 

%Решение нелинейного уравнения методом половинного деления

function Lab_3_6_1

a=input('Введите a=');

b=input('Введите b=');

eps=input('Введите eps=');

kmax=100;

for k=1:kmax

c=(a+b)/2;

y=f(c);

if(f(a)*y>0)

a=c;

else

b=c;

end

if((b-a)<=eps)|(y==0)|(k>=kmax)

x=c;

break;

end

end

fprintf('\n Корень уравнения x=%10.3f ',x);

fprintf('\n f(x)=%12.4g',y);

fprintf('\n Количество итерации k=%3d',k);

end

 

function y=f(x)

y=x^3-3.2*x^2+4.84*x-2.928;

end

 

Результаты расчета в командном окне при a=0, b=0, eps=0.001:

 

Корень уравнения x= 1.200

 

f(x)= 0.0006505

 

Количество итерации k= 12

 

 

Решение нелинейного уравнения методом Ньютона.

Пусть корень уравнения отделен на отрезке . Причем

, непрерывны и сохраняют постоянные знаки на всем отрезке .

Геометрический смысл метода Ньютона состоит в том, что дуга кривой заменяется касательной к этой кривой.

Пусть , , , . В этом случае касательную проводим в точке B.

Уравнение касательной в точке B имеет вид

 

 

при , получим

 

Теперь корень уравнения находится на отрезке

Продолжая процесс, найдем

 

Ручной счет

 

k
  3.0 9.79 12.64 2.22 0.78
  2.22 3.01 5.45 1.67 0.55
  1.67 0.89 2.52 1.32 0.35
  1.32 0.18 1.62 1.20 0.12
  1.2       Критерий окончания счета

 

Напишем программу вычисления отделенного корня с точностью до величин порядка 0,001.

 

Для выполнения создается М-файл. Ниже приведен текст М-файла.

 

Решение нелинейного уравнения методом Ньютона.

 

function Lab_3_6_2

xk=input('Введите xk=');

eps=input('Введите eps=');

kmax=100;

for k=1:kmax

y=f(xk);

y1=f1(xk);

xk1=xk-y/y1;

if(abs(xk1-xk)<eps)|(k>kmax)

break;

end

xk=xk1;

end

y2=f(xk1);

fprintf('\n Корень уравнения x=%10.3f',xk1);

fprintf('\n f(x)=%12.4g',y);

fprintf('\n Количество итерации k=%3d',k);

end

 

function y=f(x)

y=x^3-3.2*x^2+4.84*x-2.928;

end

 

function y1=f1(x)

y1=3*x^2-6.4*x+4.84;

end

 

 

Результаты расчета в командном окне при xk=3, eps=0.001:

 

Корень уравнения x= 1.200

 

f(x)= 0.0009755

 

Количество итерации k= 3

 

В системе MATLAB имеется большое количество функций для работы с полиномами, с использованием которых можно вычислить значение полинома, найти корни полинома, выполнить операции умножения и деления полиномов, произвести дифференцирование и интегрирование полиномов.

 

Как известно, полином (или многочлен) — это выражение вида

 

Pn(x)=anxn+an-1xn-1+...+a2x2+a1x+a0

 

где a0, a1, a2, …, an-1, an — постоянные коэффициенты.

 

В MATLAB полином задаётся и хранится в виде вектора, элементами которого являются коэффициенты полинома

 

 

Так, например, для задания полинома

следует ввести команду

 

>> p=[5 -4 2 -1 8]

p =

5 -4 2 -1 8

 





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


Дата добавления: 2017-03-11; Мы поможем в написании ваших работ!; просмотров: 996 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2220 - | 2164 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.