SymPy is REVOLUTIONARY For Mathematical Tasks

Поделиться
HTML-код
  • Опубликовано: 5 авг 2024
  • Today we talk about SymPy, which is a mind-blowing module for those of you who are into mathematics and need to work with equations and formulas on a regular basis.
    ◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾
    📚 Programming Books & Merch 📚
    🐍 The Python Bible Book: www.neuralnine.com/books/
    💻 The Algorithm Bible Book: www.neuralnine.com/books/
    👕 Programming Merch: www.neuralnine.com/shop
    🌐 Social Media & Contact 🌐
    📱 Website: www.neuralnine.com/
    📷 Instagram: / neuralnine
    🐦 Twitter: / neuralnine
    🤵 LinkedIn: / neuralnine
    📁 GitHub: github.com/NeuralNine
    🎙 Discord: / discord
    🎵 Outro Music From: www.bensound.com/
    Timestamps:
    (0:00) Intro
    (0:56) Fundamentals
    (7:12) Differentiating & Integrating Functions
    (14:25) Limits
    (17:38) Solving Equations
    (21:18) Solving Differential Equations
    (23:58) Matrix Eigenvalues
    (24:40) Outro
  • НаукаНаука

Комментарии • 135

  • @marcrindermann9482
    @marcrindermann9482 2 года назад +137

    when sympy returns sqrt(15) it's not just because it's convenient, but it's exact. whereas math returns an approximation

  • @Bankoru
    @Bankoru 2 года назад +70

    My favorite feature is being able to convert an expression to LaTeX.

    • @Milkman-007
      @Milkman-007 Год назад +2

      Yes! This is so awesome, completely made me ditch ditch matlab and R which have relatively poor symbolic systems.

    • @drumbum7999
      @drumbum7999 Год назад

      sympy truly undermines the need to learn LaTeX

    • @henryyoo3032
      @henryyoo3032 Год назад +1

      @@drumbum7999 But they do completely different things? Are you confusing latex with some other symbolic math language?

    • @drumbum7999
      @drumbum7999 Год назад +1

      @@henryyoo3032 I said it undermines the need to learn LaTeX I didn't say it undermined LaTeX itself...

  • @hnahler
    @hnahler 2 года назад +34

    Great intro to sympy. There is a small typo in the limits example with 50/x. You wanted to show the behaviour for x -> infinity but typed 00 instead of oo.

  • @FridgeFucker96
    @FridgeFucker96 2 года назад +20

    I discovered this like some weeks ago, built my own program to help me with maths, truly amazing!

  • @brandonscott3012
    @brandonscott3012 2 года назад +10

    Thanks for the content. Always appreciate people trying to provide education to the world. Hope your channel is a success. 👍

  • @efox29
    @efox29 Год назад +4

    This is one of the best python related channels out there. The stuff I've learned from this channel in 10 mins...

  • @jona8003
    @jona8003 Год назад +3

    Great Video! If you execute the exact same lines in a Jupyter notebook, you automatically get the Latex output, which is super nice. Instead of like "x**2+ x**3" in the console, you get the actual resemblance of math notation like in text books etc.

  • @samre3006
    @samre3006 8 месяцев назад

    Makes me fall in love with math again. Pretty cool. Thanks for sharing this.

  • @dmitrykononenko6411
    @dmitrykononenko6411 2 года назад +2

    thanks for review, i didn't know about this useful library

  • @xviewmytubex
    @xviewmytubex 2 года назад +1

    Hi NeuralNine. I've searched the internet for this and no answers yet. I was wondering if you know why the pyinstaller would fail to generate the exe file using just a straight forward command like "pyinstaller -F -w filename.py". I'm running this and only the spec file is created, no build or dist folders/files. Appreciate the help Python expert! Thanks! =).

  • @andywang4189
    @andywang4189 5 месяцев назад

    Quite good, thanks 👍

  • @miketan373
    @miketan373 2 года назад

    I was not aware of this phython library, thanks for showing. I can’t focus on the result sometimes because it is there for such an extreme short time.. to stop all the time the video breaks the whole story

  • @GiorgioM.
    @GiorgioM. 2 года назад +2

    Thanks for the review. Can you write something for machine learning? In order to find the most probable equation by having a graph. Thanks again.

  • @ardapy
    @ardapy 2 года назад +12

    How do you find those awesome libraries?
    Intentionally searching from web documentation or you had already a list that you are picking and working on it?
    I have my respect for you and your channel and you are doing a fantastic job. But I would like to get your mind set as well :)

    • @valerianmp
      @valerianmp 2 года назад +3

      My guess is that if you work in math you probably already know some popular symbolic math software package (like Maple), so it's just natural to seek the open source alternative on a language that you are already familiar with. At least that's how I discover sympy, lol.

    • @davidr2421
      @davidr2421 2 года назад +3

      @@valerianmp Exactly. In university I had to learn Maple in a modeling class. As soon as I got home I did an internet search for "Python equivalent of Maple"

  • @byronwilliams7977
    @byronwilliams7977 2 года назад

    I loved it !😃

  • @Freeflier1978
    @Freeflier1978 2 года назад +2

    Sympy is better in the interactive terminal or juypter notebook when it displays mathjax outputs

  • @pjmmccann
    @pjmmccann 2 года назад +3

    My favourite piece of this was the "...mumble, mumble, mumble, ACCUMULATED BOUNDS [-2,2], mumble mumble..." when trying to get sympy to evaluate the integral of sin(x) between -oo and oo (which doesn't actually exist, of course). No explanation, just head down and carry on 😂.

  • @Chalisque
    @Chalisque 2 года назад +4

    The limit(50/x,x,0) example should only return +oo if 0 is approached from the positive direction.

    • @aouerfelli
      @aouerfelli 2 года назад

      I was about to say that but then I found your comment.

    • @joachimgaukel9254
      @joachimgaukel9254 9 месяцев назад

      what is the conclusion? I think, python is wrong !?

    • @Chalisque
      @Chalisque 9 месяцев назад +1

      @@joachimgaukel9254 I read the docs. The sympy.liimit(f,x,0) method takes the limit approaching from the positive side. So this is a one-sided limit, not a two-sided limit as one (like me) would have thought.

  • @JACARTISTEOFFICIEL
    @JACARTISTEOFFICIEL Год назад

    Thanks a lot for your videos.
    Please how can I display math symbols as integrals, roots using TKinter ? I have an idea to try but I'm stack to it. I don't know exactly how to display such symbols
    Thanks in advance

  • @lucasgssilveira
    @lucasgssilveira 2 года назад +5

    Sympy is fantastic, I use it a lot, specially for automatic code generation. Every student, no matter the level, should learn it. It could be a bit faster, but I understand they are already working on it.

    • @davidr2421
      @davidr2421 2 года назад

      Do you have any resources on how to use sympy with code generation? That sounds pretty cool.

    • @lucasgssilveira
      @lucasgssilveira 2 года назад

      @@davidr2421 Take a look at: "Björn Dahlgren, Kenneth Lyons, Aaron Meurer, and Jason Moore. Automatic code generation with sympy, 2017". If you google it, it will be the first reference. I used it a lot on my master thesis.

    • @dinobotpwnz
      @dinobotpwnz 2 года назад +1

      Sympy is slow by design. The developers who realize that it should've been written in C++ are working on it by starting symengine.

  • @vfx7t
    @vfx7t 2 года назад

    thank you !

  • @front331
    @front331 27 дней назад

    Hi, the solve equation method doesn't work when more than 2 expressions contain x. This is my code and it has an error:
    from sympy import *
    x = Symbol('x')
    x_sol1 = solve(Eq(((7*x)/(3*x+3))-(5/(4*x-4)), ((3*x)/(3*x+2)), x))
    print(x_sol1)
    TypeError: Equality.__new__() takes 3 positional arguments but 4 were given

  • @oldschoolgaming6538
    @oldschoolgaming6538 2 года назад +2

    damn, I wish you posted this like, a month ago.. :D
    That said, great content as usual, never dissapoint. Keep up the good work!

  • @100timezcooler
    @100timezcooler 2 года назад +2

    This is great since im losing all my matlab modules (including the symbolic maths one) once im graduate and lose my school email

  • @BillyT83
    @BillyT83 2 года назад +1

    Insightful

  • @jedi10101
    @jedi10101 Год назад

    the purpose of symbols is if you have multiple symbols you can do it in one line.
    like your 2 line assignment
    x = symbols('x)
    y = symbols('y')
    should just be
    x, y = symbols('x y')

  • @shreenivasn464
    @shreenivasn464 2 года назад

    An amazing thing is Jupyter Lab displays the output in mathematical font, unlike output we get in this video

  • @lizardfog
    @lizardfog 2 года назад

    I believe the first part of the differential equation should be Eq(y(t).diff(t,t,2) to get the second derivative

  • @foadsf
    @foadsf 2 года назад

    I would love to see some WxMaxima tutorials as well

  • @capsey_
    @capsey_ 2 года назад +1

    I wonder can it solve system of simultaneous equations?

  • @cliffordohipeni1518
    @cliffordohipeni1518 2 года назад

    I really like your intro music

  • @thesattary
    @thesattary 7 месяцев назад

    it becomes more fun if you run sympy codes in jupyter notebook cell

  • @eduardopasseto2387
    @eduardopasseto2387 2 года назад +4

    Where are the constant when evaluating an integral?

    • @Baaqel
      @Baaqel 2 года назад

      I noticed, what really tripped me up was the lack of implicit differentiation when he used examples with x and y with respect to x

  • @Frank-ie8dh
    @Frank-ie8dh 2 месяца назад

    Best tutorial

  • @Mekuso8
    @Mekuso8 2 года назад +4

    Sympy is conceptually awesome but in practice it is barely useable. It fails to compute even fairly simple derivatives of matrix expressions, for example, that Matlab's symbolic toolbox handles in a few minutes.

    • @InfiniteQuest86
      @InfiniteQuest86 2 года назад +3

      Use Sage. Way better than matlab.

    • @Baaqel
      @Baaqel 2 года назад

      Yep, as soon as I saw the result for the integral of sin(x) from -∞ to ∞ I was thinking it might have some limitations lol

    • @tomofthedepths1742
      @tomofthedepths1742 2 года назад +1

      Yeah I hope it will get better. Mathematica still holds a big advantage in symbolic maths. Sympy isn't even close to it for now.

    • @dinobotpwnz
      @dinobotpwnz 2 года назад

      I love how sympy even has a "feature" to find a Groebner basis. You know... for people who think Python should be used for algorithms that run in doubly exponential time.

  • @philtoa334
    @philtoa334 2 года назад

    Thx.

  • @robcarl1100
    @robcarl1100 2 года назад

    Interesting. Can this take imaginary numbers or will it choke?

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 2 года назад +2

    16:24 Except you typed “00” instead of “oo”, which is why you got the same answer as before.

  • @JLSXMK8
    @JLSXMK8 2 года назад

    When I try to say "from sympy import eq", I get an import error. This is on sympy 1.10.1; I wonder why this is the case.

    • @jedi10101
      @jedi10101 Год назад

      case sensitive. should be Eq not eq

  • @hellfiresquid
    @hellfiresquid 2 года назад

    i wish i had known about this before my last quarter of university

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 2 года назад +1

    8:56 That’s a partial derivative.

  • @alexomovierecap1234
    @alexomovierecap1234 2 года назад +1

    please make a tutorial about face mapping

  • @honne23
    @honne23 2 года назад +1

    why not Julia thought

  • @krzysztofdymanowski8759
    @krzysztofdymanowski8759 2 года назад +2

    Well, Matlab exists, but SymPy is free and also easier to use

  • @alisyoung2741
    @alisyoung2741 3 месяца назад

    Oh shit I came here for the sympy with a "enpei"

  • @stardustsong1680
    @stardustsong1680 2 года назад

    The "oo" sign is insane. "Inf" is not too ugly to deprecate and it is obviously more readable.

    • @Vaaaaadim
      @Vaaaaadim 2 года назад

      I thought it was pretty hilarious. But yeah, +/-inf seems better. That being said, "oo" might be amenable to having a ligature.

  • @robfielding8566
    @robfielding8566 2 года назад +1

    It was so frustrating when I tried to use it for raw, simplified, Clifford Algebra (ie: Geometric Algebra). Their notion of non-commutativity seems weird. Individual operators don't have this property, but types of objects in expressions DO. ie: "a : real * b : real = b : real * a : real" says that "*" commutes for a pair of reals. But: "a : vec * b: vec" doesn't commute automatically. I was trying to define rules for "e1,e2,e3" in Geometric Algebra. It really seems like it should be straight-forward; but I had to go write rules in straight code manually instead. In Wolfram (and maybe now even Mathematica?), "**" got changed from non-commutative multiply to be exponentiation to follow Python.

    • @dinobotpwnz
      @dinobotpwnz 2 года назад

      Cadabra2 is better for stuff like that.

  • @leveltube10
    @leveltube10 2 года назад +2

    Converting this ability to LaTex syntax would be nice!

    • @o0Serendipity0o
      @o0Serendipity0o 2 года назад +4

      I think this works: print(latex(Integral(sqrt(1/x), x)))
      And with preview instead of print it open the result in a window. You may have to install a library for this one

  • @ElricleNecro
    @ElricleNecro 2 года назад

    In what way is this revolutionary?
    Software like mathematica and Maple are doing this since multiple decades, and, last time I compared them with sympy (a few years ago) and they were a lot better, but in a way it would take decades for sympy to catch back. And they also permit to export equations to different languages.

  • @xxbluelostknaxxx2219
    @xxbluelostknaxxx2219 2 года назад

    the guy that created this modul broke hist brain while writing it

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 2 года назад +1

    2:15 It’s not exact, it’s rounded.

    • @Baaqel
      @Baaqel 2 года назад

      I thought that was funny since sqrt(15) is the exact value not the other way around

  • @philperry6564
    @philperry6564 2 года назад +1

    REVOLUTIONARY? CASs has been around for decades.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 2 года назад

    11:17 No, it’s one third of x³.

    • @Baaqel
      @Baaqel 2 года назад

      LaTeX notion would be so much more useful

  • @unst4bl398
    @unst4bl398 2 года назад +6

    "this is revolutionary", laughs in mathcad 2001

  • @servantofourlordjesuschris6456
    @servantofourlordjesuschris6456 4 месяца назад +1

    is this cheating? for school

  • @MrKA1961
    @MrKA1961 2 года назад

    sympy is more useful when you use it with jupyter.

  • @InfiniteQuest86
    @InfiniteQuest86 2 года назад +3

    Yeah it seems cool, but if you are doing anything like this you should be using Sage. Sage is way more powerful and intuitive, and allows you to do way more math than this.

    • @dinobotpwnz
      @dinobotpwnz 2 года назад

      Indeed. Sage and symengine have pros and cons compared to each other. But both are better than sympy.

  • @devinlucaschu9123
    @devinlucaschu9123 2 года назад +1

    Senpai

    • @FaranAiki
      @FaranAiki 2 года назад +1

      What is the matter, Kouhai?

  • @vitalyl1327
    @vitalyl1327 2 года назад +2

    Hm.... How is it revolutionary if Maxima / Axiom / Maple and dozens of other CASes did it for decades? SymPy is a pretty bland and primitive CAS.

    • @julians.2597
      @julians.2597 2 года назад +2

      The integration in the most popular data science programming language is incredible, but I agree that on its own SymPy is pretty average.

    • @vitalyl1327
      @vitalyl1327 2 года назад +1

      @@julians.2597 yes, integration is useful (although, still possible to use an interface between Python and a grown-up CAS to do the same).

  • @qwerty-wt5dr
    @qwerty-wt5dr 2 года назад

    Nyisooo

  • @driesceuppens7623
    @driesceuppens7623 2 года назад

    While this library is very cool it's not particularly when doing something like a math heavy degree. I learned about it in my first your in undergrad for Physics and haven't used it a single time since. It's cousin numpy though is much more useful.

  • @JarppaGuru
    @JarppaGuru 2 года назад

    23:05 if you dont know equations then you cant python. if you know equations you cant do it python its diff thing lol. look at that. nothing even close same lol. put that same you wrote and solve it lol
    i have know idea what that equation on write it on paper? there is no e on python functions huh

    • @FaranAiki
      @FaranAiki 2 года назад +3

      If you do not know English, then someone would not understand the messages that you are trying to convey, huh.

  • @sheikhAbdelrahman
    @sheikhAbdelrahman 2 года назад

    why to use this when there is well-established MATLAB!
    It has been there for ages and reached extremely high maturity level in all subsidiaries of mathematics; calculus, algebra ..

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 2 года назад +4

      MATLAB is for matrix manipulations, not symbolic maths.

    • @whitecanid8938
      @whitecanid8938 2 года назад +4

      @@lawrencedoliveiro9104 maple and mathematica did this 20 years ago already

    • @ericbwertz
      @ericbwertz 2 года назад +1

      US$0.00, or whatever that is in your local currency

    • @heptex8989
      @heptex8989 Год назад

      Its because MATLAB is dedicated to mathmatics. Python can be used for data science, networking, machine learning, GUI’s etc etc so being able to deal with algebra is very valuable

  • @AKBARESFAHANI
    @AKBARESFAHANI 2 года назад

    Hahahaha, Matlab has had forever

    • @FaranAiki
      @FaranAiki 2 года назад +1

      It has different purposes.

    • @ericbwertz
      @ericbwertz 2 года назад +1

      Hahahaha, MATLAB isn't free. So if this is good enough, it's oo better than MATLAB.

  • @TheThunderSpirit
    @TheThunderSpirit 2 года назад

    cant see a useful application of this other than solving homework

    • @FaranAiki
      @FaranAiki 2 года назад +1

      Which is useless in terms of higher level.

    • @dinobotpwnz
      @dinobotpwnz 2 года назад

      Do you think cars are made by trial and error or something?

    • @FaranAiki
      @FaranAiki 2 года назад +1

      ​@@dinobotpwnz
      Irrelevant, red herring, let me ask you: do cars are made because of this application?
      You got their point wrong. They meant that this specific software is "useless" according to them.

    • @dinobotpwnz
      @dinobotpwnz 2 года назад

      @@FaranAiki Cars are made partly by solving differential equations and any engineer knows it would be a waste of time and money to do that by hand. Whether and how many use this specific application is unknown and irrelevant. Sympy is a project to make the algorithms they use more accessible to people used to Python.

    • @FaranAiki
      @FaranAiki 2 года назад +1

      @@dinobotpwnz
      Still, the existence of SymPy is irrelevant to what you had been saying.

  • @auseryt
    @auseryt 2 года назад

    Interesting. Too bad it is in python.

  • @Lhuge
    @Lhuge 2 года назад

    symp

  • @frogstud
    @frogstud 2 года назад +2

    The limit of 50/x for x -> 0 doesn't exist

    • @glenn8459
      @glenn8459 2 года назад

      No, it approaches infinity

    • @DendrocnideMoroides
      @DendrocnideMoroides 2 года назад +3

      @@glenn8459 no it actually does not exist because if you approach 0 from the positive direction you get +infinity
      but if you approach 0 from the negative direction you get -infinity
      but for example, 50/𝑥^2 does approach +infinity (because no matter which direction you choose you will approach +infinity)
      for a limit to exist the limit from both directions should be equal
      same as with the derivative to exist the derivative from both directions should be equal

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 2 года назад

      In the real plane, there are two answers, depending on which direction you approach zero from.
      In the complex plane, there are an infinity of answers, because there is an infinity of directions from which you can approach zero.

    • @DendrocnideMoroides
      @DendrocnideMoroides 2 года назад

      @@lawrencedoliveiro9104 we are at least assuming real numbers because otherwise, you can go into Quaternions, Octonions, Sedenion, ...

  • @Khusyasy
    @Khusyasy 2 года назад

    notice me sympy~

  • @adamhenriksson6007
    @adamhenriksson6007 2 года назад

    I don't get it. What is the real use of this? It's just a calculator.

    • @aim2986
      @aim2986 2 года назад

      Calculators are generally used for calculating stuff, not solving equations. Also, most calculators arent programmable.

    • @Baaqel
      @Baaqel 2 года назад

      @@aim2986 most graphing calculators are programmable

    • @aim2986
      @aim2986 2 года назад

      @@Baaqel That's why i said "most calculators", not "all calculators". Majority of calculators dont have graphing support.

  • @oguzhantopaloglu9442
    @oguzhantopaloglu9442 2 года назад +3

    so simply a shitty library that works like matlab

    • @blindshellvideos
      @blindshellvideos 2 года назад

      why shitty?

    • @HypnosisBear
      @HypnosisBear 2 года назад +1

      It's not a shitty library LoL 🤣🤦🤦
      It's one of the best libraries out there.
      It works amazingly!!! You just haven't used it. It's been maintained and updated for more than a decade and still it's being maintained.

    • @oguzhantopaloglu9442
      @oguzhantopaloglu9442 2 года назад +1

      ​@@HypnosisBear You clearly never used MATLAB before

    • @54365100
      @54365100 2 года назад +4

      If there isnt a equivalent or better library with the same simplicity in python its value is painfully obvious

    • @Nathanael986
      @Nathanael986 2 года назад +1

      difference is Matlab: 100$+, sympy : free. Of course there are always multiple tools for a task.

  • @HenrikVendelbo
    @HenrikVendelbo 2 года назад

    Please don’t claim that computer science is math heavy. In 30 years I’ve never needed math. Lots of psychology though.

    • @ayylmao2410
      @ayylmao2410 2 года назад +3

      lo just depends on what u do lol

    • @Baaqel
      @Baaqel 2 года назад

      Working with any kind of physics definitely requires a solid understanding of algebra, often trig, and calculus. Complex and imaginary numbers are also very useful in some computations

    • @FaranAiki
      @FaranAiki 2 года назад +2

      Then, what do you do? Fixing printers?

    • @ericbwertz
      @ericbwertz 2 года назад

      The community is moving towards calling what you do "software engineering". The true CS theory/research stuff is math moreso than your programming/engineering.

  • @trejohnson7677
    @trejohnson7677 2 года назад +1

    Symbolics.jl.