Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

how shaders work- using Excel =LET(x,(COLUMN()-24)/15,y,(ROW()-15)/15,SIN(SQRT(x*x+y*y)*10-t)) Each cell (pixel) computes its colour just from its coordinates- so the GPU can massively parallelise them. The trick is writing the formula to draw the picture you want

95,674 görüntüleme • 15 gün önce •via X (Twitter)

0 Yorum

Yorum bulunmuyor

Orijinal gönderinin yorumları burada görünecek

Benzer Videolar

Quantum mechanics has a reputation for being mystical mainly because people skip the rules and jump to interpretations. In this lecture series, we’re doing the opposite. We start from the rules, follow the algebra, and let the picture be the calculation. Classical Probability Theory combines alternatives by adding their probabilities. Quantum Theory combines them one step earlier…add complex amplitudes first, then square at the end. That swap in order is everything. Expand |a₁ + a₂|² and you don’t just get |a₁|² + |a₂|²…you get a cross-term, 2 Re(a₁ a₂*). Its sign is set by phase, so the same two contributions can reinforce or cancel. Interference is just the algebra of squaring a sum. In the 3D render, the surface height is proportional to |a(x)| (so peaks become bright bands after squaring), while the surface skin is colored by the local phase arg(a(x)). As the phase knob φ(t) is swept on path 2, the cross-term oscillates, and you literally watch the interference ridges slide across the screen. We model a detector screen with coordinates x in R² (think x = (x,y)). A quantum state assigns a complex amplitude a(x). The rule for outcomes is p(x) = |a(x)|² Now the key situation: two coherent alternatives contribute to the same outcome x. Let their amplitudes be a₁(x) and a₂(x). Quantum says a(x) = a₁(x) + a₂(x) So the probability density becomes p(x) = |a₁(x) + a₂(x)|² Expand it (this is the whole episode): p(x) = (a₁ + a₂)(a₁* + a₂*) = |a₁|² + |a₂|² + a₁ a₂* + a₁* a₂ = |a₁|² + |a₂|² + 2 Re(a₁ a₂*) That last term is the interference term. It can be positive or negative. To see phase explicitly, write each contribution in polar form: a₁(x) = r₁(x) exp(i θ₁(x)) a₂(x) = r₂(x) exp(i θ₂(x)) Then a₁ a₂* = r₁ r₂ exp(i(θ₁ − θ₂)) So the cross-term is 2 Re(a₁ a₂*) = 2 r₁ r₂ cos(θ₁(x) − θ₂(x)) That’s the fringe engine: p(x) = r₁² + r₂² + 2 r₁ r₂ cos(Δθ(x)) Now the phase knob we animate: Add a controllable phase shift φ to path 2: a₂(x) → a₂(x) exp(i φ) Then Δθ(x) → Δθ(x) − φ, so p(x; φ) = r₁² + r₂² + 2 r₁ r₂ cos(Δθ(x) − φ) As φ changes smoothly, the bright/dark pattern slides continuously. Same setup, same geometry, same magnitudes r₁,r₂, only phase changed. #QuantumMechanics #WaveInterference #ComplexAmplitudes #DoubleSlit #Physics #Mathematics

Mathelirium

81,501 görüntüleme • 7 ay önce

