Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- close all;
- clear all;
- A=1;
- B=5;
- a=A;
- b=B;
- c=(a+b)/2;
- i=0;
- iter = 5;
- cb=0;
- % while(sum(S) ~= sum(T))
- inc = 1;
- while(inc<iter)
- i = i+1;
- if sin(a)*sin(c) < 0
- b = c;
- else
- a = c;
- end
- c = (a+b)/2;
- cb(inc) = c;
- inc = inc +1;
- end
- [c i]
- % clear all
- % close all
- a = A;
- b = B;
- c = b - (sin(b)*(b-a))/(sin(b)-sin(a));
- i=0;
- % while(sum(S) ~= sum(T))
- inc = 1;
- while( inc <iter)
- i = i+1;
- if sin(a)*sin(c) < 0
- b = c;
- else
- a = c;
- end
- c = b - (sin(b)*(b-a))/(sin(b)-sin(a));
- cn(inc) = c;
- inc = inc +1;
- end
- [c i]
- % clear all
- % close all
- a = A;
- b = B;
- c = b - (sin(b)*(b-a))/(sin(b)-sin(a));
- i=0;
- % while(sum(S) ~= sum(T))
- inc = 1;
- while(inc <iter)
- i = i+1;
- if abs(c -a) < abs(c-b)
- b = c;
- else
- a = c;
- end
- c = b - (sin(b)*(b-a))/(sin(b)-sin(a));
- bs2(inc) = c;
- inc = inc +1;
- end
- [b i]
- % clear all
- % close all
- pk = (A+B)/2; %???????????????????
- pk = pk - sin(pk)/cos(pk);
- i=0;
- inc=1;
- % while(sum(S) ~= sum(T))
- while(inc <iter)
- pk = pk - sin(pk)/cos(pk);
- bn(inc) = c;
- inc = inc +1;
- i=i+1;
- end
- [pk i]
- % clear all
- % close all
- delta = (B-A)/10;
- pk2 = B;
- pk1 = (A+B)/2;%B-delta;
- pk = A;%B-2*delta;
- f=sin(pk);
- f1=sin(pk1);
- f2=sin(pk2);
- i=0;
- inc=1;
- % while(sum(S) ~= sum(T))
- while(inc < iter)
- i=i+1;
- tmp = pk*f2*f1/((f-f2)*(f-f1)) + pk1*f2*f/((f1-f2)*(f1-f)) + pk2*f*f1/((f2-f1)*(f2-f));
- pk2 = pk1;
- pk1 = pk;
- pk = tmp
- f=sin(pk);
- f1=sin(pk1);
- f2=sin(pk2);
- oik(inc) = tmp;
- inc=inc + 1;
- end
- [pk i]
- it=iter-1;
- plot(1:it,cb, 1:it,cn,1:it,bs2,1:it,bn,1:it,oik);
- grid on, legend('Bisekcja','Regula-falsi','Siecznych', 'Newtona-Raphsona', 'Odwrotna kwadratowa');
- -------------------------------------------------------------------------------------------
- 222222222222222222222
- nrit = 10;
- x=2;
- pk = x/2;
- for i=1:nrit
- if pk*pk ~= x
- pk = pk - (pk.*pk-x)/(2*pk);
- end
- end
- pk
- nrit = 400;
- x=0.5;
- pk = eps;
- for i=1:nrit
- if pk*x ~= 1
- pk = pk - x*pk*pk + pk;
- end
- end
- pk
- ------------------------------------------------------------------------------------------------
- 3333333333333333333333
- function [ ] = lab6_1( )
- close all
- clear all
- %UNTITLED Summary of this function goes here
- % Detailed explanation goes here
- load('pozycje.txt');
- tt = pozycje(:, 1);
- xx = pozycje(:, 2);
- yy = pozycje(:, 3);
- hh = pozycje(:, 4);
- dd = pozycje(:, 5);
- d2=0
- for i = 1:length(xx)-1
- x1 = xx(i+1);
- x0 = xx(i);
- y1 = yy(i+1);
- y0 = yy(i);
- h1 = hh(i+1);
- h0 = hh(i);
- t1 = tt(i+1);
- t0 = tt(i);
- fi1 = x0 * pi/180;
- fi2 = x1 * pi/180;
- dfi = (x1-x0)*pi/180;
- dl = (y1-y0)*pi/180;
- a_ = (sin(dfi/2))^2 + cos(fi1)*cos(fi2)*(sin(dl/2))^2;
- c = 2*atan2(sqrt(a_), sqrt(1-a_));
- d = sqrt((c*6371000)^2 - ((h1-h0))^2);
- vt(i) = (t1 - t0)/1000;
- v(i) = d/(vt(i));
- end
- for i=1:length(v)-1
- a(i) = (v(i+1)-v(i))/vt(i+1);
- end
- v=real(v);
- a=real(a);
- for i=3:length(v)-2
- v2(i) = (v(i-2)-8*v(i-1)+8*v(i+1)+v(i+1))/12;
- a2(i) = (a(i-2)-8*a(i-1)+8*a(i+1)+a(i+1))/12;
- end
- hold on
- T = tt(3:length(tt)-1);
- A = real(a2);
- plot(T, A)
- hold off
- up = 0;
- down = 0;
- last = 0;
- for i = 1:length(A)
- if A(i)>0 && last <= 0
- up = up +1;
- last = 1;
- elseif A(i)<0 && last >= 0
- down = down + 1;
- last = -1;
- end
- end
- [up down]
- diff(A)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement