WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Fitten eines simulierten Spektrums an Messdaten

 

peter321
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2012, 22:08     Titel: Fitten eines simulierten Spektrums an Messdaten
  Antworten mit Zitat      
Hallo Zusammen,
ich bin ehrlich gesagt absoluter Matlab-Neuling und hätte da mal eine Frage.
Ich habe mit Matlab ein Skript verfasst, dass mir ein Emissionsspektrum simuliert. Nun möchte ich diese Simulation gerne an meine Messdaten anfitten.
Allerdings berechnet sich das Spektrum mit mehreren for schleifen. Es handelt sich bei dem Spektrum also nicht um eine klassische Funktion wie sie bei den Matlab Fithilfsmitteln definiert werden kann.
Kann ich das Spektrum trotzdem anpassen und wenn ja, mit welchem Matlabbefehl am besten?
Viele Grüße
P.S. - Meine Matlab Version hat keinerlei Toolboxen

Die zu fittenden Daten sind angehängt, um sie hochladen zu können habe ich sie in .txt umbenannt. Falls sich also jemand daran versucht, wieder in .dat umbenennen.
Code:
clear all;
clc;
clf;
format long;

xe=0.02;       %Definition: Bereich Plasmaausdehnung
delx=0.000001; %Mindestens 0.000001;
x=-xe:delx:xe;
nx=2*xe/delx+1;
length(x);

ye=0.2*10^14;      %Definition: Betrachteter Wellenlängen/Frequenzbereich
dely=0.002*10^14;
ycenter=7.5648*10^14
y=-ye+ycenter:dely:ye+ycenter;
ny=2*ye/dely;
y=y';
length(y);

 %Definition: Plasmaverteilungsparameter
se = 0.01;     %Guter Wert 0.001
s1 = 0.0125;  %Guter Wert 0.0053
s2 =se;
w = 4.22*10^-34;    %Definition: Konstanten
d = 0.0242*10^-34;
h = 6.6*10^-34;
c = 299000000;
kb = 1.3806488*10^-23;
T=55000;  %GuterWert 70000

        %%Definition: Linienspezifische Werte
Bib=1;   %Bibermanfaktor
ga=4;
gb=2;
g2=2;
A2a = 9.8*10^7;
nua = 7.5811*10^14;
B2a = (A2a*c^3)/(8*pi*h*nua^3);
A2b = 4.93*10^7;
nub = c/(396.1*10^-9);
B2b = 2*(A2b*c^3)/(8*pi*h*nub^3);

Ne =50*10^23;   %Guter Wert 9.5*10^23
Na = Ne;     %Guter Wert 0.9*10^24
Nb = Na*gb/ga;
N2 = (Na+Nb)*g2/((ga+gb)/2)*exp(-h*7.5811*10^14/(kb*T))


ne = Ne*exp(-x.^2/se^2);
na = Na*exp(-x.^2/s1^2);
nb = Nb*exp(-x.^2/s1^2);
n2 = N2*exp(-x.^2/s2^2);

FWHMa = (c*ne*w)/((394.4*10^-9)^2);   %(*Starkverbreiterung*)
FWHMb = (c*ne*w)/((396.1*10^-9)^2);   %(*Starkverbreiterung*)
Sshifta = (c*ne*d)/((394.4*10^-9)^2); %(*Starkverschiebung*)
Sshiftb = (c*ne*d)/((396.6*10^-9)^2); %(*Starkverschiebung*)

Sks=(2*h*y.^3/c^2)./(exp(h*y/(kb*T)) - 1); %(*schwarzkörperstrahlung*)

for i=1:nx;    
     Fa(:,i)=(1/3.141)*((FWHMa(:,i)/2)./((FWHMa(:,i)/2).^2 + (y- nua+Sshifta(:,i)).^2));
   