Lecture 2 of our Physics-Informed Neural Networks mini-series. In Lecture 1 we made the idea visible...a neural network isn’t predicting a PDE solution, it is the candidate function uᵩ(x,t), and the PDE residual rᵩ(x,t) is the leash that keeps it honest. Now the natural question follows: How can a neural network be punished for breaking a PDE when nobody ever handed it the true solution, and the equation itself contains derivatives like uᵩₜₜ and uᵩₓₓ? Here’s the satisfying answer: A PINN doesn’t need the true answer to be corrected. It only needs a way to measure how wrong it is according to the PDE! The network outputs uᵩ(x,t). A software called "autodiff" is used to compute the derivatives (uᵩₓ, uᵩₜ, uᵩₓₓ, …) exactly by applying the chain rule through the network. Those derivatives get dropped into the PDE to produce rᵩ(x,t). If rᵩ is big at some point, the loss spikes there, and gradient descent pushes the parameters so that rᵩ shrinks. The math breakdown We want a function u(x,t) that satisfies a PDE on a domain Ω. In this lecture we keep a concrete nonlinear example in mind, the damped sine-Gordon equation uₜₜ(x,t) + γ uₜ(x,t) − c² uₓₓ(x,t) + sin(u(x,t)) = 0. A PINN replaces the unknown function u with a neural network uᵩ(x,t), where ᵩ means all the network parameters (weights and biases). Now we build the physics residual by plugging uᵩ into the PDE rᵩ(x,t) = uᵩₜₜ(x,t) + γ uᵩₜ(x,t) − c² uᵩₓₓ(x,t) + sin(uᵩ(x,t)). If uᵩ were a true solution, rᵩ would be 0 everywhere. So we sample points (xⱼ,tⱼ) inside the domain. These are collocation points. At each one we evaluate rᵩ, and we define a physics loss L_phys(ᵩ) = meanⱼ |rᵩ(xⱼ,tⱼ)|². This is the punishment mechanism. (Punish just means: if |rᵩ| is big, L_phys is big; training updates ᵩ to make L_phys smaller. Reward means the loss drops, so those parameter changes are kept.) The key question was where the derivatives come from. Since uᵩ is built out of differentiable operations, we can compute uᵩₜ(x,t), uᵩₜₜ(x,t), uᵩₓ(x,t), uᵩₓₓ(x,t), at any input (x,t) we choose. Imagine a simple differentiable model written as a sum of nonlinear features uᵩ(x,t) = Σₖ vₖ σ( wₖx x + wₖt t + bₖ ) + b₀. Then the derivatives are just chain rule uᵩₓ(x,t) = Σₖ vₖ σ′(·) wₖx uᵩₓₓ(x,t) = Σₖ vₖ σ″(·) (wₖx)² uᵩₜ(x,t) = Σₖ vₖ σ′(·) wₖt uᵩₜₜ(x,t) = Σₖ vₖ σ″(·) (wₖt)². So rᵩ(x,t) is an explicit computable number at every (x,t). For the damped sine-Gordon example, it’s the same story, just with one extra nonlinear term: rᵩ(x,t) = [uᵩₜₜ(x,t) + γ uᵩₜ(x,t) − c² uᵩₓₓ(x,t)] + sin(uᵩ(x,t)). A real PINN is a deeper composition of these same building blocks, but it’s still just a chain rule, and autodiff is the machinery that does that bookkeeping reliably for big graphs. Then we train by gradient descent on the total loss. Even if we use only physics for the moment, the update is conceptually just ᵩ ← ᵩ − η ∇ᵩ L_phys(ᵩ), with learning rate η. In practice we also include initial/boundary conditions or data, because PDEs aren’t uniquely determined without them L(ᵩ) = L_data(ᵩ) + λ L_phys(ᵩ) + L_bc/ic(ᵩ), where L_bc/ic(ᵩ) enforces things like uᵩ(x,0) ≈ u₀(x) and uᵩₜ(x,0) ≈ v₀(x), or boundary conditions at x = ±L. So Lecture 2’s punchline is simple: the PDE becomes a training signal. We keep differentiating uᵩ, measuring rᵩ, and updating ᵩ until the residual goes quiet across Ω. #PINNs #PhysicsInformedNeuralNetworks #ScientificMachineLearning #AutoDiff #Backpropagation #PDE #DifferentialEquations #Optimization #MachineLearning #AppliedMath #ComputationalPhysics

Mathelirium

19,977 görüntüleme • 7 ay önce

