If you're wondering why like me, I looked up the .dblquad function(?) scipy.integrate.dblquad(func, a, b, gfun, hfun, args=(), epsabs=1.49e-08, epsrel=1.49e-08) From the scipy doc, it defines gfun (lower boundary curve in y), and hfun(the upper boundary curve in y) are the bounds for y. This is probably why we have to define y first. please correct me if I'm wrong.
may I ask you if at the Fourier example where you showed the two transform peaks at around 1.0 and 1.2 Hz, there is a chance you didn't create the correct frequency domain? I'm probably getting something wrong, but by making your signal with sin(2*π*t) + sin(4*π*t), wouldn't you espect to see the peaks at 1 Hz and 2 Hz respectively? as in this case you have ω1 = 2π , ω2 = 4π, so f1 = ω1/2π = 1 and f2 = ω2/2π = 2. I don't know what i'm missing right now. I tend to transform the frequency domain using fftshift, but your method should have worked just fine for the example. Anyway, reallly good video, thanks for making this amazing content
@@agustinbrusco7173 I definitely should have explained this better, but what's happening here is an example of aliasing. Because the 2Hz component is larger than the Nyquist frequency of about 1.6Hz, its component gets "folded back" into a smaller frequency. So technically there is no 1.2Hz component, but the spectral density estimator predicts a frequency there.
@@MrPSolver ooohhh, so that's what happened, thanks for the explanation. So I guess that if you had created t with a bigger resolution (say, 10000 elements for example), we would had seen the "real peaks" with no aliasing?
This, this video is an absolute savior. I'm working on my final motion planning project for the class I'm taking and nothing came close to showing me the proper way to calculate trajectories with inputs for my drone. YOU ARE THE BEST!
Regarding curve fitting you can set up how many iterations it does and that leads to good fits even from bad guesses... because sometimes there is no way to know exactly what the parameters are at all, like if you are fitting a multiple exponential decay
The DE at 34:43 actually is solvable by hand: $v(t)=-\dfrac{\sqrt{b}\tanh(\sqrt{ab}\,t)}{\sqrt{a}}.$ But the general principle you're demonstrating is certainly applicable to DE's that you can't solve by hand.
That was an exceptionally good video. Thanks a lot! By the way, could you make a video about fitting a curve when you have points with x and y errors (if you haven't already done it)?
You are a genius dude! I have gone through most of your videos and enjoying immensely. Being an engineer, I have to go through similar calculations in water flow network design, water treatment unit designs and alike. We normally do it in MS Excel using VBA. When I happened to watch your video in Numpy and Matplotlib, it got me in and in...awesome experience. So, I started self-learning Python since last two months, and am finding this very interesting and useful for my job. Hope I will gain average skill by next year. Your way of explaining and executing the codes is so clear and best in the youtube. Thanks.
Great Tutorial! Thank you very much! I'm glad that there exists free software like this and not just expensive proprietary software suites like matlab.
Enjoying your style! Just wanted to point out that at 31:03, you forgot the 2 in the sin argument in your code, so that the code didn't actually calculate the displayed integral.
I am a neuroscientist and I LOVE your channel!!! I learned Python coding almost 4 years ago but I really want to improve my skills and apply more in my field for more complex data analysis. I was looking for a tutorial how to convert complex math equation in Python scripts (in my case is more for statistical analysis), and I came across with your video “1st year of calculus but in python”. I loved it!! Thank you!! :)
You might want to try the following line to actually see the array: D_kronsum = (kron(D, np.identity(N)) + kron(np.identity(N), D)).toarray() rather than obtain information about the object:
Please show a bit of LLMs used for scientific numerical problems. I had both chatGPT and Bard generate code to solve a 3 domain diffusion problem. ChatGP4T setup the ODEs and used a numerical solver and then plotted , Bard showed the solved ODE’s and plot these. The code I asked for was R, not python. What I haven’t been able to do well is get it to fit to equations. I signed up for your Udemy course by the way, thank you very much.
I think the equation of a harmonic oscillator on the thumbnail has a wrong sign: it must instead read "\ddot{\theta} + \frac{g}{l} \cdot \sin{\theta} = 0" (unless you take g=-9.81, ofc)!
Thanks for this. I'm working on an ODE (nonlinear) model problem in botany, and this video helped. I have one request though - could you make a future video on turning ODE models into optimal control problems and solving them in Python? Thanks in advance.
hello bro, i'm only half way done with this video but wow this is super helpful for us, i wish i learn this during college days. thank you & more power! from philippines here
Nice explanation. For quite sometimes I am trying to model particle flow in Python following a research paper. But unable to do so. There is no one I know who does theoretical work, could you please help me with the problem?
Great video! I’m envious of the students you have been TA for😅 Have you compared using minimize versus least_squares? I’ve found that least_squares is MUCH better that minimize for least square / SSQ problems.
Another comment: at 33:04, when you're doing the double integral, scipy gives a different result from Mathematica (an NIntegrate[Integrate[ command can handle this one): 0.59009. That's quite different from the scipy result. I'm curious about that. I get the 0.59009 from Mathematica regardless of which order of integration I use (as you would hope). Does scipy give you the same result if you do int_0^1 int_sqrt(y)^1 sin(x+y^2) dx dy + int_-1^0 int_-y^1 sin(x+y^2) dx dy?
Thank you for this comment! Yes: it turns out my x and y were mixed up in my function (y has to come before x in the integrand=...) line. I've made corrections based on your comments and updated the GitHub code!
@@MrPSolver Well, that's subtle! What's the general rule about which order to do that in a lambda expression? 'Cause if I do func1 = lambda x, y: x + y**2, and func2 = lambda y, x: x + y**2, the first one yields the results I'm expecting, but the second one reverse the order of the arguments!
@@adriankeister4389 in general the variable that corresponds to the inner most integral (in this case y) comes first in the lambda function. Thanks again for catching this 😁. Happy to know you're going over the tutorial in depth!
I suppose others have mentioned, but turn up your headphones until you stop shouting, or don't use them. I appreciate the speed and density of the information.
thanks for this video! can you do a tutorial of how to minimize the error between a given dataframe and odeint results ? I'm facing a problem like this right now, where I try to optimize some parameters of my ODEs to reduce the error between real data and the model values!
Thanks for your video. I'm currently using VScode as editor for my Python programming but I think that your IDE is more interesting and user-friendly. Can you tell me what is it and suggest me tutorials about its installation and learning?
Unfortunately no website exists! Hopefully this channel becomes that website, to some extent. The problems are communicated to me through telepathy with aliens.
Hi! Do you know what to do maybe if my ODE isn't linear? Like I can't get dydx out of ode to know what it equals for. Ive met problems like this in my chemeng classes and ive always had to write explicit euler to solve them just because couldn't find anything useful in the google.
I tried to compute the third order derivative for the example used in this video, but it doesn't work; and the same even if I use much simpler functions that are clearly of class C infinite. It returns me a ValueError message in which it is specified that the error comes from the order argument (it is not the same as n), which I didn't even specify. Is it that scipy isn't really defined for computing higher order than 2 or maybe there is something I am missing?
Hello..I am a PhD student in physics from Iraq..I hope you can help me find codes in the Python program to study the Fe(II)particle (ising model 2D)to determine the spin crossover of the electrons and find the energy..with many thanks to you.
The difference between strictly greater than zero vs. greater than or equal to zero isn't really important for these sorts of optimization problems. In the 2 dimensional boundary in this problem, for example, you'd still be confined the the same total area (the optimal location couldn't exist on the boundaries, for sure, but it could be VERY VERY close to the boundaries).
CORRECTIONS:
31:30: The function should be lambda y, x; not lambda x, y. The result for the integral is incorrect in the video.
If you're wondering why like me, I looked up the .dblquad function(?)
scipy.integrate.dblquad(func, a, b, gfun, hfun, args=(), epsabs=1.49e-08, epsrel=1.49e-08)
From the scipy doc, it defines gfun (lower boundary curve in y), and hfun(the upper boundary curve in y) are the bounds for y. This is probably why we have to define y first. please correct me if I'm wrong.
may I ask you if at the Fourier example where you showed the two transform peaks at around 1.0 and 1.2 Hz, there is a chance you didn't create the correct frequency domain? I'm probably getting something wrong, but by making your signal with sin(2*π*t) + sin(4*π*t), wouldn't you espect to see the peaks at 1 Hz and 2 Hz respectively? as in this case you have ω1 = 2π , ω2 = 4π, so f1 = ω1/2π = 1 and f2 = ω2/2π = 2. I don't know what i'm missing right now. I tend to transform the frequency domain using fftshift, but your method should have worked just fine for the example. Anyway, reallly good video, thanks for making this amazing content
@@agustinbrusco7173 I definitely should have explained this better, but what's happening here is an example of aliasing. Because the 2Hz component is larger than the Nyquist frequency of about 1.6Hz, its component gets "folded back" into a smaller frequency. So technically there is no 1.2Hz component, but the spectral density estimator predicts a frequency there.
@@MrPSolver ooohhh, so that's what happened, thanks for the explanation. So I guess that if you had created t with a bigger resolution (say, 10000 elements for example), we would had seen the "real peaks" with no aliasing?
@@agustinbrusco7173 yes, I would hope so!
Your videos should be made mandatory to watch for all science/engg majors. So useful! Thanks for making these!
This, this video is an absolute savior. I'm working on my final motion planning project for the class I'm taking and nothing came close to showing me the proper way to calculate trajectories with inputs for my drone. YOU ARE THE BEST!
I just finished the numpy video and now I can continue my journey through Python. Thank you for such valuable material
Excellent tutorial. Well explained, to the point, well constructed. I took notes like crazy and then subbed!
Thank you :)
Thank you so much for sharing this knowledge. You can’t imagine how much you’re helping me.
Thank you 🙏
Regarding curve fitting you can set up how many iterations it does and that leads to good fits even from bad guesses... because sometimes there is no way to know exactly what the parameters are at all, like if you are fitting a multiple exponential decay
The DE at 34:43 actually is solvable by hand: $v(t)=-\dfrac{\sqrt{b}\tanh(\sqrt{ab}\,t)}{\sqrt{a}}.$ But the general principle you're demonstrating is certainly applicable to DE's that you can't solve by hand.
One of the most underreated youtube channels
Such a cool channel, both your programming tutorials and programming memes are of top quality. Thanks youtube algorithm
For the pendulum you’re missing a sign. d(omega)/dt =-sin(theta) and not +.
Thank you very much! I havent seen so good python/physics videos as yours
So useful and explanatory. What if I have data from de pool temperature and from the outside temp and want to find k?? 🤔
As a physics student I am glad to find your channel!
That was an exceptionally good video. Thanks a lot! By the way, could you make a video about fitting a curve when you have points with x and y errors (if you haven't already done it)?
Wonderful! I have the feeling, that I will be coming back to this video (and the github repo) many times in the future for reference.
This is really wonderful content, thank you!
When you get a chance, could you put timestamps to specific topics (like you did in the NumPy video)?
Done and done! Glad you're enjoying the content :)
You are a genius dude! I have gone through most of your videos and enjoying immensely. Being an engineer, I have to go through similar calculations in water flow network design, water treatment unit designs and alike. We normally do it in MS Excel using VBA. When I happened to watch your video in Numpy and Matplotlib, it got me in and in...awesome experience. So, I started self-learning Python since last two months, and am finding this very interesting and useful for my job. Hope I will gain average skill by next year. Your way of explaining and executing the codes is so clear and best in the youtube. Thanks.
Great Tutorial! Thank you very much! I'm glad that there exists free software like this and not just expensive proprietary software suites like matlab.
Enjoying your style! Just wanted to point out that at 31:03, you forgot the 2 in the sin argument in your code, so that the code didn't actually calculate the displayed integral.
I also noticed that!
UVic alumni, nice. Thanks for the video - the documentation is brutal.
That intro is fire. He is rhyming left and right!
I am a neuroscientist and I LOVE your channel!!! I learned Python coding almost 4 years ago but I really want to improve my skills and apply more in my field for more complex data analysis.
I was looking for a tutorial how to convert complex math equation in Python scripts (in my case is more for statistical analysis), and I came across with your video “1st year of calculus but in python”. I loved it!! Thank you!! :)
Appreciate your kind words!! Good luck with the data analysis :)
Turkish language; çok başarılı bir programı anlatmışınız.. teşekkür ederim..
Başarılarınızın devamını dilerim..
The Best Python teacher. Thanks for the wonderful vidoes.
This is terrific. Would you consider doing a video specifically on probability and probability distributions?
thank you for these awesome tutorials🙏
keep up the good work!
You might want to try the following line to actually see the array:
D_kronsum = (kron(D, np.identity(N)) + kron(np.identity(N), D)).toarray()
rather than obtain information about the object:
You're a Great Canadian. Really nice job on this video - Subscribed..and looking forward to watching more of your stuff.
Please show a bit of LLMs used for scientific numerical problems. I had both chatGPT and Bard generate code to solve a 3 domain diffusion problem. ChatGP4T setup the ODEs and used a numerical solver and then plotted , Bard showed the solved ODE’s and plot these. The code I asked for was R, not python. What I haven’t been able to do well is get it to fit to equations. I signed up for your Udemy course by the way, thank you very much.
I think the equation of a harmonic oscillator on the thumbnail has a wrong sign: it must instead read "\ddot{\theta} + \frac{g}{l} \cdot \sin{\theta} = 0" (unless you take g=-9.81, ofc)!
Beast, mastodon, artist!
Thanks for this. I'm working on an ODE (nonlinear) model problem in botany, and this video helped. I have one request though - could you make a future video on turning ODE models into optimal control problems and solving them in Python? Thanks in advance.
One small request:
Do Schrödinger time dependent equation with python ☺️
Thanks
Good idea!
Great videos! Thank you Mr. P Solver.
Amazing tutorial. You have my utmost respect.
You are awesome man , i grasp all the concepts in just one watch👍👍
That star reaction question you discuss, i remember that one from the class.
A real pain...
hello bro, i'm only half way done with this video but wow this is super helpful for us, i wish i learn this during college days. thank you & more power! from philippines here
Great video, man! Keep it up, you might actually help me in my research by doing this tutorials
Nice explanation. For quite sometimes I am trying to model particle flow in Python following a research paper. But unable to do so. There is no one I know who does theoretical work, could you please help me with the problem?
Thank you for sharing this! Excellent lesson! Keep it up
Now, I call this robust and not my code. Great job, I would like to be like you one day! Cheers mate.
Great video! I’m envious of the students you have been TA for😅 Have you compared using minimize versus least_squares? I’ve found that least_squares is MUCH better that minimize for least square / SSQ problems.
I should've compared the two! I have used it before, but I wasn't aware that one was much better for least squares problems. Thank you for sharing!
really good introduction into SciPi and a really good explanation.
Kick ass tutorial! Good work!
It's a great one! Thank you for sharing.😀
Very impressive !! Love this content very much !
Really helpful video. Great for starting with python.
You explain very well. Thanks for the content.
Thanks, but you need to lube your keyboard (especially the ","-key)
Around 30:30 you wrote the integrand as ... sin(x) ... but the latex shows sin(2x). No big deal ... Thanks for the video!
Keep up the great work man!
Another comment: at 33:04, when you're doing the double integral, scipy gives a different result from Mathematica (an NIntegrate[Integrate[ command can handle this one): 0.59009. That's quite different from the scipy result. I'm curious about that. I get the 0.59009 from Mathematica regardless of which order of integration I use (as you would hope). Does scipy give you the same result if you do int_0^1 int_sqrt(y)^1 sin(x+y^2) dx dy + int_-1^0 int_-y^1 sin(x+y^2) dx dy?
Thank you for this comment! Yes: it turns out my x and y were mixed up in my function (y has to come before x in the integrand=...) line. I've made corrections based on your comments and updated the GitHub code!
@@MrPSolver Well, that's subtle! What's the general rule about which order to do that in a lambda expression? 'Cause if I do func1 = lambda x, y: x + y**2, and func2 = lambda y, x: x + y**2, the first one yields the results I'm expecting, but the second one reverse the order of the arguments!
@@adriankeister4389 in general the variable that corresponds to the inner most integral (in this case y) comes first in the lambda function. Thanks again for catching this 😁. Happy to know you're going over the tutorial in depth!
I suppose others have mentioned, but turn up your headphones until you stop shouting, or don't use them. I appreciate the speed and density of the information.
I don't understand what you are saying. His presentations and the quality of the video are both excellent. The content has no parallel.
thanks for this video! can you do a tutorial of how to minimize the error between a given dataframe and odeint results ? I'm facing a problem like this right now, where I try to optimize some parameters of my ODEs to reduce the error between real data and the model values!
I just realized I have wasted months of time in a university course... Glad that I found this video thought.
Lovely video! Are there any resources where I can find problems to apply these methods? Can you suggest some problems for practice?
Thanks for your video. I'm currently using VScode as editor for my Python programming but I think that your IDE is more interesting and user-friendly. Can you tell me what is it and suggest me tutorials about its installation and learning?
How do you come up with those examples? Do you just make them up or is there some sort of website with physics problems to solve with programming?
Unfortunately no website exists! Hopefully this channel becomes that website, to some extent. The problems are communicated to me through telepathy with aliens.
this is a great tutorial. how does Scipy stats package compare to others?
Thank you so much for sharing this knowledge. i have a qusetion can i use Odeint for solving ODE with array parametre
hey, what have you studied ?
PS: Thankyou for the video
Great Video, thanks man!
Very solid tutorial!
Hi! When we define the constraints in the optimization part...how do we specify that we want >= 0 and not
hi , can you share your set_up , what kind of IDE ,you"re using and stuff
Hi! Do you know what to do maybe if my ODE isn't linear? Like I can't get dydx out of ode to know what it equals for. Ive met problems like this in my chemeng classes and ive always had to write explicit euler to solve them just because couldn't find anything useful in the google.
I tried to compute the third order derivative for the example used in this video, but it doesn't work; and the same even if I use much simpler functions that are clearly of class C infinite. It returns me a ValueError message in which it is specified that the error comes from the order argument (it is not the same as n), which I didn't even specify. Is it that scipy isn't really defined for computing higher order than 2 or maybe there is something I am missing?
Is the integral of the first example correctly formulated? 56:00
so what is used for maximizing the function not minimizing?
Thanks alot, could you take these on dark theme?
is this tutorial for data Scientists as well?
very good video !!!
Thanks a lot for sharing !!!
You lost me when you said "Celsius is the better unit." :-) That blunder aside: Thank you so much, bro!
Also, can we find the errors for the sols of DE?
You are genius bro
Can’t appreciate enough ❤
Thank you so much! Reading the documentation makes me nauseous
Thank you so much!!!!!!!!
This helps a lot really
Hello..I am a PhD student in physics from Iraq..I hope you can help me find codes in the Python program to study the Fe(II)particle (ising model 2D)to determine the spin crossover of the electrons and find the energy..with many thanks to you.
Very nice video! (I hope no one stole anything from you...)
Thank you for a wonderful tutorials
Thank you sir! this video is awesome!
can you explain quratnion with scipy
muchas gracias... es una buena primera intro a scipy.. aunq en matrices si q volé jeje
Great video, thanks!
in what he is coding can anyone help me with that
i new learner
thats exactly what i needed thx
Great video, thank you so much
Is pronouncing "Kelvin" as "Calvin" a Canadian thing?
This Guy is good...
Excelent content!!!! Thank You!
This is amazing!
i need ur help??
do some ML as well
what about strictly greater than 0??
The difference between strictly greater than zero vs. greater than or equal to zero isn't really important for these sorts of optimization problems. In the 2 dimensional boundary in this problem, for example, you'd still be confined the the same total area (the optimal location couldn't exist on the boundaries, for sure, but it could be VERY VERY close to the boundaries).
@@MrPSolver I am sorry for that stupid question I was coming from an integer opimisation problem and stumbled upon this.
@@erenyeager4452 No worries dude! Always appreciate the questions! Definitely not a stupid question
Thank you man, that's really helpfull.
The Road to Reality by Roger Penrose!
Very helpful video