bondscell_results$fefc5308-7caf-465a-afc0-b1a6f2e68ba2queued¤logsrunning¦outputbody

Numerical analysis

  1. Introduction

  2. The Julia programming language

  3. Revision and preliminaries

  4. Root finding and fixed-point problems

  5. Direct methods for linear systems

  6. Iterative methods for linear systems

  7. Interpolation

  8. Numerical integration

  9. Numerical differentiation

  10. Boundary value problems

  11. Eigenvalue problems

  12. Initial value problems

mimetext/htmlrootassigneelast_run_timestampAڃ0P7persist_js_state·has_pluto_hook_features§cell_id$fefc5308-7caf-465a-afc0-b1a6f2e68ba2depends_on_disabled_cells§runtimewpublished_object_keysdepends_on_skipped_cells§errored$786a2620-1962-4ee2-950c-b47e28d66e99queued¤logsrunning¦outputbody

EPFL resources

If you are an EPFL student you find the internal course resources following these links:

mimetext/htmlrootassigneelast_run_timestampAڃ,persist_js_state·has_pluto_hook_features§cell_id$786a2620-1962-4ee2-950c-b47e28d66e99depends_on_disabled_cells§runtimeMpublished_object_keysdepends_on_skipped_cells§errored$d448115a-6857-4082-893b-37549fe83b8bqueued¤logsrunning¦outputbody

Accompanying Excercise sheets

Improving these notes

If you spot an error feel free to make a pull request to the github repository generating this website.