CSS Trick 🧲 You can create magnetic links with the power of custom properties and some JavaScript 💪 a { translate: calc(clamp(-1, var(--x), 1) * var(--pad-x)) ...; transition: translate var(--s, 1s) var(--ease, var(--elastic)); } a:hover { --s: 0s; } The trick here is to pad out the list items wrapping your links and use that as a translation limit 🛑 Start by using some JavaScript to calculate a value between -1 and 1 for both the x/y axis on pointermove for each list item, not the link! 🔗 If your pointer was at the center of the item, you'd get [0,0]. If it was in the top right, you'd get [1,-1] ☝️ It's worth checking out the JavaScript snippet to see how the mapping function works. Essentially, you create a function that when given a value between two bounds, will give you a mapped value back 🤙 const mapX = mapRange( item.offsetWidth * -0.5, item.offsetWidth * 0.5, 1, -1 ) Then, on pointermove, you plug the pointer position in to get the value back out and pass that into your CSS const x = mapX(item.centerX - event.x) document​.documentElement​.style.setProperty(--x, x) When the pointer leaves the list item, you make sure to reset these values back to 0 ✨ Once CSS has your values, it's the trick of updating the translation of each part You know that in each axis, you only want to translate the link by the padding amount li a { translate: calc(clamp(-1, var(--x), 1) * var(--pad-x)) calc(clamp(-1, var(--y), 1) * var(--pad-y)); transition: translate var(--speed, 1s) var(--ease, var(--elastic)); } This will translate the link within the list item by the desired amount. The cool part here is that you can set an offset for the text inside the link and have that move at a different rate ⭐️ By only updating the --pad-x/y custom properties for the inside the link, you can control how much it moves nav a span { --pad-x: 0.25rem; --pad-y: 0.25rem; } And the last piece, how do you update the behavior for transition speeds? And so it springs back like that? Again, use custom properties ✨ a:hover { --s: 0s; } a { transition: translate var(--s, 1s) var(--ease, var(--elastic)); } By default, a link will use --elastic easing via linear() and have a transition-duration of 1s. When a link is hovered that speed becomes 0s because you want the link to magnetise to your pointer. How about that little gap between when your pointer enters the item but hasn't hovered the link? Set a different transition so it transitions to being hovered 🫶 nav li:hover a { --ease: ease-out; --speed: 0.1s; } That's kinda it! 🙌 Use JavaScript (~40 loc) to get the information and then let CSS do all the lifting for you 💪 Any questions or suggestions, let me know 🙏 If you want a walkthrough video, also let me know please 🙏 CodePen.IO link below 👇

jhey ʕ•ᴥ•ʔ

164,863 görüntüleme • 2 yıl önce

Variational Autoencoder by hand ✍️ ~ 11 steps walkthrough below A VAE learns the structure of your data, the mean and variance of its hidden features, and then generates new data from that structure. A GAN only learns to fool a discriminator. It can make convincing fakes without ever knowing what the data is really made of. That is the difference, and it is the whole reason VAEs matter. In 2024 ICLR gave its first ever Test of Time Award to the VAE paper, "Auto-Encoding Variational Bayes" by Diederik Kingma and Max Welling, ten years on. How does it work? Goal: encode three inputs into a distribution, sample from it, decode it back, and read every loss gradient off the page. = 1. Given = Three training examples X1, X2, X3, copied to the bottom as their own targets. Reconstructing your own input is what puts the "auto", meaning self, in autoencoder. = 2. Encoder, layer 1 = Let us multiply the inputs by weights and biases, then apply ReLU, crossing out every negative. = 3. Mean and standard deviation = We multiply the features by two more weight sets. The first predicts the means μ of the latent distributions, the second their standard deviations σ. = 4. A random offset = Let us sample ε from a standard normal, mean 0 and variance 1, and multiply it by σ. This is a random step away from the mean, scaled by how uncertain each feature is. = 5. Mean plus offset = We add the offset back onto μ, and these become the decoder's inputs. Keeping the randomness out in ε is the reparameterization trick: it lets gradients flow straight through the sampling. = 6. Decoder, layer 1 = Let us multiply by weights and biases and apply ReLU again. Here -4 is crossed out. = 7. Decoder, layer 2 = We multiply once more. The output Y is the decoder's attempt to rebuild X from the sampled distribution. = 8. Gradient for the mean = Let us push μ toward 0. A lot of math, the SGVB estimator, collapses the KL gradient to simply μ itself. = 9. Gradient for the standard deviation = We want σ to approach 1. = 10. And its formula = That same math simplifies the gradient to σ minus 1/σ. = 11. Reconstruction gradient = We want the reconstruction Y to match the input X. Mean squared error simplifies its gradient to Y minus X. Takeaway: the two gradients you just calculated each sit at the heart of a modern method, so one VAE teaches you both. The KL divergence is the penalty RLHF like GRPO uses to keep a fine-tuned model from drifting off its base. The reconstruction loss, plain mean squared error, is exactly what trains a diffusion model to denoise. Draw one VAE by hand and you have quietly learned the core of both. 💾 Save this post!