end     %Linienformfunktion
%size(Fa)
%mesh(x,y,Fa)
for i=1:nx;
     Fb(:,i)=(1/3.141)*((FWHMb(:,i)/2)./((FWHMb(:,i)/2).^2 + (y- nub+Sshiftb(:,i)).^2));
   
end

for i=1:nx;
Epsilona(:,i) = (A2a*n2(:,i)*h*y)/(4*3.141);
end     %Emissionskoeffizient Linienstrahlung
Epsilonla=Epsilona.*Fa;
for i=1:nx;
Epsilonb(:,i) = (A2b*n2(:,i)*h*y)/(4*3.141);
end
Epsilonlb=Epsilonb.*Fb;
%mesh(y,x,Epsilonlb)

for i=1:nx;
Epsilonk(:,i) = 1.63*10^-34*ne(:,i).^2*(c./y).^2*Bib*T.^(-1/2);
end     %Emissionskoeffizient Kontinuumstrahlung
em=Epsilonla+Epsilonlb+Epsilonk;
%mesh(x,y,Epsilonk)

for i=1:nx;
Kappaa(:,i) = ((g2/ga*B2a*na(:,i) - B2a*n2(:,i))*h*y)/c;
end     %Absorbtionskoeffizient Linienstrahlung
 Kappala=Kappaa.*Fa;  
 for i=1:nx;
Kappab(:,i) = ((g2/gb*B2b*nb(:,i) - B2b*n2(:,i))*h*y)/c;
end
 Kappalb=Kappab.*Fb;
%mesh(x,y,abs)

for i=1:nx;
Kappak(:,i) = Epsilonk(:,i)./Sks;
end             %Absorbtionskoeffizient Kontinuumstrahlung
abs=Kappala+Kappalb+Kappak;
%mesh(x,y,abs)

I=zeros(ny+1,1);%Berechnung Strahlungstransportgleichung
for i=1:nx;
   
    I(:)=delx*(em(:,i)-abs(:,i).*I)+I;
   % b(:,i)=t*(e(:,i)-k(:,i));
 
end
 %size(I)
 I(ny+1)=I(ny);
k=c./y;
%plot(k,I)


load AAA.dat;
AA=AAA;
x2=AA(:,1);
y2=AA(:,2);


l=396.4*10^-9;  %Faltung mit Instrumentenprofil (Lorentzprofil mit Halbwertsbreite della)
della=0.48*10^-9;
Instr=1/pi*((c*della/(2*l^2))./((c*della/(2*l^2))^2+(y-ycenter).^2));
plot(k,Instr)
Conv= conv(I,Instr);
Q=max(Conv)   ;  %Normierung
Conv=(Conv./Q);
length(I)
length(Instr)
length(Conv)
xConv=-2*ye+ycenter:dely:2*ye+ycenter;   %X-Achse passend zur gefalteten funktion
xConv=(c./xConv)';
length(xConv)
Conv
plot(xConv,Conv,x2*(10^-9),y2+0.1)


AAA .txt
 Beschreibung:

Download
 Dateiname:  AAA .txt
 Dateigröße:  7.15 KB
 Heruntergeladen:  507 mal
Private Nachricht senden Benutzer-Profile anzeigen


Gast1234

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2012, 21:29     Titel: Fitten eines simulierten Spektrums an Messdaten
  Antworten mit Zitat      
Hi,
ich weiß nicht, ob Du noch eine Antwort brauchst. Falls ja:

Du solltest am besten eine Funktion schreiben, die Dir die Differenz zwischen Mess- und theoretischen Daten berechnet. Hier bietet sich die Summe der Quadrate der Differenzen an. Die Wurzel brauchst Du nicht zu berechnen, da die anschließende Optimierung eh nur den Minimalwert sucht, und der Absolutwert eher keine brauchbare Aussage liefert.

Dann probier es mal mit der Funktion fmins. In der Hilfe findest Du Beispiele, oder Du fragst hier nochmal nach.[/code]

Gruß
Wolfgang.
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.