Now, I'm going over the Python code, I'm having one for just plotting the log-normal for various spots is important if you want to just play with it, and the other one, I'm going to go actually through the options pricing, why that numerical integration in case of having the conditional probability density function. Now, this one is just simply what they call log-normal for various spot prices. This is simply just importing and NUM B, Shift, Enter. Here are the fixed parameters: interests at five percent, dividend of one percent, somehow I have sigma of 58 percent, doesn't make a difference and a t of one that's phi. Model log-normal, at this point is not really doing anything is just model on the conversation. That's the implementation of log-normal which I have it as a helper, that's just exactly that. Now, plotting density for various slot. Then what I'm doing is I'm actually first making various different for final stock prices. I'm going say from 0.025 which is $0.25 to roughly would be what 350 something, and I first make that grid and I'm passing that through that helper for various different spot prices, as you see, 50, 100, 150, and 200. There are better ways of doing it, this is just for illustrative purposes, done, and what I'm doing is just simply plot it. That's exactly what I had for you guys on the slides. As you see, the blue one is for the case of 50, orange one is to 100, Green 150, and 200 for the red one. Let me see, that's it. That would be the code for, and then of course that one is just simply good. Yes, that's the same thing. Fantastic. In the other code, what I would be doing is as I said I'm going to walk you through the options pricing via numerical integration in case that we have the conditional probability density function. Let me switch to that one now. Again, that's part is the same, no change except on just measuring also time. I just want to see how fast I can evaluate that integral fixed parameters. Now, anyway, let me change this to 140, my apologies, that's 140. Good. Then the spot 100, 140 is right, and interest rate five percent, dividend rate one percent, sigma 30 percent and maturity one. This doesn't do anything, but still I'm just having it there, the same helper as before. Now, evaluate integral. For that one, I'm getting the arguments which our r, q, is not case sigma T, N, and dS, dS is exactly as the same as eta, just calling it ES. A discount factor, of course, once you have r and T, you would have the discount factor, fine. Now, in evaluation of the integral phi, remember we use trapezoidal rule, fine. Calls and Puts are different, as you remember. For a call option, we integrate from K to B, and the way I'm setting it up, I'm actually, once we have dS or the same as eta, maybe I should have changed it to eta. I'm setting up the grid which goes from K to B, which B in this case would become k plus n eta as you remember. That's what I'm doing here, let me give it a bit of a space for it not to get jumped up too much, fine. Now, once I have this S, I can pass it in an eta vector for 10 which are all possible values for this f of S given S not, that's fine as well. I'm setting up the wj, if you remembered for the first case it was eta divided by two or dS divided by two. In the last case, it was a dS, that's fine as well, and then what I would doing is I'm setting up a sum, I could have actually have this one over here, could not be, oh sorry. Let me put this one here just to make sure that it is sitting exactly before via store, not that it makes any difference, but I want to be tighter, good. Then what I'm doing is I'm starting from zero and I evaluate each of those sub-integrals and I'm adding it up. If you remember the way I put it was Sj minus K multiplied by d, f of S given S not multiplied by wj which is depending on your at zero or the one after that. When that's done at the very, very end you just discount it. That's exactly how I would evaluate the call. For the Put, it is almost the same except the way we're setting up the grid. One more time if you remember, for eta it is K divided by N. But knowing that we don't want to start from zero, I call it K minus, you know what? I actually don't even have to do this. That's fine. I can just simply make it like that, that's okay. But I would never want to start from zero because then it would make it undefined, I start from something tiny when it comes to evaluation of the conditional density. You can actually try it yourself, I can say there was a quiz problem too, then the grid would be from say almost zero which is something tiny like $0.10, and then going to N multiplied by eta. Don't forget the reason we're having that one is because the upper bound is an eta which becomes K, if you remember that. Again, we centered through this density to get all conditional densities on each grid points passing it through this loop, and again, I see again, I should have put this one over here which as I said, no difference whatsoever, just makes it a bit cleaner. I'm doing the exact same things, summing up, evaluating each of those. Sub-integrals, I'm summing it up and discounting. That's very, very consistent to exactly what we discussed during the lecture. Very, very consistent and you have the code, you can play with it yourself, that's also done. Now, it's time for me to let's say, for example, for an eight or nine, doesn't make a difference, I do just pricing. That becomes my pricing and I can go through the slides and see these are exactly the values that I populated in those slides for Puts and Calls. The first one is the Put, the second one is the Call. Look at time, we took us to evaluate it, the time is actually 8,000 of a second. It's actually pretty, pretty quick. Pretty fast, sorry. One more time, the question you should ask yourself, if you do have the conditional probability density function, if you do have it, if it's not that expensive to evaluate it, of course, this one wasn't expensive, as you see is pretty fast. Then this method actually pretty feasible. But in general, that's not the case and that's exactly what we will go over it in the next lecture. Thank you.