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
U = x;

dyda = zeros(ma,ndata);
    for j=1:ndata       % Schleife über die Messpunkte- numer
        
        %Ableitung nach den parametern
        dyda(1,j) = 1;
        dyda(2,j) = cos(a(2)*U(j)+a(3)) * U(j) * a(4);
        dyda(3,j) = cos(a(2)*U(j)+a(3)) * a(4);
        dyda(4,j) = sin(a(2)*U(j)+a(3));
	       
        %y werte
	ymod(j) = a(1) + sin(a(2)*U(j)+a(3))*a(4);
    end
ymod = ymod';  