%Laden van gegevens

    XX=load('-ascii', 'E4.txt');
    Vvoeding_exp=XX(:,1);	%1e kolom
    IE4_exp=XX(:,2)/1000;		%2e kolom
    VE4_exp=XX(:,3);			%3e kolom
    
    N=length(Vvoeding_exp);
    
    figure(1);
    plot(VE4_exp,IE4_exp,'o');
    ylabel('Stroom (I)');
    xlabel('Spanning (V)');
    title('IV karakteristiek van experiment voor E4');
    zoom on;
    hold on;


%fitparameters  
    
    iplot=2;
    n1=50;
    n2=5000; %nlfit k
    n3=5000; %nlfit m
    n4=50;
    n5=50;
    I_stestvec=linspace(1e-11,10e-11,n2);
    V_Ttestvec=linspace(5e-2,15e-2,n3);
    chi2mat=zeros(n2,n3);
    
%niet lineaire fit van IE4_exp - Schockley(I_s,VE4_exp,V_T)
    iplot=2;
    
    for i1=1:n2,
        for i2=1:n3,  
          I_stest=I_stestvec(i1); %k
          V_Ttest=V_Ttestvec(i2); %m
          STheoretisch=Schockley_funktie(I_stest,VE4_exp,V_Ttest); %Theoretische functie
          chi2=sum((abs(STheoretisch-IE4_exp)).^2);
          chi2mat(i1,i2)=chi2;		
        end;%end for i2
    end;%end for i1
  
%bepaling van beste fitparameters voor minimale chi2 

    [Y1,I1]=min(chi2mat);	%beste rij voor elke kolom
    [Y2,I2]=min(Y1);	%beste kolom van alle kolommen

    I_sbest=I_stestvec(I1(I2));
    V_Tbest=V_Ttestvec(I2);

    figure(3)
    imagesc(V_Ttestvec,I_stestvec,log(chi2mat));
    colorbar('FontSize',12);
    xlabel('V_T','FontSize',13);
    ylabel('I_s','FontSize',13);
    title(['plot of log(chi2) values - best I_s: index ',int2str(I1(I2)),' value:',num2str(I_sbest), '  best V_T: index ',int2str(I2),' value: ',num2str(V_Tbest)],'FontSize',13);
    hold on;
    plot(V_Ttestvec(I2),I_stestvec(I1(I2)),'*k')
    hold off;
    set(gca,'Ydir','Reverse');

saveas(gcf,'NietLinFitInI_senV_T','tif');		%opslaan van figuur voor import in andere programma's
%saveas(gcf,'NietLinFitInI_senV_T','fig');		%opslaan van figuur voor toekomstige her-import in Matlab

    figure(1);
    plot(VE4_exp,Schockley_funktie(I_sbest,VE4_exp,V_Tbest),'-b');
    title('IV karakteristiek van experiment en Schockleycurve voor E4');    
    zoom on;
    hold on;

saveas(gcf,'Fit&Exp','tif');		%opslaan van figuur voor import in andere programma's
%saveas(gcf,'Fit&Exp','fig');		%opslaan van figuur voor toekomstige her-import in Matlab