function [ymod,dyda] = funcs(x,a,ma,ndata)

% Eingabe-Parameter:  x  Zeilenvektor der x-Komponenten der geg. Punkte
%                     ndata  Zahl der geg. Punkte
%                     ma     Zahl der Fit-Parameter
%                     a      Zeilenvektor der guessed values fuer die Fit-Paramter

%  Ausgabe-Parameter:  ymod    Zeilenvektor mit den ndata Werten der Modellfunktion
%                      dyda    Matrix (1. Index=Nummer des Parameters,
%                                      2. Index=Nummer des Datenpunktes) mit den partiellen
%                              Ableitungen der Modellfunktion nach den Modellparametern


% n=a(1) * exp(-0.5* (cps-a(2)).^2/a(3)^2);


cps = x;

dyda = zeros(ma,ndata);
    for j=1:ndata       % Schleife über die Messpunkte- numer
        
        %Ableitung nach den parametern
        dyda(1,j) = exp(-0.5* (cps(j)-a(2)).^2/a(3)^2);
        dyda(2,j) = a(1) * (-a(2)+cps(j))/a(3)^2 * exp(-0.5* (cps(j)-a(2)).^2/a(3)^2);
        dyda(3,j) = a(1) * (-a(2)+cps(j)).^2/a(3)^2 * exp(-0.5* (cps(j)-a(2)).^2/a(3)^2);
	       
        %y werte
	ymod(j) = a(1) * exp(-0.5* (cps(j)-a(2)).^2/a(3)^2);
    end
ymod = ymod';  