1 00:00:00,200 --> 00:00:06,820 Welcome to the final section of chapter 12 of the course on numerical methods for computational 2 00:00:06,980 --> 00:00:08,440 science and engineering. 3 00:00:08,600 --> 00:00:16,240 So far in this chapter we have seen general single step methods, more precisely Runge–Kutta 4 00:00:16,400 --> 00:00:22,720 single step method that can be applied to any ordinary differential equation without 5 00:00:22,880 --> 00:00:27,920 assuming any special features of those ODEs. 6 00:00:28,080 --> 00:00:35,840 Conversely in the current section we are going to study methods that exploit particular structure 7 00:00:36,000 --> 00:00:37,000 of an ODE. 8 00:00:37,160 --> 00:00:41,460 They do so for the sake of efficiency and also accuracy. 9 00:00:41,620 --> 00:00:45,040 The focus will be on so called splitting methods. 10 00:00:45,200 --> 00:00:51,080 Let me briefly describe in the beginning the structure of the ODE they take for granted. 11 00:00:51,240 --> 00:00:57,320 What splitting methods need is that the right hand side vector field of the ODE can be written 12 00:00:57,480 --> 00:01:04,520 as the sum of two sub vector fields, here denoted by f and g, which we assume of course 13 00:01:04,680 --> 00:01:06,320 to be sufficiently smooth. 14 00:01:06,480 --> 00:01:13,120 Both f and g then can be used to formulate separate ODEs and those ODEs will come with 15 00:01:13,280 --> 00:01:16,200 associated evolution operators. 16 00:01:16,360 --> 00:01:23,720 So we write phi f for the evolution operator are related to the ODE y dot is f of y and 17 00:01:23,880 --> 00:01:28,140 similarly phi g for the evolution operator induced by the g ODE. 18 00:01:28,300 --> 00:01:32,680 For the time being let's assume that these two evolution operators are available say 19 00:01:32,840 --> 00:01:38,920 in the form of a subroutine and then we are in a position to define splitting methods 20 00:01:39,080 --> 00:01:40,080 for the given ODE. 21 00:01:40,240 --> 00:01:46,360 I am going to confine myself to the two simplest representatives and they are defined as follows. 22 00:01:46,520 --> 00:01:51,240 They are called Lie Trotter splitting and Strenge splitting and I define them through 23 00:01:51,400 --> 00:01:54,800 their associated discrete evolution operators. 24 00:01:54,960 --> 00:02:02,000 Remember that a discrete evolution operator is the core component of a single step method 25 00:02:02,160 --> 00:02:06,980 and so these formulas completely define the two splitting single step methods. 26 00:02:07,140 --> 00:02:14,240 They give their respective discrete evolution operators as compositions of the evolution 27 00:02:14,400 --> 00:02:19,200 operators for the say partial ODE phi g and phi f. 28 00:02:19,360 --> 00:02:23,300 Well I admit this is a rather abstract point of view. 29 00:02:23,460 --> 00:02:26,000 So let me give you more concrete formulas. 30 00:02:26,160 --> 00:02:30,520 Let's start with the simplest representative of a splitting method the Lie Trotter splitting method. 31 00:02:30,680 --> 00:02:35,840 Consider a time step h and now let me elaborate well the formulas starting with the first 32 00:02:36,000 --> 00:02:37,000 time step. 33 00:02:37,160 --> 00:02:44,120 So we start from the initial state then we apply the f evolution to obtain well an intermediate 34 00:02:44,280 --> 00:02:47,320 state that I'm denoting by y one half. 35 00:02:47,480 --> 00:02:52,440 So this is the f evolution applied to the initial state. 36 00:02:52,600 --> 00:02:58,300 And then we apply the g evolution and this gives us the state of the first time step. 37 00:02:58,460 --> 00:03:01,280 And we apply the g evolution to the intermediate state. 38 00:03:01,440 --> 00:03:09,080 And second time step same way another intermediate state now called y three half obtained by 39 00:03:09,240 --> 00:03:16,240 feeding y one state to the f evolution and then another step of the g evolution to obtain 40 00:03:16,400 --> 00:03:17,000 y two. 41 00:03:17,160 --> 00:03:19,120 So this is the Lie Trotter splitting. 42 00:03:19,280 --> 00:03:25,760 There's an intuitive way to visualize this procedure and this can be done as follows. 43 00:03:25,920 --> 00:03:31,880 On the left Lie Trotter starting from initial state we apply the f evolution over time step 44 00:03:32,040 --> 00:03:37,760 h, obtain intermediate state and then the g evolution takes us to the state after the 45 00:03:37,920 --> 00:03:38,860 first time step. 46 00:03:39,020 --> 00:03:43,600 Now let's look at the strength splitting method visualized on the right. 47 00:03:43,760 --> 00:03:49,620 So we apply the f evolution over half the time step now and this gives us an intermediate 48 00:03:49,780 --> 00:03:50,520 state. 49 00:03:50,680 --> 00:03:52,840 Well let me call it y one third. 50 00:03:53,000 --> 00:03:58,200 Then we apply the g evolution over the full time step giving another intermediate state 51 00:03:58,360 --> 00:04:04,440 y two thirds here and then another f evolution over half the time step. 52 00:04:04,600 --> 00:04:07,360 This yields the state of the first time step y one. 53 00:04:07,520 --> 00:04:09,640 Well let me also write down the formulas here. 54 00:04:09,800 --> 00:04:13,480 It's a bit more cumbersome for the strength splitting with time step h. 55 00:04:13,640 --> 00:04:20,840 Here they are say y naught y one third for obtained by well solving the f ODE for time 56 00:04:21,000 --> 00:04:28,800 h over two and then the g ODE over time h and then f ODE again over time h over two. 57 00:04:28,960 --> 00:04:32,640 Second time steps according to the same recipe and so on. 58 00:04:32,800 --> 00:04:37,440 Now I would like to point out a particular simplification which is possible here. 59 00:04:37,600 --> 00:04:43,760 So notice this definition of y one and then when we start the next time step the y four 60 00:04:43,920 --> 00:04:49,480 over three applies again the f evolution for duration h over two. 61 00:04:49,640 --> 00:04:55,320 And now remember that for evolution operators we have this fundamental property that say 62 00:04:55,480 --> 00:05:00,200 for the f evolution when you carry out two of them one after the other then it's the 63 00:05:00,360 --> 00:05:04,520 same as following the evolution over the sum of the durations. 64 00:05:04,680 --> 00:05:10,920 So and as a consequence you can just write the state four over three as the result of 65 00:05:11,080 --> 00:05:16,040 applying the f evolution over the full time step to state two over three. 66 00:05:16,200 --> 00:05:19,940 And the same for state seven over three. 67 00:05:20,100 --> 00:05:27,560 This is the full f evolution of duration h applied to five over three state. 68 00:05:27,720 --> 00:05:34,680 So and well this should make it clear how to implement the strength splitting single 69 00:05:34,840 --> 00:05:37,920 step methods over several time steps efficiently. 70 00:05:38,080 --> 00:05:45,080 Because what we do we start from initial state then of course it's a half time step. 71 00:05:45,240 --> 00:05:48,200 We highlight this for the f evolution. 72 00:05:48,360 --> 00:05:54,600 This gives us the one over three state and then full time step for the g evolution y 73 00:05:54,760 --> 00:05:55,800 two over three. 74 00:05:55,960 --> 00:06:00,480 Then full time step f evolution this gives y five over three. 75 00:06:00,640 --> 00:06:05,920 Then another full time step of the g evolution and now we are at seven over three and now 76 00:06:06,080 --> 00:06:07,820 you see how it's going on. 77 00:06:07,980 --> 00:06:13,280 So maybe here we have another full time step of the f evolution giving a state. 78 00:06:13,440 --> 00:06:16,840 Well don't worry about the index. 79 00:06:17,000 --> 00:06:23,080 The idea should be clear the full g evolution over duration h gives another state and the 80 00:06:23,240 --> 00:06:33,400 final step is the second say half step phi h over two f and this gives us the final state. 81 00:06:33,560 --> 00:06:40,400 Of course assuming time stepping on a temporal mesh with capital M intervals and now you 82 00:06:40,560 --> 00:06:49,680 see that over several time steps so literata splitting and strength differ only in the 83 00:06:49,840 --> 00:06:51,200 first and last step. 84 00:06:51,360 --> 00:06:55,820 So they're essentially the same with the exception of the first and last step and so the computational 85 00:06:55,980 --> 00:07:01,080 effort for both method over many time steps is essentially the same. 86 00:07:01,240 --> 00:07:08,560 Well I've just outlined this idea with some confidence but will these methods work? 87 00:07:08,720 --> 00:07:11,760 Will they provide suitable approximate states? 88 00:07:11,920 --> 00:07:13,440 Are they valid single step methods? 89 00:07:13,600 --> 00:07:20,560 Let's study this in a numerical experiment sort of artificial experiment studying this 90 00:07:20,720 --> 00:07:22,140 initial value problem. 91 00:07:22,300 --> 00:07:31,760 The right hand side is the sum of two functions and for both it's possible to find the exact 92 00:07:31,920 --> 00:07:33,020 evolution operators. 93 00:07:33,180 --> 00:07:36,200 This is possible because this is a scalar ODE. 94 00:07:36,360 --> 00:07:39,280 I'm not going to elaborate the computations. 95 00:07:39,440 --> 00:07:45,920 I'm giving you the formulas for the exact evolution operators for the f and the g ODE 96 00:07:46,080 --> 00:07:52,220 and now I have implemented both splitting methods and I ran them with many different 97 00:07:52,380 --> 00:07:55,940 time steps and I tracked the error at final time. 98 00:07:56,100 --> 00:08:03,480 So and this is the resulting plot doubly logarithmic time step versus error. 99 00:08:03,640 --> 00:08:09,040 What you see is that the error points are nicely located on the straight lines and this 100 00:08:09,200 --> 00:08:12,500 is clear evidence of algebraic convergence. 101 00:08:12,660 --> 00:08:19,600 So in this experiment you observe a behavior that is already familiar from Runge Kutta 102 00:08:19,760 --> 00:08:21,080 single step methods. 103 00:08:21,240 --> 00:08:27,520 That is, they will converge algebraically and with an integer order or an integer rate 104 00:08:27,680 --> 00:08:28,720 to be precise. 105 00:08:28,880 --> 00:08:36,000 And so well we can guess that the splitting single step methods also enjoy algebraic convergence 106 00:08:36,160 --> 00:08:40,180 with integer rate and we call that rate their order. 107 00:08:40,340 --> 00:08:45,840 So what we see in this experiment is that Lietrauter splitting is of order one and the 108 00:08:46,000 --> 00:08:48,400 Strang splitting is of order two. 109 00:08:48,560 --> 00:08:56,040 And there's not only empiric evidence, there's also a rigorous theoretical foundation for 110 00:08:56,200 --> 00:08:57,280 that claim. 111 00:08:57,440 --> 00:09:03,000 Numerical analysts can establish that what we have observed is a theoretical fact that 112 00:09:03,160 --> 00:09:11,320 Lietrauter will enjoy algebraic convergence of order one and Strang will converge quadratically 113 00:09:11,480 --> 00:09:13,240 in the time step size. 114 00:09:13,400 --> 00:09:17,080 Of course in this experiment I used a uniform time step. 115 00:09:17,240 --> 00:09:23,320 Well it's rather the exception that we have the exact evolutions at our disposal. 116 00:09:23,480 --> 00:09:28,520 So what can we do in case we cannot compute them analytically? 117 00:09:28,680 --> 00:09:33,260 Well the entire splitting single step method just produces approximate states. 118 00:09:33,420 --> 00:09:40,280 So it's a natural idea to use also approximations as a replacement for the exact evolution. 119 00:09:40,440 --> 00:09:43,880 And this leads to inexact splitting methods. 120 00:09:44,040 --> 00:09:50,920 As I told you they are based on the simple idea that the exact evolutions are replaced 121 00:09:51,080 --> 00:09:53,460 with suitable discrete evolutions. 122 00:09:53,620 --> 00:10:00,000 So let's study this in the same setting as we have used for studying the convergence 123 00:10:00,160 --> 00:10:01,560 of single step methods. 124 00:10:01,720 --> 00:10:04,280 It's again this initial value problem. 125 00:10:04,440 --> 00:10:11,240 And now instead of using the exact evolutions I use our two splitting methods with particular 126 00:10:11,400 --> 00:10:19,640 discrete evolutions related to simple single step methods of Runge Kutta type. 127 00:10:19,800 --> 00:10:25,720 Again I've used sequences of uniform time steps, monitored the error at final time and 128 00:10:25,880 --> 00:10:26,940 plotted it. 129 00:10:27,100 --> 00:10:28,620 So this is what we get. 130 00:10:28,780 --> 00:10:33,200 The red curve this is here Lietrauter, the order one method. 131 00:10:33,360 --> 00:10:41,480 But now instead of solving the sub steps exactly we just use the simplest possible single step 132 00:10:41,640 --> 00:10:43,700 method, the explicit Euler. 133 00:10:43,860 --> 00:10:45,240 And nothing goes wrong. 134 00:10:45,400 --> 00:10:48,060 So we still have order one convergence. 135 00:10:48,220 --> 00:10:53,560 Now second experiment we use strength splitting which is known to be of order two. 136 00:10:53,720 --> 00:10:57,640 But now we use it with explicit Euler. 137 00:10:57,800 --> 00:11:00,680 And well what we get now is this one. 138 00:11:00,840 --> 00:11:06,640 We see that this was not a good idea because we have sacrificed second order and we've 139 00:11:06,800 --> 00:11:09,520 obtained only a convergence rate one. 140 00:11:09,680 --> 00:11:11,160 How can we remedy this? 141 00:11:11,320 --> 00:11:12,320 Let's try. 142 00:11:12,480 --> 00:11:16,600 Actually we have to use a more accurate method for the sub steps. 143 00:11:16,760 --> 00:11:23,760 So let's use strength splitting with the explicit midpoint rule which is a second order explicit 144 00:11:23,920 --> 00:11:25,160 single step method. 145 00:11:25,320 --> 00:11:26,960 And well we can be happy. 146 00:11:27,120 --> 00:11:28,840 This is the blue line. 147 00:11:29,000 --> 00:11:30,200 Second order is restored. 148 00:11:30,360 --> 00:11:37,120 So the bottom line somehow the discrete evolutions we use for G and F they have to match the 149 00:11:37,280 --> 00:11:39,100 order of the splitting methods. 150 00:11:39,260 --> 00:11:43,720 So this seems to be the recipe and there's a rigorous theoretical foundation for that 151 00:11:43,880 --> 00:11:44,560 recipe. 152 00:11:44,720 --> 00:11:49,000 So for strength splitting use second order discrete evolutions. 153 00:11:49,160 --> 00:11:52,360 For Liedrotter well you don't have to bother about anything. 154 00:11:52,520 --> 00:11:54,560 Just use a consistent method. 155 00:11:54,720 --> 00:11:59,640 But we have seen that strength and Liedrotter are equally expensive. 156 00:11:59,800 --> 00:12:05,360 So why should ever anyone go for Liedrotter if you can use strength splitting. 157 00:12:05,520 --> 00:12:11,340 But then of course well you have to put a little more effort into the into approximating 158 00:12:11,500 --> 00:12:12,500 the sub steps. 159 00:12:12,660 --> 00:12:19,420 Now when you look at the data more closely you may object there's one line that contradicts 160 00:12:19,580 --> 00:12:20,620 the recipe. 161 00:12:20,780 --> 00:12:22,780 So let me point out this one. 162 00:12:22,940 --> 00:12:25,720 This is strength splitting with Euler methods. 163 00:12:25,880 --> 00:12:28,420 Euler methods only for the F evolution. 164 00:12:28,580 --> 00:12:35,300 But in a very strange combination for one half step we use explicit Euler and for the 165 00:12:35,460 --> 00:12:38,640 other half step we use implicit Euler. 166 00:12:38,800 --> 00:12:41,840 And then what we get is second order. 167 00:12:42,000 --> 00:12:48,480 This is a very exotic case and it has to do with some particular cancellation due to the 168 00:12:48,640 --> 00:12:52,160 combination of explicit and implicit Euler. 169 00:12:52,320 --> 00:12:58,160 And anyway this kind of combination would thwart the advantage of strength splitting 170 00:12:58,320 --> 00:13:02,640 so that you can combine successive half steps. 171 00:13:02,800 --> 00:13:05,280 So I would say ignore this. 172 00:13:05,440 --> 00:13:06,520 Just a quirk. 173 00:13:06,680 --> 00:13:09,060 All right splitting methods work. 174 00:13:09,220 --> 00:13:10,760 We know how to implement them. 175 00:13:10,920 --> 00:13:13,440 Well when should they be used? 176 00:13:13,600 --> 00:13:15,960 The sort of standard application scenario. 177 00:13:16,120 --> 00:13:23,640 We have an ODE whose right hand side vector field is the sum of two vector fields. 178 00:13:23,800 --> 00:13:31,440 And now a common situation is that the F vector field gives rise to an ODE for which associated 179 00:13:31,600 --> 00:13:34,840 initial value problems tend to be very stiff. 180 00:13:35,000 --> 00:13:39,540 However maybe this F is simple enough so that here we have an analytic solution. 181 00:13:39,700 --> 00:13:46,960 The G ODE will never lead to stiffness because G has well according harmless properties. 182 00:13:47,120 --> 00:13:52,200 And then splitting methods can be used for the sake of efficiency. 183 00:13:52,360 --> 00:13:54,040 Let's look at a concrete example. 184 00:13:54,200 --> 00:13:55,200 This one. 185 00:13:55,360 --> 00:13:57,560 So here we split into two parts. 186 00:13:57,720 --> 00:14:01,260 So this is the F of Y part and this is the G of Y part. 187 00:14:01,420 --> 00:14:06,100 The F of Y part is the logistic ODE right hand side. 188 00:14:06,260 --> 00:14:13,880 Since lambda is 100 this is very stiff for states close to the strongly attractive fixed 189 00:14:14,040 --> 00:14:15,040 point one. 190 00:14:15,200 --> 00:14:20,840 And this is where the solutions of this ODE will invariably tend to. 191 00:14:21,000 --> 00:14:24,760 The G ODE is harmless since alpha is one. 192 00:14:24,920 --> 00:14:28,020 The sign has a nicely bounded derivative. 193 00:14:28,180 --> 00:14:31,000 So no problem for the G ODE. 194 00:14:31,160 --> 00:14:32,160 Non stiff. 195 00:14:32,320 --> 00:14:39,760 Now when you apply a standard explicit adaptive time stepping method to the whole ODE for 196 00:14:39,920 --> 00:14:46,080 instance this ODE 4.5 then you see the typical effect of stiffness. 197 00:14:46,240 --> 00:14:50,760 Integration will be very slow and deliver only very poor accuracy. 198 00:14:50,920 --> 00:14:58,120 Well because the stiff F part dominates the properties of the right hand side and so it 199 00:14:58,280 --> 00:15:01,960 thwarts the use of explicit single step methods. 200 00:15:02,120 --> 00:15:05,560 Well we have an analytic solution for the logistic ODE. 201 00:15:05,720 --> 00:15:11,520 So now let's look at a splitting approach both literature and strength where we solve 202 00:15:11,680 --> 00:15:18,980 the stiff part analytically and use a simple explicit single step method for the G part. 203 00:15:19,140 --> 00:15:20,880 And this is what we get. 204 00:15:21,040 --> 00:15:22,080 This is the solution. 205 00:15:22,240 --> 00:15:24,880 The exact solution is the green dashed line. 206 00:15:25,040 --> 00:15:30,060 All splitting methods were used with uniform time step and rather large time steps. 207 00:15:30,220 --> 00:15:33,480 And they have no trouble following the exact solution. 208 00:15:33,640 --> 00:15:37,240 No instability occurs despite the large time step. 209 00:15:37,400 --> 00:15:44,400 So the exact integration of the stiff part has cured all the problems. 210 00:15:44,560 --> 00:15:52,400 And for the non stiff G part here we use for instance for literature combined with explicit 211 00:15:52,560 --> 00:15:53,560 Euler. 212 00:15:53,720 --> 00:15:55,380 So a very simple single step method. 213 00:15:55,540 --> 00:15:59,080 So for this particular problem the splitting approach works very well. 214 00:15:59,240 --> 00:16:04,960 It is very efficient because you get good accuracy already with a large time step using 215 00:16:05,120 --> 00:16:07,380 very simple single step methods. 216 00:16:07,540 --> 00:16:10,520 Of course this is a sort of artificial example. 217 00:16:10,680 --> 00:16:17,160 Closer to practical applications is the next example that studies an ODE like this. 218 00:16:17,320 --> 00:16:22,120 Well the right hand side vector field is a sum of two parts. 219 00:16:22,280 --> 00:16:30,040 The first part is minus AY where A is a symmetric positive definite matrix. 220 00:16:30,200 --> 00:16:33,540 And now we assume that this matrix is large. 221 00:16:33,700 --> 00:16:36,620 So n very large, say a million. 222 00:16:36,780 --> 00:16:41,660 And we also know that the eigenvalues of A have a large spread. 223 00:16:41,820 --> 00:16:45,080 And this means, well let's call this 1, 2. 224 00:16:45,240 --> 00:16:54,460 So from 1 we conclude that the ODE Y dot is AY will induce stiff initial value problem. 225 00:16:54,620 --> 00:17:00,360 Essentially regardless of the state because here we have a constant Jacobian of the right 226 00:17:00,520 --> 00:17:04,880 hand side vector field which is just A. And so for any state you have stiffness here. 227 00:17:05,040 --> 00:17:10,000 So you could really call this a stiff ODE though strictly speaking stiffness is a property 228 00:17:10,160 --> 00:17:11,880 of an initial value problem. 229 00:17:12,040 --> 00:17:19,080 So for the function G we assume that its derivatives are very nicely bounded. 230 00:17:19,240 --> 00:17:23,200 Well size 1 like the derivative of the sign in the previous example. 231 00:17:23,360 --> 00:17:30,920 And so the second part is well decoupled scalar differential equations that are non stiff. 232 00:17:31,080 --> 00:17:40,320 So assumption 2 means that say YJ dot is G of YJ will never induce a stiff initial value 233 00:17:40,480 --> 00:17:41,480 problem. 234 00:17:41,640 --> 00:17:42,700 Let's call it non stiff. 235 00:17:42,860 --> 00:17:49,240 Now let's apply a splitting approach based on this obvious additive decomposition of 236 00:17:49,400 --> 00:17:51,360 the right hand side vector field. 237 00:17:51,520 --> 00:17:53,360 So what do we do? 238 00:17:53,520 --> 00:17:55,280 So this will be the first function. 239 00:17:55,440 --> 00:18:01,360 Now I can now call it F. We call it F1 of Y and this is F2 of Y. 240 00:18:01,520 --> 00:18:06,600 Now what can we do for the ODE Y dot is F1 of Y. 241 00:18:06,760 --> 00:18:09,460 Remember this is the stiff ODE. 242 00:18:09,620 --> 00:18:15,120 You have to use a numerical method suitable for stiff initial value problem. 243 00:18:15,280 --> 00:18:20,840 For instance use an L stable implicit Runge Kutta single step method. 244 00:18:21,000 --> 00:18:27,040 Well necessarily we have to use an implicit single step method because here we have stiffness. 245 00:18:27,200 --> 00:18:32,240 The use of this method is not really problematic though it's implicit. 246 00:18:32,400 --> 00:18:34,880 Because first of all this is a linear ODE. 247 00:18:35,040 --> 00:18:38,380 Let me remark this with a constant matrix. 248 00:18:38,540 --> 00:18:43,640 So though you have to solve a linear system of equations for the increments this linear 249 00:18:43,800 --> 00:18:46,880 system will be the same in every time step. 250 00:18:47,040 --> 00:18:54,000 And so we can compute its LU decomposition once and then reuse it in every time step. 251 00:18:54,160 --> 00:19:01,760 For the second ODE defined by F2 well we can use any explicit Runge Kutta method. 252 00:19:01,920 --> 00:19:03,740 It's first of all decoupled. 253 00:19:03,900 --> 00:19:10,060 So it's just an explicit Runge Kutta method for the for capital N scalar ODE's and implementation 254 00:19:10,220 --> 00:19:13,120 of an explicit Runge Kutta method is straightforward. 255 00:19:13,280 --> 00:19:16,080 No need to solve any nonlinear system. 256 00:19:16,240 --> 00:19:21,340 Moreover we have seen that assuming that we use the strength splitting it's already sufficient 257 00:19:21,500 --> 00:19:24,560 to use only second order methods. 258 00:19:24,720 --> 00:19:33,220 So explicit Rupp–Pessoa rule for the F2 ODE and say implicit Radao method two stage 259 00:19:33,380 --> 00:19:36,220 Radao method for the F1 ODE. 260 00:19:36,380 --> 00:19:39,200 Say let me put this here two stage Radao. 261 00:19:39,360 --> 00:19:45,400 The second example is highly relevant because in particular in computational physics mathematical 262 00:19:45,560 --> 00:19:51,040 models that feature ODE's with this particular structure are very common. 263 00:19:51,200 --> 00:19:57,560 So splitting methods are in fact of high practical relevance and it's important to know this 264 00:19:57,720 --> 00:20:03,820 idea to be able to use it in particular for the sake of efficient numerical integration.