function A = u_sum03(fun,x,n)
%
%u_sum03 bestämmer, med "bästa" undersumman , ett narmevarde  
%till integralen av funktionen  fun(x^k) over intervallet  I=[x(1) x(N)] med  
%I likformigt indelat i  n  stycken 
%delintervall.
%USUMMA ger också en grafisk beskrivning i graffonstret av den 
%undersumma som utnyttjas.
%
%INDATA: [fun, x, n]=
%	
%	 [funktion, x-varden, #indelningar]
%
%UTDATA: A = närmevärde.

if nargin~=3
	help trapets
	error('Fel antal indata')
end
N=length(n);
clf
xin=x;
y=eval(fun);
L= length(xin);
a=xin(1);b=xin(L);aa=num2str(a);ba=num2str(b);
for k=1:N
    dx = (b-a)/n(k); xk=a+[0:1:n(k)].*dx ;
    Ux=ones(1,n(k));
    for i=1:n(k)
	    index=find((xk(i)<=xin)&(xin<=xk(i+1)));
        x=xin(index);
	    Fxindex=eval(fun);
	    minFi=min(Fxindex);
	    j=find(y==minFi);
	    Ux(i)=xin(j);
    end
    x=Ux;
    FUx = eval(fun);    
    x=xin;
    hold off ;
    subplot(N,1,k)
    plot(x,y,'b'); hold; plot([a b],[0 0],'k');

    for i=1:n(k);
        plot([xk(i) xk(i+1)],[FUx(i) FUx(i)],'m',[xk(i) xk(i)],[0 FUx(i)],'g:',[xk(i+1) xk(i+1)],[0 FUx(i)],'g:');
    end
    ax=axis;
    axis([a-(b-a)./50 b+(b-a)./50 ax(3)-(ax(4)-ax(3))./50 ax(4)+(ax(4)-ax(3))./50]);    
    A = dx.*sum(FUx([1:n(k)]));
    title(['y  = ' fun ' ,    ' aa ' < x < '  ba '.'])
    ax=axis;
    ind = int2str(n(k)); nv = num2str(A);
    text(ax(1)-(ax(2)-ax(1))./20,(ax(3)-(ax(4)-ax(3))./7),['# indelningar  =  ' ind ' ,   Approximativt varde =  ' nv])
end