 cell_dependencies *$f6c91ba4-661e-4b6c-8722-de27e36f0e24precedence_heuristic	cell_id$f6c91ba4-661e-4b6c-8722-de27e36f0e24downstream_cells_mapupstream_cells_mapexp$1fa787ef-324f-4cca-b5b7-f270f84a974bprecedence_heuristic	cell_id$1fa787ef-324f-4cca-b5b7-f270f84a974bdownstream_cells_mapupstream_cells_map+$6fbf3bb2-61d2-4f55-a0f3-8a05ef6095e7precedence_heuristic	cell_id$6fbf3bb2-61d2-4f55-a0f3-8a05ef6095e7downstream_cells_mapupstream_cells_map@md_strgetindex$f2fcef8a-e753-488a-a09a-be6c473755e8precedence_heuristic	cell_id$f2fcef8a-e753-488a-a09a-be6c473755e8downstream_cells_mapf_exact$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7upstream_cells_map^ℯy$d0225810-052b-480b-895c-16732badbf84$8837fb56-f8a6-4152-9e50-bd3f465bbb02precedence_heuristic	cell_id$8837fb56-f8a6-4152-9e50-bd3f465bbb02downstream_cells_mapupstream_cells_mapcalc_f_residual$3078d320-678d-4bb6-9742-4f3720bca392$7cac38d1-0524-4e66-8bc5-87bc5708ec4dprecedence_heuristic	cell_id$7cac38d1-0524-4e66-8bc5-87bc5708ec4ddownstream_cells_mapM$395b20fe-7ddf-4b83-8e55-ed1a06714b49upstream_cells_map$3687516a-5a63-45c9-a2c9-415c706f45bbprecedence_heuristic	cell_id$3687516a-5a63-45c9-a2c9-415c706f45bbdownstream_cells_mapupstream_cells_map@md_strgetindex$9cb651da-8e08-479a-81e8-24de523c145eprecedence_heuristic	cell_id$9cb651da-8e08-479a-81e8-24de523c145edownstream_cells_mapupstream_cells_map^ℯ$6f72cf27-57f7-490d-b076-1fc368577fe2precedence_heuristic	cell_id$6f72cf27-57f7-490d-b076-1fc368577fe2downstream_cells_mapupstream_cells_mapπ*$56e12061-2cbf-4c38-914e-7c75ffb9f33eprecedence_heuristic	cell_id$56e12061-2cbf-4c38-914e-7c75ffb9f33edownstream_cells_mapupstream_cells_map@md_strgetindex$1536fbc1-0c35-4cdb-b663-9ae7fe0771f0precedence_heuristic	cell_id$1536fbc1-0c35-4cdb-b663-9ae7fe0771f0downstream_cells_mapupstream_cells_map-/^+ℯabs$fc8dd886-86e3-4c2d-9f3e-490b04c8e369precedence_heuristic	cell_id$fc8dd886-86e3-4c2d-9f3e-490b04c8e369downstream_cells_mapupstream_cells_map@md_strgetindex$3f635ff2-481c-4ac7-b3b7-14a28b3042c6precedence_heuristic	cell_id$3f635ff2-481c-4ac7-b3b7-14a28b3042c6downstream_cells_mapupstream_cells_map/^+$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7precedence_heuristic	cell_id$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7downstream_cells_mapresidualupstream_cells_mapf_approx$363e3ad3-c1ce-4a6c-8113-96e170bfca7af_exact$f2fcef8a-e753-488a-a09a-be6c473755e8-abs$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21precedence_heuristic	cell_id$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21downstream_cells_mapupstream_cells_mapcalc_f_approx$98d6e55e-a63b-411c-b7cb-e5dd15e686f9-^ℯabs$133c3077-80f3-4515-a7e5-dfc3d56eb12fprecedence_heuristic	cell_id$133c3077-80f3-4515-a7e5-dfc3d56eb12fdownstream_cells_mapupstream_cells_mapplot_f_approx$4786c577-85ea-44f6-8a93-5c9e6233eb70$3839ea7d-2de4-48dd-9002-767afa5c0b61precedence_heuristiccell_id$3839ea7d-2de4-48dd-9002-767afa5c0b61downstream_cells_mapPlots$4786c577-85ea-44f6-8a93-5c9e6233eb70upstream_cells_map$a1735f28-8cd3-4784-9686-b567e28b857aprecedence_heuristic	cell_id$a1735f28-8cd3-4784-9686-b567e28b857adownstream_cells_mapupstream_cells_mapcalc_f_approx$98d6e55e-a63b-411c-b7cb-e5dd15e686f9$ca8ff74a-e249-4587-9d52-a7434b59e688precedence_heuristic	cell_id$ca8ff74a-e249-4587-9d52-a7434b59e688downstream_cells_mapupstream_cells_map@md_strgetindex$0a8968f6-323e-4e17-b1aa-0560f78d7cdeprecedence_heuristic	cell_id$0a8968f6-323e-4e17-b1aa-0560f78d7cdedownstream_cells_mapupstream_cells_mapcalc_f_residual$3078d320-678d-4bb6-9742-4f3720bca392$08e0e572-edb6-4524-97fe-41efb437cd8cprecedence_heuristic	cell_id$08e0e572-edb6-4524-97fe-41efb437cd8cdownstream_cells_mapupstream_cells_map^$b86837f1-2301-4ffb-92f9-890e0bd4e69fprecedence_heuristic	cell_id$b86837f1-2301-4ffb-92f9-890e0bd4e69fdownstream_cells_mapupstream_cells_map@md_strgetindex$6083bfe2-79e6-4f2d-b511-bb904d4d6838precedence_heuristic	cell_id$6083bfe2-79e6-4f2d-b511-bb904d4d6838downstream_cells_mapupstream_cells_mapcalc_f_residual$3078d320-678d-4bb6-9742-4f3720bca392$f43442e6-8ca3-4def-b8d0-ac3a325ddd3bprecedence_heuristic	cell_id$f43442e6-8ca3-4def-b8d0-ac3a325ddd3bdownstream_cells_mapupstream_cells_map@md_strgetindex$12084602-3a09-47f3-864b-55cbac042795precedence_heuristic	cell_id$12084602-3a09-47f3-864b-55cbac042795downstream_cells_mapupstream_cells_map@md_strgetindex$d0225810-052b-480b-895c-16732badbf84precedence_heuristic	cell_id$d0225810-052b-480b-895c-16732badbf84downstream_cells_mapy$f2fcef8a-e753-488a-a09a-be6c473755e8$363e3ad3-c1ce-4a6c-8113-96e170bfca7aupstream_cells_map$40f12b03-98f0-4b13-b240-141f17146037precedence_heuristic	cell_id$40f12b03-98f0-4b13-b240-141f17146037downstream_cells_mapupstream_cells_mapcalc_f_residual$3078d320-678d-4bb6-9742-4f3720bca392$b4669b9d-0846-49f6-a7eb-3f8ca31a25dfprecedence_heuristic	cell_id$b4669b9d-0846-49f6-a7eb-3f8ca31a25dfdownstream_cells_mapupstream_cells_map@md_strgetindex$363e3ad3-c1ce-4a6c-8113-96e170bfca7aprecedence_heuristic	cell_id$363e3ad3-c1ce-4a6c-8113-96e170bfca7adownstream_cells_mapf_approx$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7upstream_cells_map/^+y$d0225810-052b-480b-895c-16732badbf84$1756de61-190e-4926-8c81-d5b7e9d6de10precedence_heuristic	cell_id$1756de61-190e-4926-8c81-d5b7e9d6de10downstream_cells_mapupstream_cells_mapcalc_f_residual$3078d320-678d-4bb6-9742-4f3720bca392$8a7e706c-1934-42f8-8a7b-9f2b102ce2ecprecedence_heuristic	cell_id$8a7e706c-1934-42f8-8a7b-9f2b102ce2ecdownstream_cells_mapupstream_cells_map@md_strgetindex$395b20fe-7ddf-4b83-8e55-ed1a06714b49precedence_heuristic	cell_id$395b20fe-7ddf-4b83-8e55-ed1a06714b49downstream_cells_mapupstream_cells_map:M$7cac38d1-0524-4e66-8bc5-87bc5708ec4dprintln$3078d320-678d-4bb6-9742-4f3720bca392precedence_heuristic	cell_id$3078d320-678d-4bb6-9742-4f3720bca392downstream_cells_mapcalc_f_residual$0a8968f6-323e-4e17-b1aa-0560f78d7cde$1756de61-190e-4926-8c81-d5b7e9d6de10$8837fb56-f8a6-4152-9e50-bd3f465bbb02$40f12b03-98f0-4b13-b240-141f17146037$6083bfe2-79e6-4f2d-b511-bb904d4d6838$17da61cf-ce3f-4d92-8537-81eaf35a927aupstream_cells_mapcalc_f_approx$98d6e55e-a63b-411c-b7cb-e5dd15e686f9-^ℯabs$8a4e56fd-e98c-4022-bf9a-e76c3e64fda6precedence_heuristic	cell_id$8a4e56fd-e98c-4022-bf9a-e76c3e64fda6downstream_cells_mapupstream_cells_map@md_strgetindex$f2646139-cd94-425f-b517-4e1208fbdb71precedence_heuristic	cell_id$f2646139-cd94-425f-b517-4e1208fbdb71downstream_cells_mapupstream_cells_map@md_strgetindex$16fd3897-0b76-47a8-8253-6e267cbd9960precedence_heuristic	cell_id$16fd3897-0b76-47a8-8253-6e267cbd9960downstream_cells_mapupstream_cells_map@md_strgetindex$17da61cf-ce3f-4d92-8537-81eaf35a927aprecedence_heuristic	cell_id$17da61cf-ce3f-4d92-8537-81eaf35a927adownstream_cells_mapupstream_cells_mapcalc_f_residual$3078d320-678d-4bb6-9742-4f3720bca392$4786c577-85ea-44f6-8a93-5c9e6233eb70precedence_heuristic	cell_id$4786c577-85ea-44f6-8a93-5c9e6233eb70downstream_cells_mapplot_f_approx$133c3077-80f3-4515-a7e5-dfc3d56eb12fupstream_cells_map:calc_f_approx$98d6e55e-a63b-411c-b7cb-e5dd15e686f9Plots$3839ea7d-2de4-48dd-9002-767afa5c0b61Plots.plot$6c753149-f441-48a8-b947-3d23f1cd30aeprecedence_heuristic	cell_id$6c753149-f441-48a8-b947-3d23f1cd30aedownstream_cells_mapupstream_cells_map@md_strgetindex$f35c69f2-74c5-4001-a3f6-4d10e96ad4dfprecedence_heuristic	cell_id$f35c69f2-74c5-4001-a3f6-4d10e96ad4dfdownstream_cells_mapupstream_cells_map@md_strgetindex$98d6e55e-a63b-411c-b7cb-e5dd15e686f9precedence_heuristic	cell_id$98d6e55e-a63b-411c-b7cb-e5dd15e686f9downstream_cells_mapcalc_f_approx$3078d320-678d-4bb6-9742-4f3720bca392$a1735f28-8cd3-4784-9686-b567e28b857a$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21$4786c577-85ea-44f6-8a93-5c9e6233eb70upstream_cells_map:/^+factorial$a9b6fcd4-9a8e-4d0d-bd13-e0dc318adbd3precedence_heuristic	cell_id$a9b6fcd4-9a8e-4d0d-bd13-e0dc318adbd3downstream_cells_mapupstream_cells_map@md_strgetindexcell_execution_order *$3839ea7d-2de4-48dd-9002-767afa5c0b61$8a4e56fd-e98c-4022-bf9a-e76c3e64fda6$ca8ff74a-e249-4587-9d52-a7434b59e688$1fa787ef-324f-4cca-b5b7-f270f84a974b$6f72cf27-57f7-490d-b076-1fc368577fe2$8a7e706c-1934-42f8-8a7b-9f2b102ce2ec$f35c69f2-74c5-4001-a3f6-4d10e96ad4df$3687516a-5a63-45c9-a2c9-415c706f45bb$3f635ff2-481c-4ac7-b3b7-14a28b3042c6$b4669b9d-0846-49f6-a7eb-3f8ca31a25df$9cb651da-8e08-479a-81e8-24de523c145e$f6c91ba4-661e-4b6c-8722-de27e36f0e24$fc8dd886-86e3-4c2d-9f3e-490b04c8e369$1536fbc1-0c35-4cdb-b663-9ae7fe0771f0$f2646139-cd94-425f-b517-4e1208fbdb71$b86837f1-2301-4ffb-92f9-890e0bd4e69f$6fbf3bb2-61d2-4f55-a0f3-8a05ef6095e7$d0225810-052b-480b-895c-16732badbf84$7cac38d1-0524-4e66-8bc5-87bc5708ec4d$f2fcef8a-e753-488a-a09a-be6c473755e8$363e3ad3-c1ce-4a6c-8113-96e170bfca7a$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7$a9b6fcd4-9a8e-4d0d-bd13-e0dc318adbd3$395b20fe-7ddf-4b83-8e55-ed1a06714b49$16fd3897-0b76-47a8-8253-6e267cbd9960$98d6e55e-a63b-411c-b7cb-e5dd15e686f9$3078d320-678d-4bb6-9742-4f3720bca392$a1735f28-8cd3-4784-9686-b567e28b857a$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21$0a8968f6-323e-4e17-b1aa-0560f78d7cde$6c753149-f441-48a8-b947-3d23f1cd30ae$4786c577-85ea-44f6-8a93-5c9e6233eb70$133c3077-80f3-4515-a7e5-dfc3d56eb12f$56e12061-2cbf-4c38-914e-7c75ffb9f33e$1756de61-190e-4926-8c81-d5b7e9d6de10$8837fb56-f8a6-4152-9e50-bd3f465bbb02$40f12b03-98f0-4b13-b240-141f17146037$6083bfe2-79e6-4f2d-b511-bb904d4d6838$17da61cf-ce3f-4d92-8537-81eaf35a927a$f43442e6-8ca3-4def-b8d0-ac3a325ddd3b$08e0e572-edb6-4524-97fe-41efb437cd8c$12084602-3a09-47f3-864b-55cbac042795last_hot_reload_time        process_statusreadypathZ/home/runner/work/sahu-lab.github.io/sahu-lab.github.io/teach/che348/ch01-taylor-series.jlpluto_versionv1.0.3cell_order *$8a4e56fd-e98c-4022-bf9a-e76c3e64fda6$3839ea7d-2de4-48dd-9002-767afa5c0b61$ca8ff74a-e249-4587-9d52-a7434b59e688$1fa787ef-324f-4cca-b5b7-f270f84a974b$6f72cf27-57f7-490d-b076-1fc368577fe2$8a7e706c-1934-42f8-8a7b-9f2b102ce2ec$f35c69f2-74c5-4001-a3f6-4d10e96ad4df$3687516a-5a63-45c9-a2c9-415c706f45bb$3f635ff2-481c-4ac7-b3b7-14a28b3042c6$b4669b9d-0846-49f6-a7eb-3f8ca31a25df$9cb651da-8e08-479a-81e8-24de523c145e$f6c91ba4-661e-4b6c-8722-de27e36f0e24$fc8dd886-86e3-4c2d-9f3e-490b04c8e369$1536fbc1-0c35-4cdb-b663-9ae7fe0771f0$f2646139-cd94-425f-b517-4e1208fbdb71$b86837f1-2301-4ffb-92f9-890e0bd4e69f$6fbf3bb2-61d2-4f55-a0f3-8a05ef6095e7$d0225810-052b-480b-895c-16732badbf84$7cac38d1-0524-4e66-8bc5-87bc5708ec4d$f2fcef8a-e753-488a-a09a-be6c473755e8$363e3ad3-c1ce-4a6c-8113-96e170bfca7a$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7$a9b6fcd4-9a8e-4d0d-bd13-e0dc318adbd3$395b20fe-7ddf-4b83-8e55-ed1a06714b49$16fd3897-0b76-47a8-8253-6e267cbd9960$98d6e55e-a63b-411c-b7cb-e5dd15e686f9$3078d320-678d-4bb6-9742-4f3720bca392$a1735f28-8cd3-4784-9686-b567e28b857a$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21$0a8968f6-323e-4e17-b1aa-0560f78d7cde$6c753149-f441-48a8-b947-3d23f1cd30ae$4786c577-85ea-44f6-8a93-5c9e6233eb70$133c3077-80f3-4515-a7e5-dfc3d56eb12f$56e12061-2cbf-4c38-914e-7c75ffb9f33e$1756de61-190e-4926-8c81-d5b7e9d6de10$8837fb56-f8a6-4152-9e50-bd3f465bbb02$40f12b03-98f0-4b13-b240-141f17146037$6083bfe2-79e6-4f2d-b511-bb904d4d6838$17da61cf-ce3f-4d92-8537-81eaf35a927a$f43442e6-8ca3-4def-b8d0-ac3a325ddd3b$08e0e572-edb6-4524-97fe-41efb437cd8c$12084602-3a09-47f3-864b-55cbac042795julia_versionv1.11.9published_objectsnbpkgwaiting_for_permission,waiting_for_permission_but_probably_disabled²installed_versions!__internal_julia_manifest_version1.11.9Plots1.40.4__internal_julia_version1.11.9terminal_outputsnbpkg_sync