Tom Yeh

17,011 görüntüleme • 15 gün önce

What are Physics-Informed Neural Networks (PINNs) Physics-Informed Neural Networks (PINNs) are neural nets trained to satisfy a differential equation. The trick is simple. You bake the PDE residual straight into the loss. They came out of a very practical pain point. Classical PDE pipelines can be amazing, but they often demand a lot of setup work. Meshes. Stencils. Stability tuning. And once you build a solver, it’s usually tied to one geometry and one discretization choice. A PINN flips the workflow. You represent the solution itself as a smooth function uᵩ(x,t) and you enforce the physics wherever you choose to sample the domain. Most people first meet PINNs in the least helpful way. A pretty solution surface, almost no clarity on what was enforced to make it appear. In this series we keep the enforcement visible. We pick a PDE, represent the unknown solution as a flexible function, measure how badly that function violates the equation across the domain, and train it to reduce that mismatch at the points we sample. A normal neural net learns from labels. You give it inputs and target outputs. A PINN learns from an equation. You give it inputs (x,t), and it gets penalized whenever its output fails the PDE. Smaller mismatch means smaller loss. Bigger mismatch means bigger loss. That’s all “punish” and “reward” mean here. The network isn’t replacing physics. It’s just a flexible function that we force to obey the same calculus you’d demand from any candidate solution. The math breakdown: We start with a PDE on a domain Ω. Write it as uₜ(x,t) + N(u(x,t), uₓ(x,t), uₓₓ(x,t), …) = 0 for (x,t) in Ω A PINN replaces the unknown u with a neural network output uᵩ(x,t) Now define the physics residual by plugging uᵩ into the PDE rᵩ(x,t) = ∂uᵩ/∂t + N(uᵩ, ∂uᵩ/∂x, ∂²uᵩ/∂x², …) If uᵩ were an exact solution, we’d have rᵩ(x,t) = 0 everywhere. We may also have data points (xᵢ,tᵢ,uᵢ) from measurements or from an initial condition. The training objective is a weighted sum of squared errors L(ᵩ) = L_data(ᵩ) + λ L_phys(ᵩ) + L_bc/ic(ᵩ) with L_data(ᵩ) = meanᵢ |uᵩ(xᵢ,tᵢ) − uᵢ|² L_phys(ᵩ) = meanⱼ |rᵩ(xⱼ,tⱼ)|² where (xⱼ,tⱼ) are collocation points in Ω L_bc/ic(ᵩ) = penalties enforcing boundary conditions and initial conditions The key technical step is how we get the derivatives inside rᵩ. We don’t approximate them with finite differences. We compute them with automatic differentiation: ∂uᵩ/∂t, ∂uᵩ/∂x, ∂²uᵩ/∂x², … Then we differentiate the total loss L(ᵩ) with respect to ᵩ and train with gradient descent. That’s the whole idea. Learn a function, but make the PDE part of the loss, so the network is trained to be a solution, not just a curve-fitter. In the render, the main 3D surface is the network’s current guess uᵩ(x,t), drawn as a living sheet over the (x,t) plane. Hovering above is the neural scaffold, a visible graph of feature nodes and connections. The bright tension threads are the physics residual rᵩ(x,t). Each thread tethers a collocation bead on the sheet up to the scaffold, and it thickens and brightens exactly where |rᵩ| is large, with color showing the sign. As training runs, those threads go slack across the domain, not because we hid the error, but because the network has actually been pushed toward rᵩ(x,t) ≈ 0. #PINNs #ScientificMachineLearning #PDE #DifferentialEquations #Optimization #MachineLearning #AppliedMath #ComputationalPhysics

