diff --git a/functions/integratore_adattivo_globale.m b/functions/integratore_adattivo_globale.m index 31784bf..3921a6a 100644 --- a/functions/integratore_adattivo_globale.m +++ b/functions/integratore_adattivo_globale.m @@ -22,15 +22,15 @@ ier = 0; report=[]; while (i <= j - 1) && (ite < maxite) [~,larea,lerr,m1] = static_quadratic(f,m(i:k,:)); - m=[m(1:i-1,:);m1;m(k+1:j,:)] + m=[m(1:i-1,:);m1;m(k+1:j,:)]; ite = ite + 1; j= j + 1; - report=[report;i,k+1,larea,lerr] + report=[report;i,k+1,larea,lerr]; i = i + 2; k = k + 2; end - report = sortrows(report,4) - report = flipud (report) + report = sortrows(report,4); + report = flipud (report); [lenght,~] = size(report); area=0; err = 0; @@ -43,27 +43,43 @@ report=[]; i=report(1,1); k=report(1,2) - 1; [lenght,~] = size(report); - report=report(2:lenght,:) + report=report(2:lenght,:); [~,larea,lerr,m1] = static_quadratic(f,m(i:k,:)); - m=[m(1:i-1,:);m1;m(k+1:j,:)] - ite = ite + 1; - j= j + 1; - report=[report;i,k+1,larea,lerr] - i=k+1; - k=k+2; - [~,larea,lerr,m1] = static_quadratic(f,m(i:k,:)); - m=[m(1:i-1,:);m1;m(k+1:j,:)] + m=[m(1:i-1,:);m1;m(k+1:j,:)]; ite = ite + 1; j= j + 1; report=[report;i,k+1,larea,lerr]; - report = sortrows(report,4) - report = flipud (report) + report = sortrows(report,1); + [lenght,~] = size(report); + for i=1:lenght + if(report(i,1) >= k+1) + report(i,1) = report(i,1) + 1; + report(i,2) = report(i,2) + 1; + end + end + i=k+1; + k=k+2; + [~,larea,lerr,m1] = static_quadratic(f,m(i:k,:)); + m=[m(1:i-1,:);m1;m(k+1:j,:)]; + ite = ite + 1; + j= j + 1; + report=[report;i,k+1,larea,lerr]; + report = sortrows(report,1); + [lenght,~] = size(report); + for i=1:lenght + if(report(i,1) >= k) + report(i,1) = report(i,1) + 1; + report(i,2) = report(i,2) + 1; + end + end + report = sortrows(report,4); + report = flipud (report); [lenght,~] = size(report); area=0; err = 0; for i=1:lenght - err= err + report(i,4) - area = area + report(i,3) + err= err + report(i,4); + area = area + report(i,3); end end diff --git a/functions/integratore_schema_fisso.m b/functions/integratore_schema_fisso.m index 03c7cb8..b14194a 100644 --- a/functions/integratore_schema_fisso.m +++ b/functions/integratore_schema_fisso.m @@ -15,5 +15,13 @@ function [ area, err ] = integratore_schema_fisso( f, m, toll ) while (err > toll) [~,area,err,m] = static_quadratic(f,m); end + + + [j,~] = size(m); + hold on + fplot (f,[m(1,1) m(j,1)],'k') + plot (m(:,1),m(:,2),'*r') + hold off + end