mimetext/htmlrootassigneelast_run_timestampAڃ,persist_js_state·has_pluto_hook_features§cell_id$d448115a-6857-4082-893b-37549fe83b8bdepends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$4e1fa8a0-ad16-417f-ba58-5cb0ccff45a3queued¤logsrunning¦outputbodyP mimetext/htmlrootassigneelast_run_timestampAڃ0spersist_js_state·has_pluto_hook_features§cell_id$4e1fa8a0-ad16-417f-ba58-5cb0ccff45a3depends_on_disabled_cells§runtime{(published_object_keysdepends_on_skipped_cells§errored$7e571edb-6206-4138-863e-5a9d804e07ecqueued¤logsrunning¦outputbody

Content

The topics covered include:

Algorithm demonstrations and implementations will be based on the Julia programming language and interactive Pluto notebooks.

mimetext/htmlrootassigneelast_run_timestampAڃ,(gpersist_js_state·has_pluto_hook_features§cell_id$7e571edb-6206-4138-863e-5a9d804e07ecdepends_on_disabled_cells§runtime 5published_object_keysdepends_on_skipped_cells§errored$9261420d-3754-4820-a4f0-c5bda988157aqueued¤logsrunning¦outputbodyz

MATH-251(b): Numerical analysis

mimetext/htmlrootassigneelast_run_timestampAڃ,,persist_js_state·has_pluto_hook_features§cell_id$9261420d-3754-4820-a4f0-c5bda988157adepends_on_disabled_cells§runtime\published_object_keysdepends_on_skipped_cells§errored$0ccf77bd-0c5d-4c3c-82b5-b25c4adbc3baqueued¤logsrunning¦outputbody

Prerequisites

The course is designed with an audience of applied scientists (physics, biology, materials science) or engineers in mind. With a basic first-year mathematics background and prior exposure to some programming the material should be accessible.

mimetext/htmlrootassigneelast_run_timestampAڃ,NHpersist_js_state·has_pluto_hook_features§cell_id$0ccf77bd-0c5d-4c3c-82b5-b25c4adbc3badepends_on_disabled_cells§runtimeҵpublished_object_keysdepends_on_skipped_cells§errored$b1c510c9-4130-4f5e-8d15-3bfaf0a61033queued¤logsrunning¦outputbody

Literature and further reading

The outline of the course as well as many examples are taken from the excellent lecture notes "Numerical analysis" by Prof. Fabio Nobile. A copy of these notes in French as well as English is available on moodle.

For further reading and plenty of Julia code examples related to our subjects, take a look at the book Fundamentals of Numerical Computation by Tobin A. Driscoll and Richard J. Braun published by SIAM. An online version is further available at https://tobydriscoll.net/fnc-julia/. I will also link to this text in the lecture notes from time to time.

A slightly different emphasis in topics, but otherwise a good summary provide the lecture notes First Semester Numerical analysis by Giray Ökten. At places the text is more mathematical than our treatment. In the initial sections it has a good summary of basic Julia commands an concepts. An online PDF is available.

For an in-depth treatment with mathematical details and proofs for the results where we skip these details for brevity can be found in Numerical Mathematics by A. Quarteroni, R. Sacco, F. Saleri. A PDF can be downloaded from Springer by EPFL students.

Finally, if you are curious about Julia, I can highly recommend MIT's computational thinking class, which introduces Julia as well as its way of solving scientific problems in a hands-on and fun way.

mimetext/htmlrootassigneelast_run_timestampAڃ,!persist_js_state·has_pluto_hook_features§cell_id$b1c510c9-4130-4f5e-8d15-3bfaf0a61033depends_on_disabled_cells§runtimeϵpublished_object_keysdepends_on_skipped_cells§errored$09579796-7e0e-4990-b727-b20f63242bcbqueued¤logsrunning¦outputbody

This repository contains the teaching material of the course MATH-251(b) Numerical analysis at EPFL.

mimetext/htmlrootassigneelast_run_timestampAڃ,Ovpersist_js_state·has_pluto_hook_features§cell_id$09579796-7e0e-4990-b727-b20f63242bcbdepends_on_disabled_cells§runtime mpublished_object_keysdepends_on_skipped_cells§errored$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2fqueued¤logsrunning¦outputbodymimetext/htmlrootassigneelast_run_timestampAڃ0+9persist_js_state·has_pluto_hook_features§cell_id$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2fdepends_on_disabled_cells§runtimeAxpublished_object_keysdepends_on_skipped_cells§errored$ebf43572-95f2-401e-aa2e-d7748d3bf639queued¤logsrunning¦outputbody

Summary

The students will learn key numerical techniques for solving standard mathematical problems in science and engineering. The underlying mathematical theory and properties are discussed.

mimetext/htmlrootassigneelast_run_timestampAڃ,persist_js_state·has_pluto_hook_features§cell_id$ebf43572-95f2-401e-aa2e-d7748d3bf639depends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$c0da4104-9a5a-4553-8df0-fdadd0194c14queued¤logsrunning¦outputbodyH

Course outline

mimetext/htmlrootassigneelast_run_timestampAڃ,hpersist_js_state·has_pluto_hook_features§cell_id$c0da4104-9a5a-4553-8df0-fdadd0194c14depends_on_disabled_cells§runtimepublished_object_keysdepends_on_skipped_cells§errored$a9d71171-dd24-472a-be5f-12619295c4bfqueued¤logsrunning¦outputbodymimetext/plainrootassigneelast_run_timestampAڃ/Kpersist_js_state·has_pluto_hook_features§cell_id$a9d71171-dd24-472a-be5f-12619295c4bfdepends_on_disabled_cells§runtime)mVpublished_object_keysdepends_on_skipped_cells§errored±cell_dependencies$fefc5308-7caf-465a-afc0-b1a6f2e68ba2precedence_heuristic cell_id$fefc5308-7caf-465a-afc0-b1a6f2e68ba2downstream_cells_mapupstream_cells_maptoc$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2f$786a2620-1962-4ee2-950c-b47e28d66e99precedence_heuristic cell_id$786a2620-1962-4ee2-950c-b47e28d66e99downstream_cells_mapupstream_cells_map@md_strgetindex$d448115a-6857-4082-893b-37549fe83b8bprecedence_heuristic cell_id$d448115a-6857-4082-893b-37549fe83b8bdownstream_cells_mapupstream_cells_map@md_strgetindex$4e1fa8a0-ad16-417f-ba58-5cb0ccff45a3precedence_heuristic cell_id$4e1fa8a0-ad16-417f-ba58-5cb0ccff45a3downstream_cells_mapupstream_cells_mapTableOfContents$7e571edb-6206-4138-863e-5a9d804e07ecprecedence_heuristic cell_id$7e571edb-6206-4138-863e-5a9d804e07ecdownstream_cells_mapupstream_cells_map@md_strgetindex$9261420d-3754-4820-a4f0-c5bda988157aprecedence_heuristic cell_id$9261420d-3754-4820-a4f0-c5bda988157adownstream_cells_mapupstream_cells_map@md_strgetindex$0ccf77bd-0c5d-4c3c-82b5-b25c4adbc3baprecedence_heuristic cell_id$0ccf77bd-0c5d-4c3c-82b5-b25c4adbc3badownstream_cells_mapupstream_cells_map@md_strgetindex$b1c510c9-4130-4f5e-8d15-3bfaf0a61033precedence_heuristic cell_id$b1c510c9-4130-4f5e-8d15-3bfaf0a61033downstream_cells_mapupstream_cells_map@md_strgetindex$09579796-7e0e-4990-b727-b20f63242bcbprecedence_heuristic cell_id$09579796-7e0e-4990-b727-b20f63242bcbdownstream_cells_mapupstream_cells_map@md_strgetindex$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2fprecedence_heuristic cell_id$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2fdownstream_cells_mapSidebartoc$fefc5308-7caf-465a-afc0-b1a6f2e68ba2upstream_cells_mapRobustLocalResourceHypertextLiteral.BypassHypertextLiteral.contentString@htlMarkdown.parse HypertextLiteral.attribute_valueHypertextLiteral.ResultHypertextLiteral$a9d71171-dd24-472a-be5f-12619295c4bfMarkdownread$ebf43572-95f2-401e-aa2e-d7748d3bf639precedence_heuristic cell_id$ebf43572-95f2-401e-aa2e-d7748d3bf639downstream_cells_mapupstream_cells_map@md_strgetindex$c0da4104-9a5a-4553-8df0-fdadd0194c14precedence_heuristic cell_id$c0da4104-9a5a-4553-8df0-fdadd0194c14downstream_cells_mapupstream_cells_map@md_strgetindex$a9d71171-dd24-472a-be5f-12619295c4bfprecedence_heuristiccell_id$a9d71171-dd24-472a-be5f-12619295c4bfdownstream_cells_mapPlutoUIHypertextLiteral$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2fPlutoTeachingToolsupstream_cells_mapcell_execution_order$a9d71171-dd24-472a-be5f-12619295c4bf$9261420d-3754-4820-a4f0-c5bda988157a$09579796-7e0e-4990-b727-b20f63242bcb$c0da4104-9a5a-4553-8df0-fdadd0194c14$d448115a-6857-4082-893b-37549fe83b8b$786a2620-1962-4ee2-950c-b47e28d66e99$ebf43572-95f2-401e-aa2e-d7748d3bf639$7e571edb-6206-4138-863e-5a9d804e07ec$0ccf77bd-0c5d-4c3c-82b5-b25c4adbc3ba$b1c510c9-4130-4f5e-8d15-3bfaf0a61033$4e1fa8a0-ad16-417f-ba58-5cb0ccff45a3$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2f$fefc5308-7caf-465a-afc0-b1a6f2e68ba2last_hot_reload_timeshortpathindex.jlprocess_statusreadypathD/home/runner/work/numerical-analysis/numerical-analysis/src/index.jlpluto_versionv0.20.27last_save_timeAڃ,mcell_order$9261420d-3754-4820-a4f0-c5bda988157a$09579796-7e0e-4990-b727-b20f63242bcb$c0da4104-9a5a-4553-8df0-fdadd0194c14$fefc5308-7caf-465a-afc0-b1a6f2e68ba2$d448115a-6857-4082-893b-37549fe83b8b$786a2620-1962-4ee2-950c-b47e28d66e99$ebf43572-95f2-401e-aa2e-d7748d3bf639$7e571edb-6206-4138-863e-5a9d804e07ec$0ccf77bd-0c5d-4c3c-82b5-b25c4adbc3ba$b1c510c9-4130-4f5e-8d15-3bfaf0a61033$a9d71171-dd24-472a-be5f-12619295c4bf$4e1fa8a0-ad16-417f-ba58-5cb0ccff45a3$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2fpublished_objectsnbpkginstall_time_nsVinstantiatedòinstalled_versionsPlutoUI0.7.80!__internal_julia_manifest_version1.12.4HypertextLiteral1.0.0__internal_julia_version1.12.4PlutoTeachingTools0.4.7terminal_outputsnbpkg_sync Resolving... ===  Project No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Project.toml`  Manifest No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Manifest.toml` Instantiating... === Adding packages... ===  Resolving package versions...  Updating `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Project.toml` [ac1192a8] + HypertextLiteral v1.0.0 [661c6b06] + PlutoTeachingTools v0.4.7 ⌃ [7f904dfe] + PlutoUI v0.7.80  Updating `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Manifest.toml` [6e696c72] + AbstractPlutoDingetjes v1.4.0 [3da002f7] + ColorTypes v0.12.1 [53c48c17] + FixedPointNumbers v0.8.5 [1fa38f19] + Format v1.3.7 [47d2ed2b] + Hyperscript v0.0.5 [ac1192a8] + HypertextLiteral v1.0.0 [b5f81e59] + IOCapture v1.0.0 [692b3bcd] + JLLWrappers v1.8.0 [b964fa9f] + LaTeXStrings v1.4.0 [23fbe1c1] + Latexify v0.16.10 [6c6e2e6c] + MIMEs v1.1.0 [1914dd2f] + MacroTools v0.5.16 [bac558e1] + OrderedCollections v1.8.1 [661c6b06] + PlutoTeachingTools v0.4.7 ⌃ [7f904dfe] + PlutoUI v0.7.80 [21216c6a] + Preferences v1.5.2 [189a3867] + Reexport v1.2.2 [ae029012] + Requires v1.3.1 [10745b16] + Statistics v1.11.1 [410a4b4d] + Tricks v0.1.13 [5c2747f8] + URIs v1.6.1 [61579ee1] + Ghostscript_jll v9.55.1+0 [aacddb02] + JpegTurbo_jll v3.1.5+0 [0dad84c5] + ArgTools v1.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [f43a241f] + Downloads v1.7.0 [7b1f6079] + FileWatching v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.12.0 [b27032c2] + LibCURL v0.6.4 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.12.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [ca575930] + NetworkOptions v1.3.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v0.7.0 [9e88b42a] + Serialization v1.11.0 [f489334b] + StyledStrings v1.11.0 [fa267f1f] + TOML v1.0.3 [8dfed614] + Test v1.11.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.3.0+1 [deac9b47] + LibCURL_jll v8.15.0+0 [29816b5a] + LibSSH2_jll v1.11.3+1 [14a3606d] + MozillaCACerts_jll v2025.11.4 [4536629a] + OpenBLAS_jll v0.3.29+0 [458c3c95] + OpenSSL_jll v3.5.4+0 [83775a58] + Zlib_jll v1.3.1+2 [8e850b90] + libblastrampoline_jll v5.15.0+0 [8e850ede] + nghttp2_jll v1.64.0+1  Info Packages marked with ⌃ have new versions available and may be upgradable. Loading packages... Instantiating... === Precompiling... === Waiting for notebook process to start... Done. Starting precompilation... PlutoUI Resolving... ===  Project No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Project.toml`  Manifest No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Manifest.toml` Instantiating... === Adding packages... ===  Resolving package versions...  Updating `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Project.toml` [ac1192a8] + HypertextLiteral v1.0.0 [661c6b06] + PlutoTeachingTools v0.4.7 ⌃ [7f904dfe] + PlutoUI v0.7.80  Updating `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Manifest.toml` [6e696c72] + AbstractPlutoDingetjes v1.4.0 [3da002f7] + ColorTypes v0.12.1 [53c48c17] + FixedPointNumbers v0.8.5 [1fa38f19] + Format v1.3.7 [47d2ed2b] + Hyperscript v0.0.5 [ac1192a8] + HypertextLiteral v1.0.0 [b5f81e59] + IOCapture v1.0.0 [692b3bcd] + JLLWrappers v1.8.0 [b964fa9f] + LaTeXStrings v1.4.0 [23fbe1c1] + Latexify v0.16.10 [6c6e2e6c] + MIMEs v1.1.0 [1914dd2f] + MacroTools v0.5.16 [bac558e1] + OrderedCollections v1.8.1 [661c6b06] + PlutoTeachingTools v0.4.7 ⌃ [7f904dfe] + PlutoUI v0.7.80 [21216c6a] + Preferences v1.5.2 [189a3867] + Reexport v1.2.2 [ae029012] + Requires v1.3.1 [10745b16] + Statistics v1.11.1 [410a4b4d] + Tricks v0.1.13 [5c2747f8] + URIs v1.6.1 [61579ee1] + Ghostscript_jll v9.55.1+0 [aacddb02] + JpegTurbo_jll v3.1.5+0 [0dad84c5] + ArgTools v1.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [f43a241f] + Downloads v1.7.0 [7b1f6079] + FileWatching v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.12.0 [b27032c2] + LibCURL v0.6.4 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.12.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [ca575930] + NetworkOptions v1.3.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v0.7.0 [9e88b42a] + Serialization v1.11.0 [f489334b] + StyledStrings v1.11.0 [fa267f1f] + TOML v1.0.3 [8dfed614] + Test v1.11.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.3.0+1 [deac9b47] + LibCURL_jll v8.15.0+0 [29816b5a] + LibSSH2_jll v1.11.3+1 [14a3606d] + MozillaCACerts_jll v2025.11.4 [4536629a] + OpenBLAS_jll v0.3.29+0 [458c3c95] + OpenSSL_jll v3.5.4+0 [83775a58] + Zlib_jll v1.3.1+2 [8e850b90] + libblastrampoline_jll v5.15.0+0 [8e850ede] + nghttp2_jll v1.64.0+1  Info Packages marked with ⌃ have new versions available and may be upgradable. Loading packages... Instantiating... === Precompiling... === Waiting for notebook process to start... Done. Starting precompilation... HypertextLiteral Resolving... ===  Project No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Project.toml`  Manifest No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Manifest.toml` Instantiating... === Adding packages... ===  Resolving package versions...  Updating `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Project.toml` [ac1192a8] + HypertextLiteral v1.0.0 [661c6b06] + PlutoTeachingTools v0.4.7 ⌃ [7f904dfe] + PlutoUI v0.7.80  Updating `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Manifest.toml` [6e696c72] + AbstractPlutoDingetjes v1.4.0 [3da002f7] + ColorTypes v0.12.1 [53c48c17] + FixedPointNumbers v0.8.5 [1fa38f19] + Format v1.3.7 [47d2ed2b] + Hyperscript v0.0.5 [ac1192a8] + HypertextLiteral v1.0.0 [b5f81e59] + IOCapture v1.0.0 [692b3bcd] + JLLWrappers v1.8.0 [b964fa9f] + LaTeXStrings v1.4.0 [23fbe1c1] + Latexify v0.16.10 [6c6e2e6c] + MIMEs v1.1.0 [1914dd2f] + MacroTools v0.5.16 [bac558e1] + OrderedCollections v1.8.1 [661c6b06] + PlutoTeachingTools v0.4.7 ⌃ [7f904dfe] + PlutoUI v0.7.80 [21216c6a] + Preferences v1.5.2 [189a3867] + Reexport v1.2.2 [ae029012] + Requires v1.3.1 [10745b16] + Statistics v1.11.1 [410a4b4d] + Tricks v0.1.13 [5c2747f8] + URIs v1.6.1 [61579ee1] + Ghostscript_jll v9.55.1+0 [aacddb02] + JpegTurbo_jll v3.1.5+0 [0dad84c5] + ArgTools v1.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [f43a241f] + Downloads v1.7.0 [7b1f6079] + FileWatching v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.12.0 [b27032c2] + LibCURL v0.6.4 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.12.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [ca575930] + NetworkOptions v1.3.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v0.7.0 [9e88b42a] + Serialization v1.11.0 [f489334b] + StyledStrings v1.11.0 [fa267f1f] + TOML v1.0.3 [8dfed614] + Test v1.11.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.3.0+1 [deac9b47] + LibCURL_jll v8.15.0+0 [29816b5a] + LibSSH2_jll v1.11.3+1 [14a3606d] + MozillaCACerts_jll v2025.11.4 [4536629a] + OpenBLAS_jll v0.3.29+0 [458c3c95] + OpenSSL_jll v3.5.4+0 [83775a58] + Zlib_jll v1.3.1+2 [8e850b90] + libblastrampoline_jll v5.15.0+0 [8e850ede] + nghttp2_jll v1.64.0+1  Info Packages marked with ⌃ have new versions available and may be upgradable. Loading packages... Instantiating... === Precompiling... === Waiting for notebook process to start... Done. Starting precompilation... PlutoTeachingTools Resolving... ===  Project No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Project.toml`  Manifest No packages added to or removed from `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Manifest.toml` Instantiating... === Adding packages... ===  Resolving package versions...  Updating `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Project.toml` [ac1192a8] + HypertextLiteral v1.0.0 [661c6b06] + PlutoTeachingTools v0.4.7 ⌃ [7f904dfe] + PlutoUI v0.7.80  Updating `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_avvsoidijj/Manifest.toml` [6e696c72] + AbstractPlutoDingetjes v1.4.0 [3da002f7] + ColorTypes v0.12.1 [53c48c17] + FixedPointNumbers v0.8.5 [1fa38f19] + Format v1.3.7 [47d2ed2b] + Hyperscript v0.0.5 [ac1192a8] + HypertextLiteral v1.0.0 [b5f81e59] + IOCapture v1.0.0 [692b3bcd] + JLLWrappers v1.8.0 [b964fa9f] + LaTeXStrings v1.4.0 [23fbe1c1] + Latexify v0.16.10 [6c6e2e6c] + MIMEs v1.1.0 [1914dd2f] + MacroTools v0.5.16 [bac558e1] + OrderedCollections v1.8.1 [661c6b06] + PlutoTeachingTools v0.4.7 ⌃ [7f904dfe] + PlutoUI v0.7.80 [21216c6a] + Preferences v1.5.2 [189a3867] + Reexport v1.2.2 [ae029012] + Requires v1.3.1 [10745b16] + Statistics v1.11.1 [410a4b4d] + Tricks v0.1.13 [5c2747f8] + URIs v1.6.1 [61579ee1] + Ghostscript_jll v9.55.1+0 [aacddb02] + JpegTurbo_jll v3.1.5+0 [0dad84c5] + ArgTools v1.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [f43a241f] + Downloads v1.7.0 [7b1f6079] + FileWatching v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.12.0 [b27032c2] + LibCURL v0.6.4 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.12.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [ca575930] + NetworkOptions v1.3.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v0.7.0 [9e88b42a] + Serialization v1.11.0 [f489334b] + StyledStrings v1.11.0 [fa267f1f] + TOML v1.0.3 [8dfed614] + Test v1.11.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.3.0+1 [deac9b47] + LibCURL_jll v8.15.0+0 [29816b5a] + LibSSH2_jll v1.11.3+1 [14a3606d] + MozillaCACerts_jll v2025.11.4 [4536629a] + OpenBLAS_jll v0.3.29+0 [458c3c95] + OpenSSL_jll v3.5.4+0 [83775a58] + Zlib_jll v1.3.1+2 [8e850b90] + libblastrampoline_jll v5.15.0+0 [8e850ede] + nghttp2_jll v1.64.0+1  Info Packages marked with ⌃ have new versions available and may be upgradable. Loading packages... Instantiating... === Precompiling... === Waiting for notebook process to start... Done. Starting precompilation... enabled÷restart_recommended_msgrestart_required_msgbusy_packageswaiting_for_permission,waiting_for_permission_but_probably_disabled«cell_inputs$fefc5308-7caf-465a-afc0-b1a6f2e68ba2cell_id$fefc5308-7caf-465a-afc0-b1a6f2e68ba2codetocmetadatashow_logsèdisabled®skip_as_script«code_folded$786a2620-1962-4ee2-950c-b47e28d66e99cell_id$786a2620-1962-4ee2-950c-b47e28d66e99code&md""" ## EPFL resources If you are an EPFL student you find the internal course resources following these links: - **Moodle link:** - **Lecture recordings:** [https://mediaspace.epfl.ch](https://mediaspace.epfl.ch/channel/numerical-analysis/110626) """metadatashow_logsèdisabled®skip_as_script«code_folded$d448115a-6857-4082-893b-37549fe83b8bcell_id$d448115a-6857-4082-893b-37549fe83b8bcodemd""" **Accompanying Excercise sheets** - [Sheet 0: Getting Started with Julia](https://teaching.matmat.org/numerical-analysis/exercises/ex0_introduction_julia_pluto_statement.html) - [Sheet 0: Basic Plotting in Julia](https://teaching.matmat.org/numerical-analysis/exercises/ex0_introduction_plots_statement.html) ### Improving these notes If you **spot an error** feel free to make a pull request to the [**github repository**](https://github.com/epfl-matmat/numerical-analysis) generating this website. """metadatashow_logsèdisabled®skip_as_script«code_folded$4e1fa8a0-ad16-417f-ba58-5cb0ccff45a3cell_id$4e1fa8a0-ad16-417f-ba58-5cb0ccff45a3codeTableOfContents()metadatashow_logsèdisabled®skip_as_script«code_folded$7e571edb-6206-4138-863e-5a9d804e07eccell_id$7e571edb-6206-4138-863e-5a9d804e07eccodemd""" ## Content The topics covered include: * Properties and issues with numerical computation * Finding roots and fixed points * Interpolation and curve regression * Solving linear and non-linear equations * Solving eigenproblems * Numerical integration and differentiation * Basic numerical techniques for solving differential equations Algorithm demonstrations and implementations will be based on the [Julia programming language](https://julialang.org/) and interactive [Pluto](https://plutojl.org/) notebooks. """metadatashow_logsèdisabled®skip_as_script«code_folded$9261420d-3754-4820-a4f0-c5bda988157acell_id$9261420d-3754-4820-a4f0-c5bda988157acode+md""" # MATH-251(b): Numerical analysis """metadatashow_logsèdisabled®skip_as_script«code_folded$0ccf77bd-0c5d-4c3c-82b5-b25c4adbc3bacell_id$0ccf77bd-0c5d-4c3c-82b5-b25c4adbc3bacode*md""" ## Prerequisites * Analysis * Linear algebra The course is designed with an audience of applied scientists (physics, biology, materials science) or engineers in mind. With a basic first-year mathematics background and prior exposure to some programming the material should be accessible. """metadatashow_logsèdisabled®skip_as_script«code_folded$b1c510c9-4130-4f5e-8d15-3bfaf0a61033cell_id$b1c510c9-4130-4f5e-8d15-3bfaf0a61033codemd""" ## Literature and further reading The outline of the course as well as many examples are taken from the excellent lecture notes **"Numerical analysis" by Prof. Fabio Nobile**. A copy of these notes in French as well as English is available [on moodle](https://go.epfl.ch/numerical-analysis). For further reading and plenty of Julia code examples related to our subjects, take a look at the book **Fundamentals of Numerical Computation by Tobin A. Driscoll and Richard J. Braun** published by SIAM. An online version is further available at [https://tobydriscoll.net/fnc-julia/](https://tobydriscoll.net/fnc-julia/). I will also link to this text in the lecture notes from time to time. A slightly different emphasis in topics, but otherwise a good summary provide the lecture notes [**First Semester Numerical analysis**](https://diginole.lib.fsu.edu/islandora/object/fsu%3A657877/datastream/PDF/view) **by Giray Ökten**. At places the text is more mathematical than our treatment. In the initial sections it has a good summary of basic Julia commands an concepts. [An online PDF](https://diginole.lib.fsu.edu/islandora/object/fsu%3A657877/datastream/PDF/view) is available. For an in-depth treatment with mathematical details and proofs for the results where we skip these details for brevity can be found in [**Numerical Mathematics**](https://link.springer.com/book/10.1007/b98885) **by A. Quarteroni, R. Sacco, F. Saleri**. A PDF can be downloaded from Springer by EPFL students. Finally, if you are curious about Julia, I can highly recommend [**MIT's computational thinking class**](https://computationalthinking.mit.edu), which introduces Julia as well as its way of solving scientific problems in a hands-on and fun way. """metadatashow_logsèdisabled®skip_as_script«code_folded$09579796-7e0e-4990-b727-b20f63242bcbcell_id$09579796-7e0e-4990-b727-b20f63242bcbcodeٱmd""" This repository contains the teaching material of the course [MATH-251(b) Numerical analysis](https://edu.epfl.ch/coursebook/en/numerical-analysis-MATH-251-B) at EPFL. """metadatashow_logsèdisabled®skip_as_script«code_folded$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2fcell_id$8d38c66a-9582-4ef0-96f7-73e0b2ae2e2fcodeFbegin RobustLocalResource("https://teaching.matmat.org/error-control/sidebar.md", "sidebar.md") toc = Markdown.parse(read("sidebar.md", String)) Sidebar(toc, ypos) = @htl("""""") Sidebar(toc, 335) endmetadatashow_logsèdisabled®skip_as_script«code_folded$ebf43572-95f2-401e-aa2e-d7748d3bf639cell_id$ebf43572-95f2-401e-aa2e-d7748d3bf639codemd""" ## Summary The students will learn key numerical techniques for solving standard mathematical problems in science and engineering. The underlying mathematical theory and properties are discussed. """metadatashow_logsèdisabled®skip_as_script«code_folded$c0da4104-9a5a-4553-8df0-fdadd0194c14cell_id$c0da4104-9a5a-4553-8df0-fdadd0194c14codemd""" ## Course outline """metadatashow_logsèdisabled®skip_as_script«code_folded$a9d71171-dd24-472a-be5f-12619295c4bfcell_id$a9d71171-dd24-472a-be5f-12619295c4bfcodeJbegin using HypertextLiteral using PlutoUI using PlutoTeachingTools endmetadatashow_logsèdisabled®skip_as_script«code_foldedënotebook_id$ae6e9ae0-538f-11f1-871f-653b7a2946d9in_temp_dir¨metadata