Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc
- close all
- clear
- %F = input("Podaj funkcje: ", 's');
- %funkcja = str2func(strcat('@(x)',F));
- funkcja=@(x) x.^3+x.^2-20*x;
- %a = input("Podaj a: ");
- %b = input("Podaj b: ");
- a=0;
- b=6;
- liczbaIteracji=0;
- %zloty podzial
- epsilon=0.01;
- while(abs((b-a))>epsilon)
- L=b-a;
- x2=a+0.618*L;
- x1=a+0.382*L;
- if funkcja(x1)<funkcja(x2)
- b=x2;
- else
- a=x1;
- end
- liczbaIteracji=liczbaIteracji+1;
- end
- zlotyPodzial=(a+b)/2
- liczbaIteracji
- %polowienia
- a=0;
- b=6;
- liczbaIteracji=0;
- while(abs((b-a))>epsilon)
- xM=(a+b)/2;
- x1=(a+xM)/2;
- x2=(xM+b)/2;
- if funkcja(x1)<funkcja(xM)
- b=xM;
- elseif funkcja(xM)>funkcja(x2)
- a=xM;
- else
- a=x1;
- b=x2;
- end
- liczbaIteracji=liczbaIteracji+1;
- end
- polowienia=(a+b)/2
- liczbaIteracji
- %newtona
- h=0.01;
- pochodna3=@(x) ((funkcja(x+h)-funkcja(x-h))/(2*h));
- pochodna22=@(x) ((funkcja(x+2*h)-2*funkcja(x+h)+funkcja(x-h))/(4*h^2));
- a=0;
- b=6;
- liczbaIteracji=0;
- przedzial=a:b:0.1;
- i=0;
- while(1)
- liczbaIteracji=liczbaIteracji+1;
- display("cos");
- if funkcja(i) == 0
- wartosc=i-(funkcja(i)/pochodna3(i));
- if(pochodna3(i)==0)
- wartosc=i-(pochodna3(i)/pochodna22(i));
- end
- end
- if abs(wartosc-i)<epsilon
- break;
- end
- i=wartosc;
- end
- newtona=wartosc
- liczbaIteracji
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement