Paweł Przybyła
Rafał Goszcz
Metody i techniki optymalizacji - lista 2
1.
%f=inline('x^2/2-sin(x)');
%df=inline('x-cos(x)');
%ddf=inline('1+sin(x)');
f=inline('sin(x)');
df=inline('cos(x)');
ddf=inline('-sin(x)');
n=50;
x0=0.5;
iter=5:5:n;
ff=zeros(1,length(iter)); xx=zeros(1,length(iter));
i=0;
for k=5:5:n,
i=i+1;
[xx(i),ff(i)]=newton1D(f,df,ddf,x0,1e-4,k);
end;
figure(1);
plot(iter,xx);
xlabel('iteracja');
ylabel('x');
title('Zależność x od liczby iteracji');
grid on;
figure(2);
plot(iter,ff);
xlabel('iteracja');
ylabel('f(x)');
title('Zależność f(x) od liczby iteracji');
grid on;
f=inline('x^2/2-sin(x)');
df=inline('x-cos(x)');
ddf=inline('1+sin(x)');
%f=inline('sin(x)');
%df=inline('cos(x)');
%ddf=inline('-sin(x)');
%f=inline('x*atan(x)-.5*ln(1+x^2)');
%df=inline('atan(x)');
%ddf=inline('1/(1+x^2)');
n=50;
x0=0.5;
[xx,ff,a,iteracje]=newton1D(f,df,ddf,x0,1e-4,n)
if a==1 disp('Minimum'); end;
if a==2 disp('Maksimum'); end;
wynik:
xx =
0.7391
ff =
-0.4005
a =
1
iteracje =
2
Minimum
2.
clear;
close all;
n=200;
f=inline('(x^5)/5-(77*x^4)/240+(71*x^3)/360-(7*x^2)/120+x/120');
df=inline('x^4-77/60*x^3+71/120*x^2-7/60*x+1/120');
df2=inline('4*x^3-77/20*x^2+71/60*x-7/60');
x0=linspace(0,1,n)
iter=1:n;
xx=zeros(1,length(iter));
ff=zeros(1,length(iter));
for k=1:n,
[xx(k),ff(k),a,b]=newton1D(f,df,df2,x0(k),1e-4,n);
end;
figure(1);
plot(x0,xx);
xlabel('x0');
ylabel('xx');
title('zależność punktu ekstremum od x początkowego');
grid on;
3.
a)
clear;
close all;
n=50;
f=inline('x*(x-1)^2');
df=inline('(x-1)^2+2*x*(x-1)');
df2=inline('6*x-4');
x0=0;
[x,wartosc,ok,iteracje]=newton1d(f,df,df2,x0,1e-4,n)
if ok==1 disp('Minimum');end;
if ok==2 disp('Maksimum');end;
b)
clear;
close all;
n=50;
f=inline('x/(x^2+1)');
df=inline('1/(x^2+1)-2*x^2/(x^2+1)^2');
df2=inline('-6/(x^2+1)^2*x+8*x^3/(x^2+1)^3');
x0=1;
[x,wartosc,ok,iteracje]=newton1d(f,df,df2,x0,1e-4,n)
if ok==1 disp('Minimum');end;
if ok==2 disp('Maksimum');end;