\documentclass[a4paper,12pt]{article} \usepackage[english,vietnamese]{babel} \usepackage{amsmath} \usepackage{lmodern} \usepackage{hyperref} \usepackage{tikz} \newcommand{\exercise}[1]{\noindent\textbf{#1.}} \renewcommand{\thesection}{\Roman{section}} \renewcommand*{\thefootnote}{\fnsymbol{footnote}} \title{Numerical Method: Labwork 2 Report} \author{Nguyễn Gia Phong--BI9-184} \date{Fall 2019} \begin{document} \maketitle \setcounter{section}{2} \section{Polynomial} \exercise{1.c} At the time of writing, function \verb|fzero| in Octave have not support the \verb|Display| option just yet\footnote{Bug report: \url{https://savannah.gnu.org/bugs/?56954}}. However, the implementation of this option is rather trivial, thus I made a quick patch (which is also attached at the bug report). Using this, one can easily display all the iterations as followed: \begin{verbatim} octave:1> fzero (@(x) x.^2 - 9, 0, optimset ('display', 'iter')) Search for an interval around 0 containing a sign change: Func-eval 1, how = initial, a = 0, f(a) = -9, b = 0, f(b) = -9 Func-eval 2, how = search, a = 0, f(a) = -9, b = 0.099, f(b) = -8.9902 Func-eval 3, how = search, a = 0, f(a) = -9, b = 0.1025, f(b) = -8.98949 Func-eval 4, how = search, a = 0, f(a) = -9, b = 0.095, f(b) = -8.99098 Func-eval 5, how = search, a = 0, f(a) = -9, b = 0.11, f(b) = -8.9879 Func-eval 6, how = search, a = 0, f(a) = -9, b = 0.075, f(b) = -8.99437 Func-eval 7, how = search, a = 0, f(a) = -9, b = 0.15, f(b) = -8.9775 Func-eval 8, how = search, a = 0, f(a) = -9, b = 0, f(b) = -9 Func-eval 9, how = search, a = 0, f(a) = -9, b = 0.35, f(b) = -8.8775 Func-eval 10, how = search, a = 0, f(a) = -9, b = -0.4, f(b) = -8.84 Func-eval 11, how = search, a = 0, f(a) = -9, b = 1.1, f(b) = -7.79 Func-eval 12, how = search, a = 0, f(a) = -9, b = -4.9, f(b) = 15.01 Search for a a zero in the interval [-4.9, 0]: Func-eval 13, how = initial, x = 0, f(x) = -9 Func-eval 14, how = interpolation, x = -1.83673, f(x) = -5.62641 (NaN%) Func-eval 15, how = interpolation, x = -3.36837, f(x) = 2.3459 (141.7%) Func-eval 16, how = interpolation, x = -3.19097, f(x) = 1.1823 (-49.6%) Func-eval 17, how = interpolation, x = -2.99725, f(x) = -0.0164972 (-101.4%) Func-eval 18, how = interpolation, x = -3.00258, f(x) = 0.0154927 (193.9%) Func-eval 19, how = interpolation, x = -3, f(x) = 3.07975e-07 (-100.0%) Func-eval 20, how = interpolation, x = -3, f(x) = -7.10543e-15 (-100.0%) Func-eval 21, how = interpolation, x = -3, f(x) = 5.32907e-15 (169.7%) Algorithm converged ans = -3.0000 \end{verbatim} To answer the question in part b, (since I believe these parts are linked to each other), the current implementation of \verb|fzero| search for the second bracket over quantitative chages below if \verb|X0| if it is a single scalar, thus $[-4.9, 0]$ is gotten and the found solution is negative: \begin{verbatim} [-.01 +.025 -.05 +.10 -.25 +.50 -1 +2.5 -5 +10 -50 +100 -500 +1000] \end{verbatim} \section{Non-linear Systems} \exercise{1.a} These statements were used to plot the given functions: \begin{verbatim} ezplot(@(x1, x2) x1 .^ 2 + x1 .* x2 - 10) hold on ezplot(@(x1, x2) x2 + 3 .* x1 .* x2 .^ 2 - 57) \end{verbatim} As shown in the graphs (where $x_1^2 + x_1 x_2 = 10$ are the blue lines and $x_2 + 3 x_1 x_2 = 57$ are the yellow ones), the solutions of $(x_1, x_2)$ are quite close to $(2, 3)$ and $(4.5, -2)$. \begin{figure}[!h] \centering \scalebox{0.37}{\input{2a.tikz}} \end{figure} I would also like to note that I am personally impressed how gnuplot (which is utilised by Octave) is able to export to TikZ graphics with ease. \end{document}