 I got a little bit messed up with the generating function approach and I want to try and convince you that everything is actually much easier than it seems and it's just if you're sloppy that's when you get yourself into problems. So anyways, let's sort of recapitulate. So we imagine a system that consists of particles which we can think of as bacteria that die at a certain rate and each one gives birth at the same rate. And because these birth and death rates are the same, the population overall is neutral. That is that the average number of particles doesn't change. So if you were just to write a rate equation for the average number of particles, dndt, you would just write zero. So it looks like nothing happens. But in fact, if you look at the underlying probability distribution, much happens and that's what we're going to be discussing now. So last time we talked about the master equation for the probability that there are n particles in the system at time t, pn of t. And so if I look at the time derivative of this thing, it's equal to n minus one pn minus one minus two n pn plus n plus one pn plus one. And again, the explanation of these different terms is that if I have n minus one particles in the system, each one can give birth at the rate one. And so with the overall rate n minus one, you can go from n minus one particles in the system to n particles in the system. So this term describes the gain in the probability that there are n particles in the system. Similarly here, if I have n plus one particles in the system and one of those n plus one particles dies at the rate one, so the overall death rate of the population is n plus one, then you can go from n plus one particles to n. And sitting here with n particles in the system, any one particle can either give birth or die, so the total rate of any one particle in the system changing is two. The total rate of any particle in the system dying is two n. And so with the overall rate two n, you lose probability that there are n particles in the system. But in fact, if I just write it blindly like this, it's a little bit misleading because one should pay attention to boundary conditions. So let's write down the first few equations just to see what's happening. So let's look at p0 dot. Well, there's no contribution from minus one particles because n can't be less than zero. And once you reach zero particles, nothing happens. So there's no contribution from this term. So the only contribution is from here. And so when n is equal to zero, you're going to get p1. So that is the rate equation or the master equation for p0 dot. For p1 dot, so again, if I have one particle in the system, there's no way I can start with zero particles and create a particle. So there's no contribution from this term. And so you just have minus two p1 plus two p2. And finally, p2 dot is now got all the terms of the equation because if you have, you can have one particle and one of them gives birth. And so you're going to have p1 minus four p2 plus three p3. And let me write down one more. p3 dot is equal to, so I'll have two p1 minus six p3 plus four p4. So first point is the fact that there's term here and here and here that are missing. And that's how I got messed up at the end of yesterday's lecture. Second point is that if you just write down the equations one by one, it looks a little bit formidable because these coefficients seem kind of strange in how you're going to deal with these weird coefficients. But when you write it for general end, it looks a lot simpler. So once again, to solve these equations, you could, if you are a masochist, just do it by trying to solve one by one. But a much better way is by the generating function. And so I'm going to define the generating function g of t of z and t is equal to summation from n equals zero to infinity pn of t z to the power n. So what I need to do is I've got to multiply this equation by z to the power n and then make a summation from n equals zero to infinity. But in so doing, I have to be a little bit careful because again, like what I messed up yesterday is that I had my limits wrong because I sort of included these missing terms that aren't here. So let's be a little bit more careful in writing down the generating function. And so in this equation, on the left-hand side of the equation, we just have the time derivative of the generating function. So I will get zg by dt. And now on the right-hand side, there's three types of terms. There's terms from the gain term from n minus 1. And so let's look at what that is. So there's nothing from here. There's nothing from here. It starts at this point. And so what we're going to have here is summation from, and so, like if I'm doing the generating function approach, this equation will be multiplied by z to the power 0. This one is multiplied by z to the power 1. This one is multiplied by z to the power 2. And so on down the road, cq. So for this set of terms, we start here. And so we're going to have a summation that starts at, so it's going to be summation, pn minus 1 z to the power n. And it starts from n equals 2 to infinity. And so that's what's slightly different than yesterday, because I had that wrong. And so now the next term is minus 2 summation from 1 n equals 1 to infinity. And we're going to have, sorry, I forgot the n minus 1. So let's go back here. So it's n minus 1 pn minus 1 z to the power n. Here I have 2 n pn z to the power n. And finally the last term, plus, and so it'll be n plus 1 pn z to the power n. And this one starts with n equals 0. pn plus 1, yes, thank you. I've got to write this bigger. pn plus 1 z to the power n. OK, so now let's look at these terms one by one. And so it's now going to look like kind of dorky, tedious details, but the point is that these details, as you're going to see, it's actually quite simple. And also once you see it once, it's the same thing over and over again. So it's really a general tool here. It's not just idiosyncratic to each separate problem. So let's look at the first term. And so I don't want to erase too much here. So I have summation 2 to infinity n minus 1 pn minus 1 zn. So I can write this factor out of z. So it's 2 to infinity n minus 1 pn minus 1 z to the n minus 1. Now let's also now relabel the index. So I can call the index m, which is n minus 1. And so m, if n is 2, m is 1. So we can rewrite this as z is from 1 to infinity. And now I have m pm z to the n. But since it's a dummy index, we can just call it n pn z to the n. And then the last step is, well now, but to bring down the factor n, I can just differentiate the z to the n, but then I have z to the n minus 1. So I've got to multiply by z to restore it. So this is the same as z squared d by dz summation. Oh, one more thing before I do that step. One more thing is that notice here, this summation goes from 1 to infinity n pn zn. So if I put in the term n equals 0, well, that doesn't change anything because it's multiplied by 0. So this is the same as z summation 0 to infinity n pn z to the n. And finally I say, well, I can now generate the n in front by differentiating respect to z and multiplying by z to restore the power of z. So this is nothing more than z squared d by dz summation from 0 to infinity of pn z to the n, which is nothing more than z squared d by dz of the generating function itself. And so I'm not going to do the remaining two turns because this is exactly the same manipulation. It's elementary. You just have to be careful. But there's no big deal to it. And so the final result is you're going to get z minus 1 squared dg by dz. So that is the equation that's satisfied by the generating function. And once again, you might say, well, this is very idiosyncratic. But in general, when you're dealing with any kind of a birth-death-like process with local hopping, you'll always have the differential equation for the generating function. It's first order in time and first order in the z coordinate with some function of z out in front. And this is the wave equation in disguise. And because it's the wave equation, that we know how to solve it. And so that's what I'm going to do momentarily. And so it's really not a very difficult problem. So how is this the wave equation in disguise? So let me define a new variable dy is equal to dz over 1 minus z squared. And so this thing is nothing more than dg by dy. And so the solution to this equation, the general solution g as a function of y and t, is any function under the sun of y plus t, where the function f itself is determined by the initial condition. So that's what I'm saying. It's an easy solution. And so no matter how complicated the function is here, by making this variable transformation, you always have the solution to the problem. So to complete the solution, we just have to match everything to the initial condition. So the natural initial condition here is starting with a single particle. So for Pn at t equals 0 is equal to delta n1, chronic or delta again. Then this tells me that the initial generating function, g of z at t equals 0. So it's 1 times z equals z. But this solution of the wave equation is in terms of the y variable. So to actually match to the initial condition, we've got to re-express z as a function of y. And you see just from this equation right away that y is equal to 1 over 1 minus z, from which z is equal to 1 minus 1 over y. So if the initial condition is z, then it says that g of y at t equals 0 is equal to 1 minus 1 over y. So here, going back here, we have g of y and 0, which we said was equal to 1 minus 1 over y. And so that tells us that this thing, our function f, is just 1 minus 1 over y. So the function, OK, so f of y was equal to 1 over 1 minus y. So f of y plus t, just replace y by y plus t, oh, sorry, 1 minus 1 over y. Sorry, dyslexia strikes again. So my f of y is equal to 1 minus 1 over y, right? So that means that f of y plus t, y plus t, is equal to 1 minus 1 over y plus t. So that's my solution. Now, it's not quite the solution you want, because this is a function of y. And in order to compute each individual pn, we would like this as a function of z so we could think of the power series representation as a function of z. So we have to do just a smidgen of work here, because we just have to re-express y as a function of z. So it says a g z t is equal to 1 minus 1 divided by y is 1 minus z, 1 over 1 minus z plus t. So this really is my solution. And all we have to do now is expand this in a power series in z, and we're done. And so let me do the first few steps of that. So g z and t is equal to. So it turns out what's convenient here is to just multiply through by 1 minus z, so 1 minus. So multiply top of bottom by 1 minus z. I have 1 minus z, 1 plus t, 1 minus z. And I'll write this as 1 minus 1 minus z. So I have 1 plus t, I'll write it bigger, 1 plus t minus z. And I'll write this as 1 minus 1 minus z, 1 plus t times quantity 1 minus z, t over 1 plus t. And I'll just do the next very first step, 1 minus z, 1 minus t, 1 plus t. And then I have a power series summation from n equals 0 to infinity, t over 1 plus t to the power n, z to the power n. And now what I need to do is I have to extract from this power series representation the term of order z to the power n. And the only thing that makes it a little bit tedious is there's a z to the n from the power series, but here there's a 1 and a z. So you've got to do a little bit of manipulation. So let me just not do any of those horrible steps because the chances of me doing it wrong are sort of order 1. And let me just tell you what the result is. And the result is the following. p0 is equal to t over 1 plus t. And pn is equal to t to the power n minus 1, I think. Let me just check that that's right. Yeah, it's even right. OK. So you see the final answer is actually very simple in mathematical form. And let me just mention a few sort of outstanding features of this solution, which is first of all, this is the extinction probability. Probably there are no particles in the system. So this extinction probability is going to 1 as time goes to infinity. And correspondingly, s of t, the survival probability, which I've defined as 1 minus the extinction probability, is equal to 1 divided by 1 plus t. So this system of bacteria goes extinct, for sure. It's just that it happens in a power law fashion. And the thing which is kind of amusing is that you compare this to the good old random walk where the hopping rates are equally probably left or right, but not getting faster and faster the larger, the further away you go from the origin. In that case, the survival probability decays asymptotically like 1 over the square root of t. Here, the survival probability decays like square root of t. So anyways, that is a solution, full solution, for the birth-death process by the generating function approach. It's very elegant. It's very compact. It's very beautiful, I think. And the tricks and the tools that I've shown you here are very generic. So once you've seen one generating function problem solution, one problem solved by the generating function, you should have confidence to solve many others. Yes? If, in the case, new equals sigma, I mean birth-rate equals death-rate. Yeah, so in the case where the birth-rate is not equal to the death-rate, the polynomial out in front is still a quadratic polynomial, but it's more complicated. But it still can be factorized, and you can still, it's much uglier, but you can still do the same trick. So in general, as long as this polynomial is less than a fifth-degree polynomial, you can always solve it. So if you were doing something where there's, well, actually, I'll tell you a problem that I don't know how to solve, and I'd love to know how to solve it. Suppose you had a bursty birth-death process. That is, with some rate, you give birth to twins, and at some rate, you die. And choose the birth-rate and the death-rate, such that the system is overall neutral. So I can go through all the same calculus. It looks all very beautiful. And you end up, when you get to this stage, that here there's a logarithm. And I have no idea how to deal with it. So I would love to know the solution to the bursty birth-death process. So for those of you out there, solve for me the bursty birth-death process, and I will be very happy for you. And you will be very happy for yourself as well. OK. Thank you for the question. OK. So that ends the first topic of this course. And the second topic that I'd like to now turn to is irreversible aggregation. So irreversible aggregation is a generic process that happens everywhere in non-equilibrium systems. You have the universe, which is a problem situation where you have gravitationally driven aggregation of stars, of star clusters, of galaxies, galactic clusters. And one might ask, well, for this aggregation process, what is the size distribution of aggregates that it can occur? Another example would be making gelatin dessert, where you have this powder. You put it into a bowl. You put it in water. You mix it up. You put it in the refrigerator, and like half an hour later, instead of being liquid, it's a gel. It's a single interconnected molecule. And in this case, at the microscopic level, one has multifunctional microscopic units that are very interactive. And so many arms of the molecules will grab each other. And as a system, as the largest molecule grows, it has more grabby arms. And so there's a rate of grabbiness, which is getting larger and larger as the largest molecule grows. And you have this phase transition from a sol phase, where one has only finite molecules to a gel phase, where one has one macroscopic molecule that spans the system. So one can think of many other examples for many different fields of physics where this aggregation occurs. I mean, one example is the road that goes along, just along the sea here. It's a one-lane road. You can't pass any cars. And so if you are in your little alpha Romeo and you want to go 150 kilometers an hour, but then you go behind a little old lady who's going 30 kilometers an hour, you have to go 30 kilometers an hour. And so as traffic moves along this one-way roadway, you're limited by the cluster of cars in front of you that are moving slower than you. And then a cluster of cars that's moving slowly can catch up to an even slower cluster of cars. And there's an irreversible aggregation process occurring. So that's another example of irreversible aggregation. So the cartoon picture is I have a cluster of mass i and a cluster of mass j. And they come together at some rate that depends on the size of these two clusters and makes something of size i plus j. And the question that we want to ask ourselves what is the concentration of clusters of mass i at time t? So the basic variable is Ck of t, concentration of k-mers. So polymers of size k, k-mers, concentration of k-mers at time t. And so the way that one attacks this problem is one tries to write down some kind of a kinetic equation that describes the evolution of this probability distribution of k-mer concentrations. So let me write down the master equation for this process. And then I'll try and justify it. So by the way, I should say that in everything that I'm discussing so far, I'm always treating the simplest case of the mean field limit, where the system is extremely well mixed. And so the rate at which any cluster meets anybody else is the same. And in that limit, this one, one can write down equations of the type that I'm going to write down. So I'm going to write Ck of t dot. How does this change with time? So there's two ways a cluster that this can change. Again, from the very first equation I wrote down in the class, there's a gain term and there's a loss term. And the gain term comes because of smaller clusters of, say, a cluster of mass i and mass j, whose sum adds to k, come together and make a k-mer. And there's a loss term because a k-mer can interact with anybody else, and you lose k-mers that way. And so the equation looks as follows. So it's a summation i and j with i plus j equals to k. And there'll be kij, because that's a rate at which i and j come together. There's some underlying rate. This thing will contain all the microscopic physics in the problem, kij, ci, cj. And I have to include a factor 1 half because I've overcounted because there's two combinations I could have if I want to make a cluster of size 17. I could have 7 and 10 come together. But i is 7, j is 10, or vice versa. So I have to include this factor 1 half here. And then there's minus a summation over all i equals 1 to infinity of kikcick. Those are the master equations. And before I do anything, let me just outline what are the main features that go into this equation. So the first point is the mean field approximation. So I'm assuming that the rate at which any cluster of size i and j come together doesn't depend on i and j. So all we have here is the average concentrations. And so in that spirit, there's no space. I'm assuming a perfectly well-mixed system, so I don't have any spatial degrees of freedom. There's no shape. So if a cluster is very long and stringy or very compact, the rate of interaction of such a cluster does not depend at all on any shape degree of freedom. So in some sense, you can think of your clusters here as like spherical droplets. And every time they come together, they become like another larger spherical droplet. So there's no shape degrees of freedom. What else do I want to say about that? Yes. And the other point here is that the number of particles is going to infinity. So there's no fluctuations due to the finiteness of the system. So I'm thinking that there's a smooth concentration. So if I look at a large volume, the number of clusters of any size is just the average concentration multiplied by the volume. And there's no regions where there's no dimers, for example, because the concentration is so low. So I'm assuming that number of particles goes to infinity, so I can spread out my clusters evenly, uniformly, no matter how small the concentration is. So these assumptions underlie equations of this type. But now the goal is to try and solve these equations. And once again, as in the case of the birth-death process, we're going to see that the generating function is like the clean way of solving this equation. And you get a very beautiful and simple solution with relatively little work. So first point is that we need to specify the microscopics to make any progress. If you need to define this, this is sometimes called the reaction kernel, reaction rate or reaction kernel. And once we specify it, then maybe we can make some progress. And I'm going to consider just two specific and paradigmatic examples here. One is the so-called constant kernel aggregation, where I just assume that this Kij is equal to a constant. So let's look at Kij is equal to a constant. And for reasons of purely convenience, I'm going to choose that constant kernel to be 2. And if I want to try and justify this, if we think about, say, reaction of particles that are in a solution, well, what is the rate at which a reaction will occur between two spherical aggregates that are diffusing around? Well, the bigger they are, the more likely they can bump into each other because they have a larger cross-section. On the other hand, the bigger they are, the slower they diffuse. And it turns out that to a rough approximation, which still is actually not a very good approximation, I can say, well, the growth of the radii counterbalances the slower diffusion coefficient as the radii increases. And that justifies choosing a reaction rate equals to 2. But it's not a very good approximation. And if you get further into this problem, you'll understand why. But from the point of view of being able to solve a simple problem, let's look at the simplest case, Kij equals 2. And also, let's just write down the first few to get a feeling for what's happening. So let's look, first of all, c1 dot. Well, there's no way I can create a monomer because that's the minimum quantum size of my problem. So there's no gain term, but there's a loss term because I'll have minus c1. And then I have summation from 1 to infinity of ck. And so let me now define n summation from 1 to infinity of ck. And also, if I choose k, if all the reaction rates are equal to 2, there should be a 2 out in front. So it'll be 2c1 times n. So it's minus 2c1 times n. c2 dot. So now we have a gain term because we have 1 half c1 squared with times 2. So there's going to be a c1 squared minus 2c2n. c3 dot is equal to, so I'm going to have 1 half c1c3 and then 1 half c3c1. And then there's a 2 sitting out in front here. So we're going to have 2c1c2 minus 2c3n. And then let's just write one more c4 dot. So it's going to be 3c1c3 minus c2 squared minus 2c1. And so now you see that the structure of the plus, the structure of the gain terms becomes more and more complicated. So if you write them out one by one, they start looking a little bit intimidating. It is possible, and if you want to be a masochist, I invite you to try it, which is you just solve them one by one. It can be done. But let's now do the generating function approach because it's much more elegant. But actually, even before the generating function, I'd like to say the following, which is that when you're confronted with horrible master equations of this type and you have no idea what to do, a natural first thing is to look at moments of the distribution because moments are often simpler. And for example, for the case of a random walk, if you're unable to solve the full probability distribution, you might say, well, I can't solve for the full probability distribution, but let me compute the average position or the mean square position. And there are many techniques that allow you to compute each of these things more easily. And so similarly here, let's look at moments and see if we can solve them directly. And part of the reason for looking at moments I'm going to outline in a moment because one thing you might, if you're a skeptic, ask is, did I even write the equations correctly? This factor of a half, like it looked a little bit mushy what I was doing, and what I want to show you is that factor of a half was actually correct. So let me look at moments. Let me define mn is defined to be the summation from 1 to infinity k equals 1 to infinity of k to the power n ck. So the 0th moment is just going to give me n. The first moment, sum k ck by construction is a total mass in the system. And so we better have the total mass in the system is conserved. So one test, whether the equation is correct or not, is the first moment, is its rate equation equal to 0. So let's compute, for example, m0 dot. And I just realized I raised the equation that I wanted to keep. So let me put it back here again. So ck dot is equal to summation i plus j equals k. And I had ci cj minus summation 2 cik k equals 1 to infinity. So let's now multiply this equation. To compute the 0th moment, we multiply this equation by k to the power 0, which is easy to do. It's 1. And then we have to sum from overall k. I'm sorry, this index is incorrect here. i equals 1. Is that your question? No, I can't add. Thank you. c2 squared. Thank you. OK. Anyways, so we take this equation, multiply by 1, and then sum over all k. So for this one, the summation over all k makes us two unconstrained sums. So it's a sum ci over i, sum cj. But sum ck is n. And so this first term is just nothing more than n squared. But then the second term, we have the sum ci, which is n. And now the sum ck, which is another power of n with power 2. And so m0 dot is minus m0 squared. And so the solution is m0 is equal to 1 over 1 plus t. And I should say for the initial condition of only monomers in the system. That is that ck at t equals 0 is equal to delta k1. So I imagine I start with my box of Jell-O, which is only monomers, and I pour it into the bowl, and then I let the system evolve. So for the monomer only initial condition, this is what you get. Let's look at m1 dot. So we take our equation, multiply by k, and sum over all k. So on the left-hand side, we have m1 dot. And on the right-hand side, we'll have kci cj. But k, I can write as i plus j, because that's what k is, because of the summation. So I'm going to have a summation ici times cj. And another one, jcj times ci. So ici will be m1, cj is m0. I get two such terms. And so I'm going to get two m0, m1. And I did that a little bit quickly, but I hope you get it. And if you don't, just do it more slowly on your own, because there's nothing very deep about it. But then in this term, we have two sum ci, so that's 2n. And then I have kck summed over all k, I'm sorry, two times sum ci. Well, that's n, but that's also the same as the 0th moment. So I have two m0. And then sum kck is the first moment again. So I get minus 2m0, m1, and that equals 0. So that's actually a good sign, because it says that the mass is conserved, which we'd like to have by the actual definition of the process. And there was no mass loss in the problem. So oftentimes, when you're writing these rate equations, a test, are you writing it correctly? Did you get all the terms right? Did you get the combinatorial factors right? Is to check that the first moment is conserved. Let's do one more moment, m2 dot. So now we have to do k squared, so k squared. So here I'll have i squared plus j squared plus 2ij. So the term i squared ci is m2. And then I have cj, which is m0. I have two such terms. So I'm going to have a 2m0, m1, I'm sorry, m2. And then there's the cross term, 2i plus j squared. So it'll be twice ici jcj, so that's 2m1 squared plus 2m1 squared. And then I have this term, which will be k squared. So that's m2 times m0 times 2, so minus 2m0, m2. And so that's equal to 2m1 squared. But the total mass is conserved. And I can choose the total mass to be anything I want. So let me choose it to be equal to 1. And so I'll just say this is equal to 2, from which we get that m2 is equal to 1 plus 2t. So this m2, the second moment, is a measure of sort of the characteristic size of each cluster. So because the total mass is conserved, the first moment gives you no information because it's just conserved. And so it's the second moment that's actually telling you something about the characteristic size scale of these growing clusters. And so one can actually solve all of the moments by this approach. And I won't do that, but I leave that as an exercise for you to do. But now let's go to the heart of the problem, which is actually solve for the cluster concentrations exactly. And so for that, I'm going to again do my good old friend the generating function approach. And you'll see that the technique is, you know, the actual details are slightly different. But you know, the actual manipulations are very fun and very elegant once you know how to play the game. And so if I see a few of these examples, then hopefully you gain some general wisdom. So let me now define and I keep, I need a place to put the equation of emotion itself. So let me try not erase it. To ck dot is equal to summation ij. And I have ci cj minus 2 summation ci ck. This is summed over i equals 1 to infinity. i plus j is equal to k. Hopefully I won't erase this anymore. OK, so now I want to solve it by the generating function. So let me define the generating function g zt as before, summation. In this case, there is no such thing as a zero mass cluster. So the sum better start from 1. So summation k equals 1 to infinity of ck of t z to the power k. And by the way, I mean another sort of clue like why the generating function ought to work here is that you see that this first term is of the form of a convolution. Because the sum of the masses has to add up to k. So because it's a convolution, you should expect that some transform method like Fourier transform or Laplace transform, if it was continuous, or in the case here, generating function ought to work. And we know that from hopefully an undergraduate mathematical physics course, you know that convolution becomes just product in the transformed space. And that's exactly what happens here. So let's take this equation now. And what I'm going to do is multiply by z to the power k and sum from 1 to infinity. Let's see what comes out. So on the left-hand side of the equation, we just have the time derivative of the generating function, dg by dt. And on the right-hand side, let's see what we have. So we have z to the k. Let's put it in here. So we have z to the k. But we can write zk is zizj. And so I'll have sum cizi, sum cjzj. This constrained sum becomes an unconstrained sum when I sum over all k. And so the first term on the right-hand side is nothing more than g squared. And then I have minus 2. And so here, sum over all k, ckzk, is just the generating function again. So we just have 2g. And now this other term hanging off the end is just sum 1 to infinity ci without any friendly factor of z to the i to make it into the generating function. But it's just the generating function z set equal to 1. So the next term here is g of z equals 1. So it's not quite a closed equation because now we have g involving g at 1. But let's solve for g of 1. So dg of 1 dt is equal to g squared of 1 minus 2 g of 1 squared, so that's equal to minus g of 1. So now instead of solving for g, let's solve for this function, h of zt, which is equal to g of zt minus g of 1t. So we just subtract these equations. So you get dhdt is equal to g squared minus 2g g of 1. Whoops. Minus becomes a plus. So plus g of 1 squared. That's nothing more than h squared. So the equation for dh by dt, dh by dt, is equal to h squared. So you see that by using the generating function technique, you transform a formidable set of nonlinear convoluted equations into just a simple algebraic equation. So we're almost done now. Yeah, yes. No, this is not linear. So you're saying if I wanted to solve for the probability that there's like 17 monomers, 63 dimers, and so on down the road, the full probability distribution. Yeah, you are absolutely correct. Then you would have a linear equation. But it's just like it's horrendously complicated. So I mean, but you've also raised an interesting point here, which is that I'm a little bit sloppy about the use of the word master equation, rate equation. The underlying probability distribution is that you want to compute the full probability that there's n1 monomers, n2 dimers, n3 trimmers, n4 formers, and so on down the road. So the rate equation for that set of n i's is a linear set of equations, horrendously complicated, however. And what I'm solving for is for the average concentrations of monomers, dimers, and so on down the road, which turns out to be a nonlinear system of equations. OK, very good point. Anyways, maybe even I can solve this equation without making a mistake, but we'll see. So the equation is dh over h squared is equal to dt. So that says that 1 over h at time equals 0 minus 1 over h of t is equal to time. So h of t is equal to, so this is the part that's hard for me, 1 over h of 0 minus time. OK, I guess, no, even did that wrong. 1 over h of t is, so that's my solution. So first of all, let's determine the initial condition so we can actually write this explicitly. So once again, for the monomer only initial condition, g of z and t equals 0, so it's equal to summation over all k, ck, z to the k, the only one that's nonzero is monomer, so that's equal to z. So h of z and t equals 0 is equal to z minus 1. So this is equal to 1 over z minus 1 minus t, which I can write as 1 minus t z minus 1 z minus 1. So this is 1 over h. So that says that h is equal to z minus 1, 1 minus t, z minus 1. And let me just do one or two more steps before I'm going to just stop. I'm going to have 1 plus t minus zt, z minus 1, 1 plus t, 1 minus z, t over 1 plus t. For those of you who remember 15 minutes ago, it's starting to look a lot like the generating function for the birth-death process, 1 plus t here. So this is equal to that. Try again. This is 1 minus all of that, so that's what it is. And so this is equal to z minus 1 over 1 plus t. And then I'm going to have the infinite power series, summation k equals 0 to infinity, z to the power k, t over 1 plus t to the power k. And from this form, it's tedious, not that tedious, but I can't do it on the blackboard without making a mistake. And straightforward to then extract ck of t. And so let me just tell you what the answer is. ck of t is equal to 1 over 1 plus t squared, t over 1 plus t to the power k minus 1. So that's the full answer. So a really beautiful answer. It doesn't look so different from what we saw in the case of the birth-death process. And before I go any further, let's just sort of graph this to get a feeling for what is contained in this solution. So if I were to plot as a function of time the cluster concentration, so here's t and here's ck of t. So first of all, let's look for monomers, c1. So this term is 0. We have 1 over 1 plus t squared. So it starts at 1, and it decays like this. So here is c1. c2, well, again, you see that all the cluster concentrations have this common 1 over 1 plus t squared decay for a long time. But for k equals 1, I'm sorry, for k equals 2, this becomes power 1. So it starts off linear, and then decays like 1 over t squared asymptotically. So dimers are doing something like this at c2. Trimers, they'll start with a quadratic. So looking something like that, c, sorry, this is 2. This is 3, and so on down the road. So that's what these different cluster concentrations look like. Another way to plot this is if I plot ck as a function of k. So if you are an experimentalist and you're measuring the cluster size distribution, you might say, well, I'll wait half an hour. And look at what my cluster size distribution looks like. And actually, it's more convenient to look at this in the scaling limit. So let's look at this now. Let's go in the limit t is going to infinity, because that's kind of the limit that we're most interested in. So for a large time, we forget the 1 compared to t squared. So there'll be an amplitude 1 over t squared. For a large time, I can write this as 1 divided by 1 over 1 plus t, 1 over t, which I can write as 1 minus 1 over t to the power k. And for large time and large k, I can forget about the minus 1. And 1 minus t to the power k is e to the minus kt. So I said that quickly, but check it yourself. But asymptotically, this goes like 1 over t squared, e to the minus k over t. And part of the reason for writing it in this way is that this is the natural scaling form of the distribution, which we're going to come back to momentarily. But so we see that for a long time, this cluster size distribution has an overall amplitude 1 over, so let's call it log c. So there's nothing more in the straight line. e to the minus kt, k over t, sorry. And so we infer from this. We can define this to be e to the minus k over a characteristic size scale, k star. And so this cluster size distribution has an exponential decay with a characteristic mass scale, k star, that grows linearly with time. And so in some sense, these two plots kind of encapsulate all the information that's contained in the cluster size distribution. OK. So I think that's everything I want to say about the exact solution of this constant kernel aggregation process. So is there any questions from anybody? I feel very awkward doing that. So let me continue on. So the next part of this discussion is to talk about the scaling solution for aggregation. So let me now let you in on a dirty secret, which is that for the case of aggregation, there are only four exactly soluble examples. There is the constant kernel. There's something called the sum kernel, where kij is i plus j. There's something called the product kernel, where kij is i times j. And there's another one that's rather bizarre, and I don't even remember the exact form. But those are the only four exactly soluble examples. But on the other hand, there's many situations of aggregation in real life where the reaction kernel is not one of these exactly soluble forms. And you'd like to try and get some information without having if you can't solve the equations itself. And it turns out that oftentimes in non-equilibrium statistical physics, we're confronted with nonlinear rate equations. And we want to try and make some progress, and we don't know how to solve it exactly. And in this situation, the scaling approach turns out to be extremely powerful, and general, and elegant for getting partial information. And that's what happens here in the case of aggregation. So let me now discuss the scaling approach for aggregation. And hopefully, I mean, I would say that this is perhaps the most general thing that I'm going to talk about in this entire set of lectures, because it works in so many different situations in such an elegant and beautiful way. So I hope you'll take this to heart, because it's a very powerful tool. So let's now talk about the scaling approach. So as a warm-up, let's solve a simpler problem that we already know the answer to, which is let's solve the diffusion equation using only scaling. And let's just see what we learned from that. So let's solve dC by dt is equal to d d second C by dx squared. Suppose that we don't know how to solve this. How can we get information without solving, like directly? So first point, and a really important point, is that it's always useful to do a dimensional analysis on this equation. And you see that this is a linear equation. C is the same on both sides, so we can forget about C. But then there's a 1 over time here. Here is an x squared over d. So we must have in units that x squared goes like dt. So without doing anything, dimensional analysis tells us that there's a characteristic psi scale, x, which grows like the square root of dt. So we want to solve for Cxt. We now have a sense that there's a characteristic length scale that grows like square root of t. So in fact, this function Cxt is not a function of x and t separately, but it's a function of a scaled combination of units. And we already know what the scaled combination of units is. But let me even not suppose that. Let me just say I know nothing. And I just want to say, well, I expect that my solution ought to be solved similar, so that as a probability distribution spreads, that the shape is going to look the same. It's just you just have to rescale the characteristic length scale to make different distributions at different times lying on top of each other. So I'm going to make the scaling assumption of the following, that this is some function of x divided by some characteristic psi scale, which I don't know what it is, so this will depend on time. Now, if I write this, it's missing something because it's not properly normalized, because we note that the integral over all space of cxt is 1. So if I integrate this thing over all space, I better get 1. And the way to ensure that that occurs is you have to put here a 1 over s. And then you can verify right away that the integral of dxf of x over s times 1 over s from minus infinity to infinity. Well, this d1 over s goes with this, and now it can define a scaled variable z, which is x over s, so I have dz f of z. So it's a function of order 1. And by choosing a constant properly, it is 1. And so that is the proper normalization here. So let's make the scaling assumption. And now let's use that scaling assumption and plug it into the differential equation. Let's see what we get out. And now I'm going to start using subscripts for partial differentiation just because I'm lazy. So ct, the time derivative. So we want to differentiate this guy. So there's two terms. There's a time in here, there's a time in here. So we're going to get minus s dot over s squared f. And now let me call this combination of unit of variables. Let's call that z. So it's f of z. And then I have a plus 1 over s. And when I differentiate inside the argument, so I'm going to get f prime as a function of its argument. And then I have to differentiate the argument. So that's minus x over s squared s dot. And so this is equal to, so there's a common factor minus s dot over s squared. And then I have f of z. So 1 power of s goes with the s squared here. And that's s dot over s squared. And another guy combines with this. And I'll get plus z f prime of z. So that's the left-hand side of the equation. On the right-hand side, cx. Well, the only place x appears inside the argument, so I'm just going to pull out 1 power of s and differentiate with respect to the argument. So I'm going to get equals 1 over s squared f prime of z. And so cxx is equal to 1 over s cubed f double prime of z. So now let's put this all together. So our diffusion equation becomes the following. So we're going to have minus s dot over s squared f plus z f prime is equal to d over s squared f double prime. And let me put all the time dependence on one side, all the z dependence on another side. And so I'm going to get s cubed. S cubed. Where did it go to? Oh, here's my problem. When I do first derivative, I've got 1 power of s. When I do second derivative, I get another power of s. So this is s cubed. Another question? OK, so this is s cubed. OK, so I'm going to get here s dot times s. So I bring this over here. Is equal to minus f double prime over f plus z f prime. And now we just invoke what we know from when we first encounter partial differential equations in our physics class. This is a function of time only. This is a function of z only. Functions of independent variables that are equal for all values of the argument have to be separately equal to a constant. And let me call that constant lambda. So let's now look at the separated equations. So we have s dot s is equal to lambda. So it says that s is equal to 2 lambda t square root. So as expected by dimensional analysis, there's a characteristic size scale that's growing like the square root of t. And now let's look at the space equation. So we're going to have f double prime is equal to minus lambda f plus z f prime. Unfortunately, this equation is sufficiently simple that we can solve it exactly. So this, I'll write as lambda. And then this is nothing more than z f, the whole thing prime. And now integrate once with respect to z. I'll get f prime is equal to minus lambda z f plus a constant. But we know that at z equals 0, this is 0, if we're starting with a particle at the origin, the distribution better be symmetrical. So at z equals 0, f prime equals 0, z equals 0. So that implies that c equals 0. So let's forget about this. And so then I have log f prime, f prime over f is equal to minus lambda z. And so that says that log f is equal to minus lambda z squared over 2 plus constant, which I'll determine by normalization. So that says that f is equal to some constant a e to the minus lambda z squared over 2. But z is x over s. So this is equal to a e to the minus lambda. So this is x squared. z is x over s. So yeah, so this is x squared over s squared over 2s squared, which is equal to a e to the minus lambda x squared divided by 2. But s squared is 2 lambda t. So it's 4 lambda t. Oops, I forgot something here. I realize I forgot something really trivial. D, so there's d here. So now I have lambda over d. Lambda over d, lambda over d, over d. So we just get, can they see down here? So this is just a e to the minus x squared over 4 dt. So it's the classic Gaussian distribution by the scaling solution. And then by normalization, we even know what this thing is. This is equal to 1 over the square root of 4 pi dt. So the point about the scaling approach is that we didn't really do any sophisticated solution methods. We just made the scaling assumption, plugged in the equations to just try and get as far as we could get by this approach. And here we could go all the way to the end. We even got the exact probability distribution. Most of the times you're not that lucky, but nevertheless, you get a lot of information for a lot less effort than just trying to do a frontal attack. And so in some sense, the scaling approach provides, I would say, like a non-conservation of difficulty. Typically, you solve a problem by two different methods. You say, well, this method is used in the other method. And you find, well, they're not really any easier. It's just one is conceptually simpler. One is algebraically simpler. But you always run into sort of conserved difficulty. But in the case of the scaling solution, I would argue that it's a technique that makes your life simpler. So what I'd like to turn to now is to apply the scaling approach to the case of aggregation. And here, I hope you'll get a sense that I'm going to transform a problem that looks impossible to solve into one where you can get at least partial information with relatively little work. So let me do that now. So I want to apply the scaling approach for aggregation kinetics. So first of all, when I first wrote down the equations of motion, we were talking about discrete monomers. But if we're interested in a long-time behavior, the difference between a 633-mer and a 632-mer is so small that we don't really want to worry about that. So let's write these same equations at the continuous limit. So now I'm going to call CXT. So this is the concentration X-mers at time T. And here, I'm thinking of X as a continuous variable. So if I write down the rate equation, I'll get CXTC by dt. So there's two terms. Again, there's a gain term and a loss term. So the gain term is going to be an integral from 0 to X. So let me write it out, and then hopefully it'll look almost self-evident. So there's going to be a KY, X minus Y, CYT, CX minus Y, T, dy. So this is the gain term where I have a Y-mer and an X minus Y. They come together. There's some of the mass arguments adds up to X. So it's going to make an X-mer. And so at time T, I have a Y and an X minus Y coming together with this rate. And then there is a loss term minus an integral from 0 to infinity, and I guess I'm going to put a 2 here, K, X, Y, CXT, CYT, dy. So that's the continuous version of these rate equations for aggregation. Now to make any progress, we have to say something about this reaction rate. And it turns out that for every process that you can possibly imagine for aggregation, K has the following homogeneous reaction rate. So homogeneous. And the way I define this is that if I imagine multiplying all cluster masses by an overall factor A, so K, A, I, K, A, J, is equal to A to the power lambda K, I, J. So I'm going to assume a homogeneous reaction rate. And if you start thinking about any kind of aggregation process that you can envision, if I increase the size of all the clusters by the same overall factor, the overall reaction rate changes by an overall factor that's typically in this form. And so this thing here is called the homogeneity index. And as we're going to see, the behavior of aggregation is largely determined by the actual value of this homogeneity index. Another thing that one typically assumes is K, 1, J is equal to J to the power nu. So if I just have a monomer and look at the rate at which it reacts with the cluster size J, that it's some simple function of the size of the bigger cluster. This will not enter into the scaling approach, but we'll need it later on just in completing the discussion. So what I want to do now is this looks like a horrible integral equation, nonlinear. And I have no idea how to solve it. But we will make a lot of progress by making a scaling assumption. So let's try and see where we can go with that. So scaling assumption. So just as we did for the case of diffusion, I'll say that Cxt, well, we imagine that as time goes on, the clusters are getting irreversibly larger and larger. So that if I could rescale my time by some factor that the cluster mass should be re, or put it another way. If I rescale the cluster masses by some factor, that's the same as rescaling the time. So that suggests that I can write this as some function of X over S, where S is a characteristic size scale, which is the cluster size. And then you would say, well, I have to normalize this properly, so I should put in front here 1 over a power S. This is not quite right because we know that the total concentration of clusters is gradually disappearing. Because as you aggregate, aggregate, eventually you get to just a single cluster. So it's not the first moment. This is not the right normalization factor. The right normalization factor is this. And why is this the correct normalization factor? Because the conservation laws, the total mass of the system is conserved. That is the integral of X, Cxt dx, which is the total mass in the system, better be conserved. And I'm going to put a 1 over S squared here. This becomes integral X, 1 over S squared, F of X over S dx. And now I can absorb one factor of S to here, one factor of X to here, of S to here, and then I have a dimensionless integral, which is order 1. And so this is the correct normalization factor. So now what I'm going to do is just as we did in the case of diffusion equation, let's make the scaling assumption, work out the left and right hand side equations. And just let's see what we can get out of this. So first of all, let's look at Ct. So I'm going to get minus 2 over S cubed S dot. And then I have plus 1 over S squared F prime of, and for reasons that will be obvious in a second, I'm going to call this scale variable combination U now. So this is F prime of U. And then I have times minus X over S squared S dot. And this I can put together. So I'm going to have minus 2 over S, sorry. It's going to be minus S dot over S cubed. And I have 2F plus U F prime of U. So that's the left hand side. Let's now look at the right hand side. So it looks a little bit more formidable, but if you just have faith and follow through, it's not so hard. So let's look, first of all, at this term. So we're going to have minus 2 integral from 0 to infinity K X Y. So C is 1 over S squared. And so we're going to have F of U over S. Then I have 1 over S squared for C YT. And let's call this F, I'm sorry, X over S. And then this is F of Y over S. And then I have integral dy. So let me call this thing U as before. Let me call this thing V. Now I have, let me put in a factor of 1 over S here. And that cancels one of the powers of S over here. And so the next term here is going to be minus 2 over S cubed. Then I have integral from 0 to infinity K X Y, F of U, F of V DV. Not quite a scaling form, because we still have this in unscaled units. But now let's write this in scaled units. So X is equal to SU. And Y is equal to SV. So this is the same as K of SU SV. And now I use this homogeneity assumption that when I multiply by an overall factor of S, it's the same as multiplying through by S to the lambda times the bear argument. So this is nothing more than S to the power lambda K of UV. So finally, we're going to get here minus 2 S to the lambda minus 3 times integral from 0 to infinity K U V F U F V DV. So this is some function of U that's now scaled units, only function of U. And now we can do the same thing with the first term. And the first term, everything follows just line by line. Everything is the same. And you're going to find that ultimately you can recast this as some other function of U. So if you put this all together, and so I'm skipping one trivial step, which is just computing the other term, but what I'm going to get then is that this initial differential equation. So let's call this 1. So what we're going to get for 1 becomes the following. So on the left-hand side, we're going to have minus S dot over S cubed 2 F plus U F prime. And on the right-hand side, we're going to have, so there's an overall factor S to the lambda minus 3. Because clearly these two terms are same order of magnitude. And so this other guy will have an overall factor S to the minus 3. And then there is a bunch of integrals. So let's call that stuff here H of U for H of U for horrible function of U. But the main point is the function of U. And so now let's put all the time dependence on one side, all the U dependence on the other side. And so what we're going to get is S dot divided by S to the power of lambda. So the S to the minus 3 cancels. This becomes S to the minus lambda is equal to minus horrible function of U divided by 2 F plus U F prime. Now let me define this thing to be capital lambda again. So this is some H of U divided by this as an even more horrible function of U. But I don't care. Because now we have solved for the time dependence. We have, for the time dependence, a very simple equation. We have S dot is equal to lambda S to the lambda. And so we can now determine the time dependence as a function of lambda. And it turns out there's three possible answers depending on the value of lambda. So we're going to get from this. S of t asymptotically has three possible behaviors. It goes like t to the 1 divided by 1 minus lambda for lambda less than 1. And you see that when lambda is equal to 0, the good old, which corresponds to the good old constant reaction rate, S dot was constant. And so S went like t. But as the homogeneity index increases, the rate at which clusters grow gets larger. And that makes sense, because if the homogeneity index gets larger, it means that bigger clusters are relatively more grabby. So the clusters as they grow should grow even faster. So the rate of growth is increasing as lambda increases. When lambda is equal to 1, then we have S dot is equal to S, which is the equation for exponential growth. So it goes like a to the lambda t. And for lambda bigger than 1, then the cluster size actually diverges in a finite time, which physically corresponds to the phenomenon of gelation in a real physical system. And so in this case, we're going to get something that looks like this, a critical time minus t to the power 1 divided by 1 minus lambda. So with the scaling assumption, we can extract the time dependence of the system very easily. So now we have to turn to the dependence on the actual function itself, the actual shape of the cluster size distribution. Here, this is now a state-of-the-art problem for which there's only limited information available. And it requires, if I was giving a weak course in aggregation kinetics, I would then show you how to extract information from this integral equation. But let me just tell you what the results are, because the results in the end turn out to be relatively simple. So you're going to have to just take this on faith. I shouldn't have erased that. Let me put that back again. So I had kij is equal to a to the power lambda k of aij, and k1j, oops, I guess I already, I don't need that. So yeah, so let's just keep this, because those are my assumptions. So to get information about the cluster size distribution itself, let's look at what this reaction rate is pictorially. So pictorially, I can think of kij as an infinite dimensional matrix. And on the upper left corner, where both indices are small, that's the reaction rate of small clusters with other small clusters. So I can partition my reaction rate with small, small interactions here, large, large interactions here. And here I have small with large, and here a large with small. And so in some sense, the homogeneity index is saying, how quickly does the interaction entries grow as it go down the main diagonal? This guy says, how quickly it grows as you go down here or go over here. And so for reasons that escape me, people who work this out in the 80s sort of categorize the possibilities into three classes. And they're very creatively called them class 1, class 2, class 3. So class 1, class 2, and class 3. And so class 1 is where lambda is bigger than nu. And so it means that large, large interactions dominate over everything else, large, small, or small, small interactions. And in this case, what happens, we can sort of understand physically, it's just that if there's a really large cluster, it becomes very reactive. And so it kind of gets really large really quickly. And so if I look at the mass distribution, roughly speaking, as a function of k, Ck looks something like this. It's always monotonic. Because if there's really large clusters here, they'd come even larger. And they just zip off to infinity. And so there's very little population here. Class 3 is the case lambda less than mu, less than nu. And this is the case where large, small, or small, large interactions dominate. And it turns out that if you're looking at Brownian particles and solution, that is the case that this corresponds to. And in this case, what happens is that if you have any small clusters left, because small with large is a very rapid interaction, they're really quickly swept out of the system. So in that case, the cluster size distribution is something like this. Because if there's any small clusters left, they react really quickly with any large clusters that happen to be in the system. So there's none left. And class 2 is intermediate. And so the case of constant kernel is the example of an intermediate case, which happens to sort of look like this. But it turns out if you delve more deeply into the case of constant kernel, it's actually like marginal behavior in a critical phenomena. You're right at the hairy edge between these two limiting cases. And so the constant kernel is actually very unstable. If you perturb a few of the reaction rates, you get all kinds of crazy behavior emerging from it. OK. So what? I have five minutes left. OK, so let me just give you a taste of what I'm going to begin to discuss next time, which is I'll finish my discussion of aggregation by looking at the product kernel solution. Product kernel. So kij is equal to ij. So this is one of the few exactly soluble cases in aggregation kinetics. And as you're going to see, the solution is just, every time I see the solution, like I'm always boggled, like how beautiful it is, and the mathematical trickery that goes into it that's actually, graduate students now are just not trained in mathematical physics. And so some of these things that seem like black magic should be in the toolkit of every theoretical physicist, but happens not to be. Anyways, product kernel. So enough getting on the soapbox. So let me just write down the equations again. So ck dot is equal to. So by the way, now I don't put a 2 in front. It just turns out to be more convenient to leave it this way. 1 half summation ici, I'm sorry. Yeah. So it's ici jcj, then have minus summation. So I'm going to have kck ici, and this summation i equals 1 to infinity. So already there's one thing we can do, which is the summation i equals 1 to infinity ici. My construction, that's a total mass in the system. So we can just write this as 1 half summation ici jcj minus summation, no, no more summation now. We just have kck. So this is what I want to solve for. But before we try and solve it frontally, let's say we're intimidated by this equation. What can we do with it? Well, let's look again at low order moments and try and see if we can get some partial information. And we're going to see that by looking at low order moments, already something weird is happening that tells us that this system is really quite different than constant kernel aggregation. So let's look at the moments. So we're going to, again, mn, which is equal to summation, k to the power nck. So let's take this equation, multiply by k to the power n, and then sum over all k. So on the left-hand side of the equation, and so let's do it sort of order by order. So let's look first of all at the 0th moment. So the 0th moment, I'll just have summation ck dot. So that's going to be m0 dot. And on the right-hand side, I'll have ici jcj. So that's the first moment squared. So I have plus 1 half m1 squared minus, and so I'm going to have kck. So that's just minus m1. So already, this says something weird is happening, because this is equal to minus m1 squared. But if we're saying there's mass conservation, so m1, we can choose to be anything we want. So let's choose it to be equal to 1. Oh, by the way, this is minus 1 half m1 squared. So this says that m0 dot is equal to minus 1 half. So that says that m0 is equal to 1 minus t over 2. So when t hits 2, there's no clusters in the system. So already, there's something weird happening there. Let's look at the first moment. We better check that mass is conserved. Now that we see something weird going on, let's check that mass is conserved. So let's look at m1 dot. So I multiply. So on the left-hand side, I multiply by k. So I get m1 dot is minus 1 half. But now k, I can write as i plus j. So I'm going to have, let me just do a little work area over here. So for the first moment, I'm going to have k. And then I have ici jcj. And I can write that as i plus j ici jcj. And I have to sum up. So the first term is i squared. So it's m2 times m1. And then I have, for this guy, I'll have m1 times m2. So there's two such terms. So it cancels 1 half out in front. And I'm going to have m1, m2. And for the second term, I have, so this is k1. It combines with this. So we just have m2 squared. I'm sorry, I just have minus m2. But m1, we chose to be equal to 1. And so this is equal to 0. So at least we have mass conservation. Let's look at the next moment. And I guess I'm going to stop there, because this is sort of the punch line. Let's look at m2. So we're going to have, we're going to apply it by k squared. So we'll have m2 here. And over here, we're going to have k squared ici jcj. So that's i plus j squared. So there's a term i cubed ci, so m3, m1. So I have two such terms. So two m3, m1, two m1, m3. And then I have the cross term. So I have two ij times i times j. So it's two ij ij. So it's two m2 squared. So plus two m2 squared. And then the last term is k cubed times, k squared times k, so this is k cubed. So this is equal to minus m3. There's one half, because there's two here, but there's the one half here that cancels this. So this goes away. So these cancel. And so I get m2 dot is equal to two m2 squared, whose solution is m2 is equal to 1 over 1 minus t. So notice that the number of clusters, according to this naive thinking, the number of clusters disappeared when time was equal to 2. But their average size blew up at t equals 1. So this is a harbinger of the gelation transition. That, in fact, there is a phase transition in this product kernel aggregation in which the average cluster size diverges at a finite time. And that corresponds to making jello in your refrigerator at night. So next time, I will finish this derivation of that solution. And that will be the end of the discussion of aggregation kinetics. So I'm done.