1 function [u,dx,fehler]=
test_lokal(Time,ul,ur,alpha,n_x)
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 % 1D, skalare Erhaltungsgleichung %
6 % mikroskopisches Modell (lokale Regularisierung) %
7 % u_t+f(u)_x = epsilon u_{xx} + alpha*epsilon^2 u_{xxx} %
9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11 % Input: Time Endzeit Mikroproblem, z.B.: 2.24*10^(-5)
12 % ul linker Zustand, z.B.: 4
13 % ur rechter Zustand, z.B.: -2
14 % alpha Parameter, z.B.: 4
15 % n_x Anzahl Ortsschritte, z.B.: 300
19 % fehler Fehler zw. lokaler und globaler Lsg
21 % Bsp: [u,dx,fehler]=
test_lokal(2.24*10^(-5),4,-2,4,300)
26 epsilon = 10^(-5); % Regularisierungsparameter
27 dx=2*epsilon/5; % Ortsschrittweite
28 x = (-40*dx:dx:-40*dx+(n_x-1)*dx); % Gitter
29 w = max(abs(ul),abs(ur));
30 dt = 0.06*min([dx/(3*w^2), dx^2/(2*epsilon), dx^3/(3*alpha*epsilon^2)]); % Zeitschrittweite %% fuer
31 % ul<-4 vorne 0.06 durch 0.01 ersetzen!!!
32 n_t=round(Time/dt); % Anzahl Zeitschritte
34 u = zeros(length(x),1); % initialisieren
44 % Loesen des Mikroproblems - Lsg zum Zeitpunkt T
45 for j=1:n_t % ueber Zeit
46 [u]=Phasen_lokal(u,epsilon,alpha,[],dx,dt);
51 % Indices, auf denen Lsg lokal berechnet werden soll
57 % Auslesen der u-Daten an den Index-Stellen
58 [u_index]=u_index_aus(u_sicher,index);
60 % lokale Loesung zum Zeitpunkt T+dt
61 [u,index_n]=Phasen_lokal(u_index,epsilon,alpha,index,dx,dt);
64 % Kontrolle/ global Loesung zum Zeitpunkt T+dt
65 [u_kontrolle]=Phasen_lokal(u_sicher,epsilon,alpha,[],dx,dt);
67 % Fehler zwischen globaler und lokaler Loesung
68 fehler = max(abs(u_kontrolle(index_n)-u));
70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
71 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
74 figure % Plot zu u-Werten
76 plot(x,u_kontrolle,'LineWidth',2)
79 legend('globale Lsg bei T+dt','lokale Lsg bei T+dt')
82 % Bestimmung mittlerer Zustand um und Geschwindigkeit
83 %[um,v]=HMM_UM_GESCHW(u_kontrolle,dx,n_x,ul);
function [ u , dx , fehler ] = test_lokal(Time, ul, ur, alpha, n_x)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 1D, skalare Erhaltungsgl...