PageSourceSearch

https://fncbook.com/matlab/

html fncbook.com collected 2026-10-02 05:58:03 UTC 137,298 bytes, 35 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="" style="scroll-padding:60px"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>FNC: MATLAB edition - Fundamentals of Numerical Computation</title><meta property="og:title" content="FNC: MATLAB edition - Fundamentals of Numerical Computation"/><meta name="generator" content="mystmd"/><meta name="description" content="Online textbook for computational mathematics"/><meta property="og:description" content="Online textbook for computational mathematics"/><meta name="keywords" content=""/><link rel="stylesheet" href="/matlab/build/_assets/app-DJMC5ZIA.css"/><link rel="stylesheet" href="/matlab/build/_assets/thebe-core-VKVHG5VY.css"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/mpl_widget.css"/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-MlJdn/WNKDGXveldHDdyRP1R4CTHr3FeuDNfhsLPYrq2t0UBkUdK2jyTnXPEK1NQ" crossorigin="anonymous"/>
1<script defer="" data-domain="fncbook.com" src="https://plausible.io/js/plausible.js"></script>
1<link rel="icon" href="/matlab/favicon.ico"/><link rel="stylesheet" href="/matlab/myst-theme.css"/>
1<script>
2  const savedTheme = localStorage.getItem("myst:theme");
3  const theme = window.matchMedia("(prefers-color-scheme: light)").matches ? 'light' : 'dark';
4  const classes = document.documentElement.classList;
5  const hasAnyTheme = classes.contains('light') || classes.contains('dark');
6  if (!hasAnyTheme) classes.add(savedTheme ?? theme);
7</script>
7<script>(function(){var p=window.location.pathname;if(p.endsWith('/index.html'))window.location.replace((p.slice(0,-10)||'/')+window.location.search+window.location.hash);})();</script>
7</head><body class="m-0 transition-colors duration-500 bg-white dark:bg-stone-900"><div class="myst-skip-to-article fixed top-1 left-1 h-[0px] w-[0px] focus-within:z-40 focus-within:h-auto focus-within:w-auto bg-white overflow-hidden focus-within:p-2 focus-within:ring-1" aria-label="skip to content options"><a href="#skip-to-frontmatter" class="myst-skip-to-link block px-2 py-1 text-black underline">Skip to article frontmatter</a><a href="#skip-to-article" class="myst-skip-to-link block px-2 py-1 text-black underline">Skip to article content</a></div><dialog id="myst-no-css" style="position:fixed;left:0px;top:0px;width:100%;height:100vh;font-size:4rem;padding:1rem;color:black;background:white"><strong>Site not loading correctly?</strong><p>This may be due to an incorrect <code>BASE_URL</code> configuration. See<!-- --> <a href="https://mystmd.org/guide/deployment#deploy-base-url">the MyST Documentation</a> <!-- -->for reference.</p>
7<script>
8    (() => {
9            // Test for has-styling variable set by the MyST stylesheet
10            const node = document.currentScript.parentNode;
11            const hasCSS = window.getComputedStyle(node).getPropertyValue("--has-styling");
12            if (hasCSS === ""){
13                    node.showModal();
14            }
15
16    })()
17</script>
17</dialog><div class="myst-top-nav bg-white/80 backdrop-blur dark:bg-stone-900/80 shadow dark:shadow-stone-700 p-3 md:px-8 sticky w-full top-0 z-30 min-h-[60px]"><nav class="myst-top-nav-bar flex items-center justify-between flex-nowrap max-w-[1440px] mx-auto"><div class="flex flex-row xl:min-w-[19.5rem] mr-2 sm:mr-7 justify-start items-center shrink-0"><div class="block xl:hidden"><button class="myst-top-nav-menu-button flex items-center justify-center border-stone-400 text-stone-800 hover:text-stone-900 dark:text-stone-200 hover:dark:text-stone-100 w-10 h-10"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" width="1.5rem" height="1.5rem"><path fill-rule="evenodd" d="M3 6.75A.75.75 0 0 1 3.75 6h16.5a.75.75 0 0 1 0 1.5H3.75A.75.75 0 0 1 3 6.75ZM3 12a.75.75 0 0 1 .75-.75h16.5a.75.75 0 0 1 0 1.5H3.75A.75.75 0 0 1 3 12Zm0 5.25a.75.75 0 0 1 .75-.75h16.5a.75.75 0 0 1 0 1.5H3.75a.75.75 0 0 1-.75-.75Z" clip-rule="evenodd"></path></svg><span class="sr-only">Open Menu</span></button></div><a class="myst-home-link flex items-center ml-3 dark:text-white w-fit md:ml-5 xl:ml-7" href="/matlab/"><div class="myst-home-link-logo mr-3 flex items-center dark:bg-white dark:rounded px-1"><img src="/matlab/build/FNClogo-51799f2dbc8eab8fbeae902923c8a49e.png" class="h-9" alt="Fundamentals of Numerical Computation" height="2.25rem"/></div><span class="text-md sm:text-xl tracking-tight sm:mr-5 sr-only">Made with MyST</span></a></div><div class="flex items-center flex-grow w-auto"><div class="flex-grow hidden text-md lg:block"><div class="myst-top-nav-item relative inline-block mx-2 grow-0"><a href="https://fncbook.com/julia" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center w-full mx-2 py-1 text-md font-medium dark:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75">Julia</a></div><div class="myst-top-nav-item relative inline-block mx-2 grow-0"><a href="https://fncbook.com/matlab" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center w-full mx-2 py-1 text-md font-medium dark:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75">MATLAB</a></div><div class="myst-top-nav-item relative inline-block mx-2 grow-0"><a href="https://fncbook.com/python" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center w-full mx-2 py-1 text-md font-medium dark:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75">Python</a></div></div><div class="flex-grow block"></div><button type="button" aria-haspopup="dialog" aria-expanded="false" data-state="closed" class="myst-search-bar flex items-center h-10 aspect-square sm:w-64 text-left text-gray-600 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg bg-gray-50 dark:bg-gray-700 myst-search-bar-disabled hover:ring-blue-500 dark:hover:ring-blue-500 hover:border-blue-500 dark:hover:border-blue-500"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="p-2.5 h-10 w-10 aspect-square"><path fill-rule="evenodd" d="M10.5 3.75a6.75 6.75 0 1 0 0 13.5 6.75 6.75 0 0 0 0-13.5ZM2.25 10.5a8.25 8.25 0 1 1 14.59 5.28l4.69 4.69a.75.75 0 1 1-1.06 1.06l-4.69-4.69A8.25 8.25 0 0 1 2.25 10.5Z" clip-rule="evenodd"></path></svg><span class="myst-search-text-placeholder hidden sm:block grow">Search</span><div aria-hidden="true" class="myst-search-shortcut items-center hidden mx-1 font-mono text-sm text-gray-600 dark:text-gray-300 sm:flex gap-x-1"><kbd class="px-2 py-1 border border-gray-300 dark:border-gray-600 rounded-md shadow-[0px_2px_0px_0px_rgba(0,0,0,0.08)] dark:shadow-none hide-mac">CTRL</kbd><kbd class="px-2 py-1 border border-gray-300 dark:border-gray-600 rounded-md shadow-[0px_2px_0px_0px_rgba(0,0,0,0.08)] dark:shadow-none show-mac">⌘</kbd><kbd class="px-2 py-1 border border-gray-300 dark:border-gray-600 rounded-md shadow-[0px_2px_0px_0px_rgba(0,0,0,0.08)] dark:shadow-none ">K</kbd>
17<script>
18;(() => {
19const script = document.currentScript;
20const root = script.parentElement;
21
22const isMac = /mac/i.test(
23      window.navigator.userAgentData?.platform ?? window.navigator.userAgent,
24    );
25root.querySelectorAll(".hide-mac").forEach(node => {node.classList.add(isMac ? "hidden" : "block")});
26root.querySelectorAll(".show-mac").forEach(node => {node.classList.add(!isMac ? "hidden" : "block")});
27})()</script>
27</div></button><button class="myst-theme-button theme shrink-0 rounded-full border border-stone-700 dark:border-white hover:bg-neutral-100 border-solid overflow-hidden text-stone-700 dark:text-white hover:text-stone-500 dark:hover:text-neutral-800 w-8 h-8 ml-3" title="Toggle theme between light and dark mode" aria-label="Toggle theme between light and dark mode"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="myst-theme-moon-icon h-full w-full p-[18%] hidden dark:block"><path fill-rule="evenodd" d="M9.528 1.718a.75.75 0 0 1 .162.819A8.97 8.97 0 0 0 9 6a9 9 0 0 0 9 9 8.97 8.97 0 0 0 3.463-.69.75.75 0 0 1 .981.98 10.503 10.503 0 0 1-9.694 6.46c-5.799 0-10.5-4.7-10.5-10.5 0-4.368 2.667-8.112 6.46-9.694a.75.75 0 0 1 .818.162Z" clip-rule="evenodd"></path></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="myst-theme-sun-icon h-full w-full p-[18%] dark:hidden"><path d="M12 2.25a.75.75 0 0 1 .75.75v2.25a.75.75 0 0 1-1.5 0V3a.75.75 0 0 1 .75-.75ZM7.5 12a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM18.894 6.166a.75.75 0 0 0-1.06-1.06l-1.591 1.59a.75.75 0 1 0 1.06 1.061l1.591-1.59ZM21.75 12a.75.75 0 0 1-.75.75h-2.25a.75.75 0 0 1 0-1.5H21a.75.75 0 0 1 .75.75ZM17.834 18.894a.75.75 0 0 0 1.06-1.06l-1.59-1.591a.75.75 0 1 0-1.061 1.06l1.59 1.591ZM12 18a.75.75 0 0 1 .75.75V21a.75.75 0 0 1-1.5 0v-2.25A.75.75 0 0 1 12 18ZM7.758 17.303a.75.75 0 0 0-1.061-1.06l-1.591 1.59a.75.75 0 0 0 1.06 1.061l1.591-1.59ZM6 12a.75.75 0 0 1-.75.75H3a.75.75 0 0 1 0-1.5h2.25A.75.75 0 0 1 6 12ZM6.697 7.757a.75.75 0 0 0 1.06-1.06l-1.59-1.591a.75.75 0 0 0-1.061 1.06l1.59 1.591Z"></path></svg></button><div class="block sm:hidden"><div class="myst-action-menu relative" data-headlessui-state=""><div><button class="myst-action-menu-button flex text-sm bg-transparent rounded-full focus:outline-none" id="headlessui-menu-button-:Rt5cp:" type="button" aria-haspopup="menu" aria-expanded="false" data-headlessui-state=""><span class="sr-only">Open Menu</span><div class="flex items-center text-stone-200 hover:text-white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" width="2rem" height="2rem" class="p-1"><path fill-rule="evenodd" d="M10.5 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm0 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm0 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z" clip-rule="evenodd"></path></svg></div></button></div></div></div><div class="hidden sm:block"><a href="https://buymeacoffee.com/tobydriscoll" target="_blank" rel="noopener noreferrer" class="inline-block px-4 py-2 mx-1 mt-0 leading-none border rounded text-md border-stone-700 dark:border-white text-stone-700 dark:text-white hover:text-stone-500 dark:hover:text-neutral-800 hover:bg-neutral-100">Support us</a><a href="https://github.com/fncbook/fnc-matlab/issues/new/choose" target="_blank" rel="noopener noreferrer" class="inline-block px-4 py-2 mx-1 mt-0 leading-none border rounded text-md border-stone-700 dark:border-white text-stone-700 dark:text-white hover:text-stone-500 dark:hover:text-neutral-800 hover:bg-neutral-100">Suggestion box</a></div></div></nav></div><div class="myst-primary-sidebar fixed xl:article-grid grid-gap xl:w-full xl:pointer-events-none overflow-auto max-xl:w-[75vw] max-xl:max-w-[350px] max-xl:!top-0 max-xl:h-screen hidden z-10" style="top:60px"><div class="myst-primary-sidebar-pointer pointer-events-auto xl:col-margin-left flex-col overflow-hidden max-xl:h-full hidden xl:flex"><div class="myst-primary-sidebar-nav flex-grow py-6 overflow-y-auto primary-scrollbar"><nav aria-label="Navigation" class="myst-primary-sidebar-topnav overflow-y-hidden transition-opacity lg:hidden ml-3 xl:ml-0 mr-3 max-w-[350px]"><div class="w-full px-1 dark:text-white font-medium"><a href="https://fncbook.com/julia" target="_blank" rel="noopener noreferrer" class="myst-primary-sidebar-item-short p-2 my-1 rounded-lg hover:bg-slate-300/30 block break-words focus:outline outline-blue-200 outline-2 rounded">Julia</a><a href="https://fncbook.com/matlab" target="_blank" rel="noopener noreferrer" class="myst-primary-sidebar-item-short p-2 my-1 rounded-lg hover:bg-slate-300/30 block break-words focus:outline outline-blue-200 outline-2 rounded">MATLAB</a><a href="https://fncbook.com/python" target="_blank" rel="noopener noreferrer" class="myst-primary-sidebar-item-short p-2 my-1 rounded-lg hover:bg-slate-300/30 block break-words focus:outline outline-blue-200 outline-2 rounded">Python</a></div></nav><div class="my-3 border-b-2 lg:hidden"></div><nav aria-label="Table of Contents" class="myst-primary-sidebar-toc flex-grow overflow-y-hidden transition-opacity ml-3 xl:ml-0 mr-3 max-w-[350px]"><div class="myst-toc w-full px-1 dark:text-white"><a title="Fundamentals of Numerical Computation" class="block break-words focus:outline outline-blue-200 outline-2 rounded myst-toc-item p-2 my-1 rounded-lg hover:bg-slate-300/30 font-bold" href="/matlab/">FNC</a><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="Preface" class="block break-words rounded py-2 grow cursor-pointer">Preface</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R18psp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R18psp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><a title="How to use this book" class="block break-words focus:outline outline-blue-200 outline-2 rounded myst-toc-item p-2 my-1 rounded-lg hover:bg-slate-300/30" href="/matlab/usage">How to use this book</a><a title="MATLAB setup" class="block break-words focus:outline outline-blue-200 outline-2 rounded myst-toc-item p-2 my-1 rounded-lg hover:bg-slate-300/30" href="/matlab/setup">MATLAB setup</a><a title="Key language differences" class="block break-words focus:outline outline-blue-200 outline-2 rounded myst-toc-item p-2 my-1 rounded-lg hover:bg-slate-300/30" href="/matlab/differences">Key language differences</a><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="1. Introduction" class="block break-words rounded py-2 grow cursor-pointer">1. Introduction</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R38psp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R38psp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="2. Linear systems of equations" class="block break-words rounded py-2 grow cursor-pointer">2. Linear systems of equations</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R3opsp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R3opsp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="3. Overdetermined linear systems" class="block break-words rounded py-2 grow cursor-pointer">3. Overdetermined linear systems</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R48psp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R48psp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="4. Roots of nonlinear equations" class="block break-words rounded py-2 grow cursor-pointer">4. Roots of nonlinear equations</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R4opsp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R4opsp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="5. Piecewise interpolation" class="block break-words rounded py-2 grow cursor-pointer">5. Piecewise interpolation</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R58psp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R58psp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="6. Initial-value problems for ODEs" class="block break-words rounded py-2 grow cursor-pointer">6. Initial-value problems for ODEs</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R5opsp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R5opsp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="7. Matrix analysis" class="block break-words rounded py-2 grow cursor-pointer">7. Matrix analysis</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R68psp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R68psp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="8. Krylov methods in linear algebra" class="block break-words rounded py-2 grow cursor-pointer">8. Krylov methods in linear algebra</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R6opsp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R6opsp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="9. Global function approximation" class="block break-words rounded py-2 grow cursor-pointer">9. Global function approximation</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R78psp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R78psp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="10. Boundary-value problems" class="block break-words rounded py-2 grow cursor-pointer">10. Boundary-value problems</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R7opsp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R7opsp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="11. Diffusion equations" class="block break-words rounded py-2 grow cursor-pointer">11. Diffusion equations</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R88psp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R88psp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="12. Advection equations" class="block break-words rounded py-2 grow cursor-pointer">12. Advection equations</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R8opsp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R8opsp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="13. Two-dimensional problems" class="block break-words rounded py-2 grow cursor-pointer">13. Two-dimensional problems</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R98psp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R98psp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><div data-state="closed" class="w-full"><div class="myst-toc-item flex flex-row w-full gap-2 pl-2 my-1 text-left rounded-lg outline-none hover:bg-slate-300/30"><div title="Appendices" class="block break-words rounded py-2 grow cursor-pointer">Appendices</div>
27<button class="self-stretch flex items-center flex-none px-1 rounded-l-md group hover:bg-slate-300/30 focus-visible:outline outline-blue-200 outline-2" aria-label="Open Folder" type="button" aria-controls="radix-:R9opsp:" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon" class="transition-transform duration-300 group-data-[state=open]:rotate-90 text-text-slate-700 dark:text-slate-100" height="1.5rem" width="1.5rem"><path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z" clip-rule="evenodd"></path></svg></button></div><div data-state="closed" id="radix-:R9opsp:" hidden="" class="pl-3 pr-[2px] collapsible-content"></div></div><a title="Index" class="block break-words focus:outline outline-blue-200 outline-2 rounded myst-toc-item p-2 my-1 rounded-lg hover:bg-slate-300/30" href="/matlab/genindex">Index</a></div></nav></div><div class="myst-primary-sidebar-footer flex-none py-6 transition-all duration-700 translate-y-6 opacity-0 ml-3 xl:ml-0 mr-3 max-w-[350px]"><a class="myst-made-with-myst flex mx-auto text-gray-700 w-fit hover:text-blue-700 dark:text-gray-200 dark:hover:text-blue-400" href="https://mystmd.org/made-with-myst" target="_blank" rel="noreferrer"><svg style="width:24px;height:24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" stroke="none"><g id="icon"><path fill="currentColor" d="M23.8,54.8v-3.6l4.7-0.8V17.5l-4.7-0.8V13H36l13.4,31.7h0.2l13-31.7h12.6v3.6l-4.7,0.8v32.9l4.7,0.8v3.6h-15
28          v-3.6l4.9-0.8V20.8H65L51.4,53.3h-3.8l-14-32.5h-0.1l0.2,17.4v12.1l5,0.8v3.6H23.8z"></path><path fill="#F37726" d="M47,86.9c0-5.9-3.4-8.8-10.1-8.8h-8.4c-5.2,0-9.4-1.3-12.5-3.8c-3.1-2.5-5.4-6.2-6.8-11l4.8-1.6
29          c1.8,5.6,6.4,8.6,13.8,8.8h9.2c6.4,0,10.8,2.5,13.1,7.5c2.3-5,6.7-7.5,13.1-7.5h8.4c7.8,0,12.7-2.9,14.6-8.7l4.8,1.6
30          c-1.4,4.9-3.6,8.6-6.8,11.1c-3.1,2.5-7.3,3.7-12.4,3.8H63c-6.7,0-10,2.9-10,8.8"></path></g></svg>
30<span class="self-center ml-2 text-sm">Made with MyST</span></a></div></div></div><main class="article-grid grid-gap"><article class="article-grid subgrid-gap col-screen article content"><div class="hidden"></div><div id="skip-to-frontmatter" aria-label="article frontmatter" class="myst-fm-block mb-8 pt-9"><div class="myst-fm-block-header flex items-center mb-5 h-6 text-sm font-light"><div class="flex-grow"></div><div class="myst-fm-block-badges"><a href="https://github.com/fncbook/fnc-matlab" title="GitHub Repository: fncbook/fnc-matlab" target="_blank" rel="noopener noreferrer" class="myst-fm-github-link text-inherit hover:text-inherit"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" width="1.25rem" height="1.25rem" class="myst-fm-github-icon inline-block mr-1 opacity-60 hover:opacity-100"><path d="M12 2.5c-5.4 0-9.8 4.4-9.8 9.7 0 4.3 2.8 8 6.7 9.2.5.1.7-.2.7-.5v-1.8c-2.4.5-3.1-.6-3.3-1.1-.1-.3-.6-1.1-1-1.4-.3-.2-.8-.6 0-.6s1.3.7 1.5 1c.9 1.5 2.3 1.1 2.8.8.1-.6.3-1.1.6-1.3-2.2-.2-4.4-1.1-4.4-4.8 0-1.1.4-1.9 1-2.6-.1-.2-.4-1.2.1-2.6 0 0 .8-.3 2.7 1 .8-.2 1.6-.3 2.4-.3.8 0 1.7.1 2.4.3 1.9-1.3 2.7-1 2.7-1 .5 1.3.2 2.3.1 2.6.6.7 1 1.5 1 2.6 0 3.7-2.3 4.6-4.4 4.8.4.3.7.9.7 1.8V21c0 .3.2.6.7.5 3.9-1.3 6.6-4.9 6.6-9.2 0-5.4-4.4-9.8-9.8-9.8z"></path></svg></a></div><a href="https://github.com/fncbook/fnc-matlab/edit/master/separate/matlab/home.md" title="Edit This Page" target="_blank" rel="noopener noreferrer" class="myst-fm-edit-link text-inherit hover:text-inherit"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" width="1.25rem" height="1.25rem" class="myst-fm-edit-icon inline-block mr-1 opacity-60 hover:opacity-100"><path stroke-linecap="round" stroke-linejoin="round" d="m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"></path></svg></a><div class="myst-fm-downloads-dropdown relative flex inline-block mx-1 grow-0" data-headlessui-state=""><button class="myst-fm-downloads-button relative ml-2 -mr-1" id="headlessui-menu-button-:Rs8ucp:" type="button" aria-haspopup="menu" aria-expanded="false" data-headlessui-state=""><span class="sr-only">Downloads</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" width="1.25rem" height="1.25rem" class="myst-fm-downloads-icon"><title>Download</title><path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"></path></svg></button></div></div><h1 class="myst-fm-block-title mb-0">FNC: MATLAB edition</h1></div><div id="skip-to-article"></div><p>This is the MATLAB<span id="fnref-d7nEwi3Qhk" class="" data-state="closed"><sup class="hover-link"><a class="no-underline text-inherit hover:text-inherit font-normal hover:underline" href="#fn-trademark" title="Link to Footnote" aria-label="Link to Footnote">[<!-- -->1<!-- -->]</a></sup></span> edition of the textbook <a target="_blank" rel="noreferrer" href="https://tobydriscoll.net/FNC" class="link whitespace-nowrap"><span class="link-text whitespace-normal">Fundamentals of Numerical Computation</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="link-icon"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path></svg></a> by <a target="_blank" rel="noreferrer" href="https://tobydriscoll.net" class="link whitespace-nowrap"><span class="link-text whitespace-normal">Tobin A. Driscoll</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="link-icon"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path></svg></a> and Richard J. Braun.</p><p>
30<a class="link button" href="/matlab/usage">Get started!</a></p><p>Use these links if you want to use one of the other editions:</p><ul><li><p><a target="_blank" rel="noreferrer" href="https://fncbook.com/julia" class="link whitespace-nowrap"><span class="link-text whitespace-normal">Julia edition</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="link-icon"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path></svg></a></p></li><li><p><a target="_blank" rel="noreferrer" href="https://fncbook.com/python" class="link whitespace-nowrap"><span class="link-text whitespace-normal">Python edition</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="link-icon"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path></svg></a></p></li></ul><hr class="py-2 my-5 translate-y-2"/><p>To track aggregate traffic patterns, this site uses <a target="_blank" rel="noreferrer" href="https://plausible.io" class="link whitespace-nowrap"><span class="link-text whitespace-normal">Plausible Analytics</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="link-icon"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path></svg></a>, a privacy-first platform that collects no personal data and sets no cookies.</p><div class="myst-backmatter-parts"></div><section id="footnotes" class="myst-footnotes article-grid subgrid-gap col-screen"><div><header class="myst-footnotes-header text-lg font-semibold text-stone-900 dark:text-white group">Footnotes<a class="no-underline text-inherit hover:text-inherit ml-2 select-none transition-opacity opacity-0 focus:opacity-100 group-hover:opacity-70" href="#footnotes" title="Link to Footnotes" aria-label="Link to Footnotes">¶</a></header></div><div class="myst-footnotes-list pl-3 mb-8 text-xs text-stone-500 dark:text-stone-300"><ol><li id="fn-trademark" class="myst-footnotes-item group"><div class="flex flex-row"><div class="myst-footnote-content break-words grow"><p>MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See <a target="_blank" rel="noreferrer" href="http://mathworks.com/trademarks" class="link whitespace-nowrap"><span class="link-text whitespace-normal">mathworks<wbr/>.com<wbr/>/trademarks</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="link-icon"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path></svg></a> for a list of additional trademarks.</p></div><div class="myst-footnote-backlinks flex flex-col grow-0"><a class="no-underline text-inherit hover:text-inherit p-1 select-none [@media(hover:hover)]:transition-opacity [@media(hover:hover)]:opacity-0 [@media(hover:hover)]:focus:opacity-100 [@media(hover:hover)]:group-hover:opacity-70" href="#fnref-d7nEwi3Qhk" title="Link to Content" aria-label="Link to Content">↩</a></div></div></li></ol></div></section><div class="myst-footer-links flex pt-10 mb-10 space-x-4"><a class="myst-footer-link flex-1 block p-4 font-normal text-gray-600 no-underline border border-gray-200 rounded shadow-sm group hover:border-blue-600 dark:hover:border-blue-400 hover:text-blue-600 dark:hover:text-blue-400 dark:text-gray-100 dark:border-gray-500 hover:shadow-lg dark:shadow-neutral-700 myst-footer-link-next" aria-label="Next: Preface to the original edition" href="/matlab/preface-original"><div class="flex h-full align-middle"><div class="flex-grow"><div class="myst-footer-link-group text-xs text-gray-500 dark:text-gray-400">Preface</div>Preface to the original edition</div><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" width="1.5rem" height="1.5rem" class="myst-footer-link-icon self-center transition-transform group-hover:translate-x-1 shrink-0"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"></path></svg></div></a></div></article></main>
30<script>((a,l)=>{if(!window.history.state||!window.history.state.key){let u=Math.random().toString(32).slice(2);window.history.replaceState({key:u},"")}try{let d=JSON.parse(sessionStorage.getItem(a)||"{}")[l||window.history.state.key];typeof d=="number"&&window.scrollTo(0,d)}catch(u){console.error(u),sessionStorage.removeItem(a)}})("positions", null)</script>
30<link rel="modulepreload" href="/matlab/build/entry.client-PCJPW7TK.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-AQ2CODAG.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-JJXTQVMA.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-OZE3FFNP.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-JTFCKY4Z.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-C4DFGG5C.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-J7TUH54J.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-FZ2S7OYD.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-JEM6JXYA.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-34XIY2DH.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-KQM5FBHR.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-OCWQY3HK.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-7HNKBP4B.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-CUKUDK3R.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-3EBOCCHJ.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-O4VQNZ62.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-4OEDG4JQ.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-GUCIBHGO.js"/><link rel="modulepreload" href="/matlab/build/root-LKQMTEPT.js"/><link rel="modulepreload" href="/matlab/build/_shared/chunk-HGWUN434.js"/><link rel="modulepreload" href="/matlab/build/routes/$-XDAODCRF.js"/>
30<script>window.__remixContext = {"url":"/index","state":{"loaderData":{"root":{"config":{"version":3,"myst":"1.10.1","title":"Fundamentals of Numerical Computation","options":{"hide_title_block":true,"favicon":"/matlab/build/favicon-49662594a770d697e679423fd71cf40d.png","logo":"/matlab/build/FNClogo-51799f2dbc8eab8fbeae902923c8a49e.png","analytics_plausible":"fncbook.com","style":"/matlab/build/style-3dda826c9287ac511610ceb0e0958dec.css"},"nav":[{"title":"Julia","url":"https://fncbook.com/julia"},{"title":"MATLAB","url":"https://fncbook.com/matlab"},{"title":"Python","url":"https://fncbook.com/python"}],"actions":[{"title":"Support us","url":"https://buymeacoffee.com/tobydriscoll","internal":false,"static":false},{"title":"Suggestion box","url":"https://github.com/fncbook/fnc-matlab/issues/new/choose","internal":false,"static":false}],"projects":[{"numbering":{"heading_1":{"enabled":true},"heading_2":{"enabled":true},"heading_3":{"enabled":false}},"math":{"\\float":{"macro":"\\mathbb{F}"},"\\real":{"macro":"\\mathbb{R}"},"\\complex":{"macro":"\\mathbb{C}"},"\\nat":{"macro":"\\mathbb{N}"},"\\integer":{"macro":"\\mathbb{Z}"},"\\rmn":{"macro":"\\mathbb{R}^{#1 \\times #2}"},"\\dd":{"macro":"\\frac{d #1}{d #2}"},"\\ddd":{"macro":"\\frac{d^2 #1}{d #2^2}"},"\\pp":{"macro":"\\frac{\\partial #1}{\\partial #2}"},"\\ppp":{"macro":"\\frac{\\partial^2 #1}{\\partial #2^2}"},"\\ppdd":{"macro":"\\frac{\\partial^2 #1}{\\partial #2 \\partial #3}"},"\\abs":{"macro":"\\left\\lvert #1 \\right\\rvert"},"\\norm":{"macro":"\\left\\lVert #1 \\right\\rVert"},"\\twonorm":{"macro":"\\norm{#1}_2"},"\\onenorm":{"macro":"\\norm{#1}_1"},"\\infnorm":{"macro":"\\norm{#1}_\\infty"},"\\anynorm":{"macro":"\\norm{#1}_#2"},"\\innerprod":{"macro":"\\langle #1,#2 \\rangle"},"\\pr":{"macro":"^{(#1)}"},"\\kron":{"macro":"#1 \\otimes #2"},"\\eye":{"macro":"\\mathbf{e}_#1"},"\\meye":{"macro":"\\mathbf{I}"},"\\Qhat":{"macro":"\\hat{\\mathbf{Q}}"},"\\Rhat":{"macro":"\\hat{\\mathbf{R}}"},"\\bfalpha":{"macro":"\\mathbf{alpha}"},"\\bfdelta":{"macro":"\\mathbf{delta}"},"\\bfzero":{"macro":"\\boldsymbol{0}"},"\\macheps":{"macro":"\\epsilon_\\text{mach}"},"\\fl":{"macro":"\\operatorname{fl}"},"\\diag":{"macro":"\\operatorname{diag}"},"\\ign":{"macro":"\\operatorname{sign}"},"\\Re":{"macro":"\\operatorname{Re}"},"\\Im":{"macro":"\\operatorname{Im}"},"\\ee":{"macro":"\\times 10^"},"\\lnorm":{"macro":"\\|"},"\\rnorm":{"macro":"\\|"},"\\floor":{"macro":"\\lfloor#1\\rfloor"},"\\cI":{"macro":"\\mathcal{I}"},"\\mtx":{"macro":"\\operatorname{mtx}"},"\\myvec":{"macro":"\\operatorname{vec}"},"\\argmin":{"macro":"\\operatorname{argmin}"}},"abbreviations":{"IVP":"initial-value problem","BVP":"boundary-value problem","TPBVP":"two-point boundary-value problem","ONC":"matrix with orthonormal columns","SVD":"singular value decomposition","EVD":"eigenvalue decomposition","SPD":"symmetric positive definite","HPD":"hermitian positive definite","PDE":"partial differential equation","ODE":"ordinary differential equation"},"title":"Fundamentals of Numerical Computation","short_title":"FNC","description":"Online textbook for computational mathematics","github":"https://github.com/fncbook/fnc-matlab","id":"a36af5d8-56ed-4bf2-92e6-5f7fdb82e8e1","toc":[{"file":"home.md"},{"children":[{"file":"frontmatter/preface-original.md"},{"file":"frontmatter/preface.md"}],"title":"Preface"},{"file":"usage.md"},{"file":"setup.md"},{"file":"frontmatter/differences.md"},{"children":[{"file":"chapter1/overview.md","title":"Overview"},{"file":"chapter1/floating-point.md"},{"file":"chapter1/conditioning.md"},{"file":"chapter1/algorithms.md"},{"file":"chapter1/stability.md"},{"file":"chapter1/next.md"}],"title":"1. Introduction"},{"children":[{"file":"chapter2/overview.md","title":"Overview"},{"file":"chapter2/polyinterp.md"},{"file":"chapter2/matrices.md"},{"file":"chapter2/linear-systems.md"},{"file":"chapter2/lu.md"},{"file":"chapter2/efficiency.md"},{"file":"chapter2/pivoting.md"},{"file":"chapter2/norms.md"},{"file":"chapter2/condition-number.md"},{"file":"chapter2/structure.md"},{"file":"chapter2/next.md"}],"title":"2. Linear systems of equations"},{"children":[{"file":"chapter3/overview.md","title":"Overview"},{"file":"chapter3/fitting.md"},{"file":"chapter3/normaleqns.md"},{"file":"chapter3/qr.md"},{"file":"chapter3/house.md"},{"file":"chapter3/next.md"}],"title":"3. Overdetermined linear systems"},{"children":[{"file":"chapter4/overview.md","title":"Overview"},{"file":"chapter4/rootproblem.md"},{"file":"chapter4/fixed-point.md"},{"file":"chapter4/newton.md"},{"file":"chapter4/secant.md"},{"file":"chapter4/newtonsys.md"},{"file":"chapter4/quasinewton.md"}
30,{"file":"chapter4/nlsq.md"},{"file":"chapter4/next.md"}],"title":"4. Roots of nonlinear equations"},{"children":[{"file":"chapter5/overview.md","title":"Overview"},{"file":"chapter5/interpolation.md"},{"file":"chapter5/pwlin.md"},{"file":"chapter5/splines.md"},{"file":"chapter5/finitediffs.md"},{"file":"chapter5/fd-converge.md"},{"file":"chapter5/integration.md"},{"file":"chapter5/adaptive.md"},{"file":"chapter5/next.md"}],"title":"5. Piecewise interpolation"},{"children":[{"file":"chapter6/overview.md","title":"Overview"},{"file":"chapter6/basics.md"},{"file":"chapter6/euler.md"},{"file":"chapter6/systems.md"},{"file":"chapter6/rk.md"},{"file":"chapter6/adaptive-rk.md"},{"file":"chapter6/multistep.md"},{"file":"chapter6/implicit.md"},{"file":"chapter6/zerostability.md"},{"file":"chapter6/next.md"}],"title":"6. Initial-value problems for ODEs"},{"children":[{"file":"chapter7/overview.md","title":"Overview"},{"file":"chapter7/insight.md"},{"file":"chapter7/evd.md"},{"file":"chapter7/svd.md"},{"file":"chapter7/symm-eig.md"},{"file":"chapter7/dimreduce.md"},{"file":"chapter7/next.md"}],"title":"7. Matrix analysis"},{"children":[{"file":"chapter8/overview.md","title":"Overview"},{"file":"chapter8/structure.md"},{"file":"chapter8/power.md"},{"file":"chapter8/inviter.md"},{"file":"chapter8/subspace.md"},{"file":"chapter8/gmres.md"},{"file":"chapter8/minrescg.md"},{"file":"chapter8/matrixfree.md"},{"file":"chapter8/precond.md"},{"file":"chapter8/next.md"}],"title":"8. Krylov methods in linear algebra"},{"children":[{"file":"chapter9/overview.md","title":"Overview"},{"file":"chapter9/polynomial.md"},{"file":"chapter9/barycentric.md"},{"file":"chapter9/stability.md"},{"file":"chapter9/orthogonal.md"},{"file":"chapter9/trig.md"},{"file":"chapter9/spectral-integration.md"},{"file":"chapter9/improper.md"},{"file":"chapter9/next.md"}],"title":"9. Global function approximation"},{"children":[{"file":"chapter10/overview.md","title":"Overview"},{"file":"chapter10/tpbvp.md"},{"file":"chapter10/shooting.md"},{"file":"chapter10/diffmats.md"},{"file":"chapter10/linear.md"},{"file":"chapter10/nonlinear.md"},{"file":"chapter10/galerkin.md"},{"file":"chapter10/next.md"}],"title":"10. Boundary-value problems"},{"children":[{"file":"chapter11/overview.md","title":"Overview"},{"file":"chapter11/blackscholes.md"},{"file":"chapter11/methodlines.md"},{"file":"chapter11/absstab-diffusion.md"},{"file":"chapter11/stiffness.md"},{"file":"chapter11/boundaries.md"},{"file":"chapter11/next.md"}],"title":"11. Diffusion equations"},{"children":[{"file":"chapter12/overview.md","title":"Overview"},{"file":"chapter12/traffic.md"},{"file":"chapter12/upwind.md"},{"file":"chapter12/absstab-advection.md"},{"file":"chapter12/wave.md"},{"file":"chapter12/next.md"}],"title":"12. Advection equations"},{"children":[{"file":"chapter13/overview.md","title":"Overview"},{"file":"chapter13/tensorprod.md"},{"file":"chapter13/diffadv.md"},{"file":"chapter13/laplace.md"},{"file":"chapter13/nonlinear.md"},{"file":"chapter13/next.md"}],"title":"13. Two-dimensional problems"},{"children":[{"file":"appendix/linear-algebra.md"},{"file":"appendix/glossary.md"}],"title":"Appendices"},{"file":"genindex.md"}],"exports":[],"bibliography":[],"index":"index","pages":[{"level":1,"title":"Preface"},{"slug":"preface-original","title":"Preface to the original edition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"preface","title":"Preface to the Julia edition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"usage","title":"How to use this book","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"slug":"setup","title":"MATLAB setup","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"slug":"differences","title":"Key language differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"level":1,"title":"1. Introduction"},{"slug":"overview","title":"1. Introduction","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"floating-point","title":"Floating-point numbers","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"conditioning","title":"Problems and conditioning","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"algorithms","title":"Algorithms","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"stability","title":"Stability","description":"","date":"","thumbnail":"/matlab/build/backwarderror-8e2bfb7f8fdb1f79112520e7913f854e.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"2. Linear systems of equations"},{"slug":"overview-1","title":"2. Linear systems of equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"polyinterp","title":"Polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"matrices","title":"Computing with matrices","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"linear-systems","title":"Linear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"lu","title":"LU factorization","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"efficiency","title":"Efficiency of matrix computations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"pivoting","title":"Row pivoting","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"norms","title":"Vector and matrix norms","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"condition-number","title":"Conditioning of linear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"structure","title":"Exploiting matrix structure","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-1","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"3. Overdetermined linear systems"},{"slug":"overview-2","title":"3. Overdetermined linear systems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fitting","title":"Fitting functions to data","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"normaleqns","title":"The normal equations","description":"","date":"","thumbnail":"/matlab/build/normaleqns2d-3e52bb9871e7e9240ba7863aca7d2ae6.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"qr","title":"The QR factorization","description":"","date":"","thumbnail":"/matlab/build/nonorthogonal-52d81b78e6cc9bc353f4407cf72d867f.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"house","title":"Computing QR factorizations","description":"","date":"","thumbnail":"/matlab/build/hhreflect-e65b632a5a9967a73c404f7caea68a5a.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-2","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"4. Roots of nonlinear equations"},{"slug":"overview-3","title":"4. Roots of nonlinear equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"rootproblem","title":"The rootfinding problem","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fixed-point","title":"Fixed-point iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"newton","title":"Newton’s method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"secant","title":"Interpolation-based methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"newtonsys","title":"Newton for nonlinear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"quasinewton","title":"Quasi-Newton methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nlsq","title":"Nonlinear least squares","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-3","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"5. Piecewise interpolation"},{"slug":"overview-4","title":"5. Piecewise interpolation","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"interpolation","title":"The interpolation problem","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"pwlin","title":"Piecewise linear interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"splines","title":"Cubic splines","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"finitediffs","title":"Finite differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fd-converge","title":"Convergence of finite differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"integration","title":"Numerical integration","description":"","date":"","thumbnail":"/matlab/build/trapezoid-c3c21befa9ca2abe8781ff414198e0ca.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"adaptive","title":"Adaptive integration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-4","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"6. Initial-value problems for ODEs"},{"slug":"overview-5","title":"6. Initial-value problems for ODEs","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"basics","title":"Basics of IVPs","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"euler","title":"Euler’s method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"systems","title":"IVP systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"rk","title":"Runge–Kutta methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"adaptive-rk","title":"Adaptive Runge–Kutta","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"multistep","title":"Multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"implicit","title":"Implementation of multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"zerostability","title":"Zero-stability of multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-5","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"level":1,"title":"7. Matrix analysis"},{"slug":"overview-6","title":"7. Matrix analysis","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"insight","title":"From matrix to insight","description":"","date":"","thumbnail":"/matlab/build/littlegraph-b6341863aa6d8177aeb8796bb7e9d1d4.png","thumbnailOptimized":"/matlab/build/littlegraph-b6341863aa6d8177aeb8796bb7e9d1d4.webp","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"evd","title":"Eigenvalue decomposition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"svd","title":"Singular value decomposition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"symm-eig","title":"Symmetry and definiteness","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"dimreduce","title":"Dimension reduction","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-6","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"8. Krylov methods in linear algebra"},{"slug":"overview-7","title":"8. Krylov methods in linear algebra","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"structure-1","title":"Sparsity and structure","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"power","title":"Power iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"inviter","title":"Inverse iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"subspace","title":"Krylov subspaces","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"gmres","title":"GMRES","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"minrescg","title":"MINRES and conjugate gradients","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"matrixfree","title":"Matrix-free iterations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"precond","title":"Preconditioning","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-7","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"9. Global function approximation"},{"slug":"overview-8","title":"9. Global function approximation","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"polynomial","title":"Polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"barycentric","title":"The barycentric formula","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"stability-1","title":"Stability of polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"orthogonal","title":"Orthogonal polynomials","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"trig","title":"Trigonometric interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"spectral-integration","title":"Spectrally accurate integration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"improper","title":"Improper integrals","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-8","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"10. Boundary-value problems"},{"slug":"overview-9","title":"10. Boundary-value problems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"tpbvp","title":"Two-point BVP","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"shooting","title":"Shooting","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"diffmats","title":"Differentiation matrices","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"linear","title":"Collocation for linear problems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nonlinear","title":"Nonlinearity and boundary conditions","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"galerkin","title":"The Galerkin method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-9","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"11. Diffusion equations"},{"slug":"overview-10","title":"11. Diffusion equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"blackscholes","title":"Black–Scholes equation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"methodlines","title":"The method of lines","description":"","date":"","thumbnail":"/matlab/build/periodicfun-c8e8b95edfa219e387679ec195daf3ad.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"absstab-diffusion","title":"Absolute stability","description":"","date":"","thumbnail":"/matlab/build/stabreg_ab_am-41f0c622b9ececb8c4c9c3ff813b4c69.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"stiffness","title":"Stiffness","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"boundaries","title":"Boundaries","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-10","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"12. Advection equations"},{"slug":"overview-11","title":"12. Advection equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"traffic","title":"Traffic flow","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"upwind","title":"Upwinding and stability","description":"","date":"","thumbnail":"/matlab/build/cflpicture-1f522d8960bb511799644b8f75dcd8a4.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"absstab-advection","title":"Absolute stability","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"wave","title":"The wave equation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-11","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"13. Two-dimensional problems"},{"slug":"overview-12","title":"13. Two-dimensional problems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"tensorprod","title":"Tensor-product discretizations","description":"","date":"","thumbnail":"/matlab/build/tensor-grid-7f6bc6eeb0d850284bacf96cd0d7801b.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"diffadv","title":"Two-dimensional diffusion and advection","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"laplace","title":"Laplace and Poisson equations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nonlinear-1","title":"Nonlinear elliptic PDEs","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-12","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"Appendices"},{"slug":"linear-algebra","title":"Review of linear algebra","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"glossary","title":"Glossary","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"genindex","title":"Index","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1}]}]},"CONTENT_CDN_PORT":"3100","MODE":"static","BASE_URL":"/matlab"},"routes/$":{"config":{"version":3,"myst":"1.10.1","title":"Fundamentals of Numerical Computation","options":{"hide_title_block":true,"favicon":"/matlab/build/favicon-49662594a770d697e679423fd71cf40d.png","logo":"/matlab/build/FNClogo-51799f2dbc8eab8fbeae902923c8a49e.png","analytics_plausible":"fncbook.com","style":"/matlab/build/style-3dda826c9287ac511610ceb0e0958dec.css"},"nav":[{"title":"Julia","url":"https://fncbook.com/julia"},{"title":"MATLAB","url":"https://fncbook.com/matlab"},{"title":"Python","url":"https://fncbook.com/python"}],"actions":[{"title":"Support us","url":"https://buymeacoffee.com/tobydriscoll","internal":false,"static":false},{"title":"Suggestion box","url":"https://github.com/fncbook/fnc-matlab/issues/new/choose","internal":false,"static":false}],"projects":[{"numbering":{"heading_1":{"enabled":true},"heading_2":{"enabled":true},"heading_3":{"enabled":false}},"math":{"\\float":{"macro":"\\mathbb{F}"},"\\real":{"macro":"\\mathbb{R}"},"\\complex":{"macro":"\\mathbb{C}"},"\\nat":{"macro":"\\mathbb{N}"},"\\integer":{"macro":"\\mathbb{Z}"},"\\rmn":{"macro":"\\mathbb{R}^{#1 \\times #2}"},"\\dd":{"macro":"\\frac{d #1}{d #2}"},"\\ddd":{"macro":"\\frac{d^2 #1}{d #2^2}"},"\\pp":{"macro":"\\frac{\\partial #1}{\\partial #2}"},"\\ppp":{"macro":"\\frac{\\partial^2 #1}{\\partial #2^2}"}
30,"\\ppdd":{"macro":"\\frac{\\partial^2 #1}{\\partial #2 \\partial #3}"},"\\abs":{"macro":"\\left\\lvert #1 \\right\\rvert"},"\\norm":{"macro":"\\left\\lVert #1 \\right\\rVert"},"\\twonorm":{"macro":"\\norm{#1}_2"},"\\onenorm":{"macro":"\\norm{#1}_1"},"\\infnorm":{"macro":"\\norm{#1}_\\infty"},"\\anynorm":{"macro":"\\norm{#1}_#2"},"\\innerprod":{"macro":"\\langle #1,#2 \\rangle"},"\\pr":{"macro":"^{(#1)}"},"\\kron":{"macro":"#1 \\otimes #2"},"\\eye":{"macro":"\\mathbf{e}_#1"},"\\meye":{"macro":"\\mathbf{I}"},"\\Qhat":{"macro":"\\hat{\\mathbf{Q}}"},"\\Rhat":{"macro":"\\hat{\\mathbf{R}}"},"\\bfalpha":{"macro":"\\mathbf{alpha}"},"\\bfdelta":{"macro":"\\mathbf{delta}"},"\\bfzero":{"macro":"\\boldsymbol{0}"},"\\macheps":{"macro":"\\epsilon_\\text{mach}"},"\\fl":{"macro":"\\operatorname{fl}"},"\\diag":{"macro":"\\operatorname{diag}"},"\\ign":{"macro":"\\operatorname{sign}"},"\\Re":{"macro":"\\operatorname{Re}"},"\\Im":{"macro":"\\operatorname{Im}"},"\\ee":{"macro":"\\times 10^"},"\\lnorm":{"macro":"\\|"},"\\rnorm":{"macro":"\\|"},"\\floor":{"macro":"\\lfloor#1\\rfloor"},"\\cI":{"macro":"\\mathcal{I}"},"\\mtx":{"macro":"\\operatorname{mtx}"},"\\myvec":{"macro":"\\operatorname{vec}"},"\\argmin":{"macro":"\\operatorname{argmin}"}},"abbreviations":{"IVP":"initial-value problem","BVP":"boundary-value problem","TPBVP":"two-point boundary-value problem","ONC":"matrix with orthonormal columns","SVD":"singular value decomposition","EVD":"eigenvalue decomposition","SPD":"symmetric positive definite","HPD":"hermitian positive definite","PDE":"partial differential equation","ODE":"ordinary differential equation"},"title":"Fundamentals of Numerical Computation","short_title":"FNC","description":"Online textbook for computational mathematics","github":"https://github.com/fncbook/fnc-matlab","id":"a36af5d8-56ed-4bf2-92e6-5f7fdb82e8e1","toc":[{"file":"home.md"},{"children":[{"file":"frontmatter/preface-original.md"},{"file":"frontmatter/preface.md"}],"title":"Preface"},{"file":"usage.md"},{"file":"setup.md"},{"file":"frontmatter/differences.md"},{"children":[{"file":"chapter1/overview.md","title":"Overview"},{"file":"chapter1/floating-point.md"},{"file":"chapter1/conditioning.md"},{"file":"chapter1/algorithms.md"},{"file":"chapter1/stability.md"},{"file":"chapter1/next.md"}],"title":"1. Introduction"},{"children":[{"file":"chapter2/overview.md","title":"Overview"},{"file":"chapter2/polyinterp.md"},{"file":"chapter2/matrices.md"},{"file":"chapter2/linear-systems.md"},{"file":"chapter2/lu.md"},{"file":"chapter2/efficiency.md"},{"file":"chapter2/pivoting.md"},{"file":"chapter2/norms.md"},{"file":"chapter2/condition-number.md"},{"file":"chapter2/structure.md"},{"file":"chapter2/next.md"}],"title":"2. Linear systems of equations"},{"children":[{"file":"chapter3/overview.md","title":"Overview"},{"file":"chapter3/fitting.md"},{"file":"chapter3/normaleqns.md"},{"file":"chapter3/qr.md"},{"file":"chapter3/house.md"},{"file":"chapter3/next.md"}],"title":"3. Overdetermined linear systems"},{"children":[{"file":"chapter4/overview.md","title":"Overview"},{"file":"chapter4/rootproblem.md"},{"file":"chapter4/fixed-point.md"},{"file":"chapter4/newton.md"},{"file":"chapter4/secant.md"},{"file":"chapter4/newtonsys.md"},{"file":"chapter4/quasinewton.md"},{"file":"chapter4/nlsq.md"},{"file":"chapter4/next.md"}],"title":"4. Roots of nonlinear equations"},{"children":[{"file":"chapter5/overview.md","title":"Overview"},{"file":"chapter5/interpolation.md"},{"file":"chapter5/pwlin.md"},{"file":"chapter5/splines.md"},{"file":"chapter5/finitediffs.md"},{"file":"chapter5/fd-converge.md"},{"file":"chapter5/integration.md"},{"file":"chapter5/adaptive.md"},{"file":"chapter5/next.md"}],"title":"5. Piecewise interpolation"},{"children":[{"file":"chapter6/overview.md","title":"Overview"},{"file":"chapter6/basics.md"},{"file":"chapter6/euler.md"},{"file":"chapter6/systems.md"},{"file":"chapter6/rk.md"},{"file":"chapter6/adaptive-rk.md"},{"file":"chapter6/multistep.md"},{"file":"chapter6/implicit.md"},{"file":"chapter6/zerostability.md"},{"file":"chapter6/next.md"}],"title":"6. Initial-value problems for ODEs"},{"children":[{"file":"chapter7/overview.md","title":"Overview"},{"file":"chapter7/insight.md"},{"file":"chapter7/evd.md"},{"file":"chapter7/svd.md"},{"file":"chapter7/symm-eig.md"},{"file":"chapter7/dimreduce.md"},{"file":"chapter7/next.md"}
30],"title":"7. Matrix analysis"},{"children":[{"file":"chapter8/overview.md","title":"Overview"},{"file":"chapter8/structure.md"},{"file":"chapter8/power.md"},{"file":"chapter8/inviter.md"},{"file":"chapter8/subspace.md"},{"file":"chapter8/gmres.md"},{"file":"chapter8/minrescg.md"},{"file":"chapter8/matrixfree.md"},{"file":"chapter8/precond.md"},{"file":"chapter8/next.md"}],"title":"8. Krylov methods in linear algebra"},{"children":[{"file":"chapter9/overview.md","title":"Overview"},{"file":"chapter9/polynomial.md"},{"file":"chapter9/barycentric.md"},{"file":"chapter9/stability.md"},{"file":"chapter9/orthogonal.md"},{"file":"chapter9/trig.md"},{"file":"chapter9/spectral-integration.md"},{"file":"chapter9/improper.md"},{"file":"chapter9/next.md"}],"title":"9. Global function approximation"},{"children":[{"file":"chapter10/overview.md","title":"Overview"},{"file":"chapter10/tpbvp.md"},{"file":"chapter10/shooting.md"},{"file":"chapter10/diffmats.md"},{"file":"chapter10/linear.md"},{"file":"chapter10/nonlinear.md"},{"file":"chapter10/galerkin.md"},{"file":"chapter10/next.md"}],"title":"10. Boundary-value problems"},{"children":[{"file":"chapter11/overview.md","title":"Overview"},{"file":"chapter11/blackscholes.md"},{"file":"chapter11/methodlines.md"},{"file":"chapter11/absstab-diffusion.md"},{"file":"chapter11/stiffness.md"},{"file":"chapter11/boundaries.md"},{"file":"chapter11/next.md"}],"title":"11. Diffusion equations"},{"children":[{"file":"chapter12/overview.md","title":"Overview"},{"file":"chapter12/traffic.md"},{"file":"chapter12/upwind.md"},{"file":"chapter12/absstab-advection.md"},{"file":"chapter12/wave.md"},{"file":"chapter12/next.md"}],"title":"12. Advection equations"},{"children":[{"file":"chapter13/overview.md","title":"Overview"},{"file":"chapter13/tensorprod.md"},{"file":"chapter13/diffadv.md"},{"file":"chapter13/laplace.md"},{"file":"chapter13/nonlinear.md"},{"file":"chapter13/next.md"}],"title":"13. Two-dimensional problems"},{"children":[{"file":"appendix/linear-algebra.md"},{"file":"appendix/glossary.md"}],"title":"Appendices"},{"file":"genindex.md"}],"exports":[],"bibliography":[],"index":"index","pages":[{"level":1,"title":"Preface"},{"slug":"preface-original","title":"Preface to the original edition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"preface","title":"Preface to the Julia edition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"usage","title":"How to use this book","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"slug":"setup","title":"MATLAB setup","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"slug":"differences","title":"Key language differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"level":1,"title":"1. Introduction"},{"slug":"overview","title":"1. Introduction","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"floating-point","title":"Floating-point numbers","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"conditioning","title":"Problems and conditioning","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"algorithms","title":"Algorithms","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"stability","title":"Stability","description":"","date":"","thumbnail":"/matlab/build/backwarderror-8e2bfb7f8fdb1f79112520e7913f854e.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"2. Linear systems of equations"},{"slug":"overview-1","title":"2. Linear systems of equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"polyinterp","title":"Polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"matrices","title":"Computing with matrices","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"linear-systems","title":"Linear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"lu","title":"LU factorization","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"efficiency","title":"Efficiency of matrix computations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"pivoting","title":"Row pivoting","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"norms","title":"Vector and matrix norms","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"condition-number","title":"Conditioning of linear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"structure","title":"Exploiting matrix structure","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-1","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"3. Overdetermined linear systems"},{"slug":"overview-2","title":"3. Overdetermined linear systems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fitting","title":"Fitting functions to data","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"normaleqns","title":"The normal equations","description":"","date":"","thumbnail":"/matlab/build/normaleqns2d-3e52bb9871e7e9240ba7863aca7d2ae6.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"qr","title":"The QR factorization","description":"","date":"","thumbnail":"/matlab/build/nonorthogonal-52d81b78e6cc9bc353f4407cf72d867f.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"house","title":"Computing QR factorizations","description":"","date":"","thumbnail":"/matlab/build/hhreflect-e65b632a5a9967a73c404f7caea68a5a.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-2","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"4. Roots of nonlinear equations"},{"slug":"overview-3","title":"4. Roots of nonlinear equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"rootproblem","title":"The rootfinding problem","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fixed-point","title":"Fixed-point iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"newton","title":"Newton’s method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"secant","title":"Interpolation-based methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"newtonsys","title":"Newton for nonlinear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"quasinewton","title":"Quasi-Newton methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nlsq","title":"Nonlinear least squares","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-3","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"5. Piecewise interpolation"},{"slug":"overview-4","title":"5. Piecewise interpolation","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"interpolation","title":"The interpolation problem","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"pwlin","title":"Piecewise linear interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"splines","title":"Cubic splines","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"finitediffs","title":"Finite differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fd-converge","title":"Convergence of finite differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"integration","title":"Numerical integration","description":"","date":"","thumbnail":"/matlab/build/trapezoid-c3c21befa9ca2abe8781ff414198e0ca.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"adaptive","title":"Adaptive integration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-4","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"6. Initial-value problems for ODEs"},{"slug":"overview-5","title":"6. Initial-value problems for ODEs","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"basics","title":"Basics of IVPs","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"euler","title":"Euler’s method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"systems","title":"IVP systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"rk","title":"Runge–Kutta methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"adaptive-rk","title":"Adaptive Runge–Kutta","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"multistep","title":"Multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"implicit","title":"Implementation of multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"zerostability","title":"Zero-stability of multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-5","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"7. Matrix analysis"},{"slug":"overview-6","title":"7. Matrix analysis","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"insight","title":"From matrix to insight","description":"","date":"","thumbnail":"/matlab/build/littlegraph-b6341863aa6d8177aeb8796bb7e9d1d4.png","thumbnailOptimized":"/matlab/build/littlegraph-b6341863aa6d8177aeb8796bb7e9d1d4.webp","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"evd","title":"Eigenvalue decomposition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"svd","title":"Singular value decomposition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"symm-eig","title":"Symmetry and definiteness","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"dimreduce","title":"Dimension reduction","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-6","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"8. Krylov methods in linear algebra"},{"slug":"overview-7","title":"8. Krylov methods in linear algebra","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"structure-1","title":"Sparsity and structure","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"power","title":"Power iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"inviter","title":"Inverse iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"subspace","title":"Krylov subspaces","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"gmres","title":"GMRES","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"minrescg","title":"MINRES and conjugate gradients","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"matrixfree","title":"Matrix-free iterations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"precond","title":"Preconditioning","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-7","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"9. Global function approximation"},{"slug":"overview-8","title":"9. Global function approximation","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"polynomial","title":"Polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"barycentric","title":"The barycentric formula","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"stability-1","title":"Stability of polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"orthogonal","title":"Orthogonal polynomials","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"trig","title":"Trigonometric interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"spectral-integration","title":"Spectrally accurate integration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"improper","title":"Improper integrals","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-8","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"10. Boundary-value problems"},{"slug":"overview-9","title":"10. Boundary-value problems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"tpbvp","title":"Two-point BVP","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"shooting","title":"Shooting","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"diffmats","title":"Differentiation matrices","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"linear","title":"Collocation for linear problems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nonlinear","title":"Nonlinearity and boundary conditions","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"galerkin","title":"The Galerkin method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-9","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"11. Diffusion equations"},{"slug":"overview-10","title":"11. Diffusion equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"blackscholes","title":"Black–Scholes equation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"methodlines","title":"The method of lines","description":"","date":"","thumbnail":"/matlab/build/periodicfun-c8e8b95edfa219e387679ec195daf3ad.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"absstab-diffusion","title":"Absolute stability","description":"","date":"","thumbnail":"/matlab/build/stabreg_ab_am-41f0c622b9ececb8c4c9c3ff813b4c69.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"stiffness","title":"Stiffness","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"boundaries","title":"Boundaries","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-10","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"12. Advection equations"},{"slug":"overview-11","title":"12. Advection equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"traffic","title":"Traffic flow","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"upwind","title":"Upwinding and stability","description":"","date":"","thumbnail":"/matlab/build/cflpicture-1f522d8960bb511799644b8f75dcd8a4.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"absstab-advection","title":"Absolute stability","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"wave","title":"The wave equation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-11","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"13. Two-dimensional problems"},{"slug":"overview-12","title":"13. Two-dimensional problems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"tensorprod","title":"Tensor-product discretizations","description":"","date":"","thumbnail":"/matlab/build/tensor-grid-7f6bc6eeb0d850284bacf96cd0d7801b.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"diffadv","title":"Two-dimensional diffusion and advection","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"laplace","title":"Laplace and Poisson equations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nonlinear-1","title":"Nonlinear elliptic PDEs","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-12","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"Appendices"},{"slug":"linear-algebra","title":"Review of linear algebra","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"glossary","title":"Glossary","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"genindex","title":"Index","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1}]}]},"page":{"version":3,"kind":"Article","sha256":"ab35cda91bb4ff5872c519665f55f0e4ac977bff4fdd6f1fa28cc5e89d13f3dc","slug":"index","location":"/home.md","dependencies":[],"frontmatter":{"title":"FNC: MATLAB edition","numbering":{"heading_1":{"enabled":false},"heading_2":{"enabled":false},"heading_3":{"enabled":false},"all":{"enabled":false}},"content_includes_title":false,"site":{"hide_toc":false,"hide_outline":true,"hide_title_block":false},"github":"https://github.com/fncbook/fnc-matlab","math":{"\\float":{"macro":"\\mathbb{F}"},"\\real":{"macro":"\\mathbb{R}"},"\\complex":{"macro":"\\mathbb{C}"},"\\nat":{"macro":"\\mathbb{N}"},"\\integer":{"macro":"\\mathbb{Z}"},"\\rmn":{"macro":"\\mathbb{R}^{#1 \\times #2}"},"\\dd":{"macro":"\\frac{d #1}{d #2}"},"\\ddd":{"macro":"\\frac{d^2 #1}{d #2^2}"},"\\pp":{"macro":"\\frac{\\partial #1}{\\partial #2}"},"\\ppp":{"macro":"\\frac{\\partial^2 #1}{\\partial #2^2}"},"\\ppdd":{"macro":"\\frac{\\partial^2 #1}{\\partial #2 \\partial #3}"},"\\abs":{"macro":"\\left\\lvert #1 \\right\\rvert"},"\\norm":{"macro":"\\left\\lVert #1 \\right\\rVert"},"\\twonorm":{"macro":"\\norm{#1}_2"},"\\onenorm":{"macro":"\\norm{#1}_1"},"\\infnorm":{"macro":"\\norm{#1}_\\infty"},"\\anynorm":{"macro":"\\norm{#1}_#2"},"\\innerprod":{"macro":"\\langle #1,#2 \\rangle"},"\\pr":{"macro":"^{(#1)}"},"\\kron":{"macro":"#1 \\otimes #2"},"\\eye":{"macro":"\\mathbf{e}_#1"},"\\meye":{"macro":"\\mathbf{I}"},"\\Qhat":{"macro":"\\hat{\\mathbf{Q}}"},"\\Rhat":{"macro":"\\hat{\\mathbf{R}}"},"\\bfalpha":{"macro":"\\mathbf{alpha}"},"\\bfdelta":{"macro":"\\mathbf{delta}"},"\\bfzero":{"macro":"\\boldsymbol{0}"},"\\macheps":{"macro":"\\epsilon_\\text{mach}"},"\\fl":{"macro":"\\operatorname{fl}"},"\\diag":{"macro":"\\operatorname{diag}"},"\\ign":{"macro":"\\operatorname{sign}"},"\\Re":{"macro":"\\operatorname{Re}"},"\\Im":{"macro":"\\operatorname{Im}"},"\\ee":{"macro":"\\times 10^"},"\\lnorm":{"macro":"\\|"},"\\rnorm":{"macro":"\\|"},"\\floor":{"macro":"\\lfloor#1\\rfloor"},"\\cI":{"macro":"\\mathcal{I}"},"\\mtx":{"macro":"\\operatorname{mtx}"},"\\myvec":{"macro":"\\operatorname{vec}"},"\\argmin":{"macro":"\\operatorname{argmin}"}},"abbreviations":{"IVP":"initial-value problem","BVP":"boundary-value problem","TPBVP":"two-point boundary-value problem","ONC":"matrix with orthonormal columns","SVD":"singular value decomposition","EVD":"eigenvalue decomposition","SPD":"symmetric positive definite","HPD":"hermitian positive definite","PDE":"partial differential equation","ODE":"ordinary differential equation"},"source_url":"https://github.com/fncbook/fnc-matlab/blob/master/separate/matlab/home.md","edit_url":"https://github.com/fncbook/fnc-matlab/edit/master/separate/matlab/home.md","exports":[{"format":"md","filename":"home.md","url":"/matlab/build/home-42110623dab533597e2e088ce57c069a.md"}]},"mdast":{"type":"root","children":[{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"text","value":"This is the MATLAB","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}}
30,"key":"x0Y6xybOy6"},{"type":"footnoteReference","identifier":"trademark","label":"trademark","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"enumerator":"1","key":"d7nEwi3Qhk"},{"type":"text","value":" edition of the textbook ","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"u7BfOlzD3w"},{"type":"link","url":"https://tobydriscoll.net/FNC","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"text","value":"Fundamentals of Numerical Computation","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"lRcxReQtcH"}],"urlSource":"https://tobydriscoll.net/FNC","key":"LNBesIdiJb"},{"type":"text","value":" by ","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"eUdjC8wNEt"},{"type":"link","url":"https://tobydriscoll.net","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"text","value":"Tobin A. Driscoll","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}}
30,"key":"p8HBJJzoZw"}],"urlSource":"https://tobydriscoll.net","key":"kGSNRs3pjc"},{"type":"text","value":" and Richard J. Braun.","position":{"start":{"line":12,"column":1},"end":{"line":12,"column":1}},"key":"BHc4KX3DrO"}],"key":"YJg9FpWiWB"},{"type":"paragraph","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"children":[{"type":"link","url":"/usage","children":[{"type":"text","value":"Get started!","key":"bOHKG9xahl"}],"class":"button","urlSource":"usage.md","dataUrl":"/usage.json","internal":true,"protocol":"file","key":"QMpBMVlgfJ"}],"key":"DLYIPeqvz5"},{"type":"paragraph","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"children":[{"type":"text","value":"Use these links if you want to use one of the other editions:","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"sW4ew3dPYX"}],"key":"bhI459aZiE"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":18,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://fncbook.com/julia","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"Julia edition","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}}
30,"key":"SVJB5rtUjv"}],"urlSource":"https://fncbook.com/julia","key":"HHDWwsItqy"}],"key":"MwcvwbEKuC"}],"key":"QVsyDoETx1"},{"type":"listItem","spread":true,"position":{"start":{"line":19,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://fncbook.com/python","position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"children":[{"type":"text","value":"Python edition","position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"key":"Z6pwGanJ8P"}],"urlSource":"https://fncbook.com/python","key":"K3af6wnFZm"}],"key":"b0cQXgGPKX"}],"key":"CTolY4DMq1"}],"key":"qLmy8U9pob"},{"type":"thematicBreak","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"IO2JLQ8tiv"},{"type":"paragraph","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"text","value":"To track aggregate traffic patterns, this site uses ","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}}
30,"key":"PyfIAUlWYm"},{"type":"link","url":"https://plausible.io","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"text","value":"Plausible Analytics","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"dKPhfaGGyz"}],"urlSource":"https://plausible.io","key":"nAdjKfcXnV"},{"type":"text","value":", a privacy-first platform that collects no personal data and sets no cookies.","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"dIviX3BpI9"}],"key":"lvIaEodlut"},{"type":"footnoteDefinition","identifier":"trademark","label":"trademark","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"children":[{"type":"text","value":"MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See ","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"key":"WgrNIJbqxs"},{"type":"link","url":"http://mathworks.com/trademarks","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"children":[{"type":"text","value":"mathworks​.com​/trademarks","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}}
30,"key":"FOzRkTBH8f"}],"urlSource":"http://mathworks.com/trademarks","key":"g9cytn9GtM"},{"type":"text","value":" for a list of additional trademarks.","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"key":"lrtMcmOZjd"}],"key":"qqFuHd3itN"}],"enumerator":"1","key":"LEZ1cM7d7b"}],"key":"lmfUkmuz0E"}],"key":"HxleghjeCZ"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"next":{"title":"Preface to the original edition","url":"/preface-original","group":"Preface"}}},"domain":"http://localhost:3000"},"project":{"numbering":{"heading_1":{"enabled":true},"heading_2":{"enabled":true},"heading_3":{"enabled":false}},"math":{"\\float":{"macro":"\\mathbb{F}"},"\\real":{"macro":"\\mathbb{R}"},"\\complex":{"macro":"\\mathbb{C}"},"\\nat":{"macro":"\\mathbb{N}"},"\\integer":{"macro":"\\mathbb{Z}"},"\\rmn":{"macro":"\\mathbb{R}^{#1 \\times #2}"},"\\dd":{"macro":"\\frac{d #1}{d #2}"},"\\ddd":{"macro":"\\frac{d^2 #1}{d #2^2}"},"\\pp":{"macro":"\\frac{\\partial #1}{\\partial #2}"},"\\ppp":{"macro":"\\frac{\\partial^2 #1}{\\partial #2^2}"},"\\ppdd":{"macro":"\\frac{\\partial^2 #1}{\\partial #2 \\partial #3}"},"\\abs":{"macro":"\\left\\lvert #1 \\right\\rvert"},"\\norm":{"macro":"\\left\\lVert #1 \\right\\rVert"},"\\twonorm":{"macro":"\\norm{#1}_2"},"\\onenorm":{"macro":"\\norm{#1}_1"},"\\infnorm":{"macro":"\\norm{#1}_\\infty"},"\\anynorm":{"macro":"\\norm{#1}_#2"},"\\innerprod":{"macro":"\\langle #1,#2 \\rangle"},"\\pr":{"macro":"^{(#1)}"},"\\kron":{"macro":"#1 \\otimes #2"},"\\eye":{"macro":"\\mathbf{e}_#1"},"\\meye":{"macro":"\\mathbf{I}"},"\\Qhat":{"macro":"\\hat{\\mathbf{Q}}"},"\\Rhat":{"macro":"\\hat{\\mathbf{R}}"},"\\bfalpha":{"macro":"\\mathbf{alpha}"},"\\bfdelta":{"macro":"\\mathbf{delta}"},"\\bfzero":{"macro":"\\boldsymbol{0}"},"\\macheps":{"macro":"\\epsilon_\\text{mach}"},"\\fl":{"macro":"\\operatorname{fl}"},"\\diag":{"macro":"\\operatorname{diag}"},"\\ign":{"macro":"\\operatorname{sign}"},"\\Re":{"macro":"\\operatorname{Re}"},"\\Im":{"macro":"\\operatorname{Im}"},"\\ee":{"macro":"\\times 10^"},"\\lnorm":{"macro":"\\|"},"\\rnorm":{"macro":"\\|"},"\\floor":{"macro":"\\lfloor#1\\rfloor"},"\\cI":{"macro":"\\mathcal{I}"},"\\mtx":{"macro":"\\operatorname{mtx}"},"\\myvec":{"macro":"\\operatorname{vec}"},"\\argmin":{"macro":"\\operatorname{argmin}"}},"abbreviations":{"IVP":"initial-value problem","BVP":"boundary-value problem","TPBVP":"two-point boundary-value problem","ONC":"matrix with orthonormal columns","SVD":"singular value decomposition","EVD":"eigenvalue decomposition","SPD":"symmetric positive definite","HPD":"hermitian positive definite","PDE":"partial differential equation","ODE":"ordinary differential equation"},"title":"Fundamentals of Numerical Computation","short_title":"FNC","description":"Online textbook for computational mathematics","github":"https://github.com/fncbook/fnc-matlab","id":"a36af5d8-56ed-4bf2-92e6-5f7fdb82e8e1","toc":[{"file":"home.md"},{"children":[{"file":"frontmatter/preface-original.md"},{"file":"frontmatter/preface.md"}],"title":"Preface"},{"file":"usage.md"},{"file":"setup.md"},{"file":"frontmatter/differences.md"},{"children":[{"file":"chapter1/overview.md","title":"Overview"},{"file":"chapter1/floating-point.md"},{"file":"chapter1/conditioning.md"},{"file":"chapter1/algorithms.md"},{"file":"chapter1/stability.md"},{"file":"chapter1/next.md"}],"title":"1. Introduction"},{"children":[{"file":"chapter2/overview.md","title":"Overview"},{"file":"chapter2/polyinterp.md"},{"file":"chapter2/matrices.md"},{"file":"chapter2/linear-systems.md"},{"file":"chapter2/lu.md"},{"file":"chapter2/efficiency.md"},{"file":"chapter2/pivoting.md"},{"file":"chapter2/norms.md"},{"file":"chapter2/condition-number.md"},{"file":"chapter2/structure.md"},{"file":"chapter2/next.md"}],"title":"2. Linear systems of equations"},{"children":[{"file":"chapter3/overview.md","title":"Overview"},{"file":"chapter3/fitting.md"},{"file":"chapter3/normaleqns.md"},{"file":"chapter3/qr.md"},{"file":"chapter3/house.md"},{"file":"chapter3/next.md"}],"title":"3. Overdetermined linear systems"},{"children":[{"file":"chapter4/overview.md","title":"Overview"},{"file":"chapter4/rootproblem.md"},{"file":"chapter4/fixed-point.md"},{"file":"chapter4/newton.md"},{"file":"chapter4/secant.md"},{"file":"chapter4/newtonsys.md"},{"file":"chapter4/quasinewton.md"}
30,{"file":"chapter4/nlsq.md"},{"file":"chapter4/next.md"}],"title":"4. Roots of nonlinear equations"},{"children":[{"file":"chapter5/overview.md","title":"Overview"},{"file":"chapter5/interpolation.md"},{"file":"chapter5/pwlin.md"},{"file":"chapter5/splines.md"},{"file":"chapter5/finitediffs.md"},{"file":"chapter5/fd-converge.md"},{"file":"chapter5/integration.md"},{"file":"chapter5/adaptive.md"},{"file":"chapter5/next.md"}],"title":"5. Piecewise interpolation"},{"children":[{"file":"chapter6/overview.md","title":"Overview"},{"file":"chapter6/basics.md"},{"file":"chapter6/euler.md"},{"file":"chapter6/systems.md"},{"file":"chapter6/rk.md"},{"file":"chapter6/adaptive-rk.md"},{"file":"chapter6/multistep.md"},{"file":"chapter6/implicit.md"},{"file":"chapter6/zerostability.md"},{"file":"chapter6/next.md"}],"title":"6. Initial-value problems for ODEs"},{"children":[{"file":"chapter7/overview.md","title":"Overview"},{"file":"chapter7/insight.md"},{"file":"chapter7/evd.md"},{"file":"chapter7/svd.md"},{"file":"chapter7/symm-eig.md"},{"file":"chapter7/dimreduce.md"},{"file":"chapter7/next.md"}],"title":"7. Matrix analysis"},{"children":[{"file":"chapter8/overview.md","title":"Overview"},{"file":"chapter8/structure.md"},{"file":"chapter8/power.md"},{"file":"chapter8/inviter.md"},{"file":"chapter8/subspace.md"},{"file":"chapter8/gmres.md"},{"file":"chapter8/minrescg.md"},{"file":"chapter8/matrixfree.md"},{"file":"chapter8/precond.md"},{"file":"chapter8/next.md"}],"title":"8. Krylov methods in linear algebra"},{"children":[{"file":"chapter9/overview.md","title":"Overview"},{"file":"chapter9/polynomial.md"},{"file":"chapter9/barycentric.md"},{"file":"chapter9/stability.md"},{"file":"chapter9/orthogonal.md"},{"file":"chapter9/trig.md"},{"file":"chapter9/spectral-integration.md"},{"file":"chapter9/improper.md"},{"file":"chapter9/next.md"}],"title":"9. Global function approximation"},{"children":[{"file":"chapter10/overview.md","title":"Overview"},{"file":"chapter10/tpbvp.md"},{"file":"chapter10/shooting.md"},{"file":"chapter10/diffmats.md"},{"file":"chapter10/linear.md"},{"file":"chapter10/nonlinear.md"},{"file":"chapter10/galerkin.md"},{"file":"chapter10/next.md"}],"title":"10. Boundary-value problems"},{"children":[{"file":"chapter11/overview.md","title":"Overview"},{"file":"chapter11/blackscholes.md"},{"file":"chapter11/methodlines.md"},{"file":"chapter11/absstab-diffusion.md"},{"file":"chapter11/stiffness.md"},{"file":"chapter11/boundaries.md"},{"file":"chapter11/next.md"}],"title":"11. Diffusion equations"},{"children":[{"file":"chapter12/overview.md","title":"Overview"},{"file":"chapter12/traffic.md"},{"file":"chapter12/upwind.md"},{"file":"chapter12/absstab-advection.md"},{"file":"chapter12/wave.md"},{"file":"chapter12/next.md"}],"title":"12. Advection equations"},{"children":[{"file":"chapter13/overview.md","title":"Overview"},{"file":"chapter13/tensorprod.md"},{"file":"chapter13/diffadv.md"},{"file":"chapter13/laplace.md"},{"file":"chapter13/nonlinear.md"},{"file":"chapter13/next.md"}],"title":"13. Two-dimensional problems"},{"children":[{"file":"appendix/linear-algebra.md"},{"file":"appendix/glossary.md"}],"title":"Appendices"},{"file":"genindex.md"}],"exports":[],"bibliography":[],"index":"index","pages":[{"level":1,"title":"Preface"},{"slug":"preface-original","title":"Preface to the original edition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"preface","title":"Preface to the Julia edition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"usage","title":"How to use this book","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"slug":"setup","title":"MATLAB setup","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"slug":"differences","title":"Key language differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1},{"level":1,"title":"1. Introduction"},{"slug":"overview","title":"1. Introduction","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"floating-point","title":"Floating-point numbers","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"conditioning","title":"Problems and conditioning","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"algorithms","title":"Algorithms","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"stability","title":"Stability","description":"","date":"","thumbnail":"/matlab/build/backwarderror-8e2bfb7f8fdb1f79112520e7913f854e.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"2. Linear systems of equations"},{"slug":"overview-1","title":"2. Linear systems of equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"polyinterp","title":"Polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"matrices","title":"Computing with matrices","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"linear-systems","title":"Linear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"lu","title":"LU factorization","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"efficiency","title":"Efficiency of matrix computations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"pivoting","title":"Row pivoting","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"norms","title":"Vector and matrix norms","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"condition-number","title":"Conditioning of linear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"structure","title":"Exploiting matrix structure","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-1","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"3. Overdetermined linear systems"},{"slug":"overview-2","title":"3. Overdetermined linear systems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fitting","title":"Fitting functions to data","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"normaleqns","title":"The normal equations","description":"","date":"","thumbnail":"/matlab/build/normaleqns2d-3e52bb9871e7e9240ba7863aca7d2ae6.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"qr","title":"The QR factorization","description":"","date":"","thumbnail":"/matlab/build/nonorthogonal-52d81b78e6cc9bc353f4407cf72d867f.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"house","title":"Computing QR factorizations","description":"","date":"","thumbnail":"/matlab/build/hhreflect-e65b632a5a9967a73c404f7caea68a5a.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-2","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"4. Roots of nonlinear equations"},{"slug":"overview-3","title":"4. Roots of nonlinear equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"rootproblem","title":"The rootfinding problem","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fixed-point","title":"Fixed-point iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"newton","title":"Newton’s method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"secant","title":"Interpolation-based methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"newtonsys","title":"Newton for nonlinear systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"quasinewton","title":"Quasi-Newton methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nlsq","title":"Nonlinear least squares","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-3","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"5. Piecewise interpolation"},{"slug":"overview-4","title":"5. Piecewise interpolation","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"interpolation","title":"The interpolation problem","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"pwlin","title":"Piecewise linear interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"splines","title":"Cubic splines","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"finitediffs","title":"Finite differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"fd-converge","title":"Convergence of finite differences","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"integration","title":"Numerical integration","description":"","date":"","thumbnail":"/matlab/build/trapezoid-c3c21befa9ca2abe8781ff414198e0ca.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"adaptive","title":"Adaptive integration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-4","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"6. Initial-value problems for ODEs"},{"slug":"overview-5","title":"6. Initial-value problems for ODEs","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"basics","title":"Basics of IVPs","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"euler","title":"Euler’s method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"systems","title":"IVP systems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"rk","title":"Runge–Kutta methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"adaptive-rk","title":"Adaptive Runge–Kutta","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"multistep","title":"Multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"implicit","title":"Implementation of multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"zerostability","title":"Zero-stability of multistep methods","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-5","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"level":1,"title":"7. Matrix analysis"},{"slug":"overview-6","title":"7. Matrix analysis","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"insight","title":"From matrix to insight","description":"","date":"","thumbnail":"/matlab/build/littlegraph-b6341863aa6d8177aeb8796bb7e9d1d4.png","thumbnailOptimized":"/matlab/build/littlegraph-b6341863aa6d8177aeb8796bb7e9d1d4.webp","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"evd","title":"Eigenvalue decomposition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"svd","title":"Singular value decomposition","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"symm-eig","title":"Symmetry and definiteness","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"dimreduce","title":"Dimension reduction","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-6","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"8. Krylov methods in linear algebra"},{"slug":"overview-7","title":"8. Krylov methods in linear algebra","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"structure-1","title":"Sparsity and structure","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"power","title":"Power iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"inviter","title":"Inverse iteration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"subspace","title":"Krylov subspaces","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"gmres","title":"GMRES","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"minrescg","title":"MINRES and conjugate gradients","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"matrixfree","title":"Matrix-free iterations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"precond","title":"Preconditioning","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-7","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"9. Global function approximation"},{"slug":"overview-8","title":"9. Global function approximation","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"polynomial","title":"Polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"barycentric","title":"The barycentric formula","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"stability-1","title":"Stability of polynomial interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"orthogonal","title":"Orthogonal polynomials","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"trig","title":"Trigonometric interpolation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"spectral-integration","title":"Spectrally accurate integration","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"improper","title":"Improper integrals","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-8","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"10. Boundary-value problems"},{"slug":"overview-9","title":"10. Boundary-value problems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"tpbvp","title":"Two-point BVP","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"shooting","title":"Shooting","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"diffmats","title":"Differentiation matrices","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2}
30,{"slug":"linear","title":"Collocation for linear problems","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nonlinear","title":"Nonlinearity and boundary conditions","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"galerkin","title":"The Galerkin method","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-9","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"11. Diffusion equations"},{"slug":"overview-10","title":"11. Diffusion equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"blackscholes","title":"Black–Scholes equation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"methodlines","title":"The method of lines","description":"","date":"","thumbnail":"/matlab/build/periodicfun-c8e8b95edfa219e387679ec195daf3ad.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"absstab-diffusion","title":"Absolute stability","description":"","date":"","thumbnail":"/matlab/build/stabreg_ab_am-41f0c622b9ececb8c4c9c3ff813b4c69.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"stiffness","title":"Stiffness","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"boundaries","title":"Boundaries","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-10","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"12. Advection equations"},{"slug":"overview-11","title":"12. Advection equations","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"traffic","title":"Traffic flow","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"upwind","title":"Upwinding and stability","description":"","date":"","thumbnail":"/matlab/build/cflpicture-1f522d8960bb511799644b8f75dcd8a4.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"absstab-advection","title":"Absolute stability","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"wave","title":"The wave equation","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-11","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"13. Two-dimensional problems"},{"slug":"overview-12","title":"13. Two-dimensional problems","short_title":"Overview","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"tensorprod","title":"Tensor-product discretizations","description":"","date":"","thumbnail":"/matlab/build/tensor-grid-7f6bc6eeb0d850284bacf96cd0d7801b.svg","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"diffadv","title":"Two-dimensional diffusion and advection","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"laplace","title":"Laplace and Poisson equations","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"nonlinear-1","title":"Nonlinear elliptic PDEs","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"next-12","title":"Next steps","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"level":1,"title":"Appendices"},{"slug":"linear-algebra","title":"Review of linear algebra","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"glossary","title":"Glossary","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":2},{"slug":"genindex","title":"Index","description":"","date":"","thumbnail":"","thumbnailOptimized":"","banner":"","bannerOptimized":"","tags":[],"level":1}]}}},"actionData":null,"errors":null},"future":{"unstable_dev":false,"unstable_postcss":false,"unstable_tailwind":false,"v2_errorBoundary":true,"v2_headers":true,"v2_meta":true,"v2_normalizeFormMethod":true,"v2_routeConvention":true}};</script>
30<script type="module" async="">import "/matlab/build/manifest-CA93D7B7.js";
31import * as route0 from "/matlab/build/root-LKQMTEPT.js";
32import * as route1 from "/matlab/build/routes/$-XDAODCRF.js";
33window.__remixRouteModules = {"root":route0,"routes/$":route1};
34
35import("/matlab/build/entry.client-PCJPW7TK.js");</script>
35</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.