Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [S_N,N] = int_left_rectangles(phi,c,d,eps)
- N=1;
- while 1
- h_N1=(d-c)/N;
- h_N2=(d-c)/(2*N);
- z1=c:h_N1:d;
- z2=c:h_N2:d;
- S_N=0;
- S_2N=0;
- for i=1:N
- S_N=S_N+phi(z1(i))*h_N1;
- end
- for i=1:2*N
- S_2N=S_2N+phi(z2(i))*h_N2;
- end
- if(abs(S_N-S_2N)<=eps)
- break;
- end
- N=N*2;
- end
- end
- function [S_N,N] = int_center_rectangles(phi,c,d,eps)
- N=1;
- while 1
- h_N1=(d-c)/N;
- h_N2=(d-c)/(2*N);
- z1=c:h_N1:d;
- z2=c:h_N2:d;
- S_N=0;
- S_2N=0;
- for i=1:N
- S_N=S_N+phi((z1(i)+z1(i+1))/2)*h_N1;
- end
- for i=1:2*N
- S_2N=S_2N+phi((z2(i)+z2(i+1))/2)*h_N2;
- end
- if(abs(S_N-S_2N)<=eps)
- break;
- end
- N=N+1;
- end
- end
- function [S_N,N] = int_trapez_(phi,c,d,eps)
- N=1;
- while 1
- h_N1=(d-c)/N;
- h_N2=(d-c)/(2*N);
- z1=c:h_N1:d;
- z2=c:h_N2:d;
- S_N=0;
- S_2N=0;
- for i=1:N
- S_N=S_N+h_N1/2*(phi(z1(i))+phi(z1(i+1)));
- end
- for i=1:2*N
- S_2N=S_2N+h_N2/2*(phi(z2(i))+phi(z2(i+1)));
- end
- if(abs(S_N-S_2N)<=eps)
- break;
- end
- N=N+1;
- end
- end
- function [S_N,N] = int_simpson(phi,c,d,eps)
- N=1;
- while 1
- h_N1=(d-c)/N;
- h_N2=(d-c)/(2*N);
- z1=c:h_N1:d;
- z2=c:h_N2:d;
- S_N=0;
- S_2N=0;
- for i=1:N
- S_N=S_N+(h_N1/6)*(phi(z1(i))+4*phi((z1(i+1)+z1(i))/2)+phi(z1(i+1)));
- end
- for i=1:2*N
- S_2N=S_2N+(h_N2/6)*(phi(z2(i))+4*phi((z2(i+1)+z2(i))/2)+phi(z2(i+1)));
- end
- if(abs(S_N-S_2N)<=eps)
- break;
- end
- N=N+1;
- end
- end
- function [S_N,N] = int_gauss(phi,c,d,eps)
- N=1;
- while 1
- h_N1=(d-c)/N;
- h_N2=(d-c)/(2*N);
- z1=c:h_N1:d;
- z2=c:h_N2:d;
- S_N=0;
- S_2N=0;
- for i=1:N
- S_N=S_N+(h_N1/2)*(phi(z1(i)+(h_N1/2)*(1-1/sqrt(3)))+phi(z1(i)+(h_N1/2)*(1+1/sqrt(3))));
- end
- for i=1:2*N
- S_2N=S_2N+(h_N2/2)*(phi(z2(i)+(h_N2/2)*(1-1/sqrt(3)))+phi(z2(i)+(h_N2/2)*(1+1/sqrt(3))));
- end
- if(abs(S_N-S_2N)<=eps)
- break;
- end
- N=N+1;
- end
- end
- %main
- % phi = @(t) sin((pi*t^2)/2);
- % eps1=10^(-8);
- % a=0; b=1.2;
- % x=0:0.12:1.2;
- % [S,k] = taylor_series_task1(x,eps1);
- % S_N(1)=0;
- % N(1)=0;
- % for i=2:length(x)
- % [S_N(i),N(i)] = int_left_rectangles(phi,0,x(i),eps1);
- % end
- % error=abs(S-S_N);
- % array2table([x;S;S_N;N;error]',...
- % 'VariableNames',{'x','S(x)','S_N(x)','N','error'})
- % format long
- % phi = @(t) sin((pi*t^2)/2);
- % eps1=10^(-8);
- % a=0; b=1.2;
- % x=0:0.12:1.2;
- % [S,k] = taylor_series_task1(x,eps1);
- % S_N(1)=0;
- % N(1)=0;
- % for i=2:length(x)
- % [S_N(i),N(i)] = int_center_rectangles(phi,0,x(i),eps1);
- % end
- % error=abs(S-S_N);
- % array2table([x;S;S_N;N;error]',...
- % 'VariableNames',{'x','S(x)','S_N(x)','N','error'})
- % format long
- % phi = @(t) sin((pi*t^2)/2);
- % eps1=10^(-8);
- % a=0; b=1.2;
- % x=0:0.12:1.2;
- % [S,k] = taylor_series_task1(x,eps1);
- % S_N(1)=0;
- % N(1)=0;
- % for i=2:length(x)
- % [S_N(i),N(i)] = int_trapez_(phi,0,x(i),eps1);
- % end
- % error=abs(S-S_N);
- % array2table([x;S;S_N;N;error]',...
- % 'VariableNames',{'x','S(x)','S_N(x)','N','error'})
- % format long
- % phi = @(t) sin((pi*t^2)/2);
- % eps1=10^(-8);
- % a=0; b=1.2;
- % x=0:0.12:1.2;
- % [S,k] = taylor_series_task1(x,eps1);
- % S_N(1)=0;
- % N(1)=0;
- % for i=2:length(x)
- % [S_N(i),N(i)] = int_simpson(phi,0,x(i),eps1);
- % end
- % error=abs(S-S_N);
- % array2table([x;S;S_N;N;error]',...
- % 'VariableNames',{'x','S(x)','S_N(x)','N','error'})
- % format long
- % phi = @(t) sin((pi*t^2)/2);
- % eps1=10^(-6);
- % a=0; b=1.2;
- % x=0:0.12:1.2;
- % [S,k] = taylor_series_task1(x,eps1);
- % S_N(1)=0;
- % N(1)=0;
- % for i=2:length(x)
- % [S_N(i),N(i)] = int_gauss(phi,0,x(i),eps1);
- % end
- % error=abs(S-S_N);
- % array2table([x;S;S_N;N;error]',...
- % 'VariableNames',{'x','S(x)','S_N(x)','N','error'})
- % format long
- phi = @(t) sin((pi*t^2)/2);
- eps1=10^(-8);
- a=0; b=1.2;
- x=0:0.12:1.2;
- [S,k] = taylor_series_task1(x,eps1);
- S_N_trapez(1)=0;
- S_N_simpson(1)=0;
- S_N_gauss(1)=0;
- for i=2:length(x)
- S_N_trapez(i) = int_trapez_(phi,0,x(i),eps1);
- S_N_simpson(i)= int_simpson(phi,0,x(i),eps1);
- S_N_gauss(i)= int_gauss(phi,0,x(i),eps1);
- end
- error_trapez=abs(S-S_N_trapez);
- error_simpson=abs(S-S_N_simpson);
- error_gauss=abs(S-S_N_gauss);
- array2table([x;error_trapez;error_simpson;error_gauss]',...
- 'VariableNames',{'x','Трапеции','Симпсона','Гаусса'})
- format long
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement