Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [x,fx,n,rez] = parabola( fun, x1, x3, tol )
- % Metoda Parabole - trazenje minimuma funkcije jedne promenljive FUN
- % aproksimacijom polinomom.
- % Pocetne tacke su X1 i X3, TOL je trazena tacnost.
- % Minimum je u X i ima vrednost FX posle N iteracija.
- X = [ x1 (x1+x3)/2 x3 ]';
- Y = [ [1 1 1]' X X.*X ];
- F = feval(fun, X);
- abc = Y \ F;
- x = -abc(2) / 2 / abc(3);
- n = 1;
- rez=[];
- rez = [rez; [n X' F' abc' x abs( [1 x x*x] * abc - feval(fun,x))] ];
- while abs( [1 x x*x] * abc - feval(fun,x)) > tol
- if x > X(2)
- X = sort( [ X(2); x; X(3) ] );
- else
- X = sort( [ X(1); x; X(2) ] );
- end
- Y = [ [1 1 1]' X X.*X ];
- F = feval(fun, X);
- abc = Y \ F;
- x = -abc(2) / 2 / abc(3);
- fx = feval(fun, x);
- n = n + 1;
- rez = [rez; [n X' F' abc' x abs( [1 x x*x] * abc - feval(fun,x))] ];
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement