rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
test_lokal_old.m
Go to the documentation of this file.
1 function [u,dx,fehler]=test_lokal(Time,ul,ur,alpha,n_x)
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 % %
4 % 1D, skalare Erhaltungsgleichung %
5 % %
6 % mikroskopisches Modell (lokale Regularisierung) %
7 % u_t+f(u)_x = epsilon u_{xx} + alpha*epsilon^2 u_{xxx} %
8 % mit f(u) = u^3 %
9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10 %
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
16 %
17 % Output: u Lsg
18 % dx Ortsschrittweite
19 % fehler Fehler zw. lokaler und globaler Lsg
20 %
21 % Bsp: [u,dx,fehler]=test_lokal(2.24*10^(-5),4,-2,4,300)
22 
23 
24 
25 close all
26 clc
27 
28 epsilon = 10^(-5); % Regularisierungsparameter
29 dx=2*epsilon/5; % Ortsschrittweite
30 x = (-40*dx:dx:-40*dx+(n_x-1)*dx); % Gitter
31 w = max(abs(ul),abs(ur));
32 dt = 0.06*min([dx/(3*w^2), dx^2/(2*epsilon), dx^3/(3*alpha*epsilon^2)]); % Zeitschrittweite %% fuer
33  % ul<-4 vorne 0.06 durch 0.01 ersetzen!!!
34 n_t=round(Time/dt); % Anzahl Zeitschritte
35 
36 u = zeros(length(x),1); % initialisieren
37 for i=1:length(x)
38  if x(i)<0
39  u(i) = ul;
40  else
41  u(i) = ur;
42  end
43 end
44 
45 % Loesen des Mikroproblems - Lsg zum Zeitpunkt T
46 for j=1:n_t % ueber Zeit
47  [u]=Phasen_lokal(u,epsilon,alpha,[],dx,dt);
48 end
49 
50 u_sicher = u;
51 
52 % Indices, auf denen Lsg lokal berechnet werden soll
53 i1=(15:1:20);
54 i2=(150:1:170);
55 i3=(190:1:200);
56 index=[i1,i2,i3];
57 
58 % lokale Loesung zum Zeitpunkt T+dt
59 [u,index_n]=Phasen_lokal(u_sicher,epsilon,alpha,index,dx,dt);
60 X = x(index_n);
61 
62 % Kontrolle/ global Loesung zum Zeitpunkt T+dt
63 [u_kontrolle]=Phasen_lokal(u_sicher,epsilon,alpha,[],dx,dt);
64 
65 % Fehler zwischen globaler und lokaler Loesung
66 fehler = max(abs(u_kontrolle(index_n)-u));
67 
68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
70 % PLOT
71 
72 figure % Plot zu u-Werten
73 hold on
74 plot(x,u_kontrolle,'LineWidth',2)
75 plot(X,u,'ro')
76 title('u')
77 legend('globale Lsg bei T+dt','lokale Lsg bei T+dt')
78 xlabel('x')
79 
80 % Bestimmung mittlerer Zustand um und Geschwindigkeit
81 %[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...
Definition: test_lokal.m:17