1 00:00:01,410 --> 00:00:07,350 Okay. Hello, everybody. Today's a bit different in that I'm going to spend the time showing you fun, 2 00:00:07,350 --> 00:00:12,210 which has been a centre of my research and that of the people around me for the last ten years or so. 3 00:00:12,930 --> 00:00:16,530 It's relevant to scientific computing in a very central way. 4 00:00:16,800 --> 00:00:21,810 It's all about a continuous analogue of MATLAB, and obviously you're all fluent in MATLAB. 5 00:00:22,680 --> 00:00:26,610 MATLAB became successful because of vectors and matrices. 6 00:00:27,000 --> 00:00:31,440 The idea of fun is to overload those ideas to functions and operators. 7 00:00:31,710 --> 00:00:38,490 So I'm curious how many of you have tried to have fun before and how many of you have heard of it before? 8 00:00:38,490 --> 00:00:43,080 The last day or two? Yeah. Okay. So this should be a life changing experience. 9 00:00:44,640 --> 00:00:49,920 There's a handout, and I'm actually going to tape a lot of these commands and talk about them as we go. 10 00:00:50,340 --> 00:00:58,910 So you definitely need a copy of that. Let's begin, however, by looking at the website a little bit. 11 00:00:59,180 --> 00:01:02,270 So you get Google to have fun and this is what you find. 12 00:01:03,320 --> 00:01:05,450 We're rather proud of the website. It's pretty. 13 00:01:06,600 --> 00:01:13,500 If you want to learn how to use the thing, you go to docs and you'll find there a user's guide tab fun guide. 14 00:01:13,980 --> 00:01:21,460 So if you click on the Chub Fund Guide. You'll see that chapter one is getting started with fun. 15 00:01:21,470 --> 00:01:27,280 So that's what you need to get started. And then there's 16 or so chapters on different subjects. 16 00:01:29,400 --> 00:01:33,780 Another key place to go at the Chip Fund website is the tab called Examples. 17 00:01:34,940 --> 00:01:41,030 Which is a collection of a couple hundred examples of how to use Turbofan in different application areas. 18 00:01:41,300 --> 00:01:47,220 So on the left you see a table of contents that pretty much looks like a numerical analysis textbook. 19 00:01:47,480 --> 00:01:55,920 And in each of those areas, you'll find different codes that called have fun interspersed with text to illustrate various things. 20 00:01:55,940 --> 00:02:03,230 So for example, if we go to ordinary differential equations linear, I find there 18 examples in that category. 21 00:02:03,710 --> 00:02:10,090 Each one would be an m file that has been published to illustrate this or that. 22 00:02:10,100 --> 00:02:13,250 So the first one says Fourier Spectral Collocation. 23 00:02:13,730 --> 00:02:21,270 If I go to that. I see various things going on with various figures all in fun. 24 00:02:23,290 --> 00:02:25,870 Maybe the other tab that's fun to click on is about. 25 00:02:28,130 --> 00:02:32,990 So if you go to a bout, you learn something about the history of the project and the people involved. 26 00:02:33,680 --> 00:02:44,780 For example, if I go to people, you can see photographs of the various regrettably armed men who've been involved in this project over the years. 27 00:02:47,380 --> 00:02:51,460 Okay. So I want to show you what the thing does, how it works. 28 00:02:53,200 --> 00:03:00,370 So we go into MATLAB, of course, and oh, I should have just emphasised the download situation. 29 00:03:00,370 --> 00:03:05,350 So if you're at the website and click on download, it takes you to. 30 00:03:06,710 --> 00:03:09,260 Some basic information. In the simplest way to download. 31 00:03:09,260 --> 00:03:19,550 The thing is, as it says there, to paste this text right here into your MATLAB command window, and then it will it will do the right thing. 32 00:03:19,760 --> 00:03:24,680 That will give you the standard branch that has been released and is much trusted. 33 00:03:24,890 --> 00:03:28,940 But if you want the latest, you go to GitHub and get the development branch. 34 00:03:28,950 --> 00:03:32,840 So let's see if I click on that icon there at the upper right. 35 00:03:33,350 --> 00:03:40,160 It takes me to GitHub, which is the standard place that open source software is the repository. 36 00:03:40,370 --> 00:03:43,849 So you can see all sorts of things if you want to know what's happening in often 37 00:03:43,850 --> 00:03:48,890 you can click on issues and find all sorts of the latest things going on. 38 00:03:49,100 --> 00:03:53,630 I think when I asked you before, many of you had used GitHub, right? Raise your hand if you've used GitHub. 39 00:03:54,410 --> 00:03:57,830 So that's amazing. Okay. So we certainly use it all the time. 40 00:04:03,200 --> 00:04:07,640 Okay. So let's play with fun and give you a sense of what it can do. 41 00:04:07,910 --> 00:04:12,290 So I'll start following the hand out there with basic Jeb funds. 42 00:04:12,530 --> 00:04:16,610 And the first thing I'll do is create a JAB fund without really telling you what that means, 43 00:04:17,060 --> 00:04:20,330 because we'll immediately modify it to show something more interesting. 44 00:04:20,870 --> 00:04:30,740 So we've just created the function X on the interval from 0 to 10 and now let's say ethical sine of x plus sign of x squared. 45 00:04:32,510 --> 00:04:37,070 So now whatever we've done, it's clearly made something that looks like that function. 46 00:04:38,190 --> 00:04:44,430 And the point of turbofan is to be able to compute with functions in a fast and accurate way, functions like this one. 47 00:04:45,330 --> 00:04:52,890 Now, of course, mathematically we know what that means, but in fun, numerically, that's actually represented by a polynomial. 48 00:04:53,220 --> 00:04:58,110 It's not a sign, it's a polynomial. If we wanted to know something about that polynomial. 49 00:04:59,570 --> 00:05:05,300 The length of F tells us that it's a polynomial interpolate through 119 points. 50 00:05:05,510 --> 00:05:09,080 So it's in fact a polynomial of degree, 118. 51 00:05:09,680 --> 00:05:14,030 And if you wanted to see the points, you could say this. 52 00:05:14,570 --> 00:05:22,940 So fun is all about interpolation by polynomials on clever grids that are good for interpolation. 53 00:05:22,970 --> 00:05:26,330 These are chubby chef grids which are clustered near the end points. 54 00:05:26,570 --> 00:05:32,180 So we're interpolating by a polynomial of degree 118 in a suitably clustered grid. 55 00:05:32,180 --> 00:05:36,079 So that interpolation is a reliable process all the time. 56 00:05:36,080 --> 00:05:40,730 Chep fine is doing that, but in principle you don't need to know that you're just using it as a calculator. 57 00:05:42,280 --> 00:05:50,019 So for example, if I say G equals E to the X each of the F, it makes a new function if I plot it. 58 00:05:50,020 --> 00:05:55,450 There it is. So you see, it feels like symbolic computing, but it's actually numerical. 59 00:05:56,320 --> 00:06:01,390 And as you know, from symbolic computing, symbolic computing is fantastic when it works. 60 00:06:01,690 --> 00:06:04,810 And often it gets sort of grinds to a halt when things get complicated. 61 00:06:05,080 --> 00:06:12,470 The point of cheap fun is to not grind to a halt. So just to give you a bit of a hint about what's going on here. 62 00:06:12,800 --> 00:06:17,900 If I look at the length of G, it's 914. 63 00:06:18,830 --> 00:06:23,210 So that means this curve here is a polynomial of degree 913. 64 00:06:24,620 --> 00:06:33,189 Now suppose I say the length of g times g. Standard MATLAB notation. 65 00:06:33,190 --> 00:06:42,549 Of course, the times in MATLAB that would mean the component wise product of a vector in tetfund by analogy, instead of a vector we have a function. 66 00:06:42,550 --> 00:06:50,710 So it means the position, you know, the in g of x times g of x at each value x, so the length of g times g. 67 00:06:51,340 --> 00:06:58,569 Mathematically, you would expect it to be 1827 because it's a polynomial of degree. 68 00:06:58,570 --> 00:07:02,040 913. But it's not that. 69 00:07:02,970 --> 00:07:11,100 Because what goes on all the time is that the degrees of polynomials are reduced in order to round the whole thing to 16 digit precision. 70 00:07:11,580 --> 00:07:17,340 So the idea of fun is to compute with polynomials, but constantly round them down to 16 digits. 71 00:07:18,680 --> 00:07:23,300 And you can see a bit of how that happens in the next section here, how the constructor works. 72 00:07:24,650 --> 00:07:29,070 So here was f again. Remember, the length of death was 119. 73 00:07:29,090 --> 00:07:40,669 Well, if I say plot coefficients of F. What that will do is show me the coefficients in the actual representation of F and 74 00:07:40,670 --> 00:07:45,170 I think I'll just digress briefly to write one equation on the board about that. 75 00:07:52,070 --> 00:07:57,440 So if you have a function as that sufficiently smooth, for example, 76 00:07:57,470 --> 00:08:05,090 it's enough for it to be Lipschitz Continuous on an interval and by default it's the unit interval. 77 00:08:05,090 --> 00:08:13,790 But it could be any other than the right way to expand f for numerical purposes is as a chubby chef series. 78 00:08:13,790 --> 00:08:23,930 So you write F as the sum from zero to infinity of a coefficient times a the case chevy chef polynomial of x. 79 00:08:26,240 --> 00:08:34,580 So that is a chubby chef series and it's completely analogous to a three series for. 80 00:08:35,560 --> 00:08:41,570 As for periodic functions, Chevy chef is for non periodic functions for AA and vital signs and cosines. 81 00:08:41,960 --> 00:08:50,510 Chevy Chef involves polynomials. The coefficients mathematically are given by a formula which involves a constant two 82 00:08:50,510 --> 00:09:00,590 times an integral from -1 to 1 of f of x t k of x d x divided by one minus x squared. 83 00:09:04,390 --> 00:09:09,070 This is numerically a very effective series with which to represent functions. 84 00:09:09,070 --> 00:09:13,150 And what Cheryshev does all the time is truncate the series to machine precision. 85 00:09:13,390 --> 00:09:15,310 So this function F, 86 00:09:16,270 --> 00:09:33,970 this particular function F is represented as a sum from 0 to 118 of a k t sum k of x for some numerically computed cheryshev coefficients a sub k. 87 00:09:35,240 --> 00:09:47,370 And when I execute plot coefficients. What you're going to see is a plot as a function of k of the size of the coefficient on a large scale. 88 00:09:49,760 --> 00:09:54,380 So mathematically the coefficients go down to zero as K goes to infinity. 89 00:09:54,590 --> 00:10:02,700 Numerically, we're going to stop when we get to machine precision. Okay. 90 00:10:02,700 --> 00:10:09,779 So plot coefficients of F. There it is. You see that this is 118 dots. 91 00:10:09,780 --> 00:10:17,880 I really should plot them as dots. So those are the coefficients of the Chevy Chase expansion. 92 00:10:18,060 --> 00:10:21,390 Mathematically, it would keep going forever. Down to zero. 93 00:10:21,780 --> 00:10:25,740 Numerically, we stopped there when it's gone down about 15 orders of magnitude. 94 00:10:27,500 --> 00:10:32,060 And Tetfund has very slick algorithms for doing this fast and accurately. 95 00:10:34,990 --> 00:10:40,809 Just for fun. Let's make another version of that. I'll say two, and I'll make it equal to the very same function. 96 00:10:40,810 --> 00:10:49,120 So that's what is it? It's a sign of x plus sign of x squared on the interval from 0 to 10. 97 00:10:50,140 --> 00:10:54,340 But now I'm going to give it a special flag double length, which says. 98 00:10:55,600 --> 00:10:59,410 Make this function, except take twice as many Chevy chef points as usual. 99 00:10:59,950 --> 00:11:02,890 And I'm now going to plot the coefficients of F two. 100 00:11:06,890 --> 00:11:12,200 So what you see here is that if you go further, you don't gain anything because of rounding errors. 101 00:11:12,200 --> 00:11:15,560 It's all garbage anyway on a computer in 16 digits. 102 00:11:15,830 --> 00:11:23,299 So Tetfund is constantly finding this point in order to represent a function and in fact we could even superimpose those two plots. 103 00:11:23,300 --> 00:11:29,990 Suppose I say hold on and I'll say plot coefficients of F as red circles. 104 00:11:31,770 --> 00:11:35,990 Then you can see that the adaptive algorithm chops at the right place. 105 00:11:36,530 --> 00:11:42,050 So that's the basis of telephone to use polynomials to do fast computing. 106 00:11:44,950 --> 00:11:51,610 Any questions? I'm going to show you, of course, how we can use them. 107 00:11:53,840 --> 00:11:59,070 Let's say I see on my handout here. I proposed to show you a snake. 108 00:11:59,090 --> 00:12:09,590 I'm not very good at snake, but let me try it anyway. Chap, Snake is a game where I'm not ready. 109 00:12:09,590 --> 00:12:14,569 Really, but let me try. So the idea is that luckily it's going slowly. 110 00:12:14,570 --> 00:12:17,780 I see. So you're. You're supposed to catch this apple, right? 111 00:12:20,280 --> 00:12:30,120 Now it's actually illustrating a mathematical point. So the every time you catch an apple, you get one more dot in the curve. 112 00:12:30,120 --> 00:12:42,600 I'm sorry. It's going so slowly. And the interpolate that's there is based on cheryshev technology so that it is a perfectly good interpolate. 113 00:12:42,840 --> 00:12:48,840 So you see there's nothing really wrong with that curve. And the point is to compare that. 114 00:12:50,400 --> 00:12:54,960 With what would happen if we did. Equally spaced polynomial interpolation. 115 00:12:55,440 --> 00:13:00,650 Why am I spending time on this? But having started, I guess I have to. 116 00:13:00,660 --> 00:13:09,330 So okay. This is relatively straightforward. Now I'm going to do it again, but this time I'm going to do it with the equity flag. 117 00:13:10,410 --> 00:13:14,050 So I'll say chub fun. Chub snake. Sorry. And what is it? 118 00:13:14,070 --> 00:13:20,950 I guess. Equity. So this is the same game except. 119 00:13:24,090 --> 00:13:32,970 Now it's going to be basing the curve on equally spaced polynomial interpolation, which is a very bad method of interpolation. 120 00:13:34,210 --> 00:13:42,930 You see, I'm not very good at this game. Okay. 121 00:13:42,930 --> 00:13:47,130 Now, what you're supposed to see is that as we get more and more dots in our in turbulent. 122 00:13:49,770 --> 00:13:54,450 It oscillates more and more. And if my playing is up to the challenge. 123 00:13:56,230 --> 00:13:59,550 You will see. That it's pretty dramatic. 124 00:14:00,670 --> 00:14:07,090 So in fact, equally spaced interpolation has oscillations that grow by a factor of two. 125 00:14:07,390 --> 00:14:16,930 Every time you add one point. So if I every time we capture one more apple, the wobbles should get twice as bad. 126 00:14:17,260 --> 00:14:20,280 Let's try to get about three more. Okay. And then we'll move on. 127 00:14:27,830 --> 00:14:34,830 Okay. Good. Okay. 128 00:14:34,840 --> 00:14:39,100 We're doing pretty well here. So this is equity based interpolation. 129 00:14:39,100 --> 00:14:48,800 That's the wrong phenomenon. It's called. And the runner phenomenon says you should never interpolate data by polynomials in equally spaced points. 130 00:14:51,090 --> 00:14:59,450 Because the oscillations will be terrible. So if wealthy. 131 00:15:00,020 --> 00:15:06,140 So if Jeb Fund had been based on equally spaced interpolation, we wouldn't have been able to go past degree 15 or so. 132 00:15:06,470 --> 00:15:10,250 But in fact, we can go to degree in the thousands. Okay. 133 00:15:10,250 --> 00:15:18,940 So let's go back to F. There was a F. And let's do some stuff with it, for example, if I say some of that. 134 00:15:19,390 --> 00:15:23,800 Well, in MATLAB, some would add up the elements of a vector. 135 00:15:24,070 --> 00:15:29,559 So here we do the continuous analogue, which is to integrate over the interval where F is defined. 136 00:15:29,560 --> 00:15:33,790 So that will be the integral from 0 to 10 of this function. 137 00:15:33,790 --> 00:15:39,850 F If I say F prime times g. Well, in MATLAB that would be a row vector times a column vector. 138 00:15:40,090 --> 00:15:43,960 In Turbofan it's a row function times, a column function, an inner product. 139 00:15:44,380 --> 00:15:49,510 So again, that's computed by an integral evaluated to 16 digit precision. 140 00:15:50,770 --> 00:15:56,140 If I say norm of F, the idea is if you're a MATLAB user, you automatically know what this means. 141 00:15:56,380 --> 00:15:59,410 You know, this will mean the square root of the integral of the square. 142 00:15:59,980 --> 00:16:03,250 Or if I say norm of f comma, one will get the one norm. 143 00:16:03,520 --> 00:16:06,910 Or if I say norm of f comma inf, we'll get the inform. 144 00:16:10,430 --> 00:16:17,239 Suppose I say come some of F well in MATLAB comes is the indefinite integral operation, right? 145 00:16:17,240 --> 00:16:22,340 Is the discrete cumulative sum. The continuous analogue is the indefinite integral. 146 00:16:22,340 --> 00:16:31,370 So there, there's that. And on the other direction, if I say diff of F well diff in matlab is a finite difference in TETFUND it's a derivative. 147 00:16:34,580 --> 00:16:41,330 So back to EF again. One of the key things of Tetfund and one of the most useful features is root finding, which is really wonderful. 148 00:16:41,360 --> 00:16:49,909 So if I say Roots of F, then it will compute all the points where that function goes through zero and return them as a vector. 149 00:16:49,910 --> 00:16:53,940 Ah, so there's that vector r. And let's guess plot them. 150 00:16:53,940 --> 00:16:57,450 I could say plot Avar against FLIR as dots. 151 00:16:58,950 --> 00:17:03,120 So they're the roots. Very quick way to do global root finding on an interval. 152 00:17:03,240 --> 00:17:13,440 Let's do another example. Let's say Bess equals Jeb fun of Bessel j of zero x on the interval from 0 to 1000. 153 00:17:14,040 --> 00:17:22,880 Okay, so there's a vessel function. If I plot it, you want to see its roots. 154 00:17:22,890 --> 00:17:26,400 Okay. Our equals roots of this plot. 155 00:17:26,400 --> 00:17:36,480 Hold on. Plot R against roots of a sorry against Bess of R as red dots. 156 00:17:38,430 --> 00:17:44,910 So there you see, those are the roots. And I could zoom in. How does this room work? 157 00:17:44,920 --> 00:17:52,690 How is it? I'm not doing very well. 158 00:17:52,690 --> 00:17:56,440 My zooming here. Sorry. Anyway, the roots are all there to high accuracy. 159 00:17:59,710 --> 00:18:06,150 So Japan has this global feature because things are represented globally as polynomials. 160 00:18:06,160 --> 00:18:10,840 It means that any operation you do more or less gets the right answer over the whole interval. 161 00:18:11,770 --> 00:18:17,500 So let's go back to F. And let's make another function. 162 00:18:21,110 --> 00:18:30,410 I'll say hat equals the absolute value of one minus x minus five over five, and I'm going to plot hat as a black line. 163 00:18:31,190 --> 00:18:34,370 Oops, I forgot. What did I do wrong? 164 00:18:36,420 --> 00:18:46,830 I meant one minus absolute on the inside. So plot f I meant hat equals the equals one minus the absolute value of x minus five over five. 165 00:18:52,120 --> 00:18:56,950 So in the first few years, Chevy Fun was all about globally smooth functions. 166 00:18:57,160 --> 00:19:00,880 But of course, in applications, people always have piecewise smooth functions. 167 00:19:01,120 --> 00:19:05,010 So we had to make it so that it could handle piecewise smooth things. 168 00:19:05,020 --> 00:19:09,190 And the black curve is an example of a piecewise linear function. 169 00:19:10,210 --> 00:19:13,550 We call that still a step fun, but each piece we call a fun. 170 00:19:13,570 --> 00:19:17,650 So a chair fun consists of one or more funds that one has to fund. 171 00:19:18,010 --> 00:19:27,050 And then all the applique, all the manipulations of tab funds that you might expect we've tried to implement. 172 00:19:27,070 --> 00:19:31,360 So for example, suppose I say h equals the max of f and hat. 173 00:19:33,100 --> 00:19:39,280 So H is now another type of fun, which should be the maximum of the black curve and the blue curve. 174 00:19:40,390 --> 00:19:45,680 So if I plot it, there it is, and I can do all sorts of things. 175 00:19:45,730 --> 00:19:49,870 Now, what's the maximum of H or what's the standard deviation of H or what's the norm 176 00:19:49,870 --> 00:19:56,710 of H or what's H evaluated at 5.3 or what's the infinity norm of H and so on. 177 00:19:58,300 --> 00:20:04,750 So all of these things are implemented by algorithms that do the right thing from all the pieces to find the maximum. 178 00:20:04,750 --> 00:20:08,770 We find the maximum on each piece and then find the maximum of those numbers. 179 00:20:08,980 --> 00:20:13,630 Or to do the integral, we would integrate over each piece and then add up those integrals. 180 00:20:16,410 --> 00:20:21,750 So let's do some more like that. Suppose I say HP four h prime equals the derivative of H. 181 00:20:23,160 --> 00:20:27,600 I could then say extrema. Equals the roots of the derivative. 182 00:20:29,610 --> 00:20:36,750 And then I could say plot extrema against h of extrema as black dots. 183 00:20:37,980 --> 00:20:45,450 So there you see, we found all the roots of the derivative, including those where the derivative jumps from one side to the other. 184 00:20:45,450 --> 00:20:49,110 So here the derivative jumps from negative to positive, and there's a dot. 185 00:20:49,500 --> 00:20:52,889 There's no dot here because the derivative is jumping from negative to negative. 186 00:20:52,890 --> 00:21:00,840 So there's no group there. I'll skip a little bit. 187 00:21:03,960 --> 00:21:08,640 For most of its history, Tetfund was all about cheryshev expansions and non periodic functions. 188 00:21:09,510 --> 00:21:13,770 We didn't do the periodic case because it seemed too obvious. Everybody knows about Fourier. 189 00:21:14,010 --> 00:21:18,900 Most people don't know about Gem often. But eventually we realised, even if it's obvious, it's still useful. 190 00:21:19,140 --> 00:21:24,480 So eventually a couple of years ago we added a capability for periodic functions. 191 00:21:24,900 --> 00:21:30,300 So for example, if I say E to the sign of pi x, what if I just did this? 192 00:21:31,620 --> 00:21:37,380 I get a perfectly good function. Bubs. 193 00:21:37,660 --> 00:21:45,040 Hold off. That's a Chevy chef representation of a periodic function. 194 00:21:45,250 --> 00:21:54,969 But we could also get a periodic representation. If I say trig, then it's the same thing graphically, but a completely different representation. 195 00:21:54,970 --> 00:22:04,720 It's now a 48 series. And indeed, if I say plot coefficients of F, then you can see that the 48 series has a zero component there. 196 00:22:04,720 --> 00:22:10,900 And then as you go negative and positive wave numbers, it decreases down to machine precision in the usual fashion. 197 00:22:17,270 --> 00:22:22,310 So let me show you again some piecewise smooth jab funds. 198 00:22:22,550 --> 00:22:28,850 So if we say x equals scribble, there is no fun like jab fund. 199 00:22:30,530 --> 00:22:37,430 What that does is it makes a jab fun. So let's plot and I'll say plot x axis equal. 200 00:22:38,820 --> 00:22:46,830 So this is a piecewise linear function, but the catch is it's a piecewise linear, complex function. 201 00:22:46,830 --> 00:22:54,480 So that's the real part and that's the imaginary part. It's a function of a real variable, as always with fun, but it's a complex function. 202 00:22:54,750 --> 00:23:00,060 So maybe the first piece would be that stroke of the T, and then the second piece might be that stroke of the T. 203 00:23:00,300 --> 00:23:05,910 So this has maybe 100 pieces, but often it's just a function. 204 00:23:06,120 --> 00:23:11,429 So I could do things like what's S at point three or what's the maximum of the real 205 00:23:11,430 --> 00:23:17,160 part of S or what's the maximum imaginary part of this or what's the norm of this? 206 00:23:17,970 --> 00:23:24,960 Or What's E to the s? So here we're computing. 207 00:23:26,550 --> 00:23:33,780 A complex function or what each of the three times as can anyone guess what this will look like. 208 00:23:38,750 --> 00:23:42,410 I can't hear you. What? Yeah. 209 00:23:43,510 --> 00:23:49,280 Uh. Yeah. 210 00:23:49,290 --> 00:23:57,960 So that's a rotation. So several of you said it, but here for you, there's a seven memory stick, eight gigabytes. 211 00:23:59,910 --> 00:24:01,980 Yeah. So this is just another function. 212 00:24:03,900 --> 00:24:12,810 It's piecewise smooth, no longer piecewise linear, and each piece would be 16 digit accurate, representing the curve that it's supposed to be. 213 00:24:12,960 --> 00:24:16,760 It's actually a pretty good way to explore your complex functions. 214 00:24:16,770 --> 00:24:21,719 You know, if you want to know what does the sign look like or something, you know, anyone know? 215 00:24:21,720 --> 00:24:26,970 Well, you do that and you can pretty quickly get a sense of things. So what does the hyperbolic sign look like? 216 00:24:29,270 --> 00:24:32,420 And so on. What does the square look like? Let's try. 217 00:24:36,060 --> 00:24:43,440 We'll get square s. So lots, lots to play with. 218 00:24:47,220 --> 00:24:48,840 Okay. Turning over the page now, 219 00:24:49,050 --> 00:24:56,460 I'm going to show you the stuff that was the original motivation for even though it turned out to be not the most important thing for users. 220 00:24:56,970 --> 00:25:05,370 So the original idea is one that we mentioned a few lectures ago of taking long skinny matrices and turning their columns into Continua. 221 00:25:05,910 --> 00:25:11,670 So you imagine instead of an M by N Matrix, an infinity by n matrix, where each column is a function. 222 00:25:12,150 --> 00:25:20,100 So for example, suppose X is the trivial fun on the unit interval by default. 223 00:25:20,700 --> 00:25:27,270 And suppose I make a quasi matrix, as we call it, 1xx squared, x cubed, x to the fourth. 224 00:25:29,580 --> 00:25:34,229 So hopefully you can just from that, see what it's got to mean. 225 00:25:34,230 --> 00:25:37,230 It's it has five columns and each one is a function. 226 00:25:38,010 --> 00:25:45,780 So I could do things like evaluate a I could say what's a at point three comma. 227 00:25:47,210 --> 00:25:54,950 To. Who can tell me the answer to that? Right. 228 00:25:54,980 --> 00:26:01,420 You get another memory stick. Who was that? That you. Okay. Let's do one more. 229 00:26:03,070 --> 00:26:08,930 Okay. Let's say. Point five. Karma for that. 230 00:26:09,070 --> 00:26:12,840 Happy. Somebody. 231 00:26:15,510 --> 00:26:20,580 Yeah, I think that's right. All right, so I'm running low here, but who was that? 232 00:26:22,230 --> 00:26:29,880 Sorry, who was that? You. Okay. 233 00:26:31,560 --> 00:26:34,620 So A is this object which is continuous by five. 234 00:26:34,620 --> 00:26:38,250 If you say size of A, you get infinity by five. 235 00:26:38,640 --> 00:26:44,580 So Cliff Muller, the guy who invented MATLAB, like to have fun and this is the thing he likes most. 236 00:26:44,700 --> 00:26:48,239 Every time he sees infinity by five, he just laughs. 237 00:26:48,240 --> 00:26:54,540 He loves it because you know, it's such a sweet, natural generalisation of classic MATLAB stuff. 238 00:26:55,170 --> 00:27:06,719 If I were to plot a Oh, I like spy. If I spy A you can get a sense of continuous by five or if I plot a Well, 239 00:27:06,720 --> 00:27:10,590 you know, in MATLAB, when you plot a matrix, the default is it plots each column. 240 00:27:11,190 --> 00:27:16,650 So there you see the columns of A, there's one and X and so on. 241 00:27:19,250 --> 00:27:24,230 If I do linear algebra, I get the correct continuous analogues. 242 00:27:24,560 --> 00:27:35,570 So for example, the Q, R Factorisation of A is a product of a matrix that's infinity by five by a matrix that's five by five. 243 00:27:36,800 --> 00:27:46,260 Or if I plot Q. Well, think about the QR factorisation here we have five functions in the QR. 244 00:27:46,260 --> 00:27:52,550 Factorisation we orthogonal those functions. So if I plot Q, I'll get the same functions except orthogonal. 245 00:27:55,800 --> 00:27:56,940 Who knows what those are called? 246 00:28:00,740 --> 00:28:08,450 They're legendary polynomials because the genre of polynomials are what you get when you are in lies x, x squared and so on. 247 00:28:08,450 --> 00:28:14,180 And the unit interval. And you can do things like the singular value decomposition of a. 248 00:28:14,480 --> 00:28:18,710 So what does that mean? Well, you know the picture for the SVD. 249 00:28:20,180 --> 00:28:32,590 Let's draw that on the board. So you know that if you take a matrix. 250 00:28:34,360 --> 00:28:42,280 Say an m by n matrix. Then it maps from our end. 251 00:28:44,050 --> 00:28:52,120 To our M. And it always maps the unit ball in our m to a hyper ellipsoid. 252 00:28:52,130 --> 00:29:00,610 So origin goes to origin and then the singular value decomposition is a way of getting at the principal axes of that hyper ellipsoid. 253 00:29:02,050 --> 00:29:06,940 Well, if it was infinity, it's the same thing. So now we have a quasi matrix. 254 00:29:08,970 --> 00:29:16,470 Whatever our infinity means. So again, it's mapping this end dimensional unit ball onto a hyper ellipsoid. 255 00:29:17,130 --> 00:29:21,510 This lives in an infinite dimensional space, but it only has dimension end generically. 256 00:29:21,750 --> 00:29:25,710 So it's a finite, dimensional, hyper ellipsoid in an infinite dimensional space. 257 00:29:25,920 --> 00:29:28,190 The speed has the obvious interpretation. 258 00:29:28,200 --> 00:29:36,750 So this here would be the first singular value times, the first singular vector, and this would be, if you like, the next singular value. 259 00:29:39,220 --> 00:29:45,190 Times, the next singular vector and so on, and their pre images would be vectors over here. 260 00:29:45,520 --> 00:29:49,780 So everything makes perfectly good sense mathematically in infinite dimensions. 261 00:29:49,930 --> 00:29:55,990 And chip fun has algorithms that compute that. So the SVR, we just did. 262 00:29:56,140 --> 00:29:59,350 Those are the singular values, the length of the axes. 263 00:30:00,790 --> 00:30:07,990 So this is what we were doing when Tetfund was created originally, which is more than ten years ago. 264 00:30:08,200 --> 00:30:13,300 But as far as we can tell, people don't use this stuff very much at school, but who needs it? 265 00:30:14,920 --> 00:30:18,520 What turned out to be much more important than practice was differential equations. 266 00:30:20,620 --> 00:30:23,920 So let me show you a bit of that. Let's make what we call a check up. 267 00:30:26,320 --> 00:30:30,700 So I'll say L equals check up on the interval from -20 to 20. 268 00:30:31,030 --> 00:30:38,460 So check up, of course, is going to stand for an operator, a differential operator, and let's create one. 269 00:30:38,470 --> 00:30:43,450 I'll make it define it by an anonymous function, typical MATLAB style. 270 00:30:45,940 --> 00:30:53,140 So this operator takes the second derivative and then subtracts x times you from that. 271 00:30:53,590 --> 00:30:57,010 So it's a variable coefficient linear operator in this case. 272 00:30:57,310 --> 00:31:05,950 Of course we're going to need some boundary conditions. So I'll say l dot LBC equals one held dot RBC equals zero. 273 00:31:07,540 --> 00:31:14,530 And then in tetfund you can solve this by backslash, just the way you would solve a matrix problem in matlab. 274 00:31:14,710 --> 00:31:18,760 So if I say you equals l backslash zero. 275 00:31:19,600 --> 00:31:24,880 So what that's doing is solving l u equals zero for you. 276 00:31:26,620 --> 00:31:32,110 So l u equals zero would be a differential equation. And we're using whatever algorithm it takes to solve that. 277 00:31:32,260 --> 00:31:39,879 In fact, the algorithm I can describe easily, it consists of just criticising the problem on a Chevy chef grid of size 17 and then 278 00:31:39,880 --> 00:31:46,210 33 and then 65 and so on until the constructor gets down to machine precision. 279 00:31:46,600 --> 00:31:53,980 So it's a standard Chevy chef spectral method in this automatic loop of finer and finer grids until machine precision. 280 00:31:56,090 --> 00:32:01,400 So if we do that, we have just solved for you. First time you do anything takes forever. 281 00:32:01,430 --> 00:32:04,880 Let me prove that that's true. Let's do it again. Faster. 282 00:32:07,130 --> 00:32:11,470 So there we've solved this differential equation. The solution there is an area function. 283 00:32:11,480 --> 00:32:17,090 You know, this is the area differential equation. And as you can imagine, it's very easy to play with things. 284 00:32:17,390 --> 00:32:22,490 Suppose I had changed the operator, for example, by putting a point one in front of the derivative. 285 00:32:24,080 --> 00:32:28,730 So there's a principle of differential equations that whenever you want to make the solution more interesting, 286 00:32:28,880 --> 00:32:31,940 you reduce the constant on the highest derivative. 287 00:32:32,510 --> 00:32:36,140 So if I now solve it and then plot you. 288 00:32:36,740 --> 00:32:42,910 Oops. You'll see it's a higher oscillation, but that's still a polynomial. 289 00:32:43,300 --> 00:32:47,320 It's a telephone. There's its length. What's the max of you? 290 00:32:47,350 --> 00:32:51,190 What's you at? -2.3. What's the norm of you? 291 00:32:52,750 --> 00:32:56,530 All sorts of calculations are in the same fun framework. 292 00:33:00,080 --> 00:33:08,360 And then you can do other fun, linear stuff. For example, what about the eigenvalues of this operator? 293 00:33:08,510 --> 00:33:14,960 Now, if you think about MATLAB and Eigenvalues, there's a command eigg, which gives you all the eigenvalues of a matrix. 294 00:33:15,530 --> 00:33:20,270 Now I give an operator wouldn't make sense because an operator has infinitely many eigenvalues. 295 00:33:20,480 --> 00:33:27,140 We're never going to compute infinitely many. I was, on the other hand, is the MATLAB command to get a few eigenvalues of a big matrix. 296 00:33:27,440 --> 00:33:31,430 So we've overloaded that to give eyes of an operator. 297 00:33:31,820 --> 00:33:37,280 So by default it will give you six of them. And I see because of that small coefficient, it's taking me a while. 298 00:33:37,640 --> 00:33:42,020 Suppose I only wanted three of them. I could say something like that. 299 00:33:49,310 --> 00:33:53,420 Let's do another one for fun playing with eigenvalues of Schrödinger operators. 300 00:33:53,660 --> 00:33:59,400 So for example, here I'm on the interval from -3 to 3. 301 00:33:59,420 --> 00:34:06,370 I could make a Schrödinger operator and find its eigenvalues. But for fun, we've got a special command that does that all for you. 302 00:34:06,380 --> 00:34:09,410 So if I say, well, let's say quantum states of X squared. 303 00:34:10,100 --> 00:34:18,320 Now what that does is it sets up a Schrödinger eigenvalue problem with a potential corresponding to x squared. 304 00:34:18,530 --> 00:34:25,160 And that computes by default the first ten eigen functions, and then it plots them at their appropriate height. 305 00:34:25,400 --> 00:34:31,130 So the physicists among you will recognise the spacing one three, five, seven, nine. 306 00:34:31,340 --> 00:34:37,070 The reason it's .1.3.5 is that I think Planck's constant has been set at 2.1 or something. 307 00:34:37,730 --> 00:34:40,160 So there you have eigen functions of this operator. 308 00:34:40,520 --> 00:34:46,670 This one you could do on paper, of course, but you don't have to change it very much to get something more challenging mathematically. 309 00:34:47,030 --> 00:34:51,350 So there we have the first ten eigen functions of the absolute value function. 310 00:34:51,650 --> 00:34:56,090 And there you can see it's a different shape and the spacing between the eigenvalues is different. 311 00:34:56,750 --> 00:35:02,330 If you're a physics type, you can have a lot of fun with double well potentials and illustrate all sorts of things here. 312 00:35:03,830 --> 00:35:09,140 How many people know this kind of picture? That's enough. 313 00:35:09,160 --> 00:35:15,370 Let's try to put in a double well, potential. Okay. So we'll say let's see if the is x squared. 314 00:35:16,030 --> 00:35:22,710 And I say quantum states of V. Then I get that. 315 00:35:22,730 --> 00:35:27,410 Okay, now let's put a little something in the middle. I'll say the equals. 316 00:35:28,920 --> 00:35:32,040 The max of itself. 317 00:35:32,970 --> 00:35:41,850 And then I'll say. Uh, 1.5 minus five times X squared, I'm guessing here. 318 00:35:42,780 --> 00:35:47,950 Will that be a double? Well. Let's see if I pluck V. 319 00:35:47,950 --> 00:35:51,220 Does that look good? That's what might work. You think it'll work? 320 00:35:52,270 --> 00:35:58,990 Let's try quantum states of V, see if it's interesting. Huh? 321 00:35:59,620 --> 00:36:03,000 What happened? Oh, I said absolute X instead of V. 322 00:36:10,010 --> 00:36:14,280 Oh, it worked. Okay, so here you have a double. 323 00:36:14,280 --> 00:36:17,480 Well, potential the lowest state. 324 00:36:18,020 --> 00:36:21,890 There are two island modes here with virtually identical eigenvalues. 325 00:36:22,130 --> 00:36:25,580 The lowest one would be the blue one, which is an even function. 326 00:36:25,580 --> 00:36:28,160 And the next one is the red one, which isn't on function. 327 00:36:28,370 --> 00:36:34,340 So there you see the kind of line splitting that you get in the spectroscopy are more or less the same thing here, the lowest. 328 00:36:35,230 --> 00:36:37,970 Well, these are the third and fourth eigen functions. 329 00:36:38,180 --> 00:36:44,090 One of them is approximately even and the other is approximately the green looks even and the blue looks odd. 330 00:36:44,510 --> 00:36:48,559 And then as you get near the top of the double, well, it begins to be less important. 331 00:36:48,560 --> 00:36:52,790 And once you get way above it, it looks as if there's no barrier at all. 332 00:36:53,090 --> 00:36:56,750 So, in fact, if we let's compute 30 of them instead of just ten of them. 333 00:37:02,660 --> 00:37:12,350 That's taking too long. That's annoying. So here you can see that the one kind of physics is happening down here and rather different up there. 334 00:37:13,100 --> 00:37:20,090 As a rule, telephone is supposed to be the most convenient method for solving anything available, but it's never the fastest numerically. 335 00:37:20,300 --> 00:37:23,450 I mean, it shouldn't take 5 seconds to solve that problem. 336 00:37:25,430 --> 00:37:32,720 Okay. Let me show you a little more. For a few years, telephones, differential equations were linear. 337 00:37:33,880 --> 00:37:38,740 But then we realised how we could embed them in a Newton iteration in an automated way. 338 00:37:38,920 --> 00:37:45,970 Everything done in this sort of continuous mode. So now you can also do nonlinear things, and I could do that all with check ups. 339 00:37:46,000 --> 00:37:51,430 But to keep the time under control, I'm going to go into the graphical user interface called Jeb Gooey. 340 00:37:53,070 --> 00:38:01,800 So there we are in February. And what you can do here is type a differential equation and see what happens. 341 00:38:02,100 --> 00:38:08,760 So there are a bunch of demos built in and if I went to the area equation, we'd find the kind of thing we looked at before. 342 00:38:10,630 --> 00:38:13,690 Or let's see, let's go to the an advection diffusion equation. 343 00:38:14,200 --> 00:38:20,170 So here we have you double prime plus U, prime plus U, and then some boundary conditions. 344 00:38:20,740 --> 00:38:21,760 If I solve that. 345 00:38:23,760 --> 00:38:30,480 You can see there's a boundary layer at the left end and then the plot down here is showing you the chubby shove coefficients of the solution. 346 00:38:30,720 --> 00:38:35,160 So that's a polynomial of length, about 40. And those are the Chevy chef coefficients. 347 00:38:35,640 --> 00:38:42,920 Let's make the boundary layer narrower. So I'll change point oh to 2.0 to. 348 00:38:46,670 --> 00:38:52,220 So now again, it's a smooth polynomial, but its length has gone up to 122. 349 00:38:55,030 --> 00:39:00,189 Of course, if the boundary layer were of with ten to the minus sixth, this wouldn't be an efficient way to go. 350 00:39:00,190 --> 00:39:04,749 But it's surprisingly good when you're when numbers like 100 are floating around. 351 00:39:04,750 --> 00:39:10,040 If I made it 0.0002, would that still work? See it still worked. 352 00:39:10,060 --> 00:39:15,370 It's a very narrow boundary layer, but no problem. It's only a polynomial of length 322. 353 00:39:15,580 --> 00:39:20,350 On the other hand, if I tried to make it, you know, semitone scale, we'd be in trouble. 354 00:39:22,490 --> 00:39:28,790 Let's show a couple of other examples, some nonlinear ones. So still in the boundary value problem context. 355 00:39:29,420 --> 00:39:37,040 Suppose I say, for example, the non-linear pendulum. So there you have you double prime equals minus sign of you with some boundary 356 00:39:37,040 --> 00:39:41,480 conditions and you can specify an initial guess if you want for the Newton iteration. 357 00:39:41,870 --> 00:39:45,380 And when you press solve, it goes ahead and does a down to Newton iteration. 358 00:39:46,070 --> 00:39:49,340 In the bottom left you can see the corrections that are being added to the step. 359 00:39:49,910 --> 00:39:55,200 This one has converged and there's the converged solution. And you don't have to do this in the Google. 360 00:39:55,220 --> 00:39:59,600 You can export all this to an amp file which turns it into a Jeb fun command. 361 00:40:01,230 --> 00:40:06,330 There's other fun stuff. Let's do a couple more and let's do a let's do the Lorenz equations. 362 00:40:06,390 --> 00:40:10,050 So here we have an initial value problem. There are three bodies. 363 00:40:12,520 --> 00:40:15,910 This is the classic example of a chaotic system. 364 00:40:17,320 --> 00:40:19,390 So if I solve it, it does it thing. 365 00:40:22,880 --> 00:40:30,260 And there you see a chaotic trajectory and you see three curves down here showing the chubby chef coefficients of the three components. 366 00:40:32,960 --> 00:40:38,780 Or we could play with eigenvalue problems. So for example, here's a famous one or Sommerfeld problem. 367 00:40:39,680 --> 00:40:46,160 This comes from fluid mechanics. It's a fourth order complex generalised eigenvalue problem. 368 00:40:46,400 --> 00:40:50,000 And I believe the demo here is computing 50 eigenvalues. 369 00:40:50,420 --> 00:40:54,350 So this is from fluid mechanical stability for flow between a channel. 370 00:40:54,800 --> 00:41:01,640 It's taking a while. But there the eigenvalues in the complex plane the first, the 50 rightmost eigenvalues of this operator. 371 00:41:01,910 --> 00:41:07,399 In the complex plane, there are the eigen functions plotted all on top of one another. 372 00:41:07,400 --> 00:41:10,460 But of course, you could isolate them all if you wanted to. 373 00:41:13,310 --> 00:41:17,330 And there's also some PD stuff built in here, though not quite as reliable. 374 00:41:17,720 --> 00:41:27,950 So, for example, here's the Alan Kahn equation, which is when we like, it's a time dependent PD so Chevy Chef stuff in space and other things in time. 375 00:41:29,480 --> 00:41:33,530 This is an equation whose steady state is going to be the solution minus one. 376 00:41:33,830 --> 00:41:41,000 And when we make it go, those three spikes will decrease to zero at different rates because they have different widths. 377 00:41:41,870 --> 00:41:45,530 So I think on my computer, this goes very slowly, if I remember right. 378 00:41:47,460 --> 00:41:51,900 That's pretty slow. All right. But anyway, you can solve some Pedes. 379 00:41:58,740 --> 00:42:05,400 So that brings us to about three years ago. And then we've been moving into two and soon three dimensions. 380 00:42:05,610 --> 00:42:10,050 So let me just show you a little bit about have fun in two dimensions. 381 00:42:13,520 --> 00:42:16,640 So for example, suppose I say cheap fun to. 382 00:42:18,550 --> 00:42:21,340 Of a function of X and Y, and there's a trivial function. 383 00:42:24,260 --> 00:42:29,810 And similarly, I suppose I say y equals Jeb fun to the function of x and y, another trivial function. 384 00:42:30,050 --> 00:42:35,540 Now I can play with x and Y by default on the unit square from -1 to 1 squared. 385 00:42:35,780 --> 00:42:43,310 So if I say equals cosine of 20 x for example, times e to the minus five times x squared plus y squared. 386 00:42:46,540 --> 00:42:54,490 Then it's doing a similar process of constructing a finite representation to machine precision of this function. 387 00:42:54,820 --> 00:42:58,270 So if I say plot of death, you'll get some kind of surface. 388 00:42:58,270 --> 00:43:05,230 Or if I say contour of F with 50 levels, you'll get a contour plot with a lot of levels. 389 00:43:05,950 --> 00:43:09,530 And of course, you can evaluate you can say F of zero zero. 390 00:43:09,550 --> 00:43:15,420 What will that be? I have one more memory stick now. 391 00:43:15,420 --> 00:43:28,130 I have two more memory sticks. Who said it first. 392 00:43:29,360 --> 00:43:32,820 Did you already have a memory stick? Oh, okay. Mm hmm. 393 00:43:34,490 --> 00:43:39,300 Um, but then, of course, you can do things like compute. 394 00:43:39,320 --> 00:43:46,650 You can take exponentials and so on. If I take the length of this f, it turns out what that gives you is a certain rank. 395 00:43:46,670 --> 00:43:51,620 This turns out to be a function that's separable into an x times a y component. 396 00:43:51,860 --> 00:43:54,950 On the other hand, if I start computing with it, there's G, for example. 397 00:43:55,430 --> 00:44:02,150 Length of G is rank nine. So this function is represented as a sort of a rank nine approximation. 398 00:44:02,360 --> 00:44:09,170 And the mathematics is very much connected to data compression and matrix completion and all that stuff. 399 00:44:09,350 --> 00:44:14,840 I mentioned this a little bit the other day when I mentioned that Gaussian elimination is now an intuitive algorithm. 400 00:44:15,170 --> 00:44:21,260 Well, Tetfund, too, is using an iterative form of Gaussian elimination to construct approximations. 401 00:44:21,500 --> 00:44:27,600 Let's do contour of G. So it looks the same because it's the same shape here. 402 00:44:31,010 --> 00:44:34,520 And of course you can do various things. So if this is G. 403 00:44:36,200 --> 00:44:44,210 If I say some of, gee, I get a check fund because by default some would plug some long columns. 404 00:44:44,450 --> 00:44:49,610 So if I plot some of G. You get a curve. 405 00:44:49,970 --> 00:44:52,940 On the other hand, if you want to integrate in both directions. 406 00:44:53,090 --> 00:44:58,579 Well, you could say some of some of G and that would integrate in one direction and then the other. 407 00:44:58,580 --> 00:45:08,600 Or we have a built in command some two of G. It's very good at doing things like finding Minima and Maxima. 408 00:45:08,840 --> 00:45:12,860 Let me, however, do this. Explain command. That's kind of new. 409 00:45:15,140 --> 00:45:20,560 So suppose you want to know what's happening when it constructs one of these ten fun tools. 410 00:45:21,640 --> 00:45:30,410 Now. Let's see if this works. This is your Chevy fun movie. So that's the function we're explaining. 411 00:45:35,180 --> 00:45:41,160 First it gets sampled on a grid. And then. 412 00:45:43,240 --> 00:45:50,100 It goes a bit slowly. So then it does this rank one approximation. 413 00:45:50,550 --> 00:45:57,270 So there's a row in a column. So now it's seeing whether F can be represented by rank one, this particular F can. 414 00:45:57,570 --> 00:46:01,050 So it's not a very good choice for the explained function. 415 00:46:01,260 --> 00:46:07,290 We should have done G instead. My apologies. But anyway, it then does this wonderful movie stuff. 416 00:46:09,550 --> 00:46:13,660 And explains how you've thereby reduced your two day function to a couple of 417 00:46:13,660 --> 00:46:17,920 one day functions which are then approximated with turbofan as usual fashion. 418 00:46:18,310 --> 00:46:21,970 Those are some plots of the coefficients of the X function and the Y function. 419 00:46:25,280 --> 00:46:28,490 And then I think it's about to show you that the final representation. 420 00:46:31,030 --> 00:46:35,560 Is a suitable product. But since this is rank one, it'll be a fairly trivial product. 421 00:46:39,980 --> 00:46:49,400 How is it stored? It's stored as two quasi matrices, but these quasi matrices are infinity by one, so they weren't very exciting quasi matrices. 422 00:46:49,700 --> 00:46:53,390 Now, let's see. I'll show you like one more thing. What will I show you? 423 00:46:57,760 --> 00:47:00,280 Well, I'm going to skip to number 14 and just do that. 424 00:47:00,290 --> 00:47:19,720 So suppose I say theta equals 0.9 times pi times x and phi equals pi times x and capital f equals minus one plus point three times cosine of phi. 425 00:47:21,400 --> 00:47:25,600 Stop me if you see a typo, tell me so I can fix it. 426 00:47:26,020 --> 00:47:38,950 Times sign of theta and then I'll say one plus point three times cosine of phi, times cosine theta and point three times sine. 427 00:47:38,950 --> 00:47:42,820 Anyone see any errors here? Hope that's right. 428 00:47:44,490 --> 00:47:49,000 This play. In the first line. 429 00:47:49,240 --> 00:47:52,960 That's a good point. Yes. So this will be garbage. Okay. 430 00:47:52,990 --> 00:47:58,000 Thank you very much. So I should have said five equals pi times y. 431 00:48:00,940 --> 00:48:06,320 Okay. Now, if I do a surface plot of f you see, we can do these. 432 00:48:06,340 --> 00:48:12,400 I need an access. Equal access. Equal can light show. 433 00:48:12,820 --> 00:48:20,660 So we can do this fun stuff with surfaces and through these and we're extending it to methods of computing functions on spheres and disks. 434 00:48:20,920 --> 00:48:23,980 So it's really turned out to be a wonderful organising principle. 435 00:48:24,280 --> 00:48:29,950 Just to remind you, the essential idea is always continuous analogues of familiar, discrete things. 436 00:48:31,840 --> 00:48:36,460 Okay, so that's it. Now, let's see. Mikhail is going to hand out assignment to. 437 00:48:36,670 --> 00:48:39,790 Is that the usual way through him and and through Z. 438 00:48:39,820 --> 00:48:40,660 Okay. Thanks.