% Festen Betriebsparameter lambda = 1290; % nm L = 1; % km mu_zwd = 1317; % nm sigma_zwd = 2; % nm mu_s0 = 0.0872; % ps / nm2 km sigma_s0 = 0.0012; % ps / nm2 km rho = -0.5; % Korrelation % Gitter für lambda0 und S0 lambda0_vec = linspace(mu_zwd-10, mu_zwd+10, 100); S0_vec = linspace(mu_s0-0.01, mu_s0+0.01, 100); % Korrigierte meshgrid Reihenfolge [S0, Lambda0] = meshgrid(S0_vec, lambda0_vec); % Dispersion berechnen D = (S0./4) .* ( lambda - (Lambda0.^4)./(lambda^3) ) * L; %% 2D-Konturplot figure('Color','w'); hold on % --- 1. Hintergrund: Dispersions-Konturlinien (Gerundet für TikZ) --- numLevels_D = 10; % Erzeuge glatte, auf 1 Nachkommastelle gerundete Werte levels_D = round(linspace(min(D(:)), max(D(:)), numLevels_D), 1); levels_D = unique(levels_D); % Falls durch Rundung doppelte Werte entstehen % Colormap in der Länge der verbliebenen Level erstellen cmap_bg = cbrewer2('Blues', length(levels_D)); for i = 1:length(levels_D) % WICHTIG: Das Level als [Wert, Wert] übergeben! [C,h] = contour(S0, Lambda0, D, [levels_D(i), levels_D(i)], ... 'Color', cmap_bg(i,:),... 'LineWidth', 1.5, ... 'ShowText', 'on', ... 'LabelFormat', '%0.1f'); h.LabelColor = [0,0,0]; end % --- NEU: Parameter für die Verteilungen --- mu_zwd = 1317; % nm sigma_zwd = 2; % nm mu_s0 = 0.0872; % ps / nm2 km sigma_s0 = 0.0012; % ps / nm2 km rho = -0.5; % Korrelation % --- 3. Randverteilungen (1D Gauss) an den Achsen --- s0_vals = linspace(min(S0_vec), max(S0_vec), 500); gauss_s0 = exp(-0.5*((s0_vals - mu_s0)/sigma_s0).^2); scale_s0 = 4; % Skalierung für die Höhe in der Ansicht plot(s0_vals, min(lambda0_vec) + gauss_s0 * scale_s0, 'k', 'LineWidth', 2); zwd_vals = linspace(min(lambda0_vec), max(lambda0_vec), 500); gauss_zwd = exp(-0.5*((zwd_vals - mu_zwd)/sigma_zwd).^2); scale_zwd = 0.005; % Skalierung für die Auslenkung in der Ansicht plot(min(S0_vec) + gauss_zwd * scale_zwd, zwd_vals, 'k', 'LineWidth', 2); % Hilfslinien für die Mittelwerte xline(mu_s0, '--k', 'Alpha', 0.4); yline(mu_zwd, '--k', 'Alpha', 0.4); % --- Achsenbeschriftung, Titel & Formatierung --- xlabel('S0 ', 'FontSize', 12); ylabel('ZDW [nm]', 'FontSize', 12); % title(sprintf('Dispersion: %d km; %d nm', L, lambda), 'FontSize', 14); axis([min(S0_vec) max(S0_vec) min(lambda0_vec) max(lambda0_vec)]); grid on hold off %% Für den LaTeX Export mat2tikz_improved("C:/Users/Silas/Documents/6971e0b65b380ca6d71c837f/02_IMDD_System/tikz/dispersion/dispersion_contour.tikz")