[0m[1mWaiting for other notebooks to finish Pkg operations...[22m
[90m===[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1m┌ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1m└ [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/GQ6My/src/apply strategies.jl:96[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m  No Changes[22m[39m to `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_diejgcjjxr/Project.toml`
[32m[1m  No Changes[22m[39m to `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_diejgcjjxr/Manifest.toml`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39mPlots
[0m[1mWaiting for other notebooks to finish Pkg operations...[22m
[90m===[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1m┌ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1m└ [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/GQ6My/src/apply strategies.jl:96[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m  No Changes[22m[39m to `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_diejgcjjxr/Project.toml`
[32m[1m  No Changes[22m[39m to `~/.julia/scratchspaces/c3e4b0f8-55cb-11ea-2926-15256bba5781/pkg_envs/env_diejgcjjxr/Manifest.toml`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39menabledìinstantiated÷restart_recommended_msgrestart_required_msginstall_time_nsyobusy_packagescell_inputs *$f6c91ba4-661e-4b6c-8722-de27e36f0e24cell_id$f6c91ba4-661e-4b6c-8722-de27e36f0e24codeexp(0.2)metadatashow_logsèdisabled®skip_as_script«code_folded$1fa787ef-324f-4cca-b5b7-f270f84a974bcell_id$1fa787ef-324f-4cca-b5b7-f270f84a974bcode1 + 1metadatashow_logsèdisabled®skip_as_script«code_folded$6fbf3bb2-61d2-4f55-a0f3-8a05ef6095e7cell_id$6fbf3bb2-61d2-4f55-a0f3-8a05ef6095e7codemd"""
## Numerical implementation

Let us begin by __storing__ relevant information into __variables__.
As a rough approximation, one can think of a computer as doing one of three things:
- storing data
- computing with data
- displaying data
"""metadatashow_logsèdisabled®skip_as_script«code_folded$f2fcef8a-e753-488a-a09a-be6c473755e8cell_id$f2fcef8a-e753-488a-a09a-be6c473755e8codef_exact = ℯ^ymetadatashow_logsèdisabled®skip_as_script«code_folded$8837fb56-f8a6-4152-9e50-bd3f465bbb02cell_id$8837fb56-f8a6-4152-9e50-bd3f465bbb02codecalc_f_residual(0.2, 10)metadatashow_logsèdisabled®skip_as_script«code_folded$7cac38d1-0524-4e66-8bc5-87bc5708ec4dcell_id$7cac38d1-0524-4e66-8bc5-87bc5708ec4dcodeM = 3metadatashow_logsèdisabled®skip_as_script«code_folded$3687516a-5a63-45c9-a2c9-415c706f45bbcell_id$3687516a-5a63-45c9-a2c9-415c706f45bbcodegmd"""
### Example

Supposed we are tasked with calculating $$\tilde{f} (0.2 \, ; y_0 = 0, M = 3)$$.
"""metadatashow_logsèdisabled®skip_as_script«code_folded$9cb651da-8e08-479a-81e8-24de523c145ecell_id$9cb651da-8e08-479a-81e8-24de523c145ecodeℯ^0.2metadatashow_logsèdisabled®skip_as_script«code_folded$6f72cf27-57f7-490d-b076-1fc368577fe2cell_id$6f72cf27-57f7-490d-b076-1fc368577fe2codeπ * 2metadatashow_logsèdisabled®skip_as_script«code_folded$56e12061-2cbf-4c38-914e-7c75ffb9f33ecell_id$56e12061-2cbf-4c38-914e-7c75ffb9f33ecodeFmd"""
!!! question "How do we plot the Taylor series approximation in a more useful way?"
    Notice that the above plot is not particularly helpful, because we cannot easily observe that our estimate of $$e^{0.2}$$ is better for larger `M`.
    __*In the first problem set, you will find better ways to plot the error.*__
"""metadatashow_logsèdisabled®skip_as_script«code_folded$1536fbc1-0c35-4cdb-b663-9ae7fe0771f0cell_id$1536fbc1-0c35-4cdb-b663-9ae7fe0771f0code,abs(ℯ^0.2 - (1 + 0.2 + 0.2^2/2 + 0.2^3/6))metadatashow_logsèdisabled®skip_as_script«code_folded$fc8dd886-86e3-4c2d-9f3e-490b04c8e369cell_id$fc8dd886-86e3-4c2d-9f3e-490b04c8e369code3md"""
What is the truncation error that arises?
"""metadatashow_logsèdisabled®skip_as_script«code_folded$3f635ff2-481c-4ac7-b3b7-14a28b3042c6cell_id$3f635ff2-481c-4ac7-b3b7-14a28b3042c6code1 + 0.2 + 0.2^2/2 + 0.2^3/6metadatashow_logsèdisabled®skip_as_script«code_folded$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7cell_id$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7code"residual = abs(f_exact - f_approx)metadatashow_logsèdisabled®skip_as_script«code_folded$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21cell_id$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21code$abs(ℯ^0.2 - calc_f_approx(0.2, 3))metadatashow_logsèdisabled®skip_as_script«code_folded$133c3077-80f3-4515-a7e5-dfc3d56eb12fcell_id$133c3077-80f3-4515-a7e5-dfc3d56eb12fcodeplot_f_approx(0.2, 6)metadatashow_logsèdisabled®skip_as_script«code_folded$3839ea7d-2de4-48dd-9002-767afa5c0b61cell_id$3839ea7d-2de4-48dd-9002-767afa5c0b61codeusing Plotsmetadatashow_logsèdisabled®skip_as_script«code_folded$a1735f28-8cd3-4784-9686-b567e28b857acell_id$a1735f28-8cd3-4784-9686-b567e28b857acodecalc_f_approx(0.2, 3)metadatashow_logsèdisabled®skip_as_script«code_folded$ca8ff74a-e249-4587-9d52-a7434b59e688cell_id$ca8ff74a-e249-4587-9d52-a7434b59e688codemd"""

# Introduction

> __Welcome to *CHE 348: Numerical Methods in Chemical Engineering* in Fall 2024!__

The significant increase in available compute over the last several decades has led to a transformation in the methods and techniques for solving science and engineering
problems. To use new tools effectively, it is crucial that we understand their *theoretical underpinnings* and *limitations,* as well as *practical details of their implementation.*

__CHE 348__ is a one-semester advanced undergraduate course providing students with a fundamental understanding of *common numerical methods* spanning

* chemical engineering,
* computational science, and
* applied mathematics.

In problems studied, __the underlying physics is emphasized throughout,__ with principles from __*non-dimensionalization*__ frequently employed.

While the ideas presented are general (and thus not tied to any specific programming language), the entirety of the course will be carried out in [Julia](https://julialang.org/)—a powerful, easy-to-use language designed for scientists and engineers.


## Administrative items

Lectures will be uploaded to the
[course website](https://sahu-lab.github.io/teaching/che348/),
and problem sets will be submitted via
[canvas](https://utexas.instructure.com/courses/1385450)

In the discussion section yesterday (26 Aug.), you should have
[downloaded](https://julialang.org/downloads/)
Julia, installed it along with the
[Pluto](https://plutojl.org/)
package.
[Video instructions](https://computationalthinking.mit.edu/Fall23/installation/)
are provided to aid you in this.


## Starting with Julia

Launch the __REPL__ and verify that Julia is installed appropriately.
You should be able to do the following on your machine:

"""metadatashow_logsèdisabled®skip_as_script«code_folded$0a8968f6-323e-4e17-b1aa-0560f78d7cdecell_id$0a8968f6-323e-4e17-b1aa-0560f78d7cdecodecalc_f_residual(0.2, 15)metadatashow_logsèdisabled®skip_as_script«code_folded$08e0e572-edb6-4524-97fe-41efb437cd8ccell_id$08e0e572-edb6-4524-97fe-41efb437cd8ccode2^-52metadatashow_logsèdisabled®skip_as_script«code_folded$b86837f1-2301-4ffb-92f9-890e0bd4e69fcell_id$b86837f1-2301-4ffb-92f9-890e0bd4e69fcodemd"""
Analytically, we denote the truncation error—sometimes called the [__*residual*__](https://en.wikipedia.org/wiki/Residual_(numerical_analysis))—as $$r(y \, ; y_0, M)$$, which is defined to be
```math
\begin{aligned}
r(y \, ; y_0, M)
\, :=& \  \big\lvert
f(y)
\, - \, \tilde{f} (y \, ; y_0, M)
\big\rvert
\\[4pt]
\,  =& \, \sum_{n = M + 1}^\infty \dfrac{1}{n!} \, \dfrac{\mathrm{d}^n f(y)}{\mathrm{d} y^n} \bigg\rvert_{y = y_0} \big(y - y_0 \big)^{\! n}
~.
\end{aligned}
```

Notice that if the $$n^{\text{th}}$$ derivative of the function $$f$$ is "of order unity," i.e. it is relatively constant for all $$n$$, then as $$n$$ increases the $$n!$$ in the denominator will become larger than the $$(y - y_0)^n$$ in the numerator.
When using Taylor series, we are generally concerned with how large the residual is for a given choice of $$y_0$$ and $$M$$.

> __*You will investigate this dependence in Problem Set 1*__

Note that you could, in principle, calculate all these errors—for many different choices of $$y_0$$ and $$M$$— one by one.
However, these sorts of repetitive tasks are much more conveniently done with a computer!
Let us begin to see how to do so.
"""metadatashow_logsèdisabled®skip_as_script«code_folded$6083bfe2-79e6-4f2d-b511-bb904d4d6838cell_id$6083bfe2-79e6-4f2d-b511-bb904d4d6838codecalc_f_residual(0.2, 12)metadatashow_logsèdisabled®skip_as_script«code_folded$f43442e6-8ca3-4def-b8d0-ac3a325ddd3bcell_id$f43442e6-8ca3-4def-b8d0-ac3a325ddd3bcode#md"""
!!! question "Why does our error stop decreasing?"
    Notice that after a certain value of `M` (11 in this case), the residual does not continue to decrease—even though we would naively expect it to, as we are including more terms in the Taylor series.
    How are these two observations consistent?

> __Only a finite amount of memory__ is allocated for any variable, which means that *__very__ small changes to a variable will not be recorded!*
> This is the concept of [machine precision](https://en.wikipedia.org/wiki/Machine_epsilon), which will be talked about in discussion section #3.
> As a preview, compare the "error floor" above with the value of $$2^{-52}$$ below.
> 
> *Note: this agreement is specific to how your computer stores numbers; in my case I have a 64-bit machine.*
"""metadatashow_logsèdisabled®skip_as_script«code_folded$12084602-3a09-47f3-864b-55cbac042795cell_id$12084602-3a09-47f3-864b-55cbac042795codeRmd"""
## References

The following are some useful references, in case you want to learn more.
This list is not exhaustive, as there are many great resources!
- [3Blue1Brown](https://youtu.be/3d6DsjIBzJ4)
- [Wikipedia](https://en.wikipedia.org/wiki/Taylor_series)
- [Wolfram MathWorld](https://mathworld.wolfram.com/TaylorSeries.html)
"""metadatashow_logsèdisabled®skip_as_script«code_folded$d0225810-052b-480b-895c-16732badbf84cell_id$d0225810-052b-480b-895c-16732badbf84codey = 0.2metadatashow_logsèdisabled®skip_as_script«code_folded$40f12b03-98f0-4b13-b240-141f17146037cell_id$40f12b03-98f0-4b13-b240-141f17146037codecalc_f_residual(0.2, 11)metadatashow_logsèdisabled®skip_as_script«code_folded$b4669b9d-0846-49f6-a7eb-3f8ca31a25dfcell_id$b4669b9d-0846-49f6-a7eb-3f8ca31a25dfcodeDmd"""
How does this compare to the actual value of the function?
"""metadatashow_logsèdisabled®skip_as_script«code_folded$363e3ad3-c1ce-4a6c-8113-96e170bfca7acell_id$363e3ad3-c1ce-4a6c-8113-96e170bfca7acode f_approx = 1 + y + y^2/2 + y^3/6metadatashow_logsèdisabled®skip_as_script«code_folded$1756de61-190e-4926-8c81-d5b7e9d6de10cell_id$1756de61-190e-4926-8c81-d5b7e9d6de10codecalc_f_residual(0.2, 9)metadatashow_logsèdisabled®skip_as_script«code_folded$8a7e706c-1934-42f8-8a7b-9f2b102ce2eccell_id$8a7e706c-1934-42f8-8a7b-9f2b102ce2eccodemd"""

# Taylor series

## Review

The [Taylor series](https://en.wikipedia.org/wiki/Taylor_series) is often said to be the most important concept from calculus.
From [Wikipedia](https://en.wikipedia.org/wiki/Taylor_series):

> The Taylor series of a function is an infinite sum of terms that are expressed in terms of the function's derivatives at a single point. For most common functions, the function and the sum of its Taylor series are equal near this point.

Consider a function
$$f(y)$$,
where
$$y \in \mathbb{C}$$
and
$$f \in \mathbb{C}$$,
for which one could write
```math
\begin{aligned}
f(y)
\, &= \, f(y_0)
\, + \, f'(y_0) \, (y - y_0)
\, + \, \dfrac{1}{2!} f''(y_0) \, (y - y_0)^2
\, + \, \ldots
\\[5pt]
\, &= \, \sum_{n = 0}^\infty \dfrac{1}{n!} \, \dfrac{\mathrm{d}^n f(y)}{\mathrm{d} y^n} \bigg\rvert_{y = y_0} \big(y - y_0 \big)^{\! n}
~.
\end{aligned}
```
The Taylor series yields many of the relations you have seen in the past.
For example,
```math
\mathrm{e}^y
\, = \, 1
\, + \, y
\, + \, \dfrac{y^2}{2!}
\, + \, \dfrac{y^3}{3!}
\, + \, \ldots
```

!!! question "Practice Question"
    What value is the above series expanded about?

"""metadatashow_logsèdisabled®skip_as_script«code_folded$395b20fe-7ddf-4b83-8e55-ed1a06714b49cell_id$395b20fe-7ddf-4b83-8e55-ed1a06714b49codefor n = 0:M
	println(n)
endmetadatashow_logsèdisabled®skip_as_script«code_folded$3078d320-678d-4bb6-9742-4f3720bca392cell_id$3078d320-678d-4bb6-9742-4f3720bca392codeLfunction calc_f_residual(y, M)
	return abs(ℯ^y - calc_f_approx(y, M));
endmetadatashow_logsèdisabled®skip_as_script«code_folded$8a4e56fd-e98c-4022-bf9a-e76c3e64fda6cell_id$8a4e56fd-e98c-4022-bf9a-e76c3e64fda6codeنmd"""
### Initializing packages

*When running this notebook for the first time, this could take up to 10 minutes.
Hang in there!*
"""metadatashow_logsèdisabled®skip_as_script«code_folded$f2646139-cd94-425f-b517-4e1208fbdb71cell_id$f2646139-cd94-425f-b517-4e1208fbdb71codemd"""
---
---
"""metadatashow_logsèdisabled®skip_as_script«code_folded$16fd3897-0b76-47a8-8253-6e267cbd9960cell_id$16fd3897-0b76-47a8-8253-6e267cbd9960codetmd"""
!!! info "Objective"
    Use a `for` loop to calculate `f_approx`, which works for different values of `M`
"""metadatashow_logsèdisabled®skip_as_script«code_folded$17da61cf-ce3f-4d92-8537-81eaf35a927acell_id$17da61cf-ce3f-4d92-8537-81eaf35a927acodecalc_f_residual(0.2, 20)metadatashow_logsèdisabled®skip_as_script«code_folded$4786c577-85ea-44f6-8a93-5c9e6233eb70cell_id$4786c577-85ea-44f6-8a93-5c9e6233eb70codeXfunction plot_f_approx(y, M_max)
	M_array = 1:M_max;
	f_approx_array = calc_f_approx.(y, M_array);

	Plots.plot(
		M_array,                                  # x values
		f_approx_array,                           # y values
		title = "Taylor series approximation",    # plot title
		label = "f_approx(y, M)",                 # legend
		xlabel = "M",                             # x-axis label
		ylabel = "f_approx",                      # y-axis label
		line=(2, :darkorange3),                   # line width and color
		marker=(:circle, 5, :darkorange3),        # marker shape, size, and color
	)
endmetadatashow_logsèdisabled®skip_as_script«code_folded$6c753149-f441-48a8-b947-3d23f1cd30aecell_id$6c753149-f441-48a8-b947-3d23f1cd30aecodeٯmd"""
!!! info "Objective"
    Plot the approximate calculation of $$e^{0.2}$$, based on the Taylor series expansion, as a function of `M`—where `M` goes from `1` to `6`
"""metadatashow_logsèdisabled®skip_as_script«code_folded$f35c69f2-74c5-4001-a3f6-4d10e96ad4dfcell_id$f35c69f2-74c5-4001-a3f6-4d10e96ad4dfcodemd"""
## Numerical approximation

In a computer, one cannot sum an infinite number of terms.
A __[truncation error](https://en.wikipedia.org/wiki/Truncation_error)__ arises because only a finite number of terms are included.

Let us __*define*__ the function $$\tilde{f} (y \, ; y_0, M)$$ as the truncated polynomial series of order $$M$$, written as
```math
\tilde{f} (y \,; y_0, M)
\, := \, \sum_{n = 0}^M \dfrac{1}{n!} \, \dfrac{\mathrm{d}^n f(y)}{\mathrm{d} y^n} \bigg\rvert_{y = y_0} \big(y - y_0 \big)^{\! n}
~.
```

!!! question "Practice Question"
    How many terms are in $$\tilde{f} (y \, ; y_0, M)$$?

!!! question "Practice Question"
    What is the highest-order polynomial term in $$\tilde{f} (y \, ; y_0, M)$$?

Let us now use the exponential function as an example.
To this end, we *choose*
```math
f(y)
\, = \, \mathrm{e}^y
~,
```
for which
```math
\tilde{f} (y \, ; y_0 = 0, M)
\, := \, 1
\, + \, y
\, + \, \dfrac{y^2}{2!}
\, + \, \dfrac{y^3}{3!}
\, + \, \ldots
\, + \, \dfrac{y^M}{M!}
~.
```
---
---
"""metadatashow_logsèdisabled®skip_as_script«code_folded$98d6e55e-a63b-411c-b7cb-e5dd15e686f9cell_id$98d6e55e-a63b-411c-b7cb-e5dd15e686f9codeفfunction calc_f_approx(y, M)
	f_approx = 0.0;
	for n = 0:M
		f_approx = f_approx + y^n / factorial(n);
	end
	return f_approx;
endmetadatashow_logsèdisabled®skip_as_script«code_folded$a9b6fcd4-9a8e-4d0d-bd13-e0dc318adbd3cell_id$a9b6fcd4-9a8e-4d0d-bd13-e0dc318adbd3codeMmd"""
So far, our calculation of `f_approx` does not use the value of `M` that we set.
There is an easy way for us to tell the computer to __span__ a range of values!
```julia
# the following code executes a "for loop"
# notice that lines starting with "#" are comments (they are not executed)

for n = 0:M
    println(n)
end
```
"""metadatashow_logsèdisabled®skip_as_script«code_foldedënotebook_id$65e0a2ce-9d9e-11f1-04b4-af365d5badbfbondscell_results *$f6c91ba4-661e-4b6c-8722-de27e36f0e24queued¤logsrunning¦outputbody1.2214027581601699persist_js_state¤mimetext/plainlast_run_timestampAڢ-zkhas_pluto_hook_features¬rootassigneecell_id$f6c91ba4-661e-4b6c-8722-de27e36f0e24depends_on_disabled_cells§runtime&published_object_keysdepends_on_skipped_cells§errored$1fa787ef-324f-4cca-b5b7-f270f84a974bqueued¤logsrunning¦outputbody2persist_js_state¤mimetext/plainlast_run_timestampAڢ-jhas_pluto_hook_features¬rootassigneecell_id$1fa787ef-324f-4cca-b5b7-f270f84a974bdepends_on_disabled_cells§runtime)published_object_keysdepends_on_skipped_cells§errored$6fbf3bb2-61d2-4f55-a0f3-8a05ef6095e7queued¤logsrunning¦outputbody<div class="markdown"><h2 id="Numerical-implementation">Numerical implementation</h2>
<p>Let us begin by <strong>storing</strong> relevant information into <strong>variables</strong>. As a rough approximation, one can think of a computer as doing one of three things:</p>
<ul>
<li><p>storing data</p>
</li>
<li><p>computing with data</p>
</li>
<li><p>displaying data</p>
</li>
</ul>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-has_pluto_hook_features¬rootassigneecell_id$6fbf3bb2-61d2-4f55-a0f3-8a05ef6095e7depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$f2fcef8a-e753-488a-a09a-be6c473755e8queued¤logsrunning¦outputbody1.2214027581601699persist_js_state¤mimetext/plainlast_run_timestampAڢ-Pvhas_pluto_hook_features¬rootassigneef_exactcell_id$f2fcef8a-e753-488a-a09a-be6c473755e8depends_on_disabled_cells§runtime;published_object_keysdepends_on_skipped_cells§errored$8837fb56-f8a6-4152-9e50-bd3f465bbb02queued¤logsrunning¦outputbody6.661338147750939e-16persist_js_state¤mimetext/plainlast_run_timestampAڢ-ŷhas_pluto_hook_features¬rootassigneecell_id$8837fb56-f8a6-4152-9e50-bd3f465bbb02depends_on_disabled_cells§runtime/published_object_keysdepends_on_skipped_cells§errored$7cac38d1-0524-4e66-8bc5-87bc5708ec4dqueued¤logsrunning¦outputbody3persist_js_state¤mimetext/plainlast_run_timestampAڢ-˼has_pluto_hook_features¬rootassigneeMcell_id$7cac38d1-0524-4e66-8bc5-87bc5708ec4ddepends_on_disabled_cells§runtime*published_object_keysdepends_on_skipped_cells§errored$3687516a-5a63-45c9-a2c9-415c706f45bbqueued¤logsrunning¦outputbody<div class="markdown"><h3 id="Example">Example</h3>
<p>Supposed we are tasked with calculating <span class="tex">$\tilde&#123;f&#125; &#40;0.2 \, ; y_0 &#61; 0, M &#61; 3&#41;$</span>.</p>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-phas_pluto_hook_features¬rootassigneecell_id$3687516a-5a63-45c9-a2c9-415c706f45bbdepends_on_disabled_cells§runtime upublished_object_keysdepends_on_skipped_cells§errored$9cb651da-8e08-479a-81e8-24de523c145equeued¤logsrunning¦outputbody1.2214027581601699persist_js_state¤mimetext/plainlast_run_timestampAڢ-zhas_pluto_hook_features¬rootassigneecell_id$9cb651da-8e08-479a-81e8-24de523c145edepends_on_disabled_cells§runtime-=published_object_keysdepends_on_skipped_cells§errored$6f72cf27-57f7-490d-b076-1fc368577fe2queued¤logsrunning¦outputbody6.283185307179586persist_js_state¤mimetext/plainlast_run_timestampAڢ-scshas_pluto_hook_features¬rootassigneecell_id$6f72cf27-57f7-490d-b076-1fc368577fe2depends_on_disabled_cells§runtime,%published_object_keysdepends_on_skipped_cells§errored$56e12061-2cbf-4c38-914e-7c75ffb9f33equeued¤logsrunning¦outputbody<div class="markdown"><div class="admonition question"><p class="admonition-title">How do we plot the Taylor series approximation in a more useful way?</p><p>Notice that the above plot is not particularly helpful, because we cannot easily observe that our estimate of <span class="tex">$e^&#123;0.2&#125;$</span> is better for larger <code>M</code>. <strong><em>In the first problem set, you will find better ways to plot the error.</em></strong></p>
</div>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-;`has_pluto_hook_features¬rootassigneecell_id$56e12061-2cbf-4c38-914e-7c75ffb9f33edepends_on_disabled_cells§runtime Fpublished_object_keysdepends_on_skipped_cells§errored$1536fbc1-0c35-4cdb-b663-9ae7fe0771f0queued¤logsrunning¦outputbody6.942482683647277e-5persist_js_state¤mimetext/plainlast_run_timestampAڢ-{Phas_pluto_hook_features¬rootassigneecell_id$1536fbc1-0c35-4cdb-b663-9ae7fe0771f0depends_on_disabled_cells§runtimeYpublished_object_keysdepends_on_skipped_cells§errored$fc8dd886-86e3-4c2d-9f3e-490b04c8e369queued¤logsrunning¦outputbodyM<div class="markdown"><p>What is the truncation error that arises?</p>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-Bhas_pluto_hook_features¬rootassigneecell_id$fc8dd886-86e3-4c2d-9f3e-490b04c8e369depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$3f635ff2-481c-4ac7-b3b7-14a28b3042c6queued¤logsrunning¦outputbody1.2213333333333334persist_js_state¤mimetext/plainlast_run_timestampAڢ-yfhas_pluto_hook_features¬rootassigneecell_id$3f635ff2-481c-4ac7-b3b7-14a28b3042c6depends_on_disabled_cells§runtime dɵpublished_object_keysdepends_on_skipped_cells§errored$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7queued¤logsrunning¦outputbody6.942482683647277e-5persist_js_state¤mimetext/plainlast_run_timestampAڢ-,has_pluto_hook_features¬rootassigneeresidualcell_id$444ecadf-c50d-4fb9-bf9c-ca3c90abe0f7depends_on_disabled_cells§runtime;published_object_keysdepends_on_skipped_cells§errored$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21queued¤logsrunning¦outputbody6.942482683647277e-5persist_js_state¤mimetext/plainlast_run_timestampAڢ-rhas_pluto_hook_features¬rootassigneecell_id$268ee3a6-ece9-4c3f-a5bd-c1ea2835ce21depends_on_disabled_cells§runtimeCypublished_object_keysdepends_on_skipped_cells§errored$133c3077-80f3-4515-a7e5-dfc3d56eb12fqueued¤logsrunning¦outputbodyȿ <?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="600" height="400" viewBox="0 0 2400 1600">
<defs>
  <clipPath id="clip630">
    <rect x="0" y="0" width="2400" height="1600"/>
  </clipPath>
</defs>
<path clip-path="url(#clip630)" d="M0 1600 L2400 1600 L2400 0 L0 0  Z" fill="#ffffff" fill-rule="evenodd" fill-opacity="1"/>
<defs>
  <clipPath id="clip631">
    <rect x="480" y="0" width="1681" height="1600"/>
  </clipPath>
</defs>
<path clip-path="url(#clip630)" d="M277.621 1423.18 L2352.76 1423.18 L2352.76 123.472 L277.621 123.472  Z" fill="#ffffff" fill-rule="evenodd" fill-opacity="1"/>
<defs>
  <clipPath id="clip632">
    <rect x="277" y="123" width="2076" height="1301"/>
  </clipPath>
</defs>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="336.351,1423.18 336.351,123.472 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="727.886,1423.18 727.886,123.472 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="1119.42,1423.18 1119.42,123.472 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="1510.96,1423.18 1510.96,123.472 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="1902.49,1423.18 1902.49,123.472 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="2294.03,1423.18 2294.03,123.472 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="277.621,1423.18 2352.76,1423.18 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="336.351,1423.18 336.351,1404.28 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="727.886,1423.18 727.886,1404.28 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="1119.42,1423.18 1119.42,1404.28 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="1510.96,1423.18 1510.96,1404.28 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="1902.49,1423.18 1902.49,1404.28 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="2294.03,1423.18 2294.03,1404.28 "/>
<path clip-path="url(#clip630)" d="M326.733 1481.64 L334.372 1481.64 L334.372 1455.28 L326.062 1456.95 L326.062 1452.69 L334.325 1451.02 L339.001 1451.02 L339.001 1481.64 L346.64 1481.64 L346.64 1485.58 L326.733 1485.58 L326.733 1481.64 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M722.539 1481.64 L738.858 1481.64 L738.858 1485.58 L716.914 1485.58 L716.914 1481.64 Q719.576 1478.89 724.159 1474.26 Q728.765 1469.61 729.946 1468.27 Q732.191 1465.74 733.071 1464.01 Q733.974 1462.25 733.974 1460.56 Q733.974 1457.8 732.029 1456.07 Q730.108 1454.33 727.006 1454.33 Q724.807 1454.33 722.353 1455.09 Q719.923 1455.86 717.145 1457.41 L717.145 1452.69 Q719.969 1451.55 722.423 1450.97 Q724.877 1450.39 726.914 1450.39 Q732.284 1450.39 735.478 1453.08 Q738.673 1455.77 738.673 1460.26 Q738.673 1462.39 737.863 1464.31 Q737.076 1466.2 734.969 1468.8 Q734.39 1469.47 731.289 1472.69 Q728.187 1475.88 722.539 1481.64 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1123.67 1466.95 Q1127.02 1467.66 1128.9 1469.93 Q1130.8 1472.2 1130.8 1475.53 Q1130.8 1480.65 1127.28 1483.45 Q1123.76 1486.25 1117.28 1486.25 Q1115.1 1486.25 1112.79 1485.81 Q1110.5 1485.39 1108.04 1484.54 L1108.04 1480.02 Q1109.99 1481.16 1112.3 1481.74 Q1114.62 1482.32 1117.14 1482.32 Q1121.54 1482.32 1123.83 1480.58 Q1126.15 1478.84 1126.15 1475.53 Q1126.15 1472.48 1123.99 1470.77 Q1121.86 1469.03 1118.04 1469.03 L1114.02 1469.03 L1114.02 1465.19 L1118.23 1465.19 Q1121.68 1465.19 1123.51 1463.82 Q1125.34 1462.43 1125.34 1459.84 Q1125.34 1457.18 1123.44 1455.77 Q1121.56 1454.33 1118.04 1454.33 Q1116.12 1454.33 1113.92 1454.75 Q1111.72 1455.16 1109.09 1456.04 L1109.09 1451.88 Q1111.75 1451.14 1114.06 1450.77 Q1116.4 1450.39 1118.46 1450.39 Q1123.78 1450.39 1126.89 1452.83 Q1129.99 1455.23 1129.99 1459.35 Q1129.99 1462.22 1128.34 1464.21 Q1126.7 1466.18 1123.67 1466.95 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1513.96 1455.09 L1502.16 1473.54 L1513.96 1473.54 L1513.96 1455.09 M1512.74 1451.02 L1518.62 1451.02 L1518.62 1473.54 L1523.55 1473.54 L1523.55 1477.43 L1518.62 1477.43 L1518.62 1485.58 L1513.96 1485.58 L1513.96 1477.43 L1498.36 1477.43 L1498.36 1472.92 L1512.74 1451.02 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1892.77 1451.02 L1911.12 1451.02 L1911.12 1454.96 L1897.05 1454.96 L1897.05 1463.43 Q1898.07 1463.08 1899.09 1462.92 Q1900.11 1462.73 1901.12 1462.73 Q1906.91 1462.73 1910.29 1465.9 Q1913.67 1469.08 1913.67 1474.49 Q1913.67 1480.07 1910.2 1483.17 Q1906.73 1486.25 1900.41 1486.25 Q1898.23 1486.25 1895.96 1485.88 Q1893.72 1485.51 1891.31 1484.77 L1891.31 1480.07 Q1893.39 1481.2 1895.62 1481.76 Q1897.84 1482.32 1900.31 1482.32 Q1904.32 1482.32 1906.66 1480.21 Q1909 1478.1 1909 1474.49 Q1909 1470.88 1906.66 1468.77 Q1904.32 1466.67 1900.31 1466.67 Q1898.44 1466.67 1896.56 1467.08 Q1894.71 1467.5 1892.77 1468.38 L1892.77 1451.02 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2294.43 1466.44 Q2291.28 1466.44 2289.43 1468.59 Q2287.6 1470.74 2287.6 1474.49 Q2287.6 1478.22 2289.43 1480.39 Q2291.28 1482.55 2294.43 1482.55 Q2297.58 1482.55 2299.41 1480.39 Q2301.26 1478.22 2301.26 1474.49 Q2301.26 1470.74 2299.41 1468.59 Q2297.58 1466.44 2294.43 1466.44 M2303.71 1451.78 L2303.71 1456.04 Q2301.95 1455.21 2300.15 1454.77 Q2298.37 1454.33 2296.61 1454.33 Q2291.98 1454.33 2289.52 1457.45 Q2287.09 1460.58 2286.75 1466.9 Q2288.11 1464.89 2290.17 1463.82 Q2292.23 1462.73 2294.71 1462.73 Q2299.92 1462.73 2302.93 1465.9 Q2305.96 1469.05 2305.96 1474.49 Q2305.96 1479.82 2302.81 1483.03 Q2299.66 1486.25 2294.43 1486.25 Q2288.44 1486.25 2285.26 1481.67 Q2282.09 1477.06 2282.09 1468.33 Q2282.09 1460.14 2285.98 1455.28 Q2289.87 1450.39 2296.42 1450.39 Q2298.18 1450.39 2299.96 1450.74 Q2301.77 1451.09 2303.71 1451.78 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1293.45 1520.52 L1303.03 1520.52 L1315.16 1552.86 L1327.35 1520.52 L1336.93 1520.52 L1336.93 1568.04 L1330.66 1568.04 L1330.66 1526.32 L1318.4 1558.91 L1311.94 1558.91 L1299.69 1526.32 L1299.69 1568.04 L1293.45 1568.04 L1293.45 1520.52 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="277.621,1386.4 2352.76,1386.4 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="277.621,1099.95 2352.76,1099.95 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="277.621,813.507 2352.76,813.507 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="277.621,527.063 2352.76,527.063 "/>
<polyline clip-path="url(#clip632)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none" points="277.621,240.619 2352.76,240.619 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="277.621,1423.18 277.621,123.472 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="277.621,1386.4 296.518,1386.4 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="277.621,1099.95 296.518,1099.95 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="277.621,813.507 296.518,813.507 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="277.621,527.063 296.518,527.063 "/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="277.621,240.619 296.518,240.619 "/>
<path clip-path="url(#clip630)" d="M114.931 1399.74 L122.57 1399.74 L122.57 1373.37 L114.26 1375.04 L114.26 1370.78 L122.524 1369.12 L127.2 1369.12 L127.2 1399.74 L134.839 1399.74 L134.839 1403.68 L114.931 1403.68 L114.931 1399.74 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M144.283 1397.8 L149.167 1397.8 L149.167 1403.68 L144.283 1403.68 L144.283 1397.8 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M163.38 1399.74 L179.7 1399.74 L179.7 1403.68 L157.755 1403.68 L157.755 1399.74 Q160.417 1396.99 165.001 1392.36 Q169.607 1387.7 170.788 1386.36 Q173.033 1383.84 173.913 1382.1 Q174.815 1380.34 174.815 1378.65 Q174.815 1375.9 172.871 1374.16 Q170.95 1372.43 167.848 1372.43 Q165.649 1372.43 163.195 1373.19 Q160.765 1373.95 157.987 1375.5 L157.987 1370.78 Q160.811 1369.65 163.265 1369.07 Q165.718 1368.49 167.755 1368.49 Q173.126 1368.49 176.32 1371.18 Q179.514 1373.86 179.514 1378.35 Q179.514 1380.48 178.704 1382.4 Q177.917 1384.3 175.811 1386.89 Q175.232 1387.56 172.13 1390.78 Q169.028 1393.98 163.38 1399.74 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M199.514 1372.19 Q195.903 1372.19 194.075 1375.76 Q192.269 1379.3 192.269 1386.43 Q192.269 1393.54 194.075 1397.1 Q195.903 1400.64 199.514 1400.64 Q203.149 1400.64 204.954 1397.1 Q206.783 1393.54 206.783 1386.43 Q206.783 1379.3 204.954 1375.76 Q203.149 1372.19 199.514 1372.19 M199.514 1368.49 Q205.324 1368.49 208.38 1373.1 Q211.459 1377.68 211.459 1386.43 Q211.459 1395.16 208.38 1399.76 Q205.324 1404.35 199.514 1404.35 Q193.704 1404.35 190.625 1399.76 Q187.57 1395.16 187.57 1386.43 Q187.57 1377.68 190.625 1373.1 Q193.704 1368.49 199.514 1368.49 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M229.676 1372.19 Q226.065 1372.19 224.236 1375.76 Q222.431 1379.3 222.431 1386.43 Q222.431 1393.54 224.236 1397.1 Q226.065 1400.64 229.676 1400.64 Q233.31 1400.64 235.116 1397.1 Q236.945 1393.54 236.945 1386.43 Q236.945 1379.3 235.116 1375.76 Q233.31 1372.19 229.676 1372.19 M229.676 1368.49 Q235.486 1368.49 238.542 1373.1 Q241.621 1377.68 241.621 1386.43 Q241.621 1395.16 238.542 1399.76 Q235.486 1404.35 229.676 1404.35 Q223.866 1404.35 220.787 1399.76 Q217.732 1395.16 217.732 1386.43 Q217.732 1377.68 220.787 1373.1 Q223.866 1368.49 229.676 1368.49 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M115.927 1113.3 L123.566 1113.3 L123.566 1086.93 L115.256 1088.6 L115.256 1084.34 L123.519 1082.67 L128.195 1082.67 L128.195 1113.3 L135.834 1113.3 L135.834 1117.23 L115.927 1117.23 L115.927 1113.3 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M145.279 1111.35 L150.163 1111.35 L150.163 1117.23 L145.279 1117.23 L145.279 1111.35 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M164.376 1113.3 L180.695 1113.3 L180.695 1117.23 L158.751 1117.23 L158.751 1113.3 Q161.413 1110.54 165.996 1105.91 Q170.602 1101.26 171.783 1099.92 Q174.028 1097.39 174.908 1095.66 Q175.811 1093.9 175.811 1092.21 Q175.811 1089.45 173.866 1087.72 Q171.945 1085.98 168.843 1085.98 Q166.644 1085.98 164.19 1086.75 Q161.76 1087.51 158.982 1089.06 L158.982 1084.34 Q161.806 1083.2 164.26 1082.63 Q166.714 1082.05 168.751 1082.05 Q174.121 1082.05 177.315 1084.73 Q180.51 1087.42 180.51 1091.91 Q180.51 1094.04 179.7 1095.96 Q178.913 1097.86 176.806 1100.45 Q176.227 1101.12 173.126 1104.34 Q170.024 1107.53 164.376 1113.3 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M200.51 1085.75 Q196.899 1085.75 195.07 1089.31 Q193.264 1092.86 193.264 1099.99 Q193.264 1107.09 195.07 1110.66 Q196.899 1114.2 200.51 1114.2 Q204.144 1114.2 205.949 1110.66 Q207.778 1107.09 207.778 1099.99 Q207.778 1092.86 205.949 1089.31 Q204.144 1085.75 200.51 1085.75 M200.51 1082.05 Q206.32 1082.05 209.375 1086.65 Q212.454 1091.24 212.454 1099.99 Q212.454 1108.71 209.375 1113.32 Q206.32 1117.9 200.51 1117.9 Q194.7 1117.9 191.621 1113.32 Q188.565 1108.71 188.565 1099.99 Q188.565 1091.24 191.621 1086.65 Q194.7 1082.05 200.51 1082.05 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M220.718 1082.67 L239.074 1082.67 L239.074 1086.61 L225 1086.61 L225 1095.08 Q226.019 1094.73 227.037 1094.57 Q228.056 1094.38 229.074 1094.38 Q234.861 1094.38 238.241 1097.56 Q241.621 1100.73 241.621 1106.14 Q241.621 1111.72 238.148 1114.82 Q234.676 1117.9 228.357 1117.9 Q226.181 1117.9 223.912 1117.53 Q221.667 1117.16 219.26 1116.42 L219.26 1111.72 Q221.343 1112.86 223.565 1113.41 Q225.787 1113.97 228.264 1113.97 Q232.269 1113.97 234.607 1111.86 Q236.945 1109.75 236.945 1106.14 Q236.945 1102.53 234.607 1100.43 Q232.269 1098.32 228.264 1098.32 Q226.389 1098.32 224.514 1098.74 Q222.662 1099.15 220.718 1100.03 L220.718 1082.67 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M114.931 826.852 L122.57 826.852 L122.57 800.486 L114.26 802.153 L114.26 797.894 L122.524 796.227 L127.2 796.227 L127.2 826.852 L134.839 826.852 L134.839 830.787 L114.931 830.787 L114.931 826.852 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M144.283 824.908 L149.167 824.908 L149.167 830.787 L144.283 830.787 L144.283 824.908 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M163.38 826.852 L179.7 826.852 L179.7 830.787 L157.755 830.787 L157.755 826.852 Q160.417 824.097 165.001 819.468 Q169.607 814.815 170.788 813.472 Q173.033 810.949 173.913 809.213 Q174.815 807.454 174.815 805.764 Q174.815 803.009 172.871 801.273 Q170.95 799.537 167.848 799.537 Q165.649 799.537 163.195 800.301 Q160.765 801.065 157.987 802.616 L157.987 797.894 Q160.811 796.76 163.265 796.181 Q165.718 795.602 167.755 795.602 Q173.126 795.602 176.32 798.287 Q179.514 800.972 179.514 805.463 Q179.514 807.593 178.704 809.514 Q177.917 811.412 175.811 814.005 Q175.232 814.676 172.13 817.894 Q169.028 821.088 163.38 826.852 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M190.325 826.852 L197.963 826.852 L197.963 800.486 L189.653 802.153 L189.653 797.894 L197.917 796.227 L202.593 796.227 L202.593 826.852 L210.232 826.852 L210.232 830.787 L190.325 830.787 L190.325 826.852 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M229.676 799.306 Q226.065 799.306 224.236 802.871 Q222.431 806.412 222.431 813.542 Q222.431 820.648 224.236 824.213 Q226.065 827.755 229.676 827.755 Q233.31 827.755 235.116 824.213 Q236.945 820.648 236.945 813.542 Q236.945 806.412 235.116 802.871 Q233.31 799.306 229.676 799.306 M229.676 795.602 Q235.486 795.602 238.542 800.209 Q241.621 804.792 241.621 813.542 Q241.621 822.269 238.542 826.875 Q235.486 831.458 229.676 831.458 Q223.866 831.458 220.787 826.875 Q217.732 822.269 217.732 813.542 Q217.732 804.792 220.787 800.209 Q223.866 795.602 229.676 795.602 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M115.927 540.408 L123.566 540.408 L123.566 514.042 L115.256 515.709 L115.256 511.449 L123.519 509.783 L128.195 509.783 L128.195 540.408 L135.834 540.408 L135.834 544.343 L115.927 544.343 L115.927 540.408 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M145.279 538.463 L150.163 538.463 L150.163 544.343 L145.279 544.343 L145.279 538.463 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M164.376 540.408 L180.695 540.408 L180.695 544.343 L158.751 544.343 L158.751 540.408 Q161.413 537.653 165.996 533.023 Q170.602 528.371 171.783 527.028 Q174.028 524.505 174.908 522.769 Q175.811 521.01 175.811 519.32 Q175.811 516.565 173.866 514.829 Q171.945 513.093 168.843 513.093 Q166.644 513.093 164.19 513.857 Q161.76 514.621 158.982 516.172 L158.982 511.449 Q161.806 510.315 164.26 509.737 Q166.714 509.158 168.751 509.158 Q174.121 509.158 177.315 511.843 Q180.51 514.528 180.51 519.019 Q180.51 521.149 179.7 523.07 Q178.913 524.968 176.806 527.561 Q176.227 528.232 173.126 531.449 Q170.024 534.644 164.376 540.408 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M191.32 540.408 L198.959 540.408 L198.959 514.042 L190.649 515.709 L190.649 511.449 L198.912 509.783 L203.588 509.783 L203.588 540.408 L211.227 540.408 L211.227 544.343 L191.32 544.343 L191.32 540.408 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M220.718 509.783 L239.074 509.783 L239.074 513.718 L225 513.718 L225 522.19 Q226.019 521.843 227.037 521.681 Q228.056 521.496 229.074 521.496 Q234.861 521.496 238.241 524.667 Q241.621 527.838 241.621 533.255 Q241.621 538.834 238.148 541.935 Q234.676 545.014 228.357 545.014 Q226.181 545.014 223.912 544.644 Q221.667 544.273 219.26 543.533 L219.26 538.834 Q221.343 539.968 223.565 540.523 Q225.787 541.079 228.264 541.079 Q232.269 541.079 234.607 538.972 Q236.945 536.866 236.945 533.255 Q236.945 529.644 234.607 527.537 Q232.269 525.431 228.264 525.431 Q226.389 525.431 224.514 525.848 Q222.662 526.264 220.718 527.144 L220.718 509.783 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M114.931 253.963 L122.57 253.963 L122.57 227.598 L114.26 229.264 L114.26 225.005 L122.524 223.339 L127.2 223.339 L127.2 253.963 L134.839 253.963 L134.839 257.899 L114.931 257.899 L114.931 253.963 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M144.283 252.019 L149.167 252.019 L149.167 257.899 L144.283 257.899 L144.283 252.019 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M163.38 253.963 L179.7 253.963 L179.7 257.899 L157.755 257.899 L157.755 253.963 Q160.417 251.209 165.001 246.579 Q169.607 241.926 170.788 240.584 Q173.033 238.061 173.913 236.325 Q174.815 234.565 174.815 232.876 Q174.815 230.121 172.871 228.385 Q170.95 226.649 167.848 226.649 Q165.649 226.649 163.195 227.413 Q160.765 228.177 157.987 229.727 L157.987 225.005 Q160.811 223.871 163.265 223.292 Q165.718 222.714 167.755 222.714 Q173.126 222.714 176.32 225.399 Q179.514 228.084 179.514 232.575 Q179.514 234.704 178.704 236.626 Q177.917 238.524 175.811 241.116 Q175.232 241.788 172.13 245.005 Q169.028 248.2 163.38 253.963 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M193.542 253.963 L209.861 253.963 L209.861 257.899 L187.917 257.899 L187.917 253.963 Q190.579 251.209 195.163 246.579 Q199.769 241.926 200.95 240.584 Q203.195 238.061 204.074 236.325 Q204.977 234.565 204.977 232.876 Q204.977 230.121 203.033 228.385 Q201.112 226.649 198.01 226.649 Q195.811 226.649 193.357 227.413 Q190.926 228.177 188.149 229.727 L188.149 225.005 Q190.973 223.871 193.426 223.292 Q195.88 222.714 197.917 222.714 Q203.287 222.714 206.482 225.399 Q209.676 228.084 209.676 232.575 Q209.676 234.704 208.866 236.626 Q208.079 238.524 205.973 241.116 Q205.394 241.788 202.292 245.005 Q199.19 248.2 193.542 253.963 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M229.676 226.417 Q226.065 226.417 224.236 229.982 Q222.431 233.524 222.431 240.653 Q222.431 247.76 224.236 251.325 Q226.065 254.866 229.676 254.866 Q233.31 254.866 235.116 251.325 Q236.945 247.76 236.945 240.653 Q236.945 233.524 235.116 229.982 Q233.31 226.417 229.676 226.417 M229.676 222.714 Q235.486 222.714 238.542 227.32 Q241.621 231.903 241.621 240.653 Q241.621 249.38 238.542 253.987 Q235.486 258.57 229.676 258.57 Q223.866 258.57 220.787 253.987 Q217.732 249.38 217.732 240.653 Q217.732 231.903 220.787 227.32 Q223.866 222.714 229.676 222.714 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M14.479 888.848 L19.3487 888.848 L19.3487 894.449 Q19.3487 897.6 20.6219 898.842 Q21.895 900.051 25.2052 900.051 L28.3562 900.051 L28.3562 890.407 L32.9077 890.407 L32.9077 900.051 L64.0042 900.051 L64.0042 905.94 L32.9077 905.94 L32.9077 911.541 L28.3562 911.541 L28.3562 905.94 L25.8736 905.94 Q19.9216 905.94 17.2162 903.17 Q14.479 900.401 14.479 894.386 L14.479 888.848 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M74.8259 856.86 L79.3773 856.86 L79.3773 890.726 L74.8259 890.726 L74.8259 856.86 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M46.0847 835.153 Q46.0847 842.251 47.7079 844.988 Q49.3312 847.725 53.2461 847.725 Q56.3653 847.725 58.2114 845.688 Q60.0256 843.619 60.0256 840.086 Q60.0256 835.217 56.5881 832.288 Q53.1188 829.328 47.3897 829.328 L46.0847 829.328 L46.0847 835.153 M43.6657 823.472 L64.0042 823.472 L64.0042 829.328 L58.5933 829.328 Q61.8398 831.333 63.3994 834.325 Q64.9272 837.317 64.9272 841.646 Q64.9272 847.12 61.8716 850.367 Q58.7843 853.582 53.6281 853.582 Q47.6125 853.582 44.5569 849.571 Q41.5014 845.529 41.5014 837.54 L41.5014 829.328 L40.9285 829.328 Q36.8862 829.328 34.6901 832.002 Q32.4621 834.644 32.4621 839.45 Q32.4621 842.505 33.1941 845.402 Q33.9262 848.298 35.3903 850.972 L29.9795 850.972 Q28.7381 847.757 28.1334 844.733 Q27.4968 841.71 27.4968 838.845 Q27.4968 831.111 31.5072 827.291 Q35.5176 823.472 43.6657 823.472 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M58.657 805.743 L77.5631 805.743 L77.5631 811.632 L28.3562 811.632 L28.3562 805.743 L33.7671 805.743 Q30.5842 803.897 29.0564 801.096 Q27.4968 798.264 27.4968 794.349 Q27.4968 787.856 32.6531 783.813 Q37.8093 779.739 46.212 779.739 Q54.6147 779.739 59.771 783.813 Q64.9272 787.856 64.9272 794.349 Q64.9272 798.264 63.3994 801.096 Q61.8398 803.897 58.657 805.743 M46.212 785.819 Q39.7508 785.819 36.0905 788.492 Q32.3984 791.134 32.3984 795.781 Q32.3984 800.428 36.0905 803.102 Q39.7508 805.743 46.212 805.743 Q52.6732 805.743 56.3653 803.102 Q60.0256 800.428 60.0256 795.781 Q60.0256 791.134 56.3653 788.492 Q52.6732 785.819 46.212 785.819 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M58.657 764.366 L77.5631 764.366 L77.5631 770.255 L28.3562 770.255 L28.3562 764.366 L33.7671 764.366 Q30.5842 762.52 29.0564 759.719 Q27.4968 756.887 27.4968 752.972 Q27.4968 746.479 32.6531 742.436 Q37.8093 738.362 46.212 738.362 Q54.6147 738.362 59.771 742.436 Q64.9272 746.479 64.9272 752.972 Q64.9272 756.887 63.3994 759.719 Q61.8398 762.52 58.657 764.366 M46.212 744.442 Q39.7508 744.442 36.0905 747.115 Q32.3984 749.757 32.3984 754.404 Q32.3984 759.051 36.0905 761.724 Q39.7508 764.366 46.212 764.366 Q52.6732 764.366 56.3653 761.724 Q60.0256 759.051 60.0256 754.404 Q60.0256 749.757 56.3653 747.115 Q52.6732 744.442 46.212 744.442 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M33.8307 707.998 Q33.2578 708.985 33.0032 710.162 Q32.7167 711.308 32.7167 712.709 Q32.7167 717.674 35.9632 720.347 Q39.1779 722.989 45.2253 722.989 L64.0042 722.989 L64.0042 728.877 L28.3562 728.877 L28.3562 722.989 L33.8944 722.989 Q30.6479 721.143 29.0883 718.183 Q27.4968 715.223 27.4968 710.99 Q27.4968 710.385 27.5923 709.653 Q27.656 708.921 27.8151 708.03 L33.8307 707.998 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M32.4621 689.474 Q32.4621 694.184 36.1542 696.922 Q39.8145 699.659 46.212 699.659 Q52.6095 699.659 56.3017 696.953 Q59.9619 694.216 59.9619 689.474 Q59.9619 684.795 56.2698 682.058 Q52.5777 679.32 46.212 679.32 Q39.8781 679.32 36.186 682.058 Q32.4621 684.795 32.4621 689.474 M27.4968 689.474 Q27.4968 681.835 32.4621 677.474 Q37.4273 673.114 46.212 673.114 Q54.9649 673.114 59.9619 677.474 Q64.9272 681.835 64.9272 689.474 Q64.9272 697.144 59.9619 701.505 Q54.9649 705.834 46.212 705.834 Q37.4273 705.834 32.4621 701.505 Q27.4968 697.144 27.4968 689.474 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M28.3562 635.779 L45.7028 648.67 L64.0042 635.111 L64.0042 642.017 L49.9996 652.393 L64.0042 662.77 L64.0042 669.676 L45.3526 655.831 L28.3562 668.499 L28.3562 661.592 L41.0558 652.139 L28.3562 642.686 L28.3562 635.779 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M747.292 12.096 L798.455 12.096 L798.455 18.9825 L776.985 18.9825 L776.985 72.576 L768.762 72.576 L768.762 18.9825 L747.292 18.9825 L747.292 12.096 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M812.917 49.7694 Q803.883 49.7694 800.399 51.8354 Q796.916 53.9013 796.916 58.8839 Q796.916 62.8538 799.508 65.2034 Q802.141 67.5124 806.638 67.5124 Q812.836 67.5124 816.562 63.1374 Q820.33 58.7219 820.33 51.4303 L820.33 49.7694 L812.917 49.7694 M827.783 46.6907 L827.783 72.576 L820.33 72.576 L820.33 65.6895 Q817.778 69.8214 813.97 71.8063 Q810.162 73.7508 804.653 73.7508 Q797.685 73.7508 793.553 69.8619 Q789.462 65.9325 789.462 59.3701 Q789.462 51.7138 794.566 47.825 Q799.711 43.9361 809.878 43.9361 L820.33 43.9361 L820.33 43.2069 Q820.33 38.0623 816.927 35.2672 Q813.565 32.4315 807.448 32.4315 Q803.559 32.4315 799.873 33.3632 Q796.186 34.295 792.784 36.1584 L792.784 29.2718 Q796.875 27.692 800.723 26.9223 Q804.572 26.1121 808.218 26.1121 Q818.061 26.1121 822.922 31.2163 Q827.783 36.3204 827.783 46.6907 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M862.014 76.7889 Q858.854 84.8907 855.856 87.3618 Q852.859 89.8329 847.835 89.8329 L841.881 89.8329 L841.881 83.5945 L846.256 83.5945 Q849.334 83.5945 851.036 82.1361 Q852.737 80.6778 854.803 75.2496 L856.14 71.8468 L837.789 27.2059 L845.688 27.2059 L859.867 62.6918 L874.045 27.2059 L881.944 27.2059 L862.014 76.7889 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M892.233 9.54393 L899.687 9.54393 L899.687 72.576 L892.233 72.576 L892.233 9.54393 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M932.864 32.4315 Q926.869 32.4315 923.385 37.1306 Q919.901 41.7891 919.901 49.9314 Q919.901 58.0738 923.344 62.7728 Q926.828 67.4314 932.864 67.4314 Q938.819 67.4314 942.303 62.7323 Q945.786 58.0333 945.786 49.9314 Q945.786 41.8701 942.303 37.1711 Q938.819 32.4315 932.864 32.4315 M932.864 26.1121 Q942.586 26.1121 948.136 32.4315 Q953.686 38.7509 953.686 49.9314 Q953.686 61.0714 948.136 67.4314 Q942.586 73.7508 932.864 73.7508 Q923.101 73.7508 917.551 67.4314 Q912.042 61.0714 912.042 49.9314 Q912.042 38.7509 917.551 32.4315 Q923.101 26.1121 932.864 26.1121 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M992.331 34.1734 Q991.075 33.4443 989.577 33.1202 Q988.118 32.7556 986.336 32.7556 Q980.016 32.7556 976.614 36.8875 Q973.251 40.9789 973.251 48.6757 L973.251 72.576 L965.757 72.576 L965.757 27.2059 L973.251 27.2059 L973.251 34.2544 Q975.601 30.1225 979.368 28.1376 Q983.136 26.1121 988.523 26.1121 Q989.293 26.1121 990.225 26.2337 Q991.156 26.3147 992.291 26.5172 L992.331 34.1734 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1055.44 28.5427 L1055.44 35.5912 Q1052.28 33.9709 1048.88 33.1607 Q1045.48 32.3505 1041.83 32.3505 Q1036.28 32.3505 1033.49 34.0519 Q1030.73 35.7533 1030.73 39.156 Q1030.73 41.7486 1032.72 43.2475 Q1034.7 44.7058 1040.7 46.0426 L1043.25 46.6097 Q1051.19 48.3111 1054.51 51.4303 Q1057.87 54.509 1057.87 60.0587 Q1057.87 66.3781 1052.85 70.0644 Q1047.87 73.7508 1039.12 73.7508 Q1035.47 73.7508 1031.5 73.0216 Q1027.57 72.3329 1023.2 70.9151 L1023.2 63.2184 Q1027.33 65.3654 1031.34 66.4591 Q1035.35 67.5124 1039.28 67.5124 Q1044.55 67.5124 1047.38 65.73 Q1050.22 63.9071 1050.22 60.6258 Q1050.22 57.5877 1048.15 55.9673 Q1046.13 54.3469 1039.2 52.8481 L1036.61 52.2405 Q1029.68 50.7821 1026.6 47.7845 Q1023.52 44.7463 1023.52 39.4801 Q1023.52 33.0797 1028.06 29.5959 Q1032.6 26.1121 1040.94 26.1121 Q1045.07 26.1121 1048.72 26.7198 Q1052.37 27.3274 1055.44 28.5427 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1108.55 48.0275 L1108.55 51.6733 L1074.28 51.6733 Q1074.77 59.3701 1078.9 63.421 Q1083.07 67.4314 1090.48 67.4314 Q1094.78 67.4314 1098.79 66.3781 Q1102.84 65.3249 1106.81 63.2184 L1106.81 70.267 Q1102.8 71.9684 1098.59 72.8596 Q1094.37 73.7508 1090.04 73.7508 Q1079.18 73.7508 1072.82 67.4314 Q1066.5 61.1119 1066.5 50.3365 Q1066.5 39.1965 1072.5 32.6746 Q1078.53 26.1121 1088.74 26.1121 Q1097.9 26.1121 1103.2 32.0264 Q1108.55 37.9003 1108.55 48.0275 M1101.1 45.84 Q1101.02 39.7232 1097.65 36.0774 Q1094.33 32.4315 1088.82 32.4315 Q1082.59 32.4315 1078.82 35.9558 Q1075.09 39.4801 1074.52 45.8805 L1101.1 45.84 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1147.08 34.1734 Q1145.82 33.4443 1144.32 33.1202 Q1142.86 32.7556 1141.08 32.7556 Q1134.76 32.7556 1131.36 36.8875 Q1128 40.9789 1128 48.6757 L1128 72.576 L1120.5 72.576 L1120.5 27.2059 L1128 27.2059 L1128 34.2544 Q1130.35 30.1225 1134.11 28.1376 Q1137.88 26.1121 1143.27 26.1121 Q1144.04 26.1121 1144.97 26.2337 Q1145.9 26.3147 1147.04 26.5172 L1147.08 34.1734 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1154.89 27.2059 L1162.35 27.2059 L1162.35 72.576 L1154.89 72.576 L1154.89 27.2059 M1154.89 9.54393 L1162.35 9.54393 L1162.35 18.9825 L1154.89 18.9825 L1154.89 9.54393 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1216.75 48.0275 L1216.75 51.6733 L1182.48 51.6733 Q1182.97 59.3701 1187.1 63.421 Q1191.27 67.4314 1198.68 67.4314 Q1202.98 67.4314 1206.99 66.3781 Q1211.04 65.3249 1215.01 63.2184 L1215.01 70.267 Q1211 71.9684 1206.79 72.8596 Q1202.57 73.7508 1198.24 73.7508 Q1187.38 73.7508 1181.02 67.4314 Q1174.7 61.1119 1174.7 50.3365 Q1174.7 39.1965 1180.7 32.6746 Q1186.73 26.1121 1196.94 26.1121 Q1206.1 26.1121 1211.4 32.0264 Q1216.75 37.9003 1216.75 48.0275 M1209.3 45.84 Q1209.22 39.7232 1205.85 36.0774 Q1202.53 32.4315 1197.02 32.4315 Q1190.78 32.4315 1187.02 35.9558 Q1183.29 39.4801 1182.72 45.8805 L1209.3 45.84 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1257.91 28.5427 L1257.91 35.5912 Q1254.75 33.9709 1251.35 33.1607 Q1247.94 32.3505 1244.3 32.3505 Q1238.75 32.3505 1235.95 34.0519 Q1233.2 35.7533 1233.2 39.156 Q1233.2 41.7486 1235.18 43.2475 Q1237.17 44.7058 1243.16 46.0426 L1245.72 46.6097 Q1253.66 48.3111 1256.98 51.4303 Q1260.34 54.509 1260.34 60.0587 Q1260.34 66.3781 1255.32 70.0644 Q1250.33 73.7508 1241.58 73.7508 Q1237.94 73.7508 1233.97 73.0216 Q1230.04 72.3329 1225.66 70.9151 L1225.66 63.2184 Q1229.8 65.3654 1233.81 66.4591 Q1237.82 67.5124 1241.75 67.5124 Q1247.01 67.5124 1249.85 65.73 Q1252.68 63.9071 1252.68 60.6258 Q1252.68 57.5877 1250.62 55.9673 Q1248.59 54.3469 1241.66 52.8481 L1239.07 52.2405 Q1232.14 50.7821 1229.07 47.7845 Q1225.99 44.7463 1225.99 39.4801 Q1225.99 33.0797 1230.52 29.5959 Q1235.06 26.1121 1243.41 26.1121 Q1247.54 26.1121 1251.18 26.7198 Q1254.83 27.3274 1257.91 28.5427 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1319.2 49.7694 Q1310.17 49.7694 1306.68 51.8354 Q1303.2 53.9013 1303.2 58.8839 Q1303.2 62.8538 1305.79 65.2034 Q1308.42 67.5124 1312.92 67.5124 Q1319.12 67.5124 1322.84 63.1374 Q1326.61 58.7219 1326.61 51.4303 L1326.61 49.7694 L1319.2 49.7694 M1334.07 46.6907 L1334.07 72.576 L1326.61 72.576 L1326.61 65.6895 Q1324.06 69.8214 1320.25 71.8063 Q1316.44 73.7508 1310.93 73.7508 Q1303.97 73.7508 1299.84 69.8619 Q1295.74 65.9325 1295.74 59.3701 Q1295.74 51.7138 1300.85 47.825 Q1305.99 43.9361 1316.16 43.9361 L1326.61 43.9361 L1326.61 43.2069 Q1326.61 38.0623 1323.21 35.2672 Q1319.85 32.4315 1313.73 32.4315 Q1309.84 32.4315 1306.15 33.3632 Q1302.47 34.295 1299.07 36.1584 L1299.07 29.2718 Q1303.16 27.692 1307.01 26.9223 Q1310.85 26.1121 1314.5 26.1121 Q1324.34 26.1121 1329.2 31.2163 Q1334.07 36.3204 1334.07 46.6907 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1356.63 65.7705 L1356.63 89.8329 L1349.13 89.8329 L1349.13 27.2059 L1356.63 27.2059 L1356.63 34.0924 Q1358.98 30.0415 1362.54 28.0971 Q1366.15 26.1121 1371.13 26.1121 Q1379.4 26.1121 1384.54 32.6746 Q1389.72 39.2371 1389.72 49.9314 Q1389.72 60.6258 1384.54 67.1883 Q1379.4 73.7508 1371.13 73.7508 Q1366.15 73.7508 1362.54 71.8063 Q1358.98 69.8214 1356.63 65.7705 M1381.99 49.9314 Q1381.99 41.7081 1378.58 37.0496 Q1375.22 32.3505 1369.31 32.3505 Q1363.39 32.3505 1359.99 37.0496 Q1356.63 41.7081 1356.63 49.9314 Q1356.63 58.1548 1359.99 62.8538 Q1363.39 67.5124 1369.31 67.5124 Q1375.22 67.5124 1378.58 62.8538 Q1381.99 58.1548 1381.99 49.9314 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1409.29 65.7705 L1409.29 89.8329 L1401.8 89.8329 L1401.8 27.2059 L1409.29 27.2059 L1409.29 34.0924 Q1411.64 30.0415 1415.21 28.0971 Q1418.81 26.1121 1423.79 26.1121 Q1432.06 26.1121 1437.2 32.6746 Q1442.39 39.2371 1442.39 49.9314 Q1442.39 60.6258 1437.2 67.1883 Q1432.06 73.7508 1423.79 73.7508 Q1418.81 73.7508 1415.21 71.8063 Q1411.64 69.8214 1409.29 65.7705 M1434.65 49.9314 Q1434.65 41.7081 1431.25 37.0496 Q1427.88 32.3505 1421.97 32.3505 Q1416.06 32.3505 1412.65 37.0496 Q1409.29 41.7081 1409.29 49.9314 Q1409.29 58.1548 1412.65 62.8538 Q1416.06 67.5124 1421.97 67.5124 Q1427.88 67.5124 1431.25 62.8538 Q1434.65 58.1548 1434.65 49.9314 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1481.03 34.1734 Q1479.78 33.4443 1478.28 33.1202 Q1476.82 32.7556 1475.04 32.7556 Q1468.72 32.7556 1465.31 36.8875 Q1461.95 40.9789 1461.95 48.6757 L1461.95 72.576 L1454.46 72.576 L1454.46 27.2059 L1461.95 27.2059 L1461.95 34.2544 Q1464.3 30.1225 1468.07 28.1376 Q1471.84 26.1121 1477.22 26.1121 Q1477.99 26.1121 1478.93 26.2337 Q1479.86 26.3147 1480.99 26.5172 L1481.03 34.1734 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1504.61 32.4315 Q1498.61 32.4315 1495.13 37.1306 Q1491.65 41.7891 1491.65 49.9314 Q1491.65 58.0738 1495.09 62.7728 Q1498.57 67.4314 1504.61 67.4314 Q1510.56 67.4314 1514.05 62.7323 Q1517.53 58.0333 1517.53 49.9314 Q1517.53 41.8701 1514.05 37.1711 Q1510.56 32.4315 1504.61 32.4315 M1504.61 26.1121 Q1514.33 26.1121 1519.88 32.4315 Q1525.43 38.7509 1525.43 49.9314 Q1525.43 61.0714 1519.88 67.4314 Q1514.33 73.7508 1504.61 73.7508 Q1494.85 73.7508 1489.3 67.4314 Q1483.79 61.0714 1483.79 49.9314 Q1483.79 38.7509 1489.3 32.4315 Q1494.85 26.1121 1504.61 26.1121 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1572.95 27.2059 L1556.54 49.2833 L1573.8 72.576 L1565.01 72.576 L1551.8 54.752 L1538.6 72.576 L1529.81 72.576 L1547.43 48.8377 L1531.3 27.2059 L1540.09 27.2059 L1552.13 43.369 L1564.16 27.2059 L1572.95 27.2059 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1584.33 27.2059 L1591.78 27.2059 L1591.78 72.576 L1584.33 72.576 L1584.33 27.2059 M1584.33 9.54393 L1591.78 9.54393 L1591.78 18.9825 L1584.33 18.9825 L1584.33 9.54393 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1642.7 35.9153 Q1645.5 30.8922 1649.39 28.5022 Q1653.28 26.1121 1658.54 26.1121 Q1665.63 26.1121 1669.48 31.0947 Q1673.33 36.0368 1673.33 45.1919 L1673.33 72.576 L1665.83 72.576 L1665.83 45.4349 Q1665.83 38.913 1663.53 35.7533 Q1661.22 32.5936 1656.48 32.5936 Q1650.68 32.5936 1647.32 36.4419 Q1643.96 40.2903 1643.96 46.9338 L1643.96 72.576 L1636.47 72.576 L1636.47 45.4349 Q1636.47 38.8725 1634.16 35.7533 Q1631.85 32.5936 1627.03 32.5936 Q1621.32 32.5936 1617.95 36.4824 Q1614.59 40.3308 1614.59 46.9338 L1614.59 72.576 L1607.1 72.576 L1607.1 27.2059 L1614.59 27.2059 L1614.59 34.2544 Q1617.14 30.082 1620.71 28.0971 Q1624.27 26.1121 1629.17 26.1121 Q1634.12 26.1121 1637.56 28.6237 Q1641.04 31.1352 1642.7 35.9153 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1708.81 49.7694 Q1699.78 49.7694 1696.3 51.8354 Q1692.81 53.9013 1692.81 58.8839 Q1692.81 62.8538 1695.41 65.2034 Q1698.04 67.5124 1702.54 67.5124 Q1708.73 67.5124 1712.46 63.1374 Q1716.23 58.7219 1716.23 51.4303 L1716.23 49.7694 L1708.81 49.7694 M1723.68 46.6907 L1723.68 72.576 L1716.23 72.576 L1716.23 65.6895 Q1713.68 69.8214 1709.87 71.8063 Q1706.06 73.7508 1700.55 73.7508 Q1693.58 73.7508 1689.45 69.8619 Q1685.36 65.9325 1685.36 59.3701 Q1685.36 51.7138 1690.46 47.825 Q1695.61 43.9361 1705.78 43.9361 L1716.23 43.9361 L1716.23 43.2069 Q1716.23 38.0623 1712.83 35.2672 Q1709.46 32.4315 1703.35 32.4315 Q1699.46 32.4315 1695.77 33.3632 Q1692.08 34.295 1688.68 36.1584 L1688.68 29.2718 Q1692.77 27.692 1696.62 26.9223 Q1700.47 26.1121 1704.12 26.1121 Q1713.96 26.1121 1718.82 31.2163 Q1723.68 36.3204 1723.68 46.6907 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1746.41 14.324 L1746.41 27.2059 L1761.76 27.2059 L1761.76 32.9987 L1746.41 32.9987 L1746.41 57.6282 Q1746.41 63.1779 1747.91 64.7578 Q1749.45 66.3376 1754.1 66.3376 L1761.76 66.3376 L1761.76 72.576 L1754.1 72.576 Q1745.48 72.576 1742.19 69.3758 Q1738.91 66.1351 1738.91 57.6282 L1738.91 32.9987 L1733.44 32.9987 L1733.44 27.2059 L1738.91 27.2059 L1738.91 14.324 L1746.41 14.324 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1771.56 27.2059 L1779.02 27.2059 L1779.02 72.576 L1771.56 72.576 L1771.56 27.2059 M1771.56 9.54393 L1779.02 9.54393 L1779.02 18.9825 L1771.56 18.9825 L1771.56 9.54393 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1812.19 32.4315 Q1806.2 32.4315 1802.71 37.1306 Q1799.23 41.7891 1799.23 49.9314 Q1799.23 58.0738 1802.67 62.7728 Q1806.16 67.4314 1812.19 67.4314 Q1818.15 67.4314 1821.63 62.7323 Q1825.12 58.0333 1825.12 49.9314 Q1825.12 41.8701 1821.63 37.1711 Q1818.15 32.4315 1812.19 32.4315 M1812.19 26.1121 Q1821.92 26.1121 1827.47 32.4315 Q1833.02 38.7509 1833.02 49.9314 Q1833.02 61.0714 1827.47 67.4314 Q1821.92 73.7508 1812.19 73.7508 Q1802.43 73.7508 1796.88 67.4314 Q1791.37 61.0714 1791.37 49.9314 Q1791.37 38.7509 1796.88 32.4315 Q1802.43 26.1121 1812.19 26.1121 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1883.08 45.1919 L1883.08 72.576 L1875.63 72.576 L1875.63 45.4349 Q1875.63 38.994 1873.12 35.7938 Q1870.61 32.5936 1865.58 32.5936 Q1859.55 32.5936 1856.06 36.4419 Q1852.58 40.2903 1852.58 46.9338 L1852.58 72.576 L1845.09 72.576 L1845.09 27.2059 L1852.58 27.2059 L1852.58 34.2544 Q1855.25 30.163 1858.86 28.1376 Q1862.51 26.1121 1867.25 26.1121 Q1875.06 26.1121 1879.07 30.9732 Q1883.08 35.7938 1883.08 45.1919 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><polyline clip-path="url(#clip632)" style="stroke:#cd6600; stroke-linecap:round; stroke-linejoin:round; stroke-width:8; stroke-opacity:1; fill:none" points="336.351,1386.4 727.886,240.619 1119.42,164.233 1510.96,160.414 1902.49,160.261 2294.03,160.256 "/>
<circle clip-path="url(#clip632)" cx="336.351" cy="1386.4" r="18" fill="#cd6600" fill-rule="evenodd" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-width="3.2"/>
<circle clip-path="url(#clip632)" cx="727.886" cy="240.619" r="18" fill="#cd6600" fill-rule="evenodd" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-width="3.2"/>
<circle clip-path="url(#clip632)" cx="1119.42" cy="164.233" r="18" fill="#cd6600" fill-rule="evenodd" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-width="3.2"/>
<circle clip-path="url(#clip632)" cx="1510.96" cy="160.414" r="18" fill="#cd6600" fill-rule="evenodd" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-width="3.2"/>
<circle clip-path="url(#clip632)" cx="1902.49" cy="160.261" r="18" fill="#cd6600" fill-rule="evenodd" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-width="3.2"/>
<circle clip-path="url(#clip632)" cx="2294.03" cy="160.256" r="18" fill="#cd6600" fill-rule="evenodd" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-width="3.2"/>
<path clip-path="url(#clip630)" d="M1741.47 1379.86 L2283.58 1379.86 L2283.58 1276.18 L1741.47 1276.18  Z" fill="#ffffff" fill-rule="evenodd" fill-opacity="1"/>
<polyline clip-path="url(#clip630)" style="stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none" points="1741.47,1379.86 2283.58,1379.86 2283.58,1276.18 1741.47,1276.18 1741.47,1379.86 "/>
<polyline clip-path="url(#clip630)" style="stroke:#cd6600; stroke-linecap:round; stroke-linejoin:round; stroke-width:8; stroke-opacity:1; fill:none" points="1764.52,1328.02 1902.87,1328.02 "/>
<circle clip-path="url(#clip630)" cx="1833.69" cy="1328.02" r="19.2142" fill="#cd6600" fill-rule="evenodd" fill-opacity="1" stroke="#000000" stroke-opacity="1" stroke-width="3.72364"/>
<path clip-path="url(#clip630)" d="M1942.43 1309.28 L1942.43 1312.82 L1938.35 1312.82 Q1936.06 1312.82 1935.16 1313.75 Q1934.28 1314.67 1934.28 1317.08 L1934.28 1319.37 L1941.29 1319.37 L1941.29 1322.68 L1934.28 1322.68 L1934.28 1345.3 L1930 1345.3 L1930 1322.68 L1925.92 1322.68 L1925.92 1319.37 L1930 1319.37 L1930 1317.56 Q1930 1313.24 1932.01 1311.27 Q1934.02 1309.28 1938.4 1309.28 L1942.43 1309.28 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1965.69 1353.17 L1965.69 1356.48 L1941.06 1356.48 L1941.06 1353.17 L1965.69 1353.17 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M1981.48 1332.26 Q1976.32 1332.26 1974.33 1333.44 Q1972.33 1334.63 1972.33 1337.47 Q1972.33 1339.74 1973.82 1341.08 Q1975.32 1342.4 1977.89 1342.4 Q1981.43 1342.4 1983.56 1339.9 Q1985.71 1337.38 1985.71 1333.21 L1985.71 1332.26 L1981.48 1332.26 M1989.97 1330.5 L1989.97 1345.3 L1985.71 1345.3 L1985.71 1341.36 Q1984.26 1343.72 1982.08 1344.86 Q1979.9 1345.97 1976.76 1345.97 Q1972.77 1345.97 1970.41 1343.75 Q1968.08 1341.5 1968.08 1337.75 Q1968.08 1333.38 1970.99 1331.15 Q1973.93 1328.93 1979.74 1328.93 L1985.71 1328.93 L1985.71 1328.51 Q1985.71 1325.57 1983.77 1323.98 Q1981.85 1322.36 1978.35 1322.36 Q1976.13 1322.36 1974.02 1322.89 Q1971.92 1323.42 1969.97 1324.49 L1969.97 1320.55 Q1972.31 1319.65 1974.51 1319.21 Q1976.71 1318.75 1978.79 1318.75 Q1984.42 1318.75 1987.2 1321.66 Q1989.97 1324.58 1989.97 1330.5 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2002.87 1341.41 L2002.87 1355.16 L1998.58 1355.16 L1998.58 1319.37 L2002.87 1319.37 L2002.87 1323.31 Q2004.21 1320.99 2006.25 1319.88 Q2008.31 1318.75 2011.15 1318.75 Q2015.88 1318.75 2018.82 1322.5 Q2021.78 1326.25 2021.78 1332.36 Q2021.78 1338.47 2018.82 1342.22 Q2015.88 1345.97 2011.15 1345.97 Q2008.31 1345.97 2006.25 1344.86 Q2004.21 1343.72 2002.87 1341.41 M2017.36 1332.36 Q2017.36 1327.66 2015.41 1325 Q2013.49 1322.31 2010.11 1322.31 Q2006.73 1322.31 2004.79 1325 Q2002.87 1327.66 2002.87 1332.36 Q2002.87 1337.06 2004.79 1339.74 Q2006.73 1342.4 2010.11 1342.4 Q2013.49 1342.4 2015.41 1339.74 Q2017.36 1337.06 2017.36 1332.36 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2032.96 1341.41 L2032.96 1355.16 L2028.68 1355.16 L2028.68 1319.37 L2032.96 1319.37 L2032.96 1323.31 Q2034.3 1320.99 2036.34 1319.88 Q2038.4 1318.75 2041.25 1318.75 Q2045.97 1318.75 2048.91 1322.5 Q2051.87 1326.25 2051.87 1332.36 Q2051.87 1338.47 2048.91 1342.22 Q2045.97 1345.97 2041.25 1345.97 Q2038.4 1345.97 2036.34 1344.86 Q2034.3 1343.72 2032.96 1341.41 M2047.45 1332.36 Q2047.45 1327.66 2045.51 1325 Q2043.58 1322.31 2040.2 1322.31 Q2036.83 1322.31 2034.88 1325 Q2032.96 1327.66 2032.96 1332.36 Q2032.96 1337.06 2034.88 1339.74 Q2036.83 1342.4 2040.2 1342.4 Q2043.58 1342.4 2045.51 1339.74 Q2047.45 1337.06 2047.45 1332.36 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2073.95 1323.35 Q2073.24 1322.94 2072.38 1322.75 Q2071.55 1322.54 2070.53 1322.54 Q2066.92 1322.54 2064.97 1324.9 Q2063.05 1327.24 2063.05 1331.64 L2063.05 1345.3 L2058.77 1345.3 L2058.77 1319.37 L2063.05 1319.37 L2063.05 1323.4 Q2064.39 1321.04 2066.55 1319.9 Q2068.7 1318.75 2071.78 1318.75 Q2072.22 1318.75 2072.75 1318.81 Q2073.28 1318.86 2073.93 1318.98 L2073.95 1323.35 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2087.43 1322.36 Q2084 1322.36 2082.01 1325.04 Q2080.02 1327.7 2080.02 1332.36 Q2080.02 1337.01 2081.99 1339.69 Q2083.98 1342.36 2087.43 1342.36 Q2090.83 1342.36 2092.82 1339.67 Q2094.81 1336.99 2094.81 1332.36 Q2094.81 1327.75 2092.82 1325.06 Q2090.83 1322.36 2087.43 1322.36 M2087.43 1318.75 Q2092.98 1318.75 2096.15 1322.36 Q2099.32 1325.97 2099.32 1332.36 Q2099.32 1338.72 2096.15 1342.36 Q2092.98 1345.97 2087.43 1345.97 Q2081.85 1345.97 2078.68 1342.36 Q2075.53 1338.72 2075.53 1332.36 Q2075.53 1325.97 2078.68 1322.36 Q2081.85 1318.75 2087.43 1318.75 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2126.48 1319.37 L2117.1 1331.99 L2126.96 1345.3 L2121.94 1345.3 L2114.39 1335.11 L2106.85 1345.3 L2101.82 1345.3 L2111.89 1331.73 L2102.68 1319.37 L2107.7 1319.37 L2114.58 1328.61 L2121.45 1319.37 L2126.48 1319.37 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2143.21 1309.32 Q2140.11 1314.65 2138.61 1319.86 Q2137.1 1325.06 2137.1 1330.41 Q2137.1 1335.76 2138.61 1341.01 Q2140.13 1346.25 2143.21 1351.55 L2139.51 1351.55 Q2136.04 1346.11 2134.3 1340.85 Q2132.59 1335.6 2132.59 1330.41 Q2132.59 1325.25 2134.3 1320.02 Q2136.01 1314.79 2139.51 1309.32 L2143.21 1309.32 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2162.26 1347.7 Q2160.46 1352.33 2158.75 1353.75 Q2157.03 1355.16 2154.16 1355.16 L2150.76 1355.16 L2150.76 1351.59 L2153.26 1351.59 Q2155.02 1351.59 2155.99 1350.76 Q2156.96 1349.93 2158.14 1346.82 L2158.91 1344.88 L2148.42 1319.37 L2152.94 1319.37 L2161.04 1339.65 L2169.14 1319.37 L2173.65 1319.37 L2162.26 1347.7 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2180.62 1339.42 L2185.5 1339.42 L2185.5 1343.4 L2181.71 1350.81 L2178.72 1350.81 L2180.62 1343.4 L2180.62 1339.42 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2209.86 1310.74 L2216.82 1310.74 L2225.64 1334.25 L2234.51 1310.74 L2241.48 1310.74 L2241.48 1345.3 L2236.92 1345.3 L2236.92 1314.95 L2228 1338.65 L2223.31 1338.65 L2214.39 1314.95 L2214.39 1345.3 L2209.86 1345.3 L2209.86 1310.74 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /><path clip-path="url(#clip630)" d="M2249.9 1309.32 L2253.61 1309.32 Q2257.08 1314.79 2258.79 1320.02 Q2260.53 1325.25 2260.53 1330.41 Q2260.53 1335.6 2258.79 1340.85 Q2257.08 1346.11 2253.61 1351.55 L2249.9 1351.55 Q2252.98 1346.25 2254.49 1341.01 Q2256.01 1335.76 2256.01 1330.41 Q2256.01 1325.06 2254.49 1319.86 Q2252.98 1314.65 2249.9 1309.32 Z" fill="#000000" fill-rule="nonzero" fill-opacity="1" /></svg>
persist_js_state¤mimeimage/svg+xmllast_run_timestampAڢ-{has_pluto_hook_features¬rootassigneecell_id$133c3077-80f3-4515-a7e5-dfc3d56eb12fdepends_on_disabled_cells§runtimeZ{published_object_keysdepends_on_skipped_cells§errored$3839ea7d-2de4-48dd-9002-767afa5c0b61queued¤logsrunning¦outputbodypersist_js_state¤mimetext/plainlast_run_timestampAڢ-Lhas_pluto_hook_features¬rootassigneecell_id$3839ea7d-2de4-48dd-9002-767afa5c0b61depends_on_disabled_cells§runtimeLappublished_object_keysdepends_on_skipped_cells§errored$a1735f28-8cd3-4784-9686-b567e28b857aqueued¤logsrunning¦outputbody1.2213333333333334persist_js_state¤mimetext/plainlast_run_timestampAڢ-Qhas_pluto_hook_features¬rootassigneecell_id$a1735f28-8cd3-4784-9686-b567e28b857adepends_on_disabled_cells§runtime/published_object_keysdepends_on_skipped_cells§errored$ca8ff74a-e249-4587-9d52-a7434b59e688queued¤logsrunning¦outputbody<div class="markdown"><h1 id="Introduction">Introduction</h1>
<blockquote>
<p><strong>Welcome to <em>CHE 348: Numerical Methods in Chemical Engineering</em> in Fall 2024&#33;</strong></p>
</blockquote>
<p>The significant increase in available compute over the last several decades has led to a transformation in the methods and techniques for solving science and engineering problems. To use new tools effectively, it is crucial that we understand their <em>theoretical underpinnings</em> and <em>limitations,</em> as well as <em>practical details of their implementation.</em></p>
<p><strong>CHE 348</strong> is a one-semester advanced undergraduate course providing students with a fundamental understanding of <em>common numerical methods</em> spanning</p>
<ul>
<li><p>chemical engineering,</p>
</li>
<li><p>computational science, and</p>
</li>
<li><p>applied mathematics.</p>
</li>
</ul>
<p>In problems studied, <strong>the underlying physics is emphasized throughout,</strong> with principles from <strong><em>non-dimensionalization</em></strong> frequently employed.</p>
<p>While the ideas presented are general &#40;and thus not tied to any specific programming language&#41;, the entirety of the course will be carried out in <a href="https://julialang.org/">Julia</a>—a powerful, easy-to-use language designed for scientists and engineers.</p>
<h2 id="Administrative-items">Administrative items</h2>
<p>Lectures will be uploaded to the <a href="https://sahu-lab.github.io/teaching/che348/">course website</a>, and problem sets will be submitted via <a href="https://utexas.instructure.com/courses/1385450">canvas</a></p>
<p>In the discussion section yesterday &#40;26 Aug.&#41;, you should have <a href="https://julialang.org/downloads/">downloaded</a> Julia, installed it along with the <a href="https://plutojl.org/">Pluto</a> package. <a href="https://computationalthinking.mit.edu/Fall23/installation/">Video instructions</a> are provided to aid you in this.</p>
<h2 id="Starting-with-Julia">Starting with Julia</h2>
<p>Launch the <strong>REPL</strong> and verify that Julia is installed appropriately. You should be able to do the following on your machine:</p>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-has_pluto_hook_features¬rootassigneecell_id$ca8ff74a-e249-4587-9d52-a7434b59e688depends_on_disabled_cells§runtime ?published_object_keysdepends_on_skipped_cells§errored$0a8968f6-323e-4e17-b1aa-0560f78d7cdequeued¤logsrunning¦outputbody2.220446049250313e-16persist_js_state¤mimetext/plainlast_run_timestampAڢ-ڷhas_pluto_hook_features¬rootassigneecell_id$0a8968f6-323e-4e17-b1aa-0560f78d7cdedepends_on_disabled_cells§runtime-ߵpublished_object_keysdepends_on_skipped_cells§errored$08e0e572-edb6-4524-97fe-41efb437cd8cqueued¤logsrunning¦outputbody2.220446049250313e-16persist_js_state¤mimetext/plainlast_run_timestampAڢ-ŷhas_pluto_hook_features¬rootassigneecell_id$08e0e572-edb6-4524-97fe-41efb437cd8cdepends_on_disabled_cells§runtime,lpublished_object_keysdepends_on_skipped_cells§errored$b86837f1-2301-4ffb-92f9-890e0bd4e69fqueued¤logsrunning¦outputbody'<div class="markdown"><p>Analytically, we denote the truncation error—sometimes called the <a href="https://en.wikipedia.org/wiki/Residual_&#40;numerical_analysis&#41;"><strong><em>residual</em></strong></a>—as <span class="tex">$r&#40;y \, ; y_0, M&#41;$</span>, which is defined to be</p>
<p class="tex">$$\begin&#123;aligned&#125;
r&#40;y \, ; y_0, M&#41;
\, :&#61;&amp; \  \big\lvert
f&#40;y&#41;
\, - \, \tilde&#123;f&#125; &#40;y \, ; y_0, M&#41;
\big\rvert
\\&#91;4pt&#93;
\,  &#61;&amp; \, \sum_&#123;n &#61; M &#43; 1&#125;^\infty \dfrac&#123;1&#125;&#123;n&#33;&#125; \, \dfrac&#123;\mathrm&#123;d&#125;^n f&#40;y&#41;&#125;&#123;\mathrm&#123;d&#125; y^n&#125; \bigg\rvert_&#123;y &#61; y_0&#125; \big&#40;y - y_0 \big&#41;^&#123;\&#33; n&#125;
~.
\end&#123;aligned&#125;$$</p>
<p>Notice that if the <span class="tex">$n^&#123;\text&#123;th&#125;&#125;$</span> derivative of the function <span class="tex">$f$</span> is &quot;of order unity,&quot; i.e. it is relatively constant for all <span class="tex">$n$</span>, then as <span class="tex">$n$</span> increases the <span class="tex">$n&#33;$</span> in the denominator will become larger than the <span class="tex">$&#40;y - y_0&#41;^n$</span> in the numerator. When using Taylor series, we are generally concerned with how large the residual is for a given choice of <span class="tex">$y_0$</span> and <span class="tex">$M$</span>.</p>
<blockquote>
<p><strong><em>You will investigate this dependence in Problem Set 1</em></strong></p>
</blockquote>
<p>Note that you could, in principle, calculate all these errors—for many different choices of <span class="tex">$y_0$</span> and <span class="tex">$M$</span>— one by one. However, these sorts of repetitive tasks are much more conveniently done with a computer&#33; Let us begin to see how to do so.</p>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-has_pluto_hook_features¬rootassigneecell_id$b86837f1-2301-4ffb-92f9-890e0bd4e69fdepends_on_disabled_cells§runtime =ٵpublished_object_keysdepends_on_skipped_cells§errored$6083bfe2-79e6-4f2d-b511-bb904d4d6838queued¤logsrunning¦outputbody2.220446049250313e-16persist_js_state¤mimetext/plainlast_run_timestampAڢ-has_pluto_hook_features¬rootassigneecell_id$6083bfe2-79e6-4f2d-b511-bb904d4d6838depends_on_disabled_cells§runtime-published_object_keysdepends_on_skipped_cells§errored$f43442e6-8ca3-4def-b8d0-ac3a325ddd3bqueued¤logsrunning¦outputbody<div class="markdown"><div class="admonition question"><p class="admonition-title">Why does our error stop decreasing?</p><p>Notice that after a certain value of <code>M</code> &#40;11 in this case&#41;, the residual does not continue to decrease—even though we would naively expect it to, as we are including more terms in the Taylor series. How are these two observations consistent?</p>
</div>
<blockquote>
<p><strong>Only a finite amount of memory</strong> is allocated for any variable, which means that <em><strong>very</strong> small changes to a variable will not be recorded&#33;</em> This is the concept of <a href="https://en.wikipedia.org/wiki/Machine_epsilon">machine precision</a>, which will be talked about in discussion section #3. As a preview, compare the &quot;error floor&quot; above with the value of <span class="tex">$2^&#123;-52&#125;$</span> below.</p>
<p><em>Note: this agreement is specific to how your computer stores numbers; in my case I have a 64-bit machine.</em></p>
</blockquote>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-Whas_pluto_hook_features¬rootassigneecell_id$f43442e6-8ca3-4def-b8d0-ac3a325ddd3bdepends_on_disabled_cells§runtime 4published_object_keysdepends_on_skipped_cells§errored$12084602-3a09-47f3-864b-55cbac042795queued¤logsrunning¦outputbody<div class="markdown"><h2 id="References">References</h2>
<p>The following are some useful references, in case you want to learn more. This list is not exhaustive, as there are many great resources&#33;</p>
<ul>
<li><p><a href="https://youtu.be/3d6DsjIBzJ4">3Blue1Brown</a></p>
</li>
<li><p><a href="https://en.wikipedia.org/wiki/Taylor_series">Wikipedia</a></p>
</li>
<li><p><a href="https://mathworld.wolfram.com/TaylorSeries.html">Wolfram MathWorld</a></p>
</li>
</ul>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-has_pluto_hook_features¬rootassigneecell_id$12084602-3a09-47f3-864b-55cbac042795depends_on_disabled_cells§runtime 	wpublished_object_keysdepends_on_skipped_cells§errored$d0225810-052b-480b-895c-16732badbf84queued¤logsrunning¦outputbody0.2persist_js_state¤mimetext/plainlast_run_timestampAڢ-~|has_pluto_hook_features¬rootassigneeycell_id$d0225810-052b-480b-895c-16732badbf84depends_on_disabled_cells§runtime*Dpublished_object_keysdepends_on_skipped_cells§errored$40f12b03-98f0-4b13-b240-141f17146037queued¤logsrunning¦outputbody2.220446049250313e-16persist_js_state¤mimetext/plainlast_run_timestampAڢ-=has_pluto_hook_features¬rootassigneecell_id$40f12b03-98f0-4b13-b240-141f17146037depends_on_disabled_cells§runtime-*published_object_keysdepends_on_skipped_cells§errored$b4669b9d-0846-49f6-a7eb-3f8ca31a25dfqueued¤logsrunning¦outputbody^<div class="markdown"><p>How does this compare to the actual value of the function?</p>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-&Bhas_pluto_hook_features¬rootassigneecell_id$b4669b9d-0846-49f6-a7eb-3f8ca31a25dfdepends_on_disabled_cells§runtime spublished_object_keysdepends_on_skipped_cells§errored$363e3ad3-c1ce-4a6c-8113-96e170bfca7aqueued¤logsrunning¦outputbody1.2213333333333334persist_js_state¤mimetext/plainlast_run_timestampAڢ-4has_pluto_hook_features¬rootassigneef_approxcell_id$363e3ad3-c1ce-4a6c-8113-96e170bfca7adepends_on_disabled_cells§runtimedbpublished_object_keysdepends_on_skipped_cells§errored$1756de61-190e-4926-8c81-d5b7e9d6de10queued¤logsrunning¦outputbody2.886579864025407e-14persist_js_state¤mimetext/plainlast_run_timestampAڢ-3has_pluto_hook_features¬rootassigneecell_id$1756de61-190e-4926-8c81-d5b7e9d6de10depends_on_disabled_cells§runtime;published_object_keysdepends_on_skipped_cells§errored$8a7e706c-1934-42f8-8a7b-9f2b102ce2ecqueued¤logsrunning¦outputbody<div class="markdown"><h1 id="Taylor-series">Taylor series</h1>
<h2 id="Review">Review</h2>
<p>The <a href="https://en.wikipedia.org/wiki/Taylor_series">Taylor series</a> is often said to be the most important concept from calculus. From <a href="https://en.wikipedia.org/wiki/Taylor_series">Wikipedia</a>:</p>
<blockquote>
<p>The Taylor series of a function is an infinite sum of terms that are expressed in terms of the function&#39;s derivatives at a single point. For most common functions, the function and the sum of its Taylor series are equal near this point.</p>
</blockquote>
<p>Consider a function <span class="tex">$f&#40;y&#41;$</span>, where <span class="tex">$y \in \mathbb&#123;C&#125;$</span> and <span class="tex">$f \in \mathbb&#123;C&#125;$</span>, for which one could write</p>
<p class="tex">$$\begin&#123;aligned&#125;
f&#40;y&#41;
\, &amp;&#61; \, f&#40;y_0&#41;
\, &#43; \, f&#39;&#40;y_0&#41; \, &#40;y - y_0&#41;
\, &#43; \, \dfrac&#123;1&#125;&#123;2&#33;&#125; f&#39;&#39;&#40;y_0&#41; \, &#40;y - y_0&#41;^2
\, &#43; \, \ldots
\\&#91;5pt&#93;
\, &amp;&#61; \, \sum_&#123;n &#61; 0&#125;^\infty \dfrac&#123;1&#125;&#123;n&#33;&#125; \, \dfrac&#123;\mathrm&#123;d&#125;^n f&#40;y&#41;&#125;&#123;\mathrm&#123;d&#125; y^n&#125; \bigg\rvert_&#123;y &#61; y_0&#125; \big&#40;y - y_0 \big&#41;^&#123;\&#33; n&#125;
~.
\end&#123;aligned&#125;$$</p>
<p>The Taylor series yields many of the relations you have seen in the past. For example,</p>
<p class="tex">$$\mathrm&#123;e&#125;^y
\, &#61; \, 1
\, &#43; \, y
\, &#43; \, \dfrac&#123;y^2&#125;&#123;2&#33;&#125;
\, &#43; \, \dfrac&#123;y^3&#125;&#123;3&#33;&#125;
\, &#43; \, \ldots$$</p>
<div class="admonition question"><p class="admonition-title">Practice Question</p><p>What value is the above series expanded about?</p>
</div>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-ɷhas_pluto_hook_features¬rootassigneecell_id$8a7e706c-1934-42f8-8a7b-9f2b102ce2ecdepends_on_disabled_cells§runtime 0۵published_object_keysdepends_on_skipped_cells§errored$395b20fe-7ddf-4b83-8e55-ed1a06714b49queued¤logslinemsg0
1
2
3
text/plaincell_id$395b20fe-7ddf-4b83-8e55-ed1a06714b49kwargsidPlutoRunner_d1acb81efileP/home/runner/.julia/packages/Pluto/F6SNP/src/runner/PlutoRunner/src/io/stdout.jlgroupstdoutlevelLogLevel(-555)running¦outputbodypersist_js_state¤mimetext/plainlast_run_timestampAڢ-Ƿhas_pluto_hook_features¬rootassigneecell_id$395b20fe-7ddf-4b83-8e55-ed1a06714b49depends_on_disabled_cells§runtimeηpublished_object_keysdepends_on_skipped_cells§errored$3078d320-678d-4bb6-9742-4f3720bca392queued¤logsrunning¦outputbody0calc_f_residual (generic function with 1 method)persist_js_state¤mimetext/plainlast_run_timestampAڢ-E̷has_pluto_hook_features¬rootassigneecell_id$3078d320-678d-4bb6-9742-4f3720bca392depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$8a4e56fd-e98c-4022-bf9a-e76c3e64fda6queued¤logsrunning¦outputbody<div class="markdown"><h3 id="Initializing-packages">Initializing packages</h3>
<p><em>When running this notebook for the first time, this could take up to 10 minutes. Hang in there&#33;</em></p>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-˷has_pluto_hook_features¬rootassigneecell_id$8a4e56fd-e98c-4022-bf9a-e76c3e64fda6depends_on_disabled_cells§runtime Tpublished_object_keysdepends_on_skipped_cells§errored$f2646139-cd94-425f-b517-4e1208fbdb71queued¤logsrunning¦outputbody*<div class="markdown"><hr />
<hr />
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-[ٷhas_pluto_hook_features¬rootassigneecell_id$f2646139-cd94-425f-b517-4e1208fbdb71depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored$16fd3897-0b76-47a8-8253-6e267cbd9960queued¤logsrunning¦outputbody<div class="markdown"><div class="admonition info"><p class="admonition-title">Objective</p><p>Use a <code>for</code> loop to calculate <code>f_approx</code>, which works for different values of <code>M</code></p>
</div>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-\has_pluto_hook_features¬rootassigneecell_id$16fd3897-0b76-47a8-8253-6e267cbd9960depends_on_disabled_cells§runtime yӵpublished_object_keysdepends_on_skipped_cells§errored$17da61cf-ce3f-4d92-8537-81eaf35a927aqueued¤logsrunning¦outputbody2.220446049250313e-16persist_js_state¤mimetext/plainlast_run_timestampAڢ-Z6has_pluto_hook_features¬rootassigneecell_id$17da61cf-ce3f-4d92-8537-81eaf35a927adepends_on_disabled_cells§runtime1published_object_keysdepends_on_skipped_cells§errored$4786c577-85ea-44f6-8a93-5c9e6233eb70queued¤logsrunning¦outputbody.plot_f_approx (generic function with 1 method)persist_js_state¤mimetext/plainlast_run_timestampAڢ-~has_pluto_hook_features¬rootassigneecell_id$4786c577-85ea-44f6-8a93-5c9e6233eb70depends_on_disabled_cells§runtime n.published_object_keysdepends_on_skipped_cells§errored$6c753149-f441-48a8-b947-3d23f1cd30aequeued¤logsrunning¦outputbodyJ<div class="markdown"><div class="admonition info"><p class="admonition-title">Objective</p><p>Plot the approximate calculation of <span class="tex">$e^&#123;0.2&#125;$</span>, based on the Taylor series expansion, as a function of <code>M</code>—where <code>M</code> goes from <code>1</code> to <code>6</code></p>
</div>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-ַhas_pluto_hook_features¬rootassigneecell_id$6c753149-f441-48a8-b947-3d23f1cd30aedepends_on_disabled_cells§runtime i
published_object_keysdepends_on_skipped_cells§errored$f35c69f2-74c5-4001-a3f6-4d10e96ad4dfqueued¤logsrunning¦outputbody<div class="markdown"><h2 id="Numerical-approximation">Numerical approximation</h2>
<p>In a computer, one cannot sum an infinite number of terms. A <strong><a href="https://en.wikipedia.org/wiki/Truncation_error">truncation error</a></strong> arises because only a finite number of terms are included.</p>
<p>Let us <strong><em>define</em></strong> the function <span class="tex">$\tilde&#123;f&#125; &#40;y \, ; y_0, M&#41;$</span> as the truncated polynomial series of order <span class="tex">$M$</span>, written as</p>
<p class="tex">$$\tilde&#123;f&#125; &#40;y \,; y_0, M&#41;
\, :&#61; \, \sum_&#123;n &#61; 0&#125;^M \dfrac&#123;1&#125;&#123;n&#33;&#125; \, \dfrac&#123;\mathrm&#123;d&#125;^n f&#40;y&#41;&#125;&#123;\mathrm&#123;d&#125; y^n&#125; \bigg\rvert_&#123;y &#61; y_0&#125; \big&#40;y - y_0 \big&#41;^&#123;\&#33; n&#125;
~.$$</p>
<div class="admonition question"><p class="admonition-title">Practice Question</p><p>How many terms are in <span class="tex">$\tilde&#123;f&#125; &#40;y \, ; y_0, M&#41;$</span>?</p>
</div>
<div class="admonition question"><p class="admonition-title">Practice Question</p><p>What is the highest-order polynomial term in <span class="tex">$\tilde&#123;f&#125; &#40;y \, ; y_0, M&#41;$</span>?</p>
</div>
<p>Let us now use the exponential function as an example. To this end, we <em>choose</em></p>
<p class="tex">$$f&#40;y&#41;
\, &#61; \, \mathrm&#123;e&#125;^y
~,$$</p>
<p>for which</p>
<p class="tex">$$\tilde&#123;f&#125; &#40;y \, ; y_0 &#61; 0, M&#41;
\, :&#61; \, 1
\, &#43; \, y
\, &#43; \, \dfrac&#123;y^2&#125;&#123;2&#33;&#125;
\, &#43; \, \dfrac&#123;y^3&#125;&#123;3&#33;&#125;
\, &#43; \, \ldots
\, &#43; \, \dfrac&#123;y^M&#125;&#123;M&#33;&#125;
~.$$</p>
<hr />
<hr />
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-has_pluto_hook_features¬rootassigneecell_id$f35c69f2-74c5-4001-a3f6-4d10e96ad4dfdepends_on_disabled_cells§runtime 	published_object_keysdepends_on_skipped_cells§errored$98d6e55e-a63b-411c-b7cb-e5dd15e686f9queued¤logsrunning¦outputbody.calc_f_approx (generic function with 1 method)persist_js_state¤mimetext/plainlast_run_timestampAڢ-has_pluto_hook_features¬rootassigneecell_id$98d6e55e-a63b-411c-b7cb-e5dd15e686f9depends_on_disabled_cells§runtime *published_object_keysdepends_on_skipped_cells§errored$a9b6fcd4-9a8e-4d0d-bd13-e0dc318adbd3queued¤logsrunning¦outputbody<div class="markdown"><p>So far, our calculation of <code>f_approx</code> does not use the value of <code>M</code> that we set. There is an easy way for us to tell the computer to <strong>span</strong> a range of values&#33;</p>
<pre><code class="language-julia"># the following code executes a &quot;for loop&quot;
# notice that lines starting with &quot;#&quot; are comments &#40;they are not executed&#41;

for n &#61; 0:M
    println&#40;n&#41;
end</code></pre>
</div>persist_js_state¤mimetext/htmllast_run_timestampAڢ-has_pluto_hook_features¬rootassigneecell_id$a9b6fcd4-9a8e-4d0d-bd13-e0dc318adbd3depends_on_disabled_cells§runtime published_object_keysdepends_on_skipped_cells§errored©shortpathch01-taylor-series.jllast_save_timeAڢ-oin_temp_dir¨metadata