Clear[Evaluate[Context[]<>"*"]];
uebungMachen [uebungsdaten_, startwerte_,fitFunktionen_]:=
For[n=1,n≤Length[uebungsdaten[[1]]]-1,n++,
daten = uebungsdaten[[All,{1,n+1}]];
fit = NonlinearModelFit[daten,fitFunktionen[[n]][x,a,b,c,d,e,f,g],{{a,startwerte[[n,1]]},{b,startwerte[[n,2]]},{c,startwerte[[n,3]]},{d,startwerte[[n,4]]},{e,startwerte[[n,5]]},{f,startwerte[[n,6]]},{g,startwerte[[n,7]]}},x];
Print[Show[ListPlot[daten,PlotRange->All,PlotStyle->Red],Plot[fit[x],{x,0,Max[uebungsdaten[[All,1]]]*1.1},PlotRange->All]]];
Print [Normal[fit]];
Print[fit["ParameterTable"]]
];

uebungsdaten1 = Import["https://fachschaft.physik.rptu.de/files/vortrag/02_19/uebung1.xlsx"][[1]];
fitFunktionen1={
#2*Sin[#1*#3+#4]+#5&,
#2*Sin[#1*#3]*Exp[-#4*#1]&,
#2*Exp[-#3*(#1-#4)^2]+#5&,
#2*Exp[-#3*(#1-#4)^2]+#8Exp[-#6*(#1-#7)^2]+#5&,
#2*Exp[-#3#1]&,
#2*Exp[#3#1]&
};
startwerte1={
{1,1/10,1,1,1,1,1},
{1,1,1,1,1,1,1},
{1,1,30,1,1,1,1},
{1,1,30,1,1,100,1},
{1,1,1,1,1,1,1},
{1,1,1,1,1,1,1},
{1,1,1,1,1,1,1}
};
uebungsdaten2 = Import["https://fachschaft.physik.rptu.de/files/vortrag/02_19/uebung2.xlsx"][[1]];
fitFunktionen2={
#2*Sin[#1*#3+#4]+#5&,
#2*Exp[-#3*(#1-#4)^2]+#5&,
#2*Exp[-#3*(#1-#4)^2]+#8Exp[-#6*(#1-#7)^2]+#5&,
#2*Exp[#3#1]&
};
startwerte2={
{1,1/20,1,1,1,1,1},
{1,1,100,1,1,1,1},
{1,1,100,1,1,400,1},
{1,1,1,1,1,1,1}
};
uebungsdaten3 = Import["https://fachschaft.physik.rptu.de/files/vortrag/02_19/uebung3.xlsx"][[1]];
fitFunktionen3={
#2*Sin[#1*#3]*Exp[-#4*#1]&,
#2*Exp[-#3#1]&
};
startwerte3={
{10,1/1000,1/1000,1,1,1,1},
{1,1/1000,1,1,1,1,1}
};
Print ["Übung 1:" ];
uebungMachen [uebungsdaten1,startwerte1,fitFunktionen1];
Print["Übung 2:"];
uebungMachen[uebungsdaten2,startwerte2,fitFunktionen2];
Print["Übung 3:"];
uebungMachen[uebungsdaten3,startwerte3,fitFunktionen3];
Print ["Übung 1 3D:"];
uebungsdaten3d1 = Import["https://fachschaft.physik.rptu.de/files/vortrag/02_19/uebung3D_1.txt","Table",NumberPoint->","][[2;;,2;;]];
Print[ListPlot3D[uebungsdaten3d1,DataRange->{{0,68},{0,100}}]];
Print ["Übung 2 3D:"];
uebungsdaten3d2 = Import["https://fachschaft.physik.rptu.de/files/vortrag/02_19/uebung3D_2.txt","Table",NumberPoint->","][[4;;]];
Print[ListPlot3D[uebungsdaten3d2]];
Print["Übung Bild"];
bildData = ImageData[Import["https://fachschaft.physik.rptu.de/files/vortrag/02_19/uebung_bild_laser.jpg"]][[All,All,1]] (*1 = Roter Kanal*);
fit = NonlinearModelFit[bildData[[All,600]],a*(HermiteH[2,b*(x-d)]*Exp[-b^2/2*(x-d)^2])^2,{a,{b,0.01},{d,600}},x];
Print[Show[ListPlot[bildData[[All,600]]],Plot[fit[x],{x,0,1200},PlotRange->All,PlotStyle->Red]]];

(*So findet man Startwerte*)
bildData = ImageData[Import["https://fachschaft.physik.rptu.de/files/vortrag/02_19/uebung_bild_laser.jpg"]][[All,All,1]] (*1 = Roter Kanal*);
Manipulate[
d=600;
Funktion[x_] := a*(HermiteH[2,b*(x-d)]*Exp[-b^2/2*(x-d)^2])^2;
Show[Plot[Funktion[x],{x,0,1200},PlotRange->All,PlotStyle->Red],ListPlot[bildData[[All,500]]]],{a,0.1,10},{b,0.001,.1}]