Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Symbolic expressions, rewriting and simplification

License

NotificationsYou must be signed in to change notification settings

JuliaSymbolics/SymbolicUtils.jl

Repository files navigation

Join the chat at https://julialang.zulipchat.com #sciml-bridgedGlobal Docs

codecovBuild StatusBuild status

ColPrac: Contributor's Guide on Collaborative Practices for Community PackagesSciML Code Style

Tutorials and Documentation

For information on using the package,see the stable documentation. Use thein-development documentation for the version ofthe documentation, which contains the unreleased features.

SymbolicUtils.jl provides various utilities for symbolic computing. SymbolicUtils.jl is what one would use to builda Computer Algebra System (CAS). If you're looking for a complete CAS, similar to SymPy or Mathematica, seeSymbolics.jl. If you want to build a crazy CAS for your weirdOctonian algebras, you've come to the right place.

Symbols in SymbolicUtils carry type information. Operations on them propagate this information.A rule-based rewriting language can be used to find subexpressions that satisfy arbitrary conditions and apply arbitrary transformations on the matches. The library also contains a set of usefulsimplification rules for expressions of numeric symbols and numbers. These can be remixed and extended for special purposes.

If you are a Julia package developer in need of a rule rewriting system for your own types, have a look at theinterfacing guide.

"I don't want to read your manual, just show me some cool code"

julia>using SymbolicUtilsjulia> SymbolicUtils.show_simplified[]=truejulia>@syms x::Real y::Real z::Complexf(::Number)::Real(x, y, z,f(::Number)::Real)julia>2x^2- y+ x^2(3* (x^2))+ (-1* y)julia>f(sin(x)^2+cos(x)^2)+ zf(1)+ zjulia> r=@rulesinh(im*~x)=>sin(~x)sinh(im*~x)=>sin(~x)julia>r(sinh(im* y))sin(y)julia>simplify(cos(y)^2+sinh(im*y)^2,RuleSet([r]))1

Citations

  • The pattern matcher is an adaption of the one by Gerald Jay Sussman (as seen in6.945 at MIT), his use of symbolic programming in the bookSICM inspired this package.
  • Rewrite.jl andSimplify.jl byHarrison Grodin also inspired this package.

Packages

No packages published

Contributors75

Languages


[8]ページ先頭

©2009-2025 Movatter.jp