Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №3 / Лаба3_основа

.doc
Скачиваний:
10
Добавлен:
01.05.2014
Размер:
59.39 Кб
Скачать

Цель работы: исследование решений одного уравнения с помощью основного и модифицированного методов и системы из двух уравнений в пакете MatLab.

Решение одного уравнения (основной вариант)

Задание функции( f2.m )

function y = f2(x);

y = x - acos(x.^2);

Задание производной функции( df2.m)

function y = df2(x)

y = 1+ (2*x)/(1-x.^4).^(1/2);

Текст программы

a=0;b=1; % интервал, на котором ищется функция

t=a:(b-a)/200:b;

plot(t,f2(t));grid % график функции

x=0.8; % приближенное значение корня

format long e; % установка формата вывода с плавающей точкой

for k=1:2;

x(k+1)=x(k)-f2(x(k))/df2(x(k)); % x(k+1) - очередное приближение

z(k+1)=f2(x(k+1)); % z - значения функции

err(k+1)=abs(x(k+1)-x(k)); % err - оценка погрешности

end;

res1=[x; z; err]'; % матрица для хранения результатов

ccc1='Col 1: x;Col 2: f(x);Col 3: err'; % комментарий к столбцам

save result21 a b ccc1 res1; % сохранение результатов в файле result21

Результаты( res1 )

x(переменная)

f(x) (значения функции)

err (погрешность)

0.8

0

0

0.82475

0.0020176

0.024753

0.82413

1.4286e-006

0.00062073

Решение одного уравнения (модифицированный вариант)

Задание функции( f2.m )

function y = f2(x);

y = x - acos(x.^2);

Задание производной функции( df2.m )

function y = df2(x)

y = 1+ (2*x)/(1-x.^4).^(1/2);

Текст программы

x=0.8; % приближенное значение корня

format long e; % приближенное значение корня

h=0.0001; % шаг

dfh=(f2(x+h)-f2(x))/h; % приближенное значение производной вблизи x(1)

for k=1:3;

x(k+1)=x(k)-f2(x(k))/dfh; % x(k+1) - очередное приближение

z(k+1)=f2(x(k+1)); % z - значения функции

err(k+1)=abs(x(k+1)-x(k)); % err - оценка погрешности

end;

res2=[x; z; err]'; % матрица для хранения результатов

ccc2='Col 1: x;Col 2: f(x);Col 3: err'; % комментарий к столбцам

save result22 h dfh ccc2 res2; % сохранение результатов в файле result22

Результаты( res2 )

x(переменная)

f(x) (значения функции)

err (погрешность)

0.8

0

0

0.82475

0.0020094

0.024751

0.8241

-0.00010773

0.00065186

0.82413

5.6953e-006

3.4946e-005

Решение системы из двух уравнений

Задание двух функций двух переменных( ff.m, gg.m )

function z = ff(x,y);

z = tan(x.*y+0.4)-x.^2;

function z = gg(x,y);

z = 0.6*x.^2+2*y.^2-1;

Задание матрицы Якоби (частных производных, mj.m)

function otv=mj(x,y);

otv=zeros(2,2);

otv(1,1)= (1+(tan(x*y+0.4)).^2)*y-2*x;

otv(1,2)= (1+(tan(x*y+0.4)).^2)*x;

otv(2,1)= 1.2*x;

otv(2,2)= 4*y;

Вывод линий нулевого уровня и общего графика поверхностей

ax=-1; bx=1; ay=-1; by=1; % начальные значения для границ области

xi=ax:(bx-ax)/30:bx; % задаем узлы по оси X

yi=ay:(by-ay)/30:by; % задаем узлы по оси Y

[xx,yy]=meshgrid(xi,yi); % (нужно для построения графика)

contour(xi,yi,ff(xx,yy),[0,0]); % рисуем линию ff(x,y)=0

grid % наносим координатную сетку

hold on % запрещаем стирать предыдущий график

contour(xi,yi,gg(xx,yy),[0,0]); % рисуем линию gg(x,y)=0

hold off; pause % восстанавливаем режим стирания

% рисуем поверхности в пространстве

meshc(xx,yy,ff(xx,yy));

grid;

hold on

meshc(xx,yy,gg(xx,yy));

hold off;

Реализация метода Ньютона

x=0.3;y=-0.6; % приблизительные координаты точки пересечения двух линий уровня

for k=1:4;

xk=x(k);yk=y(k);

newpoint=[xk;yk]-inv(mj(xk,yk))*[ff(xk,yk);gg(xk,yk)]; % очередное приближение

x(k+1)=newpoint(1);

y(k+1)=newpoint(2);

err(k+1)=max(abs(x(k+1)-x(k)),abs(y(k+1)-y(k))); % погрешность

end;

res3=[x; y; err]'; % матрица для хранения результатов

save result23 res3; % сохранение результатов в файле result23

Результаты (для системы уравнений)

x(переменная)

f(x) (значения функции)

err (погрешность)

0,3

-0.6

0

0.38789

-0.68098

0.087894

0.37991

-0.67583

0.0079842

0.37985

-0.67581

6.1252e-005

0.37985

-0.67581

3.1536e-009

Вывод

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

Судя по погрешностям можно сделать следующий вывод: сходимость основного метода является сверхлинейной (квадратичной), в то время как модифицированный метод обеспечивается линейную сходимость (как геометрическая прогрессия).

Также был реализован метод Ньютона для решения системы нелинейных уравнений.

Скорость сходимости в данном случае - сверхлинейная.

Соседние файлы в папке Лабораторная работа №3