Mathelirium

44,806 görüntüleme • 6 ay önce

Discrete Fourier Transform by hand ✍️ ~ 12 steps walkthrough below Here is a little-known secret about the DFT and the inverse DFT: it is just matrix multiplication in both directions, one the transpose of the other, exactly like the forward pass and backpropagation I drew in other examples. Goal: recover which cosine waves a signal is made of, using nothing but multiplication and addition. = 1. Given = Three signals written as sums of cosines, and a fourth, X, that we do not know yet. = 2. Frequency matrix F = Let us write the coefficients as a matrix. Each signal is a row, each frequency a column, so A = cos(w) + 2cos(2w) becomes [1, 2, 0, 0]. = 3. Sample the waves = We read the four cosine waves at ten discrete time points. That word "discrete" is the whole difference between this and the continuous transform. = 4. Cosine matrix W = Let us write those samples as a matrix: each frequency a row, each time point a column. = 5. Frequency to time = We multiply F by W. That combines the four cosine waves in the proportions F specifies, and the result T is the three signals as they would look in time. = 6. Transpose = Let us stand each signal up as a column. = 7. Time to frequency = We multiply W by that transpose. Every cell is the dot product of one signal with one cosine wave, which measures how much of that wave the signal contains. Zero means none of it. = 8. Scale = Let us multiply by 2/n, with n = 10. The projections come out five times too large, and this is the correction. = 9. Transpose back = We turn it back around, and it is F again, exactly. That is the check: the transform recovered the coefficients we started from. = 10. Now solve for X = Let us run the same multiplication on the one signal whose recipe we never knew. = 11. Scale = We divide by 5 again. = 12. Transpose back = And X reads [0, 0, 3, 2], which says X = 3cos(3w) + 2cos(4w). Note: I originally drew this to show that the DFT is a special case of a convolution layer, its filters fixed to sine and cosine waves rather than learned. No wonder, then, that a convolution layer free to learn its own filters can be trained to process signals. 💾 Save this post!

Tom Yeh

25,575 görüntüleme • 13 gün önce

