diff --git a/ENUME/projectB/Code/task1Bisection.m b/ENUME/projectB/Code/task1Bisection.m index c1f3f074..fe3af901 100644 --- a/ENUME/projectB/Code/task1Bisection.m +++ b/ENUME/projectB/Code/task1Bisection.m @@ -12,7 +12,6 @@ function [zero, iterations] = falsePosition(taskFunction, a, b, tolerance) [iterations, lastTwoA, lastTwoB, i] = initialize(); [zero, iterations, a, b, lastTwoA, lastTwoB] = firstTwoIterations(a, b, taskFunction, iterations, lastTwoA, lastTwoB); [zero, iterations] = falsePositionLoop(taskFunction, zero, tolerance, lastTwoA, lastTwoB, i, a, b, iterations); - end function [iterations, lastTwoA, lastTwoB, i] = initialize() @@ -47,7 +46,6 @@ function [lastTwoA, i, a, lastTwoB, b, tolerance, zero, iterations] = insideLoop zero = calculateZero(lastTwoB, tolerance, a, b, lastTwoA, taskFunction); iterations(:, size(iterations, 2) + 1) = [zero, taskFunction(zero)]; [a, b] = newSubInterval(taskFunction, a, b, zero); - end function [lastTwoA, lastTwoB] = changeLastTwoAB(lastTwoA, lastTwoB, i, a, b) diff --git a/ENUME/projectB/Code/task2MM1.m b/ENUME/projectB/Code/task2MM1.m index 46a7f703..997ebff4 100644 --- a/ENUME/projectB/Code/task2MM1.m +++ b/ENUME/projectB/Code/task2MM1.m @@ -10,7 +10,6 @@ function y = polynomial(x) end function [approximation, iterations] = mm1(polynomial, a, b, tolerance) - [approximation, approximationValue, iterations] = initialize(a, b, polynomial); [approximation, iterations] = mm1Loop(approximation, tolerance, approximationValue, iterations, polynomial); end diff --git a/ENUME/projectB/Code/task3.asv b/ENUME/projectB/Code/task3.asv deleted file mode 100644 index c4ccf633..00000000 --- a/ENUME/projectB/Code/task3.asv +++ /dev/null @@ -1,72 +0,0 @@ -interval = [-5, 10]; -rootBrackets = rootBracketing(@polynomial, interval(1), interval(2)); - -printGraph(@polynomial, 'Laguerre', @laguerre, interval, rootBrackets, 'Approximate zeros of function for method of '); - -printComplexGraph(@polynomial, 'Laguerre', @laguerre, [-1 + i, 0], 'Aproximate complex roots of polynomial'); - -function y = polynomial(x) - y = -2 * x^4 + 12 * x^3 + 4* x^2 + 1 * x + 3; -end - -function [zero, iterations] = laguerre(polynomial, a, b, tolerance) - [degree, zero, iterations] = initialize(a, b, polynomial); - [zero, iterations] = laguerreLoop(polynomial, zero, tolerance, iterations, degree); - -end - -function [degree, zero, iterations] = initialize(a, b, polynomial) - degree = 4; - zero = (a + b) / 2; - iterations = [zero; polynomial(zero)]; -end - -function [zero, iterations] = laguerreLoop(polynomial, zero, tolerance, iterations, degree) - while abs(polynomial(zero)) > tolerance - [iterations, zero] = insideLoop(polynomial, zero, degree, iterations); - end -end - -function [iterations, zero] = insideLoop(polynomial, zero, degree, iterations) - [derrivative0, derrivative1, derrivative2] = calculateDerrivatives(polynomial, zero); - [zPlus, zMinus] = calculateZ(degree, derrivative0, derrivative1, derrivative2); - - - % update answer - zero = newzero; - iterations(:, size(iterations, 2) + 1) = [zero, polynomial(zero)]; -end - -function [derrivative0, derrivative1, derrivative2] = calculateDerrivatives(polynomial, zero) - % calculate derivatives - derrivative0 = polynomial(zero); - derrivative1 = derivative(polynomial, zero, 1); - derrivative2 = derivative(polynomial, zero, 2); -end - -function [zPlus, zMinus] = calculateZ(degree, derrivative0, derrivative1, derrivative2) - expressionUnderSquareRoot = (degree - 1) * ((degree - 1) * derrivative1 ^ 2 - degree * derrivative0 * derrivative2); - lagsqrt = sqrt(expressionUnderSquareRoot); - - zPlus = degree * derrivative0 / (derrivative1 + lagsqrt); - zMinus = degree * derrivative0 / (derrivative1 - lagsqrt); -end - -function [] = chooseNewZero() - % choose value closer to current approximation - if abs(zPlus) < abs(zMinus) - newzero = zero - zPlus; - else - newzero = zero - zMinus; - end - -% calculate the nth derivative of polynomial at x -function y = derivative(function_, x, degree) - if degree == 0 - y = function_(x); - return - end - - step = sqrt(eps); - y = (derivative(function_, x + step, degree - 1) - derivative(function_, x - step, degree - 1)) / (2 * step); -end diff --git a/ENUME/projectB/Report/report.aux b/ENUME/projectB/Report/report.aux index 6e549b20..336bc5c6 100644 --- a/ENUME/projectB/Report/report.aux +++ b/ENUME/projectB/Report/report.aux @@ -16,38 +16,108 @@ \gdef\HyperFirstAtBeginDocument#1{#1} \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} -\@writefile{toc}{\contentsline {chapter}{\numberline {1}Find all zeros of function}{2}{chapter.1}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {1}Find all zeros of function}{3}{chapter.1}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {1.1}a) False position method}{2}{section.1.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}Problem}{2}{subsection.1.1.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.2}Theoretical Introduction}{2}{subsection.1.1.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{Properties of \emph {false position method}}{3}{section*.2}\protected@file@percent } -\@writefile{toc}{\contentsline {paragraph}{Improvement to the method}{3}{section*.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.3}Results}{4}{subsection.1.1.3}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {1.2}b) the Newton's method}{4}{section.1.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}Problem}{4}{subsection.1.2.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}Theoretical Introduction}{4}{subsection.1.2.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.3}Results}{4}{subsection.1.2.3}\protected@file@percent } -\@writefile{toc}{\contentsline {chapter}{\numberline {2}Find real and complex roots of the polynomial}{5}{chapter.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {1.1}a) False position method}{3}{section.1.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}Problem}{3}{subsection.1.1.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.2}Theoretical Introduction}{3}{subsection.1.1.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{Properties of \emph {false position method}}{4}{section*.2}\protected@file@percent } +\@writefile{toc}{\contentsline {paragraph}{Improvement to the method}{4}{section*.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.3}Results}{5}{subsection.1.1.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {1.2}b) the Newton's method}{5}{section.1.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}Problem}{5}{subsection.1.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}Theoretical Introduction}{5}{subsection.1.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.3}Results}{5}{subsection.1.2.3}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {2}Find real and complex roots of the polynomial}{6}{chapter.2}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {2.1}Problem}{5}{section.2.1}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.2}Theoretical Introduction}{5}{section.2.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}MM1}{6}{subsection.2.2.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}MM2}{7}{subsection.2.2.2}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.3}Results}{8}{section.2.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}Comparison of results between MM1 and MM2}{8}{subsection.2.3.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}Comparison of results between Newton's method and MM2}{8}{subsection.2.3.2}\protected@file@percent } -\@writefile{toc}{\contentsline {chapter}{\numberline {3}Find real and complex roots of the polynomial using Laguerre's method}{9}{chapter.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.1}Problem}{6}{section.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.2}Theoretical Introduction}{6}{section.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}MM1}{7}{subsection.2.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}MM2}{8}{subsection.2.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.3}Results}{9}{section.2.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}Comparison of results between MM1 and MM2}{9}{subsection.2.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}Comparison of results between Newton's method and MM2}{9}{subsection.2.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {3}Find real and complex roots of the polynomial using Laguerre's method}{10}{chapter.3}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {3.1}Problem}{9}{section.3.1}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.2}Theoretical Introduction}{9}{section.3.2}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.3}Results}{10}{section.3.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Comparison of results between MM1 and MM2}{10}{subsection.3.3.1}\protected@file@percent } -\@writefile{toc}{\contentsline {chapter}{\numberline {4}Code appendix}{11}{chapter.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.1}Problem}{10}{section.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.2}Theoretical Introduction}{10}{section.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.3}Results}{11}{section.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Comparison of results between MM1 and MM2}{11}{subsection.3.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {4}Code appendix}{12}{chapter.4}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}Task 1}{12}{section.4.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}task1Bisection.m}{12}{subsection.4.1.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{Top of task1Bisection.m}{12}{section*.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{taskFunction}{12}{section*.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{falsePosition}{13}{section*.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{initialize}{13}{section*.7}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{taskFunction}{13}{section*.8}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{firstTwoIterations}{14}{section*.9}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{falsePositionLoop}{14}{section*.10}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{insideLoop}{15}{section*.11}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{changeLastTwoAB}{15}{section*.12}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{calculateZero}{16}{section*.13}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{newSubInterval}{16}{section*.14}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}task1Newton.m}{16}{subsection.4.1.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{Top of task1Newton.m}{16}{section*.15}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{taskFunction}{17}{section*.16}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{newtonMethod}{17}{section*.17}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{initialize}{17}{section*.18}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{newtonLoop}{17}{section*.19}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{insideLoop}{18}{section*.20}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{calculateZeroIterations}{18}{section*.21}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{checkForDivergence}{18}{section*.22}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.2}Task 2}{19}{section.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}task2MM1.m}{19}{subsection.4.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{Top of task2MM1}{19}{section*.23}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{polynomial}{19}{section*.24}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{mm1}{19}{section*.25}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{initialize}{20}{section*.26}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{mm1Loop}{20}{section*.27}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{insideLoop}{20}{section*.28}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{createEquationSystem}{21}{section*.29}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{rootsOfQuadraticFormula}{21}{section*.30}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{updateApproximations}{21}{section*.31}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{initializeEquationSystem}{22}{section*.32}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{solveEquationSystem}{22}{section*.33}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{createApproximatedQuadraticFormula}{23}{section*.34}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{findRootsOfQuadraticFormula}{23}{section*.35}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{chooseNewRoot}{23}{section*.36}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{addZeroToIterationVector}{23}{section*.37}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{getWorstApproximationIndex}{24}{section*.38}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{deleteWorstApproximation}{24}{section*.39}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}task2MM2.m}{25}{subsection.4.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{top of task2MM2.m}{25}{section*.40}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{polynomial}{25}{section*.41}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{mm2}{25}{section*.42}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{initialize}{25}{section*.43}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{mm2Loop}{26}{section*.44}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{insideLoop}{26}{section*.45}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{getABC}{26}{section*.46}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{findRoots}{26}{section*.47}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{chooseNewApproximation}{27}{section*.48}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{updateApproximations}{27}{section*.49}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{derivative}{27}{section*.50}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.3}Task 3}{28}{section.4.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{Top of Task 3}{28}{section*.51}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{polynomial}{28}{section*.52}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{laguerre}{28}{section*.53}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{initialize}{29}{section*.54}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{laguerreLoop}{29}{section*.55}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{insideLoop}{29}{section*.56}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{calculateDerrivatives}{30}{section*.57}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{calculateZ}{30}{section*.58}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{chooseNewZero}{30}{section*.59}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{updateZeros}{31}{section*.60}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.1}rootBrackering.m}{31}{subsection.4.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{updateZeros}{31}{section*.61}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{initializeValues}{32}{section*.62}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{bracketingLoop}{33}{section*.63}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.2}printGraph.m}{34}{subsection.4.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.3}printComplexGraph.m}{36}{subsection.4.3.3}\protected@file@percent } \bibcite{texbook}{1} -\gdef \@abspage@last{13} +\gdef \@abspage@last{39} diff --git a/ENUME/projectB/Report/report.fdb_latexmk b/ENUME/projectB/Report/report.fdb_latexmk index 1a529142..fac18c2e 100644 --- a/ENUME/projectB/Report/report.fdb_latexmk +++ b/ENUME/projectB/Report/report.fdb_latexmk @@ -1,6 +1,7 @@ # Fdb version 3 -["pdflatex"] 1638477392 "report.tex" "report.pdf" "report" 1638477392 +["pdflatex"] 1638502319 "report.tex" "report.pdf" "report" 1638502319 "/etc/texmf/web2c/texmf.cnf" 1635008344 475 c0e671620eb5563b2130f56340a5fde8 "" + "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab "" "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecbi1200.tfm" 1136768653 3072 ccae1a240ab272417e4399fe942df546 "" "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1136768653 3584 402da0b29eafbad07963b1224b222f18 "" @@ -16,6 +17,9 @@ "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/tcrm1200.tfm" 1136768653 1536 74b7293ec3713bb7fdca8dd1bd1f469c "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex8.tfm" 1246382020 988 bdf658c3bfc2d96d3c8b02cfc1c94c20 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/bera/fvmr8c.tfm" 1136768653 1268 3764023d12371df1f4893e1c3e0d608c "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/bera/fvmr8r.tfm" 1136768653 1292 a0ca2398d40dc5494f22d2fbff33269b "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/bera/fvmr8t.tfm" 1136768653 1380 bb8d389860f8cf35648da78ba6d79918 "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm" 1136768653 992 662f679a0b3d2d53c1b94050fdaa3f50 "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1136768653 1512 f21f83efb36853c0b70002322c1ab3ad "" @@ -41,6 +45,9 @@ "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1248133631 32569 5e5ddc8df908dea60932f3c484a54c0d "" "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy6.pfb" 1248133631 32587 1788b0c1c5b39540c96f5e42ccd6dae8 "" "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb" 1248133631 32626 4f5c1b83753b1dd3a97d1b399a005b4b "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/bera/fvmr8a.pfb" 1136849748 29228 440002646d60f9d1a0cdf5878b9a308f "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/bera/fvmr8c.vf" 1136768653 3344 fa4d9744acd412097dd8fe1c344cfc43 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/bera/fvmr8t.vf" 1136768653 2156 58631a68efc4afbec92c522ba77a542f "" "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" "/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" "/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" @@ -73,6 +80,8 @@ "/usr/share/texlive/texmf-dist/tex/latex/base/report.cls" 1601675358 23204 74c91ecbcc47161218f25d9d0651c0f7 "" "/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo" 1601675358 8450 6fd3588c0e9d06f6f56c6cf4f7246466 "" "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 "" + "/usr/share/texlive/texmf-dist/tex/latex/bera/t1fvm.fd" 1137109926 819 be55b7e3c5cc7c059be8eb7852d712b5 "" + "/usr/share/texlive/texmf-dist/tex/latex/bera/ts1fvm.fd" 1137109926 831 61ac1af3752199781aa7647c9fc0a5aa "" "/usr/share/texlive/texmf-dist/tex/latex/bigfoot/bigfoot.sty" 1440967810 43914 273a3a42cdc1e0e69e94929e58fcd49d "" "/usr/share/texlive/texmf-dist/tex/latex/bigfoot/perpage.sty" 1414965027 5707 8a111e2f4c8f511ad622494ac2fe3f6d "" "/usr/share/texlive/texmf-dist/tex/latex/bigfoot/suffix.sty" 1414965027 3090 223874a03a08cecb9fb79bd86e5dcf97 "" @@ -132,13 +141,13 @@ "/usr/share/texmf/web2c/texmf.cnf" 1613593815 38841 799d1dd9682a55ce442e10c99777ecc1 "" "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1635008389 5160710 ecf427ae8fa19139d8691f526e47bb9b "" "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1635008460 2570450 6e12b1c097cbda0f70015645294afd24 "" - "report.aux" 1638477392 4167 de2115c0a42697ffec7e624e0235a5e9 "pdflatex" - "report.out" 1638477392 1599 16cc4d1f4de80185092890f377b1e58b "pdflatex" - "report.tex" 1638477392 9059 cace34d9cdf051336f277cd0cda8f606 "" - "report.toc" 1638477392 2129 401e73fff3ea793738474b538e08a686 "pdflatex" + "report.aux" 1638502319 11692 878bddd6b432a6517ccbb26f1a1883e0 "pdflatex" + "report.out" 1638502319 2232 9c816be7359e49476c78eac49d6fed11 "pdflatex" + "report.tex" 1638502318 34924 2de225dbe1fc009828226e8a7a899ff1 "" + "report.toc" 1638502319 6784 8ca8f0717e6828668dada7c66c688cf4 "pdflatex" (generated) - "report.pdf" - "report.out" "report.aux" + "report.pdf" "report.toc" + "report.out" "report.log" diff --git a/ENUME/projectB/Report/report.fls b/ENUME/projectB/Report/report.fls index a3fad094..cfc297da 100644 --- a/ENUME/projectB/Report/report.fls +++ b/ENUME/projectB/Report/report.fls @@ -1,4 +1,4 @@ -PWD /home/kuchy/Zlew/Studia/SEM_5/enume_done/Project/projectB +PWD /home/kuchy/Zlew/Studia/SEM_5/enume_done/Project/projectB/Report INPUT /etc/texmf/web2c/texmf.cnf INPUT /usr/share/texmf/web2c/texmf.cnf INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf @@ -811,9 +811,23 @@ INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecti1200.tfm INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/tcrm1200.tfm INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecbi1200.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/bera/t1fvm.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/bera/t1fvm.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/bera/t1fvm.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/bera/t1fvm.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/bera/fvmr8t.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/bera/ts1fvm.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/bera/ts1fvm.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/bera/ts1fvm.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/bera/ts1fvm.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/bera/fvmr8c.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/bera/fvmr8t.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/bera/fvmr8r.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/bera/fvmr8c.vf INPUT report.aux INPUT ./report.out INPUT ./report.out +INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc INPUT /usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-t1.enc INPUT /usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb @@ -825,6 +839,7 @@ INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy6.pfb INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/bera/fvmr8a.pfb INPUT /usr/share/texmf/fonts/type1/public/cm-super/sfbi1200.pfb INPUT /usr/share/texmf/fonts/type1/public/cm-super/sfbx1200.pfb INPUT /usr/share/texmf/fonts/type1/public/cm-super/sfbx1440.pfb diff --git a/ENUME/projectB/Report/report.log b/ENUME/projectB/Report/report.log index d48c83f4..5af7a7d7 100644 --- a/ENUME/projectB/Report/report.log +++ b/ENUME/projectB/Report/report.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2021.10.23) 2 DEC 2021 21:36 +This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2021.10.23) 3 DEC 2021 04:31 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -467,52 +467,279 @@ File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live \c@lstlisting=\count326 [1 -{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./report.toc) +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./report.tocpdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored + + \relax +l.39 ...4.1.2}task1Newton.m}{16}{subsection.4.1.2} + % [1 + +]) \tf@toc=\write4 \openout4 = `report.toc'. -pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored - - \relax -l.47 \chapter - {Find all zeros of function} [1 + [2] +Chapter 1. +[3 + +] [4] [5] +Chapter 2. +[6 + +] [7] [8] [9] +Chapter 3. +[10 + +] [11] +Chapter 4. +LaTeX Font Info: Trying to load font information for T1+fvm on input line 223. +(/usr/share/texlive/texmf-dist/tex/latex/bera/t1fvm.fd +File: t1fvm.fd 2004/09/07 scalable font definitions for T1/fvm. +) +LaTeX Font Info: Font shape `T1/fvm/m/n' will be +(Font) scaled to size 10.20007pt on input line 223. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 224. +LaTeX Font Info: Trying to load font information for TS1+fvm on input line 227. + (/usr/share/texlive/texmf-dist/tex/latex/bera/ts1fvm.fd +File: ts1fvm.fd 2004/09/07 scalable font definitions for TS1/fvm. +) +LaTeX Font Info: Font shape `TS1/fvm/m/n' will be +(Font) scaled to size 10.20007pt on input line 227. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 235. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 235. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 235. + [12 ] -Chapter 1. -[2 - -] [3] [4] -Chapter 2. -[5 - -] [6] [7] [8] -Chapter 3. -[9 - -] [10] -Chapter 4. -[11 - -] [12 +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 269. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 269. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 269. + [13] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 280. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 280. + [14] [15] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 333. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 334. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 334. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 335. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 336. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 336. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 338. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 338. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 365. + [16] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 376. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 376. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 376. + [17] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 428. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 428. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 429. + [18] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 454. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 459. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 467. + [19] [20] [21] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 552. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 553. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 554. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 555. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 566. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 569. + [22] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 591. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 591. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 592. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 592. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 592. + [23] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 624. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 627. + [24] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 655. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 660. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 668. + [25] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 733. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 733. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 734. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 734. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 734. + [26] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 772. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 772. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 772. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 772. + [27] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 782. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 787. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 795. + [28] [29] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 862. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 862. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 862. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 866. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 876. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 878. + [30] [31] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 914. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 917. + [32] [33] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 969. + [34] [35] +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 1006. +Package textcomp Info: Symbol \textminus not provided by +(textcomp) font family fvm in TS1 encoding. +(textcomp) Default family used instead on input line 1012. + [36] [37] [38 ] (./report.aux) Package rerunfilecheck Info: File `report.out' has not changed. -(rerunfilecheck) Checksum: 16CC4D1F4DE80185092890F377B1E58B;1599. +(rerunfilecheck) Checksum: 9C816BE7359E49476C78EAC49D6FED11;2232. ) Here is how much of TeX's memory you used: - 11913 strings out of 479304 - 210891 string characters out of 5869778 - 526071 words of memory out of 5000000 - 28865 multiletter control sequences out of 15000+600000 - 419699 words of font info for 68 fonts, out of 8000000 for 9000 + 12956 strings out of 479304 + 224136 string characters out of 5869778 + 945251 words of memory out of 5000000 + 29341 multiletter control sequences out of 15000+600000 + 420612 words of font info for 71 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 81i,6n,88p,548b,753s stack positions out of 5000i,500n,10000p,200000b,80000s -{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-t1.enc}{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc} -Output written on report.pdf (13 pages, 251184 bytes). + 81i,6n,88p,548b,2255s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-t1.enc}{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc} +Output written on report.pdf (39 pages, 325697 bytes). PDF statistics: - 273 PDF objects out of 1000 (max. 8388607) - 237 compressed objects within 3 object streams - 41 named destinations out of 1000 (max. 500000) - 185 words of extra memory for PDF output out of 10000 (max. 10000000) + 1078 PDF objects out of 1200 (max. 8388607) + 1007 compressed objects within 11 object streams + 598 named destinations out of 1000 (max. 500000) + 265 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/ENUME/projectB/Report/report.out b/ENUME/projectB/Report/report.out index 50fbb0d2..173654f5 100644 --- a/ENUME/projectB/Report/report.out +++ b/ENUME/projectB/Report/report.out @@ -21,3 +21,13 @@ \BOOKMARK [1][-]{section.3.3}{Results}{chapter.3}% 21 \BOOKMARK [2][-]{subsection.3.3.1}{Comparison of results between MM1 and MM2}{section.3.3}% 22 \BOOKMARK [0][-]{chapter.4}{Code appendix}{}% 23 +\BOOKMARK [1][-]{section.4.1}{Task 1}{chapter.4}% 24 +\BOOKMARK [2][-]{subsection.4.1.1}{task1Bisection.m}{section.4.1}% 25 +\BOOKMARK [2][-]{subsection.4.1.2}{task1Newton.m}{section.4.1}% 26 +\BOOKMARK [1][-]{section.4.2}{Task 2}{chapter.4}% 27 +\BOOKMARK [2][-]{subsection.4.2.1}{task2MM1.m}{section.4.2}% 28 +\BOOKMARK [2][-]{subsection.4.2.2}{task2MM2.m}{section.4.2}% 29 +\BOOKMARK [1][-]{section.4.3}{Task 3}{chapter.4}% 30 +\BOOKMARK [2][-]{subsection.4.3.1}{rootBrackering.m}{section.4.3}% 31 +\BOOKMARK [2][-]{subsection.4.3.2}{printGraph.m}{section.4.3}% 32 +\BOOKMARK [2][-]{subsection.4.3.3}{printComplexGraph.m}{section.4.3}% 33 diff --git a/ENUME/projectB/Report/report.pdf b/ENUME/projectB/Report/report.pdf index 0686f476..f7b915c9 100644 Binary files a/ENUME/projectB/Report/report.pdf and b/ENUME/projectB/Report/report.pdf differ diff --git a/ENUME/projectB/Report/report.synctex.gz b/ENUME/projectB/Report/report.synctex.gz index 6be4b856..0520d111 100644 Binary files a/ENUME/projectB/Report/report.synctex.gz and b/ENUME/projectB/Report/report.synctex.gz differ diff --git a/ENUME/projectB/Report/report.tex b/ENUME/projectB/Report/report.tex index 46be266b..9d14326c 100644 --- a/ENUME/projectB/Report/report.tex +++ b/ENUME/projectB/Report/report.tex @@ -214,6 +214,816 @@ This formula is similar to the one from MM2 but also takes order of the polynomi \chapter{Code appendix} +\section{Task 1} + +\subsection{task1Bisection.m} + +\subsubsection{Top of task1Bisection.m} +\begin{simplechar} +\begin{lstlisting} +interval = [-5, 10]; +rootBrackets = rootBracketing(@taskFunction, interval(1), interval(2)); + +printGraph(@taskFunction, 'False Position', @falsePosition, interval, rootBrackets, 'Approximate zeros of function for method of '); +\end{lstlisting} +\end{simplechar} + +\subsubsection{taskFunction} +\begin{simplechar} +\begin{lstlisting} +function y = taskFunction(x) + y = -2.1 + 0.3*x - x*exp(1)^(-x); +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{falsePosition} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = falsePosition(taskFunction, a, b, tolerance) + + [iterations, lastTwoA, lastTwoB, i] = initialize(); + [zero, iterations, a, b, lastTwoA, lastTwoB] = firstTwoIterations(a, b, taskFunction, iterations, lastTwoA, lastTwoB); + [zero, iterations] = falsePositionLoop(taskFunction, zero, tolerance, lastTwoA, lastTwoB, i, a, b, iterations); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{initialize} +\begin{simplechar} +\begin{lstlisting} +function [iterations, lastTwoA, lastTwoB, i] = initialize() + iterations = double.empty(2, 0); + lastTwoA = double.empty(2, 0); + lastTwoB = double.empty(2, 0); + i = 0; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{taskFunction} +\begin{simplechar} +\begin{lstlisting} +function y = taskFunction(x) + y = -2.1 + 0.3*x - x*exp(1)^(-x); +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{firstTwoIterations} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations, a, b, lastTwoA, lastTwoB] = firstTwoIterations(a, b, taskFunction, iterations, lastTwoA, lastTwoB) + for j = 1 : 2 + zero = (a*taskFunction(b) - b * taskFunction(a)) / (taskFunction(b) - taskFunction(a)); + iterations(:, size(iterations, 2) + 1) = [zero, taskFunction(zero)]; + if sign(taskFunction(a)) ~= sign(taskFunction(zero)) + b = zero; + else + a = zero; + end + lastTwoA(j) = a; + lastTwoB(j) = b; + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{falsePositionLoop} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = falsePositionLoop(taskFunction, zero, tolerance, lastTwoA, lastTwoB, i, a, b, iterations) + while abs(taskFunction(zero)) > tolerance + [lastTwoA, i, a, lastTwoB, b, tolerance, zero, iterations] = insideLoop(lastTwoA, i, a, lastTwoB, b, tolerance, taskFunction, iterations); + end +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{insideLoop} +\begin{simplechar} +\begin{lstlisting} +function [lastTwoA, i, a, lastTwoB, b, tolerance, zero, iterations] = insideLoop(lastTwoA, i, a, lastTwoB, b, tolerance, taskFunction, iterations) + [lastTwoA, lastTwoB] = changeLastTwoAB(lastTwoA, lastTwoB, i, a, b); + zero = calculateZero(lastTwoB, tolerance, a, b, lastTwoA, taskFunction); + iterations(:, size(iterations, 2) + 1) = [zero, taskFunction(zero)]; + [a, b] = newSubInterval(taskFunction, a, b, zero); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{changeLastTwoAB} +\begin{simplechar} +\begin{lstlisting} +function [lastTwoA, lastTwoB] = changeLastTwoAB(lastTwoA, lastTwoB, i, a, b) + lastTwoA(mod(i, 2) + 1) = a; + lastTwoB(mod(i, 2) + 1) = b; +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{calculateZero} +\begin{simplechar} +\begin{lstlisting} +function [zero] = calculateZero(lastTwoB, tolerance, a, b, lastTwoA, taskFunction) + if(abs(lastTwoB(1) - lastTwoB(2)) < tolerance) + zero = (a*(taskFunction(b) / 2) - b * taskFunction(a)) / (taskFunction(b) / 2 - taskFunction(a)); + elseif (abs(lastTwoA(1) - lastTwoA(2)) < tolerance) + zero = (a*taskFunction(b) - b * (taskFunction(a) / 2)) / (taskFunction(b) - (taskFunction(a) / 2)); + else + zero = (a*taskFunction(b) - b * taskFunction(a)) / (taskFunction(b) - taskFunction(a)); + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{newSubInterval} +\begin{simplechar} +\begin{lstlisting} +function [a, b] = newSubInterval(taskFunction, a, b, zero) + if sign(taskFunction(a)) ~= sign(taskFunction(zero)) + b = zero; + else + a = zero; + end +end + +\end{lstlisting} +\end{simplechar} + + + +\subsection{task1Newton.m} + +\subsubsection{Top of task1Newton.m} +\begin{simplechar} +\begin{lstlisting} +interval = [-5, 10]; +rootBrackets = rootBracketing(@taskFunction, interval(1), interval(2)); + +printGraph(@taskFunction, 'Newton', @newtonMethod, interval, rootBrackets, 'Approximate zeros of function for method of '); +\end{lstlisting} +\end{simplechar} + +\subsubsection{taskFunction} +\begin{simplechar} +\begin{lstlisting} +function y = taskFunction(x) + y = -2.1 + 0.3*x - x*exp(1)^(-x); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{newtonMethod} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = newtonMethod(taskFunction, a, b, tolerance) + [iterations, iteration, zero] = initialize(a, b); + [zero, iterations] = newtonLoop(iterations, iteration, zero, a, b, tolerance, taskFunction); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{initialize} +\begin{simplechar} +\begin{lstlisting} +function [iterations, step, zero] = initialize(a, b) + iterations = double.empty(2, 0); + step = sqrt(eps); + zero = (a + b) / 2; + iterations(:, size(iterations, 2) + 1) = [zero, taskFunction(zero)]; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{newtonLoop} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = newtonLoop(iterations, iteration, zero, a, b, tolerance, taskFunction) + while abs(taskFunction(zero)) > tolerance + [zero, iterations] = insideLoop(taskFunction, zero, iteration, iterations, a, b); + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{insideLoop} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = insideLoop(taskFunction, zero, iteration, iterations, a, b) + [zero, iterations] = calculateZeroIterations(taskFunction, zero, iteration, iterations); + checkForDivergence(zero, a, b); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{calculateZeroIterations} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = calculateZeroIterations(taskFunction, zero, iteration, iterations) + derivative = (taskFunction(zero + iteration) - taskFunction(zero - iteration)) / (2 * iteration); + zero = zero - taskFunction(zero) / derivative; + iterations(:, size(iterations, 2) + 1) = [zero, taskFunction(zero)]; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{checkForDivergence} +\begin{simplechar} +\begin{lstlisting} +function checkForDivergence(zero, a, b) + if zero < a || zero > b + error('Divergent iteration'); + end +end +\end{lstlisting} +\end{simplechar} + +\newpage +\section{Task 2} + +\subsection{task2MM1.m} + +\subsubsection{Top of task2MM1} +\begin{simplechar} +\begin{lstlisting} +interval = [-5, 10]; +rootBrackets = rootBracketing(@polynomial, interval(1), interval(2)); + +printGraph(@polynomial, 'MM1', @mm1, interval, rootBrackets, 'Approximate zeros of function for method of '); + +printComplexGraph(@polynomial, 'MM1', @mm1, [-1 + i, 0], 'Aproximate complex roots of polynomial'); +\end{lstlisting} +\end{simplechar} + +\subsubsection{polynomial} +\begin{simplechar} +\begin{lstlisting} +function y = polynomial(x) + y = -2 * x^4 + 12 * x^3 + 4* x^2 + 1 * x + 3; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{mm1} +\begin{simplechar} +\begin{lstlisting} +function [approximation, iterations] = mm1(polynomial, a, b, tolerance) + [approximation, approximationValue, iterations] = initialize(a, b, polynomial); + [approximation, iterations] = mm1Loop(approximation, tolerance, approximationValue, iterations, polynomial); +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{initialize} +\begin{simplechar} +\begin{lstlisting} +function [approximation, approximationValue, iterations] = initialize(a, b, polynomial) + approximation = [a, b, (a + b) / 2]; + approximationValue = arrayfun(polynomial, approximation); + iterations = [approximation(3); polynomial(approximation(3))]; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{mm1Loop} +\begin{simplechar} +\begin{lstlisting} +function [approximation, iterations] = mm1Loop(approximation, tolerance, approximationValue, iterations, polynomial) + while abs(polynomial(approximation(3))) > tolerance + [approximation, approximationValue, iterations] = insideLoop(approximation, approximationValue, polynomial, iterations); + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{insideLoop} +\begin{simplechar} +\begin{lstlisting} +function [approximation, approximationValue, iterations] = insideLoop(approximation, approximationValue, polynomial, iterations) + equationsSystem = createEquationSystem(approximation, approximationValue); + [zPlus, zMinus] = rootsOfQuadraticFormula(equationsSystem, approximationValue); + [approximation, approximationValue, iterations] = updateApproximations(zPlus, zMinus, approximation, iterations, polynomial); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{createEquationSystem} +\begin{simplechar} +\begin{lstlisting} +function equationsSystem = createEquationSystem(approximation, approximationValue) + [z0, z1, difference0, difference1] = initializeEquationSystem(approximation, approximationValue); + equationsSystem = solveEquationSystem(z0, difference0, z1, difference1); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{rootsOfQuadraticFormula} +\begin{simplechar} +\begin{lstlisting} +function [zPlus, zMinus] = rootsOfQuadraticFormula(equationsSystem, approximationValue) + [a, b, c] = createApproximatedQuadraticFormula(equationsSystem, approximationValue); + [zPlus, zMinus] = findRootsOfQuadraticFormula(a, b, c); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{updateApproximations} +\begin{simplechar} +\begin{lstlisting} +function [approximation, approximationValue, iterations] = updateApproximations(zPlus, zMinus, approximation, iterations, polynomial) + newApproximation = chooseNewRoot(zPlus, zMinus, approximation); + iterations = addZeroToIterationVector(newApproximation, iterations, polynomial); + worstApproximationIndex = getWorstApproximationIndex(approximation, newApproximation); + [approximation, approximationValue] = deleteWorstApproximation(worstApproximationIndex, approximation, polynomial, newApproximation); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{initializeEquationSystem} +\begin{simplechar} +\begin{lstlisting} +function [z0, z1, difference0, difference1] = initializeEquationSystem(approximation, approximationValue) + z0 = approximation(1) - approximation(3); + z1 = approximation(2) - approximation(3); + difference0 = approximationValue(1) - approximationValue(3); + difference1 = approximationValue(2) - approximationValue(3); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{solveEquationSystem} +\begin{simplechar} +\begin{lstlisting} +function equationsSystem = solveEquationSystem(z0, difference0, z1, difference1) + equationsSystem = [z0 ^ 2, z0, difference0; z1 ^ 2, z1, difference1]; + reductor = equationsSystem(2, 1) / equationsSystem(1, 1); + equationsSystem(2, :) = equationsSystem(2, :) - reductor * equationsSystem(1, :); + equationsSystem(2, 1) = 0; + equationsSystem(2, :) = equationsSystem(2, :) ./ equationsSystem(2, 2); + equationsSystem(1, :) = equationsSystem(1, :) - equationsSystem(1, 2) * equationsSystem(2, :); + equationsSystem(1, :) = equationsSystem(1, :) ./ equationsSystem(1, 1); +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{createApproximatedQuadraticFormula} +\begin{simplechar} +\begin{lstlisting} +function [a, b, c] = createApproximatedQuadraticFormula(equationsSystem, approximationValue) + a = equationsSystem(1, 3); + b = equationsSystem(2, 3); + c = approximationValue(3); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{findRootsOfQuadraticFormula} +\begin{simplechar} +\begin{lstlisting} +function [zPlus, zMinus] = findRootsOfQuadraticFormula(a, b, c) + zPlus = -2 * c / (b + sqrt(b ^ 2 - 4 * a * c)); + zMinus = -2 * c / (b - sqrt(b ^ 2 - 4 * a * c)); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{chooseNewRoot} +\begin{simplechar} +\begin{lstlisting} +function newApproximation = chooseNewRoot(zPlus, zMinus, approximation) + if abs(zPlus) < abs(zMinus) + newApproximation = approximation(3) + zPlus; + else + newApproximation = approximation(3) + zMinus; + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{addZeroToIterationVector} +\begin{simplechar} +\begin{lstlisting} +function iterations = addZeroToIterationVector(newApproximation, iterations, polynomial) + zero = newApproximation; + iterations(:, size(iterations, 2) + 1) = [zero, polynomial(zero)]; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{getWorstApproximationIndex} +\begin{simplechar} +\begin{lstlisting} +function worstApproximationIndex = getWorstApproximationIndex(approximation, newApproximation) + worstApproximationIndex = -1; + worstApproximationDifference = 0; + for i = 1:size(approximation, 2) + diff = abs(approximation(i) - newApproximation); + if diff > worstApproximationDifference + worstApproximationIndex = i; + worstApproximationDifference = diff; + end + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{deleteWorstApproximation} +\begin{simplechar} +\begin{lstlisting} +function [approximation, approximationValue] = deleteWorstApproximation(worstApproximationIndex, approximation, polynomial, newApproximation) + approximation(worstApproximationIndex) = []; + approximation(3) = newApproximation; + approximationValue = arrayfun(polynomial, approximation); +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsection{task2MM2.m} + + +\subsubsection{top of task2MM2.m} +\begin{simplechar} +\begin{lstlisting} +interval = [-5, 10]; +rootBrackets = rootBracketing(@polynomial, interval(1), interval(2)); + +printGraph(@polynomial, 'MM2', @mm2, interval, rootBrackets, 'Approximate zeros of function for method of '); + +printComplexGraph(@polynomial, 'MM2', @mm2, [-1 + i, 0], 'Aproximate complex roots of polynomial'); +\end{lstlisting} +\end{simplechar} + +\subsubsection{polynomial} +\begin{simplechar} +\begin{lstlisting} +function y = polynomial(x) + y = -2 * x^4 + 12 * x^3 + 4* x^2 + 1 * x + 3; +end + +\end{lstlisting} +\end{simplechar} + +\subsubsection{mm2} +\begin{simplechar} +\begin{lstlisting} +function [approximation, iterations] = mm2(polynomial, a, b, tolerance) + [approximation, iterations] = initialize(a, b, polynomial); + [approximation, iterations] = mm2Loop(approximation, iterations, polynomial, tolerance); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{initialize} +\begin{simplechar} +\begin{lstlisting} +function [approximation, iterations] = initialize(a, b, polynomial) + approximation = (a + b) / 2; + iterations = [approximation; polynomial(approximation)]; +end + +\end{lstlisting} +\end{simplechar} + +\subsubsection{mm2Loop} +\begin{simplechar} +\begin{lstlisting} +function [approximation, iterations] = mm2Loop(approximation, iterations, polynomial, tolerance) + while abs(polynomial(approximation)) > tolerance + [approximation, iterations] = insideLoop(approximation, polynomial, iterations); + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{insideLoop} +\begin{simplechar} +\begin{lstlisting} +function [approximation, iterations] = insideLoop(approximation, polynomial, iterations) + [a, b, c] = getABC(approximation, polynomial); + [zPlus, zMinus] = findRoots(a, b, c); + newApproximation = chooseNewApproximation(zPlus, zMinus, approximation); + [approximation, iterations] = updateApproximations(newApproximation, iterations, polynomial); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{getABC} +\begin{simplechar} +\begin{lstlisting} +function [a, b, c] = getABC(approximation, polynomial) + c = polynomial(approximation); + b = derivative(polynomial, approximation, 1); + a = derivative(polynomial, approximation, 2) / 2; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{findRoots} +\begin{simplechar} +\begin{lstlisting} +function [zPlus, zMinus] = findRoots(a, b, c) + zPlus = -2 * c / (b + sqrt(b ^ 2 - 4 * a * c)); + zMinus = -2 * c / (b - sqrt(b ^ 2 - 4 * a * c)); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{chooseNewApproximation} +\begin{simplechar} +\begin{lstlisting} +function newApproximation = chooseNewApproximation(zPlus, zMinus, approximation) + if abs(zPlus) < abs(zMinus) + newApproximation = approximation + zPlus; + else + newApproximation = approximation + zMinus; + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{updateApproximations} +\begin{simplechar} +\begin{lstlisting} +function [approximation, iterations] = updateApproximations(newApproximation, iterations, polynomial) + approximation = newApproximation; + iterations(:, size(iterations, 2) + 1) = [approximation, polynomial(approximation)]; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{derivative} +\begin{simplechar} +\begin{lstlisting} +function y = derivative(function_, x, degree) + if degree == 0 + y = function_(x); + return + end + + step = sqrt(eps); + y = (derivative(function_, x + step, degree - 1) - derivative(function_, x - step, degree - 1)) / (2 * step); +end +\end{lstlisting} +\end{simplechar} + +\section{Task 3} + +\subsubsection{Top of Task 3} +\begin{simplechar} +\begin{lstlisting} +interval = [-5, 10]; +rootBrackets = rootBracketing(@polynomial, interval(1), interval(2)); + +printGraph(@polynomial, 'Laguerre', @laguerre, interval, rootBrackets, 'Approximate zeros of function for method of '); + +printComplexGraph(@polynomial, 'Laguerre', @laguerre, [-1 + i, 0], 'Aproximate complex roots of polynomial'); +\end{lstlisting} +\end{simplechar} + +\subsubsection{polynomial} +\begin{simplechar} +\begin{lstlisting} +function y = polynomial(x) + y = -2 * x^4 + 12 * x^3 + 4* x^2 + 1 * x + 3; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{laguerre} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = laguerre(polynomial, a, b, tolerance) + [degree, zero, iterations] = initialize(a, b, polynomial); + [zero, iterations] = laguerreLoop(polynomial, zero, tolerance, iterations, degree); + +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{initialize} +\begin{simplechar} +\begin{lstlisting} +function [degree, zero, iterations] = initialize(a, b, polynomial) + degree = 4; + zero = (a + b) / 2; + iterations = [zero; polynomial(zero)]; +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{laguerreLoop} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = laguerreLoop(polynomial, zero, tolerance, iterations, degree) + while abs(polynomial(zero)) > tolerance + [iterations, zero] = insideLoop(polynomial, zero, degree, iterations); + end +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{insideLoop} +\begin{simplechar} +\begin{lstlisting} +function [iterations, zero] = insideLoop(polynomial, zero, degree, iterations) + [derrivative0, derrivative1, derrivative2] = calculateDerrivatives(polynomial, zero); + [zPlus, zMinus] = calculateZ(degree, derrivative0, derrivative1, derrivative2); + newZero = chooseNewZero(zPlus, zMinus, zero); + [zero, iterations] = updateZeros(newZero, iterations, polynomial); +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{calculateDerrivatives} +\begin{simplechar} +\begin{lstlisting} +function [derrivative0, derrivative1, derrivative2] = calculateDerrivatives(polynomial, zero) + derrivative0 = polynomial(zero); + derrivative1 = derivative(polynomial, zero, 1); + derrivative2 = derivative(polynomial, zero, 2); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{calculateZ} +\begin{simplechar} +\begin{lstlisting} +function [zPlus, zMinus] = calculateZ(degree, derrivative0, derrivative1, derrivative2) + expressionUnderSquareRoot = (degree - 1) * ((degree - 1) * derrivative1 ^ 2 - degree * derrivative0 * derrivative2); + lagsqrt = sqrt(expressionUnderSquareRoot); + + zPlus = degree * derrivative0 / (derrivative1 + lagsqrt); + zMinus = degree * derrivative0 / (derrivative1 - lagsqrt); +end +\end{lstlisting} +\end{simplechar} + +\subsubsection{chooseNewZero} +\begin{simplechar} +\begin{lstlisting} +function newZero = chooseNewZero(zPlus, zMinus, zero) + if abs(zPlus) < abs(zMinus) + newZero = zero - zPlus; + else + newZero = zero - zMinus; + end +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{updateZeros} +\begin{simplechar} +\begin{lstlisting} +function [zero, iterations] = updateZeros(newZero, iterations, polynomial) + zero = newZero; + iterations(:, size(iterations, 2) + 1) = [zero, polynomial(zero)]; +end +\end{lstlisting} +\end{simplechar} + +\subsection{rootBrackering.m} + +\subsubsection{updateZeros} +\begin{simplechar} +\begin{lstlisting} +% find the root brackets of a function within the given range +function rootBrackets = rootBracketing(givenFunction, intervalLeft, intervalRight) + [a, b, rootBrackets, resolution] = initializeValues(intervalLeft, intervalRight); + rootBrackets = bracketingLoop(a, b, rootBrackets, intervalRight, resolution, givenFunction); +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{initializeValues} +\begin{simplechar} +\begin{lstlisting} +function [a, b, rootBrackets, resolution] = initializeValues(intervalLeft, intervalRight) + % define search resolution + resolution = (intervalRight - intervalLeft) / 6; + % The higher the value of denominator the less iterations will it take + % to reach the roots, however in order to have nice graph showing those + % brackets I will choose relatively small denominator - I have choosen + % the smallest natural number that still generates brackets on a graph + + % start search at the start of the range + a = intervalLeft; + b = intervalLeft + resolution; + rootBrackets = double.empty(2, 0); % initialize empty vector of size 2 +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsubsection{bracketingLoop} +\begin{simplechar} +\begin{lstlisting} +function rootBrackets = bracketingLoop(a, b, rootBrackets, intervalRight, resolution, givenFunction) + while b ~= intervalRight % if the bracket can't be expanded end loop + % if the function changes sign inside the interval that means that we passed through a root that means that a bracket has been found + if sign(givenFunction(a)) ~= sign(givenFunction(b)) + % save bracket + rootBrackets(:, size(rootBrackets, 2) + 1) = [a, b]; % Add the new bracket to existing ones + end + % check next bracket + a = b; + b = min(a + resolution, intervalRight); + % Once a + resolution > intervalRight, then we will know that we + % reached beyond the interval and we must stop + end +end +\end{lstlisting} +\end{simplechar} + +\newpage +\subsection{printGraph.m} +\begin{simplechar} +\begin{lstlisting} +% graph the real roots of a function +function printGraph(taskFunction, algorithmName, algorithm, interval, rootBrackets, plotTitle) + figure() + grid on; % Get y values lines + hold on; % Retain current plot when adding new plots + title([plotTitle, algorithmName]); + set(gca, 'XAxisLocation', 'origin'); % Set properties of current axis + x = interval(1):0.01:interval(2); + % x is a vector of values between left and right interval with every value being higher by 0.01 + y = arrayfun(taskFunction, x); % We sketch the function from task for each x + plot(x, y); + + % iterate over rootBrackets and add them to the plot + for rootBracket = rootBrackets + % find all zeros within the bracket using the given algorithm + % Get all steps from the algorithm we use + [~, steps] = algorithm(taskFunction, rootBracket(1), rootBracket(2), 1e-10); + + firstStepColor = [1 0 0]; % Red + otherStepsColor = [0 1 0]; % Green + % plot first steps + scatter(steps(1, 1), steps(2, 1), [], firstStepColor); + text(steps(1, 1), steps(2, 1), 'firstStep', 'HorizontalAlignment', 'center', 'VerticalAlignment', 'top'); % It makes text appear neatly + % plot other steps + scatter(steps(1, 2:end), steps(2, 2:end), [], otherStepsColor); + + + + % print root table + disp([plotTitle, ' (', algorithmName, ')']); + columns = {'step', 'root', 'value at root'}; + disp(table((1:size(steps, 2))', steps(1, :)', steps(2, :)', 'VariableNames', columns)); + end +end + +\end{lstlisting} +\end{simplechar} + +\newpage +\subsection{printComplexGraph.m} +\begin{simplechar} +\begin{lstlisting} +% graph the complex roots of a function +function printComplexGraph(printComplexGraph, algorithmName, algorithm, rootBrackets, plottitle) + figure(); + grid on; % Get y values lines + hold on; % Retain current plot when adding new plots + title([plottitle, algorithmName]); + xlabel("Real part"); + ylabel("Imaginary part"); + set(gca, 'XAxisLocation', 'origin'); % Set properties of current axis + + % find all zeros within the bracket using the given algorithm + [~, steps] = algorithm(printComplexGraph, rootBrackets(1), rootBrackets(2), 1e-15); + + % plot first step + text(real(steps(1, 1)), imag(steps(1, 1)), 'start', 'HorizontalAlignment', 'center', 'VerticalAlignment', 'top'); + + % plot steps on graph + plot(real(steps(1, :)), imag(steps(1, :)), '-x'); + + % plot last step + text(real(steps(1, end)), imag(steps(1, end)), 'end', 'HorizontalAlignment', 'center', 'VerticalAlignment', 'top'); + + + % print root table + disp([plottitle, ' (', algorithmName, ')']); + columns = {'step', 'root', 'abs value at root'}; + disp(table([1:size(steps, 2)]', steps(1, :)', abs(steps(2, :))', 'VariableNames', columns)); +end +\end{lstlisting} +\end{simplechar} + + \begin{thebibliography}{9} \bibitem{texbook} Piotr Tatjewski (2014) \emph{Numerical Methods}, Oficyna Wydawnicza Politechniki Warszawskiej diff --git a/ENUME/projectB/Report/report.toc b/ENUME/projectB/Report/report.toc index 0577e97b..3b5183b8 100644 --- a/ENUME/projectB/Report/report.toc +++ b/ENUME/projectB/Report/report.toc @@ -1,25 +1,95 @@ -\contentsline {chapter}{\numberline {1}Find all zeros of function}{2}{chapter.1}% -\contentsline {section}{\numberline {1.1}a) False position method}{2}{section.1.1}% -\contentsline {subsection}{\numberline {1.1.1}Problem}{2}{subsection.1.1.1}% -\contentsline {subsection}{\numberline {1.1.2}Theoretical Introduction}{2}{subsection.1.1.2}% -\contentsline {subsubsection}{Properties of \emph {false position method}}{3}{section*.2}% -\contentsline {paragraph}{Improvement to the method}{3}{section*.3}% -\contentsline {subsection}{\numberline {1.1.3}Results}{4}{subsection.1.1.3}% -\contentsline {section}{\numberline {1.2}b) the Newton's method}{4}{section.1.2}% -\contentsline {subsection}{\numberline {1.2.1}Problem}{4}{subsection.1.2.1}% -\contentsline {subsection}{\numberline {1.2.2}Theoretical Introduction}{4}{subsection.1.2.2}% -\contentsline {subsection}{\numberline {1.2.3}Results}{4}{subsection.1.2.3}% -\contentsline {chapter}{\numberline {2}Find real and complex roots of the polynomial}{5}{chapter.2}% -\contentsline {section}{\numberline {2.1}Problem}{5}{section.2.1}% -\contentsline {section}{\numberline {2.2}Theoretical Introduction}{5}{section.2.2}% -\contentsline {subsection}{\numberline {2.2.1}MM1}{6}{subsection.2.2.1}% -\contentsline {subsection}{\numberline {2.2.2}MM2}{7}{subsection.2.2.2}% -\contentsline {section}{\numberline {2.3}Results}{8}{section.2.3}% -\contentsline {subsection}{\numberline {2.3.1}Comparison of results between MM1 and MM2}{8}{subsection.2.3.1}% -\contentsline {subsection}{\numberline {2.3.2}Comparison of results between Newton's method and MM2}{8}{subsection.2.3.2}% -\contentsline {chapter}{\numberline {3}Find real and complex roots of the polynomial using Laguerre's method}{9}{chapter.3}% -\contentsline {section}{\numberline {3.1}Problem}{9}{section.3.1}% -\contentsline {section}{\numberline {3.2}Theoretical Introduction}{9}{section.3.2}% -\contentsline {section}{\numberline {3.3}Results}{10}{section.3.3}% -\contentsline {subsection}{\numberline {3.3.1}Comparison of results between MM1 and MM2}{10}{subsection.3.3.1}% -\contentsline {chapter}{\numberline {4}Code appendix}{11}{chapter.4}% +\contentsline {chapter}{\numberline {1}Find all zeros of function}{3}{chapter.1}% +\contentsline {section}{\numberline {1.1}a) False position method}{3}{section.1.1}% +\contentsline {subsection}{\numberline {1.1.1}Problem}{3}{subsection.1.1.1}% +\contentsline {subsection}{\numberline {1.1.2}Theoretical Introduction}{3}{subsection.1.1.2}% +\contentsline {subsubsection}{Properties of \emph {false position method}}{4}{section*.2}% +\contentsline {paragraph}{Improvement to the method}{4}{section*.3}% +\contentsline {subsection}{\numberline {1.1.3}Results}{5}{subsection.1.1.3}% +\contentsline {section}{\numberline {1.2}b) the Newton's method}{5}{section.1.2}% +\contentsline {subsection}{\numberline {1.2.1}Problem}{5}{subsection.1.2.1}% +\contentsline {subsection}{\numberline {1.2.2}Theoretical Introduction}{5}{subsection.1.2.2}% +\contentsline {subsection}{\numberline {1.2.3}Results}{5}{subsection.1.2.3}% +\contentsline {chapter}{\numberline {2}Find real and complex roots of the polynomial}{6}{chapter.2}% +\contentsline {section}{\numberline {2.1}Problem}{6}{section.2.1}% +\contentsline {section}{\numberline {2.2}Theoretical Introduction}{6}{section.2.2}% +\contentsline {subsection}{\numberline {2.2.1}MM1}{7}{subsection.2.2.1}% +\contentsline {subsection}{\numberline {2.2.2}MM2}{8}{subsection.2.2.2}% +\contentsline {section}{\numberline {2.3}Results}{9}{section.2.3}% +\contentsline {subsection}{\numberline {2.3.1}Comparison of results between MM1 and MM2}{9}{subsection.2.3.1}% +\contentsline {subsection}{\numberline {2.3.2}Comparison of results between Newton's method and MM2}{9}{subsection.2.3.2}% +\contentsline {chapter}{\numberline {3}Find real and complex roots of the polynomial using Laguerre's method}{10}{chapter.3}% +\contentsline {section}{\numberline {3.1}Problem}{10}{section.3.1}% +\contentsline {section}{\numberline {3.2}Theoretical Introduction}{10}{section.3.2}% +\contentsline {section}{\numberline {3.3}Results}{11}{section.3.3}% +\contentsline {subsection}{\numberline {3.3.1}Comparison of results between MM1 and MM2}{11}{subsection.3.3.1}% +\contentsline {chapter}{\numberline {4}Code appendix}{12}{chapter.4}% +\contentsline {section}{\numberline {4.1}Task 1}{12}{section.4.1}% +\contentsline {subsection}{\numberline {4.1.1}task1Bisection.m}{12}{subsection.4.1.1}% +\contentsline {subsubsection}{Top of task1Bisection.m}{12}{section*.4}% +\contentsline {subsubsection}{taskFunction}{12}{section*.5}% +\contentsline {subsubsection}{falsePosition}{13}{section*.6}% +\contentsline {subsubsection}{initialize}{13}{section*.7}% +\contentsline {subsubsection}{taskFunction}{13}{section*.8}% +\contentsline {subsubsection}{firstTwoIterations}{14}{section*.9}% +\contentsline {subsubsection}{falsePositionLoop}{14}{section*.10}% +\contentsline {subsubsection}{insideLoop}{15}{section*.11}% +\contentsline {subsubsection}{changeLastTwoAB}{15}{section*.12}% +\contentsline {subsubsection}{calculateZero}{16}{section*.13}% +\contentsline {subsubsection}{newSubInterval}{16}{section*.14}% +\contentsline {subsection}{\numberline {4.1.2}task1Newton.m}{16}{subsection.4.1.2}% +\contentsline {subsubsection}{Top of task1Newton.m}{16}{section*.15}% +\contentsline {subsubsection}{taskFunction}{17}{section*.16}% +\contentsline {subsubsection}{newtonMethod}{17}{section*.17}% +\contentsline {subsubsection}{initialize}{17}{section*.18}% +\contentsline {subsubsection}{newtonLoop}{17}{section*.19}% +\contentsline {subsubsection}{insideLoop}{18}{section*.20}% +\contentsline {subsubsection}{calculateZeroIterations}{18}{section*.21}% +\contentsline {subsubsection}{checkForDivergence}{18}{section*.22}% +\contentsline {section}{\numberline {4.2}Task 2}{19}{section.4.2}% +\contentsline {subsection}{\numberline {4.2.1}task2MM1.m}{19}{subsection.4.2.1}% +\contentsline {subsubsection}{Top of task2MM1}{19}{section*.23}% +\contentsline {subsubsection}{polynomial}{19}{section*.24}% +\contentsline {subsubsection}{mm1}{19}{section*.25}% +\contentsline {subsubsection}{initialize}{20}{section*.26}% +\contentsline {subsubsection}{mm1Loop}{20}{section*.27}% +\contentsline {subsubsection}{insideLoop}{20}{section*.28}% +\contentsline {subsubsection}{createEquationSystem}{21}{section*.29}% +\contentsline {subsubsection}{rootsOfQuadraticFormula}{21}{section*.30}% +\contentsline {subsubsection}{updateApproximations}{21}{section*.31}% +\contentsline {subsubsection}{initializeEquationSystem}{22}{section*.32}% +\contentsline {subsubsection}{solveEquationSystem}{22}{section*.33}% +\contentsline {subsubsection}{createApproximatedQuadraticFormula}{23}{section*.34}% +\contentsline {subsubsection}{findRootsOfQuadraticFormula}{23}{section*.35}% +\contentsline {subsubsection}{chooseNewRoot}{23}{section*.36}% +\contentsline {subsubsection}{addZeroToIterationVector}{23}{section*.37}% +\contentsline {subsubsection}{getWorstApproximationIndex}{24}{section*.38}% +\contentsline {subsubsection}{deleteWorstApproximation}{24}{section*.39}% +\contentsline {subsection}{\numberline {4.2.2}task2MM2.m}{25}{subsection.4.2.2}% +\contentsline {subsubsection}{top of task2MM2.m}{25}{section*.40}% +\contentsline {subsubsection}{polynomial}{25}{section*.41}% +\contentsline {subsubsection}{mm2}{25}{section*.42}% +\contentsline {subsubsection}{initialize}{25}{section*.43}% +\contentsline {subsubsection}{mm2Loop}{26}{section*.44}% +\contentsline {subsubsection}{insideLoop}{26}{section*.45}% +\contentsline {subsubsection}{getABC}{26}{section*.46}% +\contentsline {subsubsection}{findRoots}{26}{section*.47}% +\contentsline {subsubsection}{chooseNewApproximation}{27}{section*.48}% +\contentsline {subsubsection}{updateApproximations}{27}{section*.49}% +\contentsline {subsubsection}{derivative}{27}{section*.50}% +\contentsline {section}{\numberline {4.3}Task 3}{28}{section.4.3}% +\contentsline {subsubsection}{Top of Task 3}{28}{section*.51}% +\contentsline {subsubsection}{polynomial}{28}{section*.52}% +\contentsline {subsubsection}{laguerre}{28}{section*.53}% +\contentsline {subsubsection}{initialize}{29}{section*.54}% +\contentsline {subsubsection}{laguerreLoop}{29}{section*.55}% +\contentsline {subsubsection}{insideLoop}{29}{section*.56}% +\contentsline {subsubsection}{calculateDerrivatives}{30}{section*.57}% +\contentsline {subsubsection}{calculateZ}{30}{section*.58}% +\contentsline {subsubsection}{chooseNewZero}{30}{section*.59}% +\contentsline {subsubsection}{updateZeros}{31}{section*.60}% +\contentsline {subsection}{\numberline {4.3.1}rootBrackering.m}{31}{subsection.4.3.1}% +\contentsline {subsubsection}{updateZeros}{31}{section*.61}% +\contentsline {subsubsection}{initializeValues}{32}{section*.62}% +\contentsline {subsubsection}{bracketingLoop}{33}{section*.63}% +\contentsline {subsection}{\numberline {4.3.2}printGraph.m}{34}{subsection.4.3.2}% +\contentsline {subsection}{\numberline {4.3.3}printComplexGraph.m}{36}{subsection.4.3.3}%