\documentclass[a4paper]{article} \usepackage{graphics} \usepackage[T1]{fontenc} % Fr svenska bokstver \usepackage[swedish]{babel} % Fr svensk avstavning och svenska % rubriker (t ex "Innehllsfrteckning") \usepackage{fancyvrb} % Fr programlistor med tabulatorer \fvset{tabsize=4} % Tabulatorpositioner \fvset{fontsize=\small} % Lagom storlek fr programlistor \title{Newton-Raphsons metod} \author{Per Holm} \date{14 maj 2008} % Blir dagens datum om det utelmnas \begin{document} % Brjan p dokumentet \maketitle % Skriver ut rubriken som vi % definierade ovan med \title, \author % och eventuellt \date % Hr skrivs all text i dokumentet Newton-Raphsons metod Per Holm 21 september 2001 \section{Numeriska metoder} En \emph{numerisk metod} r en metod med vars hjlp man kan finna en approximativ lsning till ett matematiskt problem. Lsningen ges i numerisk form dvs i form av ett antal talvrden. Till exempel kan man med en numerisk metod rkna ut att roten till ekvationen $x^2 = 3$ r 1.73205\ldots, men inte f fram den analytiska lsningen \sqrt{3}. I mnga problem r man hnvisad till numeriska metoder. Det kan bero p att problemet inte har ngon analytisk lsning eller att det skulle vara alltfr arbetsamt att f fram denna. I denna rapport studeras en numerisk metod fr att lsa ekvationer med en obekant, nmligen Newton-Raphsons metod./footnote{Metoden kallas ibland Newtons metod} \section{Newton-Raphsons metod} \subsection{Teori} Vi sker en rot \alpha till ekvationen $f(x) = 0$. Vi antar att vi vet att roten ligger i nrheten av talet $x_{0}$ och skall frska frbttra denna approximativa lsning. Vi kan bilda nya approximationer $x_{1}$, $x_{2}$, $x_{3}$, \ldots med fljande formel: $x_{k+1} = x_{k} - \[ \frac{f(x_{k})}{f'(x_{k})$ Metoden skdliggrs geometriskt i figur ??. Tangenten i punkten $(x_{0},f(x_{0})$ skr x-axeln fr $x = x_{1}$, tangenten i punkten $(x1,f(x_{1})$ skr x-axeln fr $x = x_{2}$, osv. Av figuren frstr vi att $x_{k}\rightarrow \alpha d $k \rightarrow \infty. Newton-Raphsons metod kan hrledas genom att man serieutvecklar funktionen $f(x_{0}-\epsilon)$ och trunkerar utvecklingen efter den linera termen. Ur serieutvecklingen kan man ocks f ett uttryck p feltermen. \begin{figure} \begin{center} \resizebox{!}{35mm}{\includegraphics{nrbild.eps}} \caption{Figur: Newton-Raphsons metod} \end{center} \label{bild} \end{figure} \subsection{Exempel} Ekvationen $e^{-x} = \sin(x)$ har en rot nra 0.6. Bestm denna rot med Newton-Raphsons metod. Hr r $f(x) = e^{-x}-\sin(x), f'(x) = -e^{-x}-\cos(x)$. Om vi rknar med 9 decimaler s fr vi: x & f(x) & f'(x) & f(x)/f'(x) \\ 0.6 & -0.015830837 & -1.374147251 & 0.011510481 \\ 0.588479519 & 0.000073820 & -1.386956425 & -0.000053224 \\ 0.588532743 & 0.000000001 & -1.386897331 & -0.000000001 \\ 0.588532744 & \\ dvs $\alpha = 0.588532744$. \subsection{Konvergens} Newton-Raphsons metod konvergerar i allmnhet \emph{kvadratiskt} mot den skta roten, vilket innebr att antalet korrekta siffror i svaret frdubblas i varje iteration. Men det finns fall d konvergensen blir smre eller d metoden inte alls konvergerar, nmligen d man rkar ut fr en derivata som r nra noll. Tv sdana fall illustreras i figur 2. \begin{figure} \begin{center} \resizebox{!}{50mm}{\includegraphics{konvbild.eps}} \caption{Figur: Konvergensproblem} \end{center} \label{bild} \end{figure} \section{Newton-Raphsons metod i Java} Det r inte helt enkelt att implementera Newton-Raphsons metod i ett program, tminstone inte om man krver att metoden skall fungera i alla upptnkliga fall. I metoden \textsf{solve} som visas nedan finns bara den grundlggande algoritmen med: vi har inte tagit hnsyn till undantagsfall som finns eller fel som kan intrffa, till exempel att derivatan fprim(x0) blir nra noll (se avsnitt 2.3). \begin{verbatim} class NewtonRaphson { private static double f(double x) { return ...; } private static double fprim(double x) { return ...; } public static double solve(double x0, double eps) { double x1 = x0; do { x0 = x1; x1 = x0 - f(x0) / fprim(x0); } while (Math.abs(x1 - x0) > Math.abs(x1) * eps); return x1; } } \end{verbatim} \end{document} % Slut p dokumentet