Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %%
- clc;
- clear all;
- i=100;
- a=-1;
- b=0;
- x=linspace(a,b,i);
- e=10^(-3);
- for j=1:i
- xm=(a+b)/2;
- fxm = funkcja(xm);
- L=b-a;
- x1=a+L/4;
- fx1=funkcja(x1);
- x2=b-L/4;
- fx2=funkcja(x2);
- if fx1 < fxm
- b=xm;
- xm=x1;
- elseif fx2 < fxm
- a=xm;
- xm=x2;
- else
- a=x1;
- b=x2;
- end
- if abs(b-a)<e;
- break
- end
- end
- figure(1);
- plot(x,funkcja(x));hold on;
- plot(a,funkcja(a),'X');
- %%
- i=100;
- a=-1;
- b=0;
- x=linspace(a,b,i);
- e=10^(-3);
- q=(3-sqrt(5))/2;
- for j=1:i
- fa=funkcja(a);
- fb=funkcja(b);
- if fa<fb
- b=a+q*(b-a);
- fb=funkcja(b);
- elseif fa>fb
- a=a+(1-q)*(b-a);
- fa=funkcja(a);
- else
- a=a+(1-q)*(b-a);
- b=a+q*(b-a);
- fa=funkcja(a);
- fb=funkcja(b);
- end
- if abs(b-a)<e
- j=i;
- break
- end
- end
- figure(2);
- plot(x,funkcja(x));hold on;
- plot(a,funkcja(a),'X');
- %%
- i=100;
- a=-1;
- b=0;
- x=linspace(a,b,i);
- e=10^(-3);
- F(1)=0; F(2)=1;
- L=b-a;
- f=(1+2*e)*(L/e);
- for j=3:i
- F(j)=F(j-1)+F(j-2);
- if F(j)>f
- break;
- end
- end
- for n=3:i
- fa=funkcja(a);
- fb=funkcja(b);
- r=1-((F(j-n+1))/(F(j-n+2)));
- if fa<fb
- b=a+(1-r)*(b-a);
- fb=funkcja(b);
- elseif fa>fb
- a=a+r*(b-a);
- fa=funkcja(a);
- else
- a=a+r*(b-a);
- b=a+(1-r)*(b-a);
- fa=funkcja(a);
- fb=funkcja(b);
- end
- if j==n
- break
- else
- i=i+1;
- end
- end
- figure(3);
- plot(x,funkcja(x));hold on;
- plot(a,funkcja(a),'X');
- function [funkcja] = funkcja(x)
- funkcja=-(1./((x-0.3).^2+0.01))-(1./(((x-0.9).^2)+0.04))+6;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement