Symbolické výpočty

Symbolic Computations (SyCo) / Cálculos simbólicos

FU:TFNPF0001 –  akad. navazující Mgr SP TFYZNM Teoretická fyzika (st. plán TFYPOFYNM Počítačová fyzika): 2/2/0, 6 kreditů, Zko

FU:ETFNPF0001 –  acad. follow-up Master SP TFYZNM Theoretical Physics (plan TFYPOFYNM Computational Physics): 2/2/0, 6 crds, Exam

Garance, přednášky & cvičení / Guaranteed by, lectures and exercises: doc. RNDr. Stanislav Hledík, Ph.D.

sh_SyCo_1.gif

Informace o kursuVýukaHodnocení a zkoušeníLiteraturaOdkazy a zdrojeČasto kladené dotazy
About the courseTuitionEvaluation and testingReferencesLinks and resourcesFAQ

Informace o kursu / About the course

Anotace / Annotation

This course introduces the principles of the Wolfram Language – a symbolic language, based on “pattern-matching and replacement rule-based programming” and functional programming paradigms, and its tools for solving tasks and problems in physics, mathematics, and related fields. It allows ideas to be cast into a computer representation that is efficient, elegant, fast, scalable and bug-free.

Sylabus / Content

★ separates different topics within a lecture, ★★ separates further reading on the topic(s) covered (“See also …”).

1.  Hands-on introduction to Mathematica and the Wolfram Language

References and resources. Getting started and basic usage, Wolfram Mathematica environment, notebook, cell, basic syntax, setting preferences. Procedure for “manual” calculations. Symbolic mathematics. Numerical mathematics. Programming paradigms: procedural, pattern matching and replacement (also substitution , transformation) rules, functional. Multimedia. Dynamic expressions. Files and external operations. ★★ See also An Elementary Introduction to the Wolfram Language, 3rd Ed. by Stephen Wolfram, The Wolfram Language: Fast Introduction for Programmers, Mathematica & Wolfram Language: Fast Introduction for Math Students, Resources for Software Developers. [1 point for homework]

2.  Principles of the Wolfram Language, programming based on pattern matching and replacement rules