What if Your Neural Network Was Forced to Obey Physics? Physics-Informed Neural Networks (PINNs) are neural networks trained to satisfy a differential equation by building the PDE residual directly into the loss. They emerged from a very practical problem...classical PDE pipelines can be brilliant, but they often demand heavy discretization work (meshes, stencils, stability tuning), and the method you build is usually tied to one geometry and one solver setup. A PINN flips the workflow by representing the solution itself as a smooth function uᵩ(x,t) and enforcing the physics everywhere you choose to sample the domain. People often meet PINNs in the least helpful way...via a flashy solution plot, and almost no explanation of what was enforced to get it. In this series we keep the enforcement visible. We pick a differential equation, represent the unknown solution as a flexible function, measure how well that function satisfies the equation across the domain, and train it to reduce that mismatch everywhere we sample. A normal neural net learns from labels...you give it inputs and target outputs. A PINN learns from a differential equation...you give it inputs (x,t) and it gets punished whenever its output fails the PDE. By punish we mean that the loss increases when the mismatch is large we reward it if the loss decreases as the mismatch gets smaller. The network isn’t replacing physics, it’s becoming a flexible function that is forced to satisfy the same calculus you’d impose on any candidate solution. The math breakdown: We start with a PDE we want to solve on a domain Ω. Write it as uₜ(x,t) + N(u(x,t), uₓ(x,t), uₓₓ(x,t), …) = 0 for (x,t) in Ω A PINN replaces the unknown function u with a neural network output uᵩ(x,t) Now define the physics residual by plugging uᵩ into the PDE rᵩ(x,t) = ∂uᵩ/∂t + N(uᵩ, ∂uᵩ/∂x, ∂²uᵩ/∂x², …) If uᵩ were an exact solution, we would have rᵩ(x,t) = 0 everywhere. We may also have data points (xᵢ,tᵢ,uᵢ) from measurements or a known initial condition. The training objective is just a weighted sum of squared errors L(ᵩ) = L_data(ᵩ) + λ L_phys(ᵩ) + L_bc/ic(ᵩ) with L_data(ᵩ) = meanᵢ |uᵩ(xᵢ,tᵢ) − uᵢ|² L_phys(ᵩ) = meanⱼ |rᵩ(xⱼ,tⱼ)|² where (xⱼ,tⱼ) are the collocation points in Ω L_bc/ic(ᵩ) = penalties enforcing boundary conditions and initial conditions The key technical step is that the derivatives inside rᵩ are computed by automatic differentiation ∂uᵩ/∂t, ∂uᵩ/∂x, ∂²uᵩ/∂x², … So we can differentiate the total loss L(ᵩ) with respect to ᵩ and train with gradient descent. This is the whole idea behind PINNs. Learn a function, but make the PDE part of the loss, so the network is trained to be a solution, not just a curve-fitter. In the render, the main 3D surface is the network’s current guess uᵩ(x,t), drawn as a living sheet over the (x,t) plane. Hovering above is the neural scaffold...a visible graph of feature nodes and connections. The bright tension threads are the physics residual rᵩ(x,t): each thread tethers a collocation bead on the sheet up to the scaffold, and it thickens and brightens exactly where |rᵩ| is large (color encodes the sign). As training runs, those threads go slack across the domain not because we hid the error, but because the network has actually been pushed toward rᵩ(x,t) ≈ 0. #PINNs #PhysicsInformedNeuralNetworks #ScientificMachineLearning #PDE #DifferentialEquations #Optimization #MachineLearning #AppliedMath #ComputationalPhysics

Mathelirium

17,285 görüntüleme • 2 ay önce

