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

Лабы / Лабы 3 / -l3- / лабработа3

.doc
Скачиваний:
24
Добавлен:
17.04.2013
Размер:
22.02 Кб
Скачать

% основная программа:

clear

a=-2; b=7; h=.01; n=4; eps=.001;

f=[2 -11 -11 8];

r=roots(f);

c=[a -0.5 0 2 5 b];

x=a:h:b;

%plot(x,polyval(f,x));

for i=1:5,

w1=knots(c(1),c(2),n);

Lw1=lknots(f,w1);

r1=lagr(0,Lw1,w1);

ep=abs(r(2)-r1);

if ep<eps break; end;

if polyval(f,r1)>0 c(2)=r1; else c(1)=r1;end;

end;

disp(r1);

for i=1:5,

w1=knots(c(3),c(4),n);

Lw1=lknots(f,w1);

r1=lagr(0,Lw1,w1);

ep=abs(r(1)-r1);

if ep<eps break; end;

if polyval(f,r1)>0 c(4)=r1; else c(3)=r1;end;

end;

disp(r1);

for i=1:5,

w1=knots(c(5),c(6),n);

Lw1=lknots(f,w1);

r1=lagr(0,Lw1,w1);

ep=abs(r(3)-r1);

if ep<eps break; end;

if polyval(f,r1)>0 c(6)=r1; else c(5)=r1;end;

end;

disp(r1);

% вспомогательная программа:

function u=knots(x1,x2,n);

u=zeros(1,n);

for j=0:n-1,

u(j+1) =x1 + j*(x2-x1)/(n-1);

end

% вспомогательная программа:

function u=lknots(ef,t);

n=length(t);

u=zeros(1,n);

for j=1:n,

u(j) =polyval(ef,t(j));

end

% вектор данных с шумом:

alf=0.1;

x=-5:0.1:5;

y=sin(x)+alf*randn(size(x));

k=polyfit(x,y,5);

Y=polyval(k,x);

plot(x,y,'r',x,Y,'b')

% результат

» lab3

-1.2749

0.5000

6.2749

» roots(f)

ans =

6.2749

-1.2749

0.5000

»

Соседние файлы в папке -l3-