Expressions, patterns, rules, evaluation. First Principle: Everything is an expression. Normal and atomic expressions, different meanings of expressions, special ways of entering expressions. Head of expression: Head, atomicity check: AtomQ, internal form: FullForm, InputForm, tree structure: TreeForm. Disassembling expressions: Part ([[…]]); levels in expressions: Level. Second Principle: Pattern-matching and Rule substitution (or replacement, transformation). Basic patterns: Blank (_), BlankSequence (__), BlankNullSequence (___) and replacement rules: Rule (->), RuleDelayed (:>), Set (=), SetDelayed (:=), optimization of list of rules: Dispatch. Test pattern matching with MatchQ, FreeQ, MemberQ. Searching and selecting expressions with Cases, FirstCase, DeleteCases, Count, Pick, Position, FirstPosition. Transforming expressions with Replace, ReplaceAll (/.), ReplacePart, ReplaceAt, ReplaceList, ReplaceRepeated (//.). Naming patterns: Pattern (:). Restricting patterns: restriction by head (argument to Blank (_) etc.), restriction by test (predicate): PatternTest (?), restriction by Condition (/;). Variable number of arguments: BlankSequence (__), BlankNullSequence (___). Default values: Optional (:), Default. Alternative and repeated patterns: Alternatives (|), Repeated (..), RepeatedNull (...). Exception: Except. Longest and shortest sequence: Longest, Shortest. Sequence of patterns: PatternSequence, OrderlessPatternSequence, SequenceCases. Third Principle: Expression evaluation standard and nonstandard: Evaluate, Unevaluated, Hold, ReleaseHold, HoldFirst, HoldRest, HoldAll. ★ Functions are actually rules: OwnValues, DownValues, SubValues; non-commutativity and automatic reordering of replacement rules. Multiple definition of a single function (function overloading). Side effects. ★★ See also tutorials Expressions, Operator Input Forms, Textual Input and Output, Patterns and Transformation Rules, Transformation Rules and Definitions, and guide Wolfram Language Syntax. [1 point for homework]

3.  Lists, pure functions, and some minutiae

Lists (List, {…}). Generating lists manually, using menu, programmatically: Range, PowerRange, Table, Array, ConstantArray, SparseArray, UnitVector, DiagonalMatrix, IdentityMatrix, KroneckerDelta. Measuring lists: Length, Dimensions, Depth, ArrayDepth, VectorQ, MatrixQ, Array. Parts of lists and their manipulation: Part ([[…]]), Span (;;), Extract, First, Last, Most, Rest, Take, Drop, TakeDrop, TakeWhile, LengthWhile, Pick. Mapping list elements: Map (/@), Scan, MapAt, MapIndexed, MapAll (//@). Mapping two or more lists: Thread, MapThread, Through, Inner, Outer. Changing the head: Apply (@@), MapApply (@@@). Inserting and deleting elements: Prepend, Append, PrependTo, AppendTo, Insert, ReplacePart, Delete, Riffle, PadLeft, PadRight, ArrayPad, Nothing. Deleting duplicate elements: DeleteDuplicates, DeleteDuplicatesBy, Union. Sorting: Sort, ReverseSort, SortBy, ReverseSortBy, Ordering, OrderingBy. Searching for positions of elements: Position, Extract, Ordering. Sequences: Sequence, Splice. Grouping and splitting: Flatten, FlattenAt, Partition, Split, SplitBy, Tally, Gather, GatherBy. Rearranging and transmogrifying elements: Transpose, ConjugateTranspose, Union, Reverse, RotateLeft, RotateRight. Combinatorial operations: Permutations, Subsets, Tuples. Searching for elements: Select, SelectFirst, Cases, Count, DeleteCases. Operations with multiple lists: Join, Catenate, Union, Intersection, Complement, SymmetricDifference. ★ Pure functions (also anonymous functions, λ-functions): Function (&, |->), Slot (#), SlotSequence (##), Compile, CompiledFunction. ★ Logical operators: And (&&), Or (||), Not (!), Nand, Nor, Xor, True, False, BooleanQ, … ★ Other ‘=’-related operators: AddTo (+=), Increment (++), PreIncrement (++), SubtractFrom (-=), Decrement (--), PreDecrement (--), TimesBy (*=), DivideBy (/=), ApplyTo (//=). ★ Equality and non-equality checks: Equal (==), Unequal (!=), Less (<), LessEqual (<=), Greater (>), GreaterEqual (>=), SameQ (===), UnsameQ (=!=), TrueQ. ★ Conditionals: If, Which, Switch, Piecewise, Boole. ★ Loops and flow control: CompoundExpression (;), Do, For, While. ★★ See also tutorial Variables in Pure Functions and Rules, chapters Lists, Function Definitions, Pure Functions in online tutorial The Wolfram Language: Fast Introduction for Programmers, and guide Rules & Patterns. [1 point for homework]

4.  Functional programming, scoping constructs, and function attributes

The basic paradigm of functional programming: applying functions to data and other functions (which are taken as data and can be arguments to other functions). How it compares to procedural programming. A family of mapping functions (revision and generalization): Map (/@), Scan, MapAt, MapIndexed, MapAll (//@), Apply (@@), MapApply (@@@), SubsetMap. A family of “threading” functions (revision and generalization): Thread, MapThread, Threaded, Through, Comap, Operate, Inner, Outer, Distribute, Transpose. A family of iterative functions: Nest, NestList, NestWhile, NestWhileList, Fold, FoldList, FixedPoint, FixedPointList. Some other handy functions: TakeWhile, LengthWhile, Accumulate, Differences, Ratios, FoldPair, FoldPairList, SequenceFold, SequenceFoldList. Composition of functions: Composition (@*), RightComposition (/*), ComposeList. ★ The “sow-reap” pair: Sow, Reap. ★ Localization of variables, scoping constructs Module, Block, With. ★ Setting and clearing attributes and definitions: Attributes, SetAttributes, ClearAttributes, Clear, Unset, ClearAll, Remove, Definition, Information, SyntaxInformation. ★ Function attributes, part 1: Listable, Flat, Orderless, OneIdentity, NumericFunction, Constant, Protected, ReadProtected, Locked, Protect, Unprotect.  ★ Termination of calculation: Throw, Catch, Return, Break, Continue, Abort. ★ Development of user functions. ★★ See also tutorial Functional Operations and guide Functional Programming. [1 point for homework]

5.  Review of Lectures 1 through 4

This lecture completes the learning of the general principles of the Wolfram Language through their fusion and revision; henceforth, we will focus primarily on their applications in combination with higher-level functions for both everyday and specialized tasks.  We will solve various model problems using programming based on pattern matching and replacement rules, functional programming, but also procedural programming, and compare them in terms of speed, memory requirements, code length, and readability. Students are encouraged to suggest their preferred areas of interest or particular problems that could be solved directly in the lecture or that could be included in subsequent lectures. [1 point for homework]

6.  Symbolic equation solving, calculus, graphics and visualization

Solving equations and inequalities: Solve, SolveValues, Root, Reduce, RootReduce, ToRadicals, FindInstance, AsymptoticSolve, GeneratedParameters, Eliminate, SolveAlways, LinearSolve, LinearSolveFunction, Inverse, NullSpace, MatrixRank, Det, Adjugate, Minors, RowReduce, Eigenvalues, Eigenvectors, CharacteristicPolynomial, LeastSquares, ToRules, Resolve, Exists, ForAll. ★ Differential calculus: D, Dt, Derivative, DifferenceQuotient, Minimize, Maximize, Grad, Div, Curl, Laplacian, Asymptotic, Series, InverseSeries, Limit, MaxLimit, MinLimit, DiscreteLimit, DiscreteMaxLimit, DiscreteMinLimit, FunctionContinuous, FractionalD, Piecewise, PiecewiseExpand. ★ Integral calculus: Integrate, AsymptoticIntegrate, LineIntegrate, SurfaceIntegrate, LaplaceTransform, FourierTransform, Convolve, ArcLength, Area, Volume, MomentOfInertia, Sum, AsymptoticSum, SumConvergence, Product, GeneratingFunction, LaplaceTransform, InverseLaplaceTransform, FourierTransform, InverseFourierTransform, ZTransform, InverseZTransform, Assuming, $Assumptions, Assumptions, Refine, Simplify, FullSimplify. ★ ODEs and DAEs: DSolve, DSolveValue, AsymptoticDSolveValue, WhenEvent, DEigensystem, DEigenvalues, GreenFunction. ★ Variational methods: package VariationalMethods, EulerEquations, FirstIntegrals, FirstIntegral, VariationalD. ★ PDEs:  DSolve, DSolveValue. ★ 2D graphics and visualization: Graphics, Point, Line, HalfLine, InfiniteLine, BezierCurve, BSplineCurve, JoinedCurve, Polygon, RegularPolygon, Text, Arrow, Disk, Circle, Triangle, Rectangle,  Annulus, Parallelogram, Raster, Show. 2D charts: Plot, LogPlot, LogLinearPlot, LogLogPlot, ParametricPlot, ContourPlot. ★ 3D graphics and visualization: Graphics3D, Sphere, Cuboid, Cylinder, Cone, Tube, Point, Line, HalfLine, InfiniteLine, BezierCurve, BSplineCurve, Arrow, Triangle, Polygon, HalfPlane, InfinitePlane, Tetrahedron, Parallelepiped, Hexahedron, Prism, Pyramid, Simplex, Sphere, Circumsphere, Ball, Ellipsoid, Torus. 3D charts: Plot3D, ParametricPlot3D, DensityPlot, SliceContourPlot3D, SliceDensityPlot3D, ComplexPlot3D. ★★ See also tutorials Manipulating Equations and Inequalities, Calculus, Some Mathematical Functions, and  guides Equation Solving, Calculus, Mathematical Functions, Matrices and Linear Algebra, Function Visualization. [2 points for homework]

7.  Representation of numbers and computer arithmetic

General prerequisites: Binary, octal and hexadecimal systems, data representation; exact numbers – integers and rationals; simulation of real numbers with imprecise “floating-point” numbers with fixed (relative) precision, their properties and parameters; IEEE arithmetic of FP numbers; numerical computations and their pitfalls and traps.

How Wolfram Language implements numbers: Precise numbers (integers and rationals): EvenQ, OddQ, Prime, PrimePi, NextPrime, PrimeQ, RandomPrime, PrimePower, CoprimeQ, PrimeOmega, PrimeNu, FactorInteger, Divisors, DivisorSigma, DivisorSum, Divisible, IntegerExponent, GCD, LCM, Quotient, Mod, PowerMod, QuotientRemainder, IntegerLength, IntegerDigits, FromDigits, DigitCount,  IntegerPartitions, PartitionsP, … ★ Real and complex numbers: N, Round, Floor, Ceiling, IntegerPart, FractionalPart, Chop, Rationalize, RealAbs, I, Re, Im,Conjugate, Abs, Arg, AbsArg, Infinity, ComplexInfinity, DirectedInfinity, Indeterminate, … ★ Arithmetic of real numbers: Precision, Accuracy, MachineNumberQ, “fixed-precision” arithmetic with “machine-precision” numbers vs. “variable-precision” arithmetic with “arbitrary-precision” numbers, MachinePrecision, $MachinePrecision, $MachineEpsilon, $MaxMachineNumber, $MinMachineNumber, $MaxNumber, $MinNumber, $MaxPrecision, $MinPrecision, $MaxExtraPrecision, SetPrecision, SetAccuracy, … ★ Precision and accuracy related options numerical functions: WorkingPrecision, PrecisionGoal, AccuracyGoal. ★ Constants and units: Catalan, ChampernowneNumber, Degree, E, EulerGamma, Glaisher, GoldenAngle, GoldenRatio, Khinchin, MachinePrecision, Pi; Quantity, QuantityMagnitude, QuantityUnit, UnitConvert. ★ Formatting numbers: NumberForm, DecimalForm, ScientificForm, EngineeringForm, AccountingForm, PaddedForm, … ★★ See also tutorials Numerical Operations on Functions, Numbers, and guide Numerical Evaluation & Precision. [no homework]

8.  Numerical equation solving, calculus, graphics, and visualization

Solving equations and inequalities: NSolve, NSolveValues, NSum, FindRoot, FindMinimum, FindMaximum, NMinimize, NMaximize, LinearProgramming, NArgMin, NArgMax, NMinValue, NMaxValue, Interpolation, InterpolatingFunction, … ★ Differential calculus:  DifferenceQuotient, DifferenceDelta, ListConvolve, …, package NumericalCalculus, NLimit, ND, EulerSum, NSeries, NResidue. ★ Integral calculus: NIntegrate, N[Integrate[…]], NDSolve, FourierNSum, NProduct, … ★ Ordinary differential equations: NDSolve, NDSolveValue, ParametricNDSolve, ParametricNDSolveValue, NDEigensystem, NDEigenvalues, … ★ Partial differential equations: see PDEModels Overview. ★ Computation monitoring and timing: StepMonitor, EvaluationMonitor, Sow, Reap, Timing, AbsoluteTiming, RepeatedTiming, EchoTiming. ★ 2D graphics and visualization: ArrayPlot, ReliefPlot, MatrixPlot, ListVectorPlot, ListStreamPlot, … 2D charts: ListPlot, ListLogPlot, ListLogLinearPlot, ListLogLogPlot, ListPolarPlot, ListLinePlot, ListStepPlot, ListDensityPlot, ListContourPlot, ListCurvePathPlot, …  ★ 3D graphics and visualization: ArrayPlot3D, ListVectorPlot3D, ListStreamPlot3D, ListSliceVectorPlot3D, … 3D charts: ListPlot3D, ListPointPlot3D, ListLinePlot3D, ListDensityPlot3D, ListContourPlot3D, ListSurfacePlot3D, … ★★ See also tutorials Numerical Calculations, Numerical Operations on Functions, Some Notes on Internal Implementation, Advanced Numerical Integration in the Wolfram Language, Advanced Numerical Differential Equation Solving in the Wolfram Language, PDEModels Overview, Graphics and Sound, guides Equation Solving, Calculus, Differential Equations, Differential Operators, Function Visualization, and package Numerical Calculus Package. [1 point for homework]

9.  Recursion and computational tricks, function attributes, options, and messages

Indexed recursive formulas: f[expr1_]:=f[expr2] (f repeatedly calls itself), expr//.pattern:>value (a rule repeatedly applied), dynamic programming. ★ The WL system function for indexed recursion: RecurrenceTable, LinearRecurrence, FindLinearRecurrence, RSolve, RSolveValue, AsymptoticRSolveValue, RFixedPoints, RStabilityConditions; some explicit functions like Fibonacci, LucasL. ★ Setting $RecursionLimit and $IterationLimit. ★ Non-indexed recurrences: functional equations, examples of implementing properties of derivatives, indefinite integrals, determinants… ★ A family of iterative functions (revision of Lecture 4: Functional programming, scoping constructs, and function attributes). ★ Tracking using Trace, TracePrint, TraceDialog. ★ Function attributes, part 2: HoldFirst, HoldRest, HoldAll, Unevaluated. ★ Function options: Options, AbsoluteOptions, SetOptions. ★ Messages and usage statements: Quiet, On, Off, Check, MessageName (::), Message. ★★ See also tutorials Solving Recurrence Equations, Attributes, Non-Standard Evaluation, Manipulating Options, Messages, Warnings and Messages, and guides Recurrence and Sum Functions, Attributes, Evaluation Control, Options Management, Messages. [1 point for homework]

10.  Signal analysis and processing

Symbolic “generalized” functions: DiracDelta, DiracComb, HeavisideTheta, UnitStep, HeavisidePi, UnitBox, HeavisideLambda, UnitTriangle. ★ Symbolic continuous convolution and correlation: Convolve, CorrelationFunction, Correlation. ★ Symbolic continuous Fourier analysis: FourierTransform, InverseFourierTransform, FourierCosTransform, FourierSinTransform, FourierSeries, … ★ Discrete “generalized” functions: DiscreteDelta, KroneckerDelta, UnitVector, UnitStep. ★ Discrete convolution and correlation: ListConvolve, ListDeconvolve, DiscreteConvolve, MovingAverage, ListCorrelate. ★ Discrete Fourier transforms and its varieties: Fourier, InverseFourier, FourierDCT, FourierDST, ShortTimeFourier. ★ Spectral applications: Periodogram, PeriodogramArray, Spectrogram, InverseSpectrogram, Cepstrogram. ★ Signal filtering: GaussianFilter, MeanFilter, …, LowpassFilter, HighpassFilter, BandpassFilter, BandstopFilter, …, MedianFilter, MeanShiftFilter, … ★★ See also tutorials Integral Transforms and Related Operations, Discrete Fourier Transforms, Convolutions and Correlations, Digital Filter Design, and guides Integral Transforms, Fourier Analysis, Signal Transforms, Signal Processing, Signal Filtering & Filter Design, Image Processing & Analysis, Data Transforms and Smoothing, Generalized Functions. [no homework]

11.  Functions with optional arguments, bulletproofing functions, and package development

Setting up functions with optional arguments:  Options, AbsoluteOptions, SetOptions, OptionsPattern, OptionValue, FilterRules. ★ How to make functions bulletproof: Throw, Catch, Quiet, On, Off, Check, MessageName (::), Message. ★ Package usage and development: Needs, Get (<<), $Context, $ContextPath, $ContextAliases, $Packages, Names, DeclarePackage, Once, BeginPackage, EndPackage, Begin, End. ★★ See also tutorials Setting Up Functions with Optional Arguments, Setting Up Wolfram Language Packages, Contexts and Packages, and guides Options Management, Package Development. [1 point for homework]

12.  Review of Lectures 6 through 11

This lecture completes the learning of applications of the Wolfram Language in Physics and related fields of Science. Using all the methods explained during the course, we will discuss and solve a variety of problems. Again, students are encouraged to suggest their preferred areas of interest or particular problems that could be solved directly in the class. Preparation for the defense of the exam project. Those who manage to develop their exam project by this time can now defend it. [no homework]

Offer of additional topics for those interested (if time permits)

File and directory operations local and remote, persistent files: see guide File Operations. ★ Import and export: see guide Importing and Exporting. ★ Web: see guide Web Operations. ★ Interaction with external programs: see guide Calling External Programs. ★ Dynamic expressions and interactivity: see tutorials Introduction to Dynamic, Advanced Dynamic Functionality and guide Dynamic Interactivity Language. ★ Optimizing the Wolfram Language code: see guide Parallel Computing, GPU Computing. ★ Application, package and Paclet Development: see guide Package Development, tutorials Contexts and Packages, Setting Up Wolfram Language Packages and Paclets Overview. ★ Geometry: see guide Geometric Computation. ★ Working with strings and text: see guide String Manipulation. ★ Signal processing and analysis: see guide Signal Processing. ★ Image processing and analysis: see guide Image Processing & Analysis. ★ Scientific and medical data and computations: see guide Physics & Chemistry: Data and Computation, Astronomical Computation & Data, Scientific Data Analysis, Units & Quantities. ★ Error handling using both left- and right-hand side pattern restrictions.

Other topics may be added as agreed upon with the students.

▲▲  

Výuka / Tuition

Přednášky / Lectures

Standard class times: as per the current schedule.

Lectures do not necessarily follow the topic structure of the content.

The online materials used in the lecture can be found in my Dropbox cloud via a shortened link

j.mp/slunivo

in the SyCo directory (alternatively, you can use a direct link to it).

If you do not understand something or need clarification, consultations are available.

In case of extraordinary circumstances, I will provide a link to the organization of online classes.

Cvičení / Exercises

The exercises will be held according to the current schedule with the instructor, immediately following the lecture.

A maximum of 3 unexcused absences per semester (except for students with an approved Individual Study Plan, with whom I will make individual arrangements).

The assignment, preparation, and submission of homework assignments will be as follows:

After each topic is covered in the lecture, download the corresponding Lecture<N>.nb notebook, N = 01, 02, … from SyCo/Assignments. (There is also an accompanying Assignment<N>.nb notebook that contain links to all available problems, but does not need to be downloaded.)

The problems to be solved can be found in the Homework chapter, formulated either directly or indirectly using the command problem[“<ProblemName>”] . In the latter case, an untitled new Mathematica notebook containing the downloaded problem assignment will appear, along with a standard “Save As” dialog box prompting you to save the notebook with a pre-filled name <ProblemName> and path; it is highly recommended that you accept the pre-filled name; failure to follow this convention may cause the solution to be rejected. You now have the file <ProblemName>.nb on your hard disk.

When you’re done  with solving the problem, go to the “Submit” section at the bottom of the <ProblemName>.nb notebook and read the instructions for submitting your solution (or whatever you want to discuss). The solution will be emailed directly from a Mathematica session using the submit[] command, so please have your CRO identity credentials ready.

Notes:

The reason the action of the problem[“<ProblemName>”] command avoids saving the file directly is for safety: you don’t want to overwrite a solution in progress if you accidentally run this command again.

When you initialize a Lecture<N>.nb (or Assignment<N>.nb )notebook for the first time, the SyCo extensions consisting of the SyCo.wl package (defining the problem and submit symbols) and the SyCo_Style.nb stylesheet (which defines the visual appearance of all SyCo related notebooks) are downloaded and installed in your personal Wolfram System extensions location (subdirectories of the $UserBaseDirectory). Once installed, they will no longer be downloaded and reinstalled regardless of whether you accept the prompt to automatically evaluate all the initialization cells or not (unless you delete them yourself, of course); during all subsequent sessions, the initialization will only load these files.

The initialization code is in the grayed-out cell at the very end of each Lecture<N>.nb or Assignment<N>.nb notebook.

Softwarové vybavení / Software equipment

All participants who do not have their own license or are not equipped with a license from another institution will receive a legal university license for Wolfram Mathematica for the duration of the course, at least until the exam is completed (allocation and installation will be arranged after registration and before the first lecture).

▲▲  

Hodnocení a zkoušení / Evaluation and testing

Throughout the semester, the student will complete 9–10 homework assignments on topics related to the topic just discussed. Each homework will be worth a maximum of 1 point or 2 points so that this makes a maximum of 10 points for all homework (see About the course for details). I will gradually publish the assignments on the above mentioned cloud in the SyCo/Assignments directory. The handling of homework will be covered in the first exercise.

By the end of October (or thereabouts), the student will receive an assignment of the exam project to be solved using the discussed methods in the Wolfram Mathematica system. The exam consists of a project defense (max. 10 points). The resulting grade will be given according to a 20-point grading scale.

Materials for some topics can be found on the above cloud in the SyCo/Projects directory. A selection of topics for term projects (you can propose your own topic after consultation with the teacher; topics on a white background are assigned in the Fall Semester 2024/25):

1.    Epidemiologic models based on ODEs (compartmental models): see cloud; additional information and materials will be provided by the instructor. [Isabel Marrero Martín]

2.    Exploring different forms of the Pursuit Curve and Dog Curve:  Wolfram MathWorld, Mathcurve, Mathematical Association of America, Cornell Univ Math Dept., Gotohaggstrom, National Curve Bank, and others.

3.    Kepler’s problem for an orbiter with a variable mass (movement of a comet ejecting or accumulating mass, jets on a planet, etc.): information and materials will be provided by the instructor.

4.    Magnus effect (aerodynamic effect of the rotation of a ball on its trajectory – tennis, table tennis, soccer, etc.) or aerodynamic force action on a rotating cylinder (helicopter, Flettner rotor): information and materials will be provided by the instructor.

5.    Permanent magnet falling through a conductive loop (electromagnetic induction braking illustration): Information and materials will be provided by the instructor.

6.    Study the transients of turning on and off an incandescent light bulb (or why a light bulb usually “goes out” when turned on): See cloud; additional information and materials will be provided by the instructor.

7.   An application of a general asymmetric 1D Savitzky–Golay convolution filter that avoids the problem of edge effects: Information and materials will be provided by the instructor.

8.   The finite numeric interval {a, b} is to be sampled with n samples (i.e., n equidistant values are to be distributed in it), so that the sequence of samples generated in this way is immediately (after mapping some function onto it) prepared as input for the system Fourier and InverseFourier functions (we want to have the first sample implicitly at t = 0). Write a function circularlySample[{a, b}, n] that handles this in all directions. [Alejandro Estupiñán Suárez]

9.   Study the motion of a charged particle in the Earth’s gravitomagnetic field. Information and materials will be provided by the instructor. [Filip Janoštík]

10.   Design and implement a method based on the ChebyshevT polynomials to compute a time derivative of an unevenly sampled time series. Information and materials will be provided by the instructor.

11.   Usefulness of state space reconstruction for time series prediction. A topic proposed by the student himself. [Jiří Roman Moronga]

▲▲  

Literatura / References

See Wolfram & Mathematica – Site Licenses, Section References & Resources

▲▲  

Odkazy a zdroje / Links and resources

Books, manuals, and online resources can be found in the Literature section above and on the Wolfram Language and Mathematica page; they will not be duplicated here.

Fans of the Big Bang Theory know that Leonard refers to 73 as the “Chuck Norris of Numbers”  after Sheldon points out that : 73 is the 21st prime, and it’s mirror image 37 is the 12th prime. This enigma is the only known such combination. In binary 73 is a palindrome 1001001: see Chuck Norris of Numbers is the 73. Sheldon failed to mention that 73 is also the 37th odd number: see Pat's Blog, Tuesday, 14 March 2023.

▲▲  

Často kladené dotazy / FAQ

Q: How can I be sure that the SyCo package and stylesheet are free of malware?

A: The best way to check them is to read their source code. It can be displayed directly in the notebook with

Import["https://is.slu.cz/www/hle0002/vyuka/syco/resources/SyCo.wl", "Text"]

and

Import["https://is.slu.cz/www/hle0002/vyuka/syco/resources/SyCo_Style.nb", "Text"]

Alternatively, both the package and stylesheet files can be copied to a non-system location within the home directory, such as $WolframDocumentsDirectory,

With[{p = "SyCo", x = {".wl", "_Style.nb"}},
    MapThread[CopyFile, {
        URL["https://is.slu.cz/www/hle0002/vyuka/syco/resources/" <> p <> #] & /@ x,
        FileNameJoin[{$WolframDocumentsDirectory, p}] <> # & /@ x
    }
]]

and then opened in Mathematica.

▲▲  

Created with the Wolfram Language