Lecture 1 on Physics-Informed Neural Networks: A Mini-Series Physics-Informed Neural Networks (PINNs) are neural networks trained to satisfy a differential equation by building the PDE residual directly into the loss. They emerged from a very practical problem...classical PDE pipelines can be brilliant, but they often demand heavy discretization work (meshes, stencils, stability tuning), and the method you build is usually tied to one geometry and one solver setup. A PINN flips the workflow by representing the solution itself as a smooth function uᵩ(x,t) and enforcing the physics everywhere you choose to sample the domain. People often meet PINNs in the least helpful way...via a flashy solution plot, and almost no explanation of what was enforced to get it. In this series we keep the enforcement visible. We pick a differential equation, represent the unknown solution as a flexible function, measure how well that function satisfies the equation across the domain, and train it to reduce that mismatch everywhere we sample. A normal neural net learns from labels...you give it inputs and target outputs. A PINN learns from a differential equation...you give it inputs (x,t) and it gets punished whenever its output fails the PDE. By punish we mean that the loss increases when the mismatch is large we reward it if the loss decreases as the mismatch gets smaller. The network isn’t replacing physics, it’s becoming a flexible function that is forced to satisfy the same calculus you’d impose on any candidate solution. The math breakdown: We start with a PDE we want to solve on a domain Ω. Write it as uₜ(x,t) + N(u(x,t), uₓ(x,t), uₓₓ(x,t), …) = 0 for (x,t) in Ω A PINN replaces the unknown function u with a neural network output uᵩ(x,t) Now define the physics residual by plugging uᵩ into the PDE rᵩ(x,t) = ∂uᵩ/∂t + N(uᵩ, ∂uᵩ/∂x, ∂²uᵩ/∂x², …) If uᵩ were an exact solution, we would have rᵩ(x,t) = 0 everywhere. We may also have data points (xᵢ,tᵢ,uᵢ) from measurements or a known initial condition. The training objective is just a weighted sum of squared errors L(ᵩ) = L_data(ᵩ) + λ L_phys(ᵩ) + L_bc/ic(ᵩ) with L_data(ᵩ) = meanᵢ |uᵩ(xᵢ,tᵢ) − uᵢ|² L_phys(ᵩ) = meanⱼ |rᵩ(xⱼ,tⱼ)|² where (xⱼ,tⱼ) are the collocation points in Ω L_bc/ic(ᵩ) = penalties enforcing boundary conditions and initial conditions The key technical step is that the derivatives inside rᵩ are computed by automatic differentiation ∂uᵩ/∂t, ∂uᵩ/∂x, ∂²uᵩ/∂x², … So we can differentiate the total loss L(ᵩ) with respect to ᵩ and train with gradient descent. This is the whole idea behind PINNs. Learn a function, but make the PDE part of the loss, so the network is trained to be a solution, not just a curve-fitter. In the render, the main 3D surface is the network’s current guess uᵩ(x,t), drawn as a living sheet over the (x,t) plane. Hovering above is the neural scaffold...a visible graph of feature nodes and connections. The bright tension threads are the physics residual rᵩ(x,t): each thread tethers a collocation bead on the sheet up to the scaffold, and it thickens and brightens exactly where |rᵩ| is large (color encodes the sign). As training runs, those threads go slack across the domain not because we hid the error, but because the network has actually been pushed toward rᵩ(x,t) ≈ 0. #PINNs #PhysicsInformedNeuralNetworks #ScientificMachineLearning #PDE #DifferentialEquations #Optimization #MachineLearning #AppliedMath #ComputationalPhysics

Mathelirium

47,308 görüntüleme • 7 ay önce

Ask anyone who’s taken a course in Ordinary Differential Equations (ODEs) what a solution to an ODE represents geometrically, and most of them won’t have a clean answer. When I first took ordinary differential equations, the pattern was always the same. Early on it turns into a speedrun of methods: separation of variables, integrating factors, variation of parameters, Bernoulli, exact equations. Then pretty quickly the course slides into hammer-picking. Spot the form, apply the recipe, move on. Too mechanical! And the real problem is what you don’t walk away with. You leave with a toolkit, but without a feel for what a differential equation even is, especially geometrically. That matters because in real modeling the equations you meet are rarely nice enough to reward memorised recipes. So you get trained to solve toy forms, while the actual subject stays blurry. The behavior. The flow. The shape of solutions. It wasn't until I watched the first lecture of Professor Arthur Mattuck that I realized I didn’t actually know what a solution to a differential equation represents geometrically. His point is almost embarrassingly simple. A first-order ODE is a slope field, and a solution is a curve that stays tangent to that field everywhere. The math breakdown: Write the ODE as dy/dx = f(x,y). At each point (x,y), attach a tiny line segment with slope f(x,y). A function y = y₁(x) is a solution exactly when its graph follows those slopes. At every x, the slope of the curve equals the slope prescribed by the field at the point on the curve. That’s the one line that ties both viewpoints together: y₁′(x) = f(x, y₁(x)). So solving the ODE and drawing an integral curve are the same statement in two languages. Once you see that, you stop obsessing over whether you can write y(x) in closed form. You start asking the questions that actually matter. Where do solutions flow. Where do they get trapped. Where do they blow up. Where does existence or uniqueness fail because the field isn’t even defined? That’s the perspective shift I wish every ODE course forces early. It’s also why I keep pairing math with animation. #DifferentialEquations #ODEs #VectorFields #AppliedMathematics #Mathematics #

Mathelirium

40,739 görüntüleme • 6 ay önce