add september notes & hw2 code / pdf
This commit is contained in:
parent
2e284b7150
commit
58c73fd511
@ -11,7 +11,13 @@
|
|||||||
(:file "package")))
|
(:file "package")))
|
||||||
(:module "approx"
|
(:module "approx"
|
||||||
:components
|
:components
|
||||||
((:file "derivative" :depends-on ("package"))
|
((:file "maceps" :depends-on ("package"))
|
||||||
|
(:file "derivative" :depends-on ("package"))
|
||||||
|
(:file "package")))
|
||||||
|
(:module "vector"
|
||||||
|
:components
|
||||||
|
((:file "distance" :depends-on ("norm" "package"))
|
||||||
|
(:file "norm" :depends-on ("package"))
|
||||||
(:file "package")))))))
|
(:file "package")))))))
|
||||||
|
|
||||||
|
|
||||||
@ -23,7 +29,9 @@
|
|||||||
:components ((:module "tests"
|
:components ((:module "tests"
|
||||||
:components
|
:components
|
||||||
((:file "table" :depends-on ("suite"))
|
((:file "table" :depends-on ("suite"))
|
||||||
|
(:file "maceps" :depends-on ("suite"))
|
||||||
(:file "approx" :depends-on ("suite"))
|
(:file "approx" :depends-on ("suite"))
|
||||||
|
(:file "vector" :depends-on ("suite"))
|
||||||
(:file "suite"))))
|
(:file "suite"))))
|
||||||
:perform (asdf:test-op (o c) (uiop:symbol-call
|
:perform (asdf:test-op (o c) (uiop:symbol-call
|
||||||
:fiveam :run!
|
:fiveam :run!
|
||||||
|
13
cl/src/approx/maceps.lisp
Normal file
13
cl/src/approx/maceps.lisp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
(in-package :lizfcm.approx)
|
||||||
|
|
||||||
|
(defun compute-maceps (val f)
|
||||||
|
(let* ((h val)
|
||||||
|
(a val)
|
||||||
|
(err val))
|
||||||
|
(loop while (> err 0)
|
||||||
|
do
|
||||||
|
(progn
|
||||||
|
(setf h (/ h 2)
|
||||||
|
err (abs (- (funcall f (+ a h))
|
||||||
|
(funcall f a)))))
|
||||||
|
collect (list a h err))))
|
@ -1,4 +1,5 @@
|
|||||||
(in-package :cl-user)
|
(in-package :cl-user)
|
||||||
(defpackage lizfcm.approx
|
(defpackage lizfcm.approx
|
||||||
(:use :cl)
|
(:use :cl)
|
||||||
(:export :derivative-at))
|
(:export :derivative-at
|
||||||
|
:compute-maceps))
|
||||||
|
7
cl/src/package.lisp
Normal file
7
cl/src/package.lisp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
(in-package :cl-user)
|
||||||
|
(defpackage lizfcm.vector
|
||||||
|
(:use :cl)
|
||||||
|
(:export
|
||||||
|
:n-norm
|
||||||
|
:max-norm
|
||||||
|
:distance))
|
6
cl/src/vector/distance.lisp
Normal file
6
cl/src/vector/distance.lisp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
(in-package :lizfcm.vector)
|
||||||
|
|
||||||
|
(defun distance (v1 v2 norm)
|
||||||
|
(let* ((d (mapcar #'- v1 v2))
|
||||||
|
(length (funcall norm d)))
|
||||||
|
length))
|
17
cl/src/vector/norm.lisp
Normal file
17
cl/src/vector/norm.lisp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
(in-package :lizfcm.vector)
|
||||||
|
|
||||||
|
(defun p-norm (p)
|
||||||
|
(lambda (v)
|
||||||
|
(expt
|
||||||
|
(reduce (lambda (acc x)
|
||||||
|
(+ acc x))
|
||||||
|
(mapcar (lambda (x)
|
||||||
|
(abs
|
||||||
|
(expt x p)))
|
||||||
|
v))
|
||||||
|
(/ 1 p))))
|
||||||
|
|
||||||
|
(defun max-norm (v)
|
||||||
|
(reduce (lambda (acc x)
|
||||||
|
(max acc x))
|
||||||
|
v))
|
7
cl/src/vector/package.lisp
Normal file
7
cl/src/vector/package.lisp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
(in-package :cl-user)
|
||||||
|
(defpackage lizfcm.vector
|
||||||
|
(:use :cl)
|
||||||
|
(:export
|
||||||
|
:p-norm
|
||||||
|
:max-norm
|
||||||
|
:distance))
|
25
cl/tests/maceps.lisp
Normal file
25
cl/tests/maceps.lisp
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
(defpackage lizfcm/tests.maceps
|
||||||
|
(:use :cl
|
||||||
|
:fiveam
|
||||||
|
:lizfcm.approx
|
||||||
|
:lizfcm.utils
|
||||||
|
:lizfcm/tests)
|
||||||
|
(:export :approx-suite))
|
||||||
|
(in-package :lizfcm/tests.maceps)
|
||||||
|
|
||||||
|
(def-suite maceps-suite
|
||||||
|
:in lizfcm-test-suite)
|
||||||
|
(in-suite maceps-suite)
|
||||||
|
|
||||||
|
(test maceps
|
||||||
|
:description "double precision provides precision about (mac eps of single precision) squared"
|
||||||
|
(let* ((maceps-computation-double (compute-maceps 1.0d0
|
||||||
|
(lambda (x) x)))
|
||||||
|
(maceps-computation-single (compute-maceps 1.0
|
||||||
|
(lambda (x) x)))
|
||||||
|
(last-double-h (cadar (last maceps-computation-double)))
|
||||||
|
(last-single-h (cadar (last maceps-computation-single))))
|
||||||
|
(is (within-range-p
|
||||||
|
(- last-double-h (* last-single-h last-single-h))
|
||||||
|
0
|
||||||
|
last-single-h))))
|
31
cl/tests/vector.lisp
Normal file
31
cl/tests/vector.lisp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
(defpackage lizfcm/tests.vector
|
||||||
|
(:use :cl
|
||||||
|
:fiveam
|
||||||
|
:lizfcm.vector
|
||||||
|
:lizfcm.utils
|
||||||
|
:lizfcm/tests)
|
||||||
|
(:export :vector-suite))
|
||||||
|
(in-package :lizfcm/tests.vector)
|
||||||
|
|
||||||
|
(def-suite vector-suite
|
||||||
|
:in lizfcm-test-suite)
|
||||||
|
(in-suite vector-suite)
|
||||||
|
|
||||||
|
(test p-norm
|
||||||
|
:description "computes p-norm"
|
||||||
|
(let ((v '(1 1))
|
||||||
|
(length (sqrt 2))
|
||||||
|
(2-norm (p-norm 2)))
|
||||||
|
(is (within-range-p (funcall 2-norm v)
|
||||||
|
length
|
||||||
|
0.00001))))
|
||||||
|
|
||||||
|
(test vector-distance
|
||||||
|
:description "computes distance via norm"
|
||||||
|
(let ((v1 '(0 0))
|
||||||
|
(v2 '(1 1))
|
||||||
|
(dist (sqrt 2)))
|
||||||
|
(is (within-range-p (distance v1 v2 (p-norm 2))
|
||||||
|
dist
|
||||||
|
0.00001))))
|
||||||
|
|
179
homeworks/hw-2.org
Normal file
179
homeworks/hw-2.org
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
#+TITLE: HW 02
|
||||||
|
#+AUTHOR: Elizabeth Hunt
|
||||||
|
#+STARTUP: entitiespretty fold inlineimages
|
||||||
|
#+LATEX_HEADER: \notindent \notag \usepackage{amsmath} \usepackage[a4paper,margin=1in,portrait]{geometry}
|
||||||
|
#+LATEX: \setlength\parindent{0pt}
|
||||||
|
#+OPTIONS: toc:nil
|
||||||
|
|
||||||
|
* Question One
|
||||||
|
Computing $\epsilon_{\text{mac}}$ for single precision numbers
|
||||||
|
|
||||||
|
#+BEGIN_SRC lisp :session t :results table
|
||||||
|
(load "../cl/lizfcm.asd")
|
||||||
|
(ql:quickload :lizfcm)
|
||||||
|
|
||||||
|
(let ((domain-values (lizfcm.approx:compute-maceps 1.0
|
||||||
|
(lambda (x) x))))
|
||||||
|
(lizfcm.utils:table (:headers '("a" "h" "err")
|
||||||
|
:domain-order (a h err)
|
||||||
|
:domain-values domain-values)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
(with many rows truncated)
|
||||||
|
|
||||||
|
| a | h | err |
|
||||||
|
| 1.0 | 0.5 | 0.5 |
|
||||||
|
| 1.0 | 0.25 | 0.25 |
|
||||||
|
| 1.0 | 0.125 | 0.125 |
|
||||||
|
| 1.0 | 0.0625 | 0.0625 |
|
||||||
|
| 1.0 | 1.9073486e-06 | 1.9073486e-06 |
|
||||||
|
| 1.0 | 9.536743e-07 | 9.536743e-07 |
|
||||||
|
| 1.0 | 4.7683716e-07 | 4.7683716e-07 |
|
||||||
|
| 1.0 | 2.3841858e-07 | 2.3841858e-07 |
|
||||||
|
| 1.0 | 1.1920929e-07 | 1.1920929e-07 |
|
||||||
|
| 1.0 | 5.9604645e-08 | 0.0 |
|
||||||
|
|
||||||
|
$\epsilon_{\text{mac}}$ \approx 5.9604 \cdot 10^{-8}
|
||||||
|
|
||||||
|
* Question Two
|
||||||
|
Computing $\epsilon_{\text{mac}}$ for double precision numbers:
|
||||||
|
|
||||||
|
#+BEGIN_SRC lisp :session t :results table
|
||||||
|
(let ((domain-values (lizfcm.approx:compute-maceps 1.0d0
|
||||||
|
(lambda (x) x))))
|
||||||
|
(lizfcm.utils:table (:headers '("a" "h" "err")
|
||||||
|
:domain-order (a h err)
|
||||||
|
:domain-values domain-values)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
(with many rows truncated)
|
||||||
|
| a | h | err |
|
||||||
|
| 1.0d0 | 0.5d0 | 0.5d0 |
|
||||||
|
| 1.0d0 | 0.25d0 | 0.25d0 |
|
||||||
|
| 1.0d0 | 0.125d0 | 0.125d0 |
|
||||||
|
| 1.0d0 | 0.0625d0 | 0.0625d0 |
|
||||||
|
| 1.0d0 | 0.03125d0 | 0.03125d0 |
|
||||||
|
| 1.0d0 | 0.015625d0 | 0.015625d0 |
|
||||||
|
| 1.0d0 | 0.0078125d0 | 0.0078125d0 |
|
||||||
|
| 1.0d0 | 0.00390625d0 | 0.00390625d0 |
|
||||||
|
| 1.0d0 | 0.001953125d0 | 0.001953125d0 |
|
||||||
|
| 1.0d0 | 7.105427357601002d-15 | 7.105427357601002d-15 |
|
||||||
|
| 1.0d0 | 3.552713678800501d-15 | 3.552713678800501d-15 |
|
||||||
|
| 1.0d0 | 1.7763568394002505d-15 | 1.7763568394002505d-15 |
|
||||||
|
| 1.0d0 | 8.881784197001252d-16 | 8.881784197001252d-16 |
|
||||||
|
| 1.0d0 | 4.440892098500626d-16 | 4.440892098500626d-16 |
|
||||||
|
| 1.0d0 | 2.220446049250313d-16 | 2.220446049250313d-16 |
|
||||||
|
| 1.0d0 | 1.1102230246251565d-16 | 0.0d0 |
|
||||||
|
|
||||||
|
Thus, $\epsilon_{\text{mac}}$ \approx 1.1102 \cdot 10^{-16}
|
||||||
|
|
||||||
|
* Question Three - |v|_2
|
||||||
|
#+BEGIN_SRC lisp :session t
|
||||||
|
(let ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(2-norm (lizfcm.vector:p-norm 2)))
|
||||||
|
(lizfcm.utils:table (:headers '("x" "y" "2norm")
|
||||||
|
:domain-order (x y)
|
||||||
|
:domain-values vs)
|
||||||
|
(funcall 2-norm (list x y))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
| x | y | 2norm |
|
||||||
|
| 1 | 1 | 1.4142135 |
|
||||||
|
| 2 | 3 | 3.6055512 |
|
||||||
|
| 4 | 5 | 6.4031243 |
|
||||||
|
| -1 | 2 | 2.236068 |
|
||||||
|
|
||||||
|
* Question Four - |v|_1
|
||||||
|
#+BEGIN_SRC lisp :session t
|
||||||
|
(let ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(1-norm (lizfcm.vector:p-norm 1)))
|
||||||
|
(lizfcm.utils:table (:headers '("x" "y" "1norm")
|
||||||
|
:domain-order (x y)
|
||||||
|
:domain-values vs)
|
||||||
|
(funcall 1-norm (list x y))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
| x | y | 1norm |
|
||||||
|
| 1 | 1 | 2 |
|
||||||
|
| 2 | 3 | 5 |
|
||||||
|
| 4 | 5 | 9 |
|
||||||
|
| -1 | 2 | 3 |
|
||||||
|
|
||||||
|
* Question Five - |v|_{\infty}
|
||||||
|
#+BEGIN_SRC lisp :session t
|
||||||
|
(let ((vs '((1 1) (2 3) (4 5) (-1 2))))
|
||||||
|
(lizfcm.utils:table (:headers '("x" "y" "max-norm")
|
||||||
|
:domain-order (x y)
|
||||||
|
:domain-values vs)
|
||||||
|
(lizfcm.vector:max-norm (list x y))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
| x | y | infty-norm |
|
||||||
|
| 1 | 1 | 1 |
|
||||||
|
| 2 | 3 | 3 |
|
||||||
|
| 4 | 5 | 5 |
|
||||||
|
| -1 | 2 | 2 |
|
||||||
|
|
||||||
|
* Question Six - ||v - u|| via |v|_{2}
|
||||||
|
#+BEGIN_SRC lisp :session t
|
||||||
|
(let* ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(vs2 '((7 9) (2 2) (8 -1) (4 4)))
|
||||||
|
(2-norm (lizfcm.vector:p-norm 2)))
|
||||||
|
(lizfcm.utils:table (:headers '("v1" "v2" "2-norm-d")
|
||||||
|
:domain-order (v1 v2)
|
||||||
|
:domain-values (mapcar (lambda (v1 v2)
|
||||||
|
(list v1 v2))
|
||||||
|
vs
|
||||||
|
vs2))
|
||||||
|
(lizfcm.vector:distance v1 v2 2-norm)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
| v1 | v2 | 2-norm |
|
||||||
|
| (1 1) | (7 9) | 10.0 |
|
||||||
|
| (2 3) | (2 2) | 1.0 |
|
||||||
|
| (4 5) | (8 -1) | 7.2111025 |
|
||||||
|
| (-1 2) | (4 4) | 5.3851647 |
|
||||||
|
|
||||||
|
* Question Seven - ||v - u|| via |v|_{1}
|
||||||
|
#+BEGIN_SRC lisp :session t
|
||||||
|
(let* ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(vs2 '((7 9) (2 2) (8 -1) (4 4)))
|
||||||
|
(1-norm (lizfcm.vector:p-norm 1)))
|
||||||
|
(lizfcm.utils:table (:headers '("v1" "v2" "1-norm-d")
|
||||||
|
:domain-order (v1 v2)
|
||||||
|
:domain-values (mapcar (lambda (v1 v2)
|
||||||
|
(list v1 v2))
|
||||||
|
vs
|
||||||
|
vs2))
|
||||||
|
(lizfcm.vector:distance v1 v2 1-norm)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
|
||||||
|
| v1 | v2 | 1-norm-d |
|
||||||
|
| (1 1) | (7 9) | 14 |
|
||||||
|
| (2 3) | (2 2) | 1 |
|
||||||
|
| (4 5) | (8 -1) | 10 |
|
||||||
|
| (-1 2) | (4 4) | 7 |
|
||||||
|
|
||||||
|
* Question Eight - ||v - u|| via |v|_{\infty}
|
||||||
|
#+BEGIN_SRC lisp :session t
|
||||||
|
(let* ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(vs2 '((7 9) (2 2) (8 -1) (4 4))))
|
||||||
|
(lizfcm.utils:table (:headers '("v1" "v2" "max-norm-d")
|
||||||
|
:domain-order (v1 v2)
|
||||||
|
:domain-values (mapcar (lambda (v1 v2)
|
||||||
|
(list v1 v2))
|
||||||
|
vs
|
||||||
|
vs2))
|
||||||
|
(lizfcm.vector:distance v1 v2 'lizfcm.vector:max-norm)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
| v1 | v2 | max-norm-d |
|
||||||
|
| (1 1) | (7 9) | -6 |
|
||||||
|
| (2 3) | (2 2) | 1 |
|
||||||
|
| (4 5) | (8 -1) | 6 |
|
||||||
|
| (-1 2) | (4 4) | -2 |
|
BIN
homeworks/hw-2.pdf
Normal file
BIN
homeworks/hw-2.pdf
Normal file
Binary file not shown.
243
homeworks/hw-2.tex
Normal file
243
homeworks/hw-2.tex
Normal file
@ -0,0 +1,243 @@
|
|||||||
|
% Created 2023-09-25 Mon 09:52
|
||||||
|
% Intended LaTeX compiler: pdflatex
|
||||||
|
\documentclass[11pt]{article}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{longtable}
|
||||||
|
\usepackage{wrapfig}
|
||||||
|
\usepackage{rotating}
|
||||||
|
\usepackage[normalem]{ulem}
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
\usepackage{capt-of}
|
||||||
|
\usepackage{hyperref}
|
||||||
|
\notindent \notag \usepackage{amsmath} \usepackage[a4paper,margin=1in,portrait]{geometry}
|
||||||
|
\author{Elizabeth Hunt}
|
||||||
|
\date{\today}
|
||||||
|
\title{HW 02}
|
||||||
|
\hypersetup{
|
||||||
|
pdfauthor={Elizabeth Hunt},
|
||||||
|
pdftitle={HW 02},
|
||||||
|
pdfkeywords={},
|
||||||
|
pdfsubject={},
|
||||||
|
pdfcreator={Emacs 28.2 (Org mode 9.7-pre)},
|
||||||
|
pdflang={English}}
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\maketitle
|
||||||
|
\setlength\parindent{0pt}
|
||||||
|
|
||||||
|
\section{Question One}
|
||||||
|
\label{sec:orga203815}
|
||||||
|
Computing \(\epsilon_{\text{mac}}\) for single precision numbers
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
(load "../cl/lizfcm.asd")
|
||||||
|
(ql:quickload :lizfcm)
|
||||||
|
|
||||||
|
(let ((domain-values (lizfcm.approx:compute-maceps 1.0
|
||||||
|
(lambda (x) x))))
|
||||||
|
(lizfcm.utils:table (:headers '("a" "h" "err")
|
||||||
|
:domain-order (a h err)
|
||||||
|
:domain-values domain-values)))
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
(with many rows truncated)
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{rrr}
|
||||||
|
a & h & err\\[0pt]
|
||||||
|
1.0 & 0.5 & 0.5\\[0pt]
|
||||||
|
1.0 & 0.25 & 0.25\\[0pt]
|
||||||
|
1.0 & 0.125 & 0.125\\[0pt]
|
||||||
|
1.0 & 0.0625 & 0.0625\\[0pt]
|
||||||
|
1.0 & 1.9073486e-06 & 1.9073486e-06\\[0pt]
|
||||||
|
1.0 & 9.536743e-07 & 9.536743e-07\\[0pt]
|
||||||
|
1.0 & 4.7683716e-07 & 4.7683716e-07\\[0pt]
|
||||||
|
1.0 & 2.3841858e-07 & 2.3841858e-07\\[0pt]
|
||||||
|
1.0 & 1.1920929e-07 & 1.1920929e-07\\[0pt]
|
||||||
|
1.0 & 5.9604645e-08 & 0.0\\[0pt]
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\(\epsilon_{\text{mac}}\) \(\approx\) 5.9604 \(\cdot\) 10\textsuperscript{-8}
|
||||||
|
|
||||||
|
\section{Question Two}
|
||||||
|
\label{sec:orgdd79be1}
|
||||||
|
Computing \(\epsilon_{\text{mac}}\) for double precision numbers:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
(let ((domain-values (lizfcm.approx:compute-maceps 1.0d0
|
||||||
|
(lambda (x) x))))
|
||||||
|
(lizfcm.utils:table (:headers '("a" "h" "err")
|
||||||
|
:domain-order (a h err)
|
||||||
|
:domain-values domain-values)))
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
(with many rows truncated)
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{rrr}
|
||||||
|
a & h & err\\[0pt]
|
||||||
|
1.0d0 & 0.5d0 & 0.5d0\\[0pt]
|
||||||
|
1.0d0 & 0.25d0 & 0.25d0\\[0pt]
|
||||||
|
1.0d0 & 0.125d0 & 0.125d0\\[0pt]
|
||||||
|
1.0d0 & 0.0625d0 & 0.0625d0\\[0pt]
|
||||||
|
1.0d0 & 0.03125d0 & 0.03125d0\\[0pt]
|
||||||
|
1.0d0 & 0.015625d0 & 0.015625d0\\[0pt]
|
||||||
|
1.0d0 & 0.0078125d0 & 0.0078125d0\\[0pt]
|
||||||
|
1.0d0 & 0.00390625d0 & 0.00390625d0\\[0pt]
|
||||||
|
1.0d0 & 0.001953125d0 & 0.001953125d0\\[0pt]
|
||||||
|
1.0d0 & 7.105427357601002d-15 & 7.105427357601002d-15\\[0pt]
|
||||||
|
1.0d0 & 3.552713678800501d-15 & 3.552713678800501d-15\\[0pt]
|
||||||
|
1.0d0 & 1.7763568394002505d-15 & 1.7763568394002505d-15\\[0pt]
|
||||||
|
1.0d0 & 8.881784197001252d-16 & 8.881784197001252d-16\\[0pt]
|
||||||
|
1.0d0 & 4.440892098500626d-16 & 4.440892098500626d-16\\[0pt]
|
||||||
|
1.0d0 & 2.220446049250313d-16 & 2.220446049250313d-16\\[0pt]
|
||||||
|
1.0d0 & 1.1102230246251565d-16 & 0.0d0\\[0pt]
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
Thus, \(\epsilon_{\text{mac}}\) \(\approx\) 1.1102 \(\cdot\) 10\textsuperscript{-16}
|
||||||
|
|
||||||
|
\section{Question Three - |v|\textsubscript{2}}
|
||||||
|
\label{sec:org04608d9}
|
||||||
|
\begin{verbatim}
|
||||||
|
(let ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(2-norm (lizfcm.vector:p-norm 2)))
|
||||||
|
(lizfcm.utils:table (:headers '("x" "y" "2norm")
|
||||||
|
:domain-order (x y)
|
||||||
|
:domain-values vs)
|
||||||
|
(funcall 2-norm (list x y))))
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{rrr}
|
||||||
|
x & y & 2norm\\[0pt]
|
||||||
|
1 & 1 & 1.4142135\\[0pt]
|
||||||
|
2 & 3 & 3.6055512\\[0pt]
|
||||||
|
4 & 5 & 6.4031243\\[0pt]
|
||||||
|
-1 & 2 & 2.236068\\[0pt]
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\section{Question Four - |v|\textsubscript{1}}
|
||||||
|
\label{sec:orgfb57f3a}
|
||||||
|
\begin{verbatim}
|
||||||
|
(let ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(1-norm (lizfcm.vector:p-norm 1)))
|
||||||
|
(lizfcm.utils:table (:headers '("x" "y" "1norm")
|
||||||
|
:domain-order (x y)
|
||||||
|
:domain-values vs)
|
||||||
|
(funcall 1-norm (list x y))))
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{rrr}
|
||||||
|
x & y & 1norm\\[0pt]
|
||||||
|
1 & 1 & 2\\[0pt]
|
||||||
|
2 & 3 & 5\\[0pt]
|
||||||
|
4 & 5 & 9\\[0pt]
|
||||||
|
-1 & 2 & 3\\[0pt]
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\section{Question Five - |v|\textsubscript{\(\infty\)}}
|
||||||
|
\label{sec:org7bbdf04}
|
||||||
|
\begin{verbatim}
|
||||||
|
(let ((vs '((1 1) (2 3) (4 5) (-1 2))))
|
||||||
|
(lizfcm.utils:table (:headers '("x" "y" "max-norm")
|
||||||
|
:domain-order (x y)
|
||||||
|
:domain-values vs)
|
||||||
|
(lizfcm.vector:max-norm (list x y))))
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{rrr}
|
||||||
|
x & y & infty-norm\\[0pt]
|
||||||
|
1 & 1 & 1\\[0pt]
|
||||||
|
2 & 3 & 3\\[0pt]
|
||||||
|
4 & 5 & 5\\[0pt]
|
||||||
|
-1 & 2 & 2\\[0pt]
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\section{Question Six - ||v - u|| via |v|\textsubscript{2}}
|
||||||
|
\label{sec:orge36996c}
|
||||||
|
\begin{verbatim}
|
||||||
|
(let* ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(vs2 '((7 9) (2 2) (8 -1) (4 4)))
|
||||||
|
(2-norm (lizfcm.vector:p-norm 2)))
|
||||||
|
(lizfcm.utils:table (:headers '("v1" "v2" "2-norm-d")
|
||||||
|
:domain-order (v1 v2)
|
||||||
|
:domain-values (mapcar (lambda (v1 v2)
|
||||||
|
(list v1 v2))
|
||||||
|
vs
|
||||||
|
vs2))
|
||||||
|
(lizfcm.vector:distance v1 v2 2-norm)))
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{llr}
|
||||||
|
v1 & v2 & 2-norm\\[0pt]
|
||||||
|
(1 1) & (7 9) & 10.0\\[0pt]
|
||||||
|
(2 3) & (2 2) & 1.0\\[0pt]
|
||||||
|
(4 5) & (8 -1) & 7.2111025\\[0pt]
|
||||||
|
(-1 2) & (4 4) & 5.3851647\\[0pt]
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\section{Question Seven - ||v - u|| via |v|\textsubscript{1}}
|
||||||
|
\label{sec:orgd1577f0}
|
||||||
|
\begin{verbatim}
|
||||||
|
(let* ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(vs2 '((7 9) (2 2) (8 -1) (4 4)))
|
||||||
|
(1-norm (lizfcm.vector:p-norm 1)))
|
||||||
|
(lizfcm.utils:table (:headers '("v1" "v2" "1-norm-d")
|
||||||
|
:domain-order (v1 v2)
|
||||||
|
:domain-values (mapcar (lambda (v1 v2)
|
||||||
|
(list v1 v2))
|
||||||
|
vs
|
||||||
|
vs2))
|
||||||
|
(lizfcm.vector:distance v1 v2 1-norm)))
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{llr}
|
||||||
|
v1 & v2 & 1-norm-d\\[0pt]
|
||||||
|
(1 1) & (7 9) & 14\\[0pt]
|
||||||
|
(2 3) & (2 2) & 1\\[0pt]
|
||||||
|
(4 5) & (8 -1) & 10\\[0pt]
|
||||||
|
(-1 2) & (4 4) & 7\\[0pt]
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\section{Question Eight - ||v - u|| via |v|\textsubscript{\(\infty\)}}
|
||||||
|
\label{sec:org2661676}
|
||||||
|
\begin{verbatim}
|
||||||
|
(let* ((vs '((1 1) (2 3) (4 5) (-1 2)))
|
||||||
|
(vs2 '((7 9) (2 2) (8 -1) (4 4))))
|
||||||
|
(lizfcm.utils:table (:headers '("v1" "v2" "max-norm-d")
|
||||||
|
:domain-order (v1 v2)
|
||||||
|
:domain-values (mapcar (lambda (v1 v2)
|
||||||
|
(list v1 v2))
|
||||||
|
vs
|
||||||
|
vs2))
|
||||||
|
(lizfcm.vector:distance v1 v2 'lizfcm.vector:max-norm)))
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{llr}
|
||||||
|
v1 & v2 & max-norm-d\\[0pt]
|
||||||
|
(1 1) & (7 9) & -6\\[0pt]
|
||||||
|
(2 3) & (2 2) & 1\\[0pt]
|
||||||
|
(4 5) & (8 -1) & 6\\[0pt]
|
||||||
|
(-1 2) & (4 4) & -2\\[0pt]
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
\end{document}
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
@ -31,17 +31,18 @@ Table of Errors
|
|||||||
(lizfcm.utils:table (:headers '("u" "v" "e_{abs}" "e_{rel}")
|
(lizfcm.utils:table (:headers '("u" "v" "e_{abs}" "e_{rel}")
|
||||||
:domain-order (u v)
|
:domain-order (u v)
|
||||||
:domain-values *u-v*)
|
:domain-values *u-v*)
|
||||||
(fround (eabs u v) 4)
|
(eabs u v)
|
||||||
(fround (erel u v) 4))
|
(erel u v))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
| u | v | e_{abs} | e_{rel} |
|
| u | v | e_{abs} | e_{rel} |
|
||||||
| 1 | 0.99 | 0.0 | 0.0 |
|
| 1 | 0.99 | 0.00999999 | 0.00999999 |
|
||||||
| 1 | 1.01 | 0.0 | 0.0 |
|
| 1 | 1.01 | 0.00999999 | 0.00999999 |
|
||||||
| -1.5 | -1.2 | 0.0 | 0.0 |
|
| -1.5 | -1.2 | 0.29999995 | 0.19999997 |
|
||||||
| 100 | 99.9 | 0.0 | 0.0 |
|
| 100 | 99.9 | 0.099998474 | 0.0009999848 |
|
||||||
| 100 | 99 | 0.0 | 0.0 |
|
| 100 | 99 | 1 | 1/100 |
|
||||||
|
|
||||||
|
|
||||||
Look at $u \approx 0$ then $v \approx 0$, $e_{abs}$ is better error since $e_{rel}$ is high.
|
Look at $u \approx 0$ then $v \approx 0$, $e_{abs}$ is better error since $e_{rel}$ is high.
|
||||||
|
|
||||||
|
16
notes/Sep-13.org
Normal file
16
notes/Sep-13.org
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
* Homework 2
|
||||||
|
1. maceps - single precision
|
||||||
|
|
||||||
|
2. maceps - double precision
|
||||||
|
|
||||||
|
3. 2-norm of a vector
|
||||||
|
|
||||||
|
4. 1-norm of a vector
|
||||||
|
|
||||||
|
5. infinity-norm of a vector (max-norm)
|
||||||
|
|
||||||
|
6. 2-norm distance between 2 vectors
|
||||||
|
|
||||||
|
7. 1-norm distance between 2 vectors
|
||||||
|
|
||||||
|
8. infinity-norm distance
|
52
notes/Sep-15.org
Normal file
52
notes/Sep-15.org
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
* Taylor Series Approx.
|
||||||
|
Suppose f has $\infty$ many derivatives near a point a. Then the taylor series is given by
|
||||||
|
|
||||||
|
$f(x) = \Sigma_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!}(x-a)^n$
|
||||||
|
|
||||||
|
For increment notation we can write
|
||||||
|
|
||||||
|
$f(a + h) = f(a) + f'(a)(a+h - a) + \dots$
|
||||||
|
|
||||||
|
$= \Sigma_{n=0}^{\infty} \frac{f^{(n)}(a)}{h!} (h^n)$
|
||||||
|
|
||||||
|
Consider the approximation
|
||||||
|
|
||||||
|
$e = |f'(a) - \frac{f(a + h) - f(a)}{h}| = |f'(a) - \frac{1}{h}(f(a + h) - f(a))|$
|
||||||
|
|
||||||
|
Substituting...
|
||||||
|
|
||||||
|
$= |f'(a) - \frac{1}{h}((f(a) + f'(a) h + \frac{f''(a)}{2} h^2 + \cdots) - f(a))|$
|
||||||
|
|
||||||
|
$f(a) - f(a) = 0$... and $distribute the h$
|
||||||
|
|
||||||
|
$= |-1/2 f''(a) h + \frac{1}{6}f'''(a)h^2 \cdots|$
|
||||||
|
|
||||||
|
** With Remainder
|
||||||
|
We can determine for some u $f(a + h) = f(a) + f'(a)h + \frac{1}{2}f''(u)h^2$
|
||||||
|
|
||||||
|
and so the error is $e = |f'(a) - \frac{f(a + h) - f(a)}{h}| = |\frac{h}{2}f''(u)|$
|
||||||
|
|
||||||
|
- [https://openstax.org/books/calculus-volume-2/pages/6-3-taylor-and-maclaurin-series]
|
||||||
|
+ > Taylor's Theorem w/ Remainder
|
||||||
|
|
||||||
|
|
||||||
|
** Of Deriviatives
|
||||||
|
|
||||||
|
Again, $f'(a) \approx \frac{f(a+h) - f(a)}{h}$,
|
||||||
|
|
||||||
|
$e = |\frac{1}{2} f''(a) + \frac{1}{3!}h^2 f'''(a) + \cdots$
|
||||||
|
|
||||||
|
$R_2 = \frac{h}{2} f''(u)$
|
||||||
|
|
||||||
|
$|\frac{h}{2} f''(u)| \leq M h^1$
|
||||||
|
|
||||||
|
$M = \frac{1}{2}|f'(u)|$
|
||||||
|
|
||||||
|
*** Another approximation
|
||||||
|
|
||||||
|
$\text{err} = |f'(a) - \frac{f(a) - f(a - h)}{h}|$
|
||||||
|
|
||||||
|
$= f'(a) - \frac{1}{h}(f(a) - (f(a) + f'(a)(a - (a - h)) + \frac{1}{2}f''(a)(a-(a-h))^2 + \cdots))$
|
||||||
|
|
||||||
|
$= |f'(a) - \frac{1}{h}(f'(a) + \frac{1}{2}f''(a)h)|$
|
||||||
|
|
21
notes/Sep-20.org
Normal file
21
notes/Sep-20.org
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
* Review & Summary
|
||||||
|
Approx f'(a) with
|
||||||
|
|
||||||
|
+ forward difference $f'(a) \approx \frac{f(a+h) - f(a)}{h}$
|
||||||
|
|
||||||
|
+ backward difference $f'(a) \approx \frac{f(a) - f(a-h)}{h}$
|
||||||
|
|
||||||
|
+ central difference $f'(a) \approx \frac{f(a+h) - f(a-h)}{2h}$
|
||||||
|
|
||||||
|
** Taylor Series
|
||||||
|
given $C = \frac{1}{2}(|f''(\xi)|) \cdot h^1$
|
||||||
|
|
||||||
|
with f.d. $e_{\text{abs}} \leq Ch^1$
|
||||||
|
|
||||||
|
b.d. $e_{\text{abs}} \leq Ch^1$
|
||||||
|
|
||||||
|
c.d. $e_{\text{abs}} \leq Ch^2$
|
||||||
|
|
||||||
|
$e_{\text{abs}} \leq Ch^r$
|
||||||
|
|
||||||
|
$log(e(h)) \leq log(ch^r) = log(C) + log(h^r) = log(C) + rlog(h)$
|
45
notes/Sep-22.org
Normal file
45
notes/Sep-22.org
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
* regression
|
||||||
|
consider the generic problem of fitting a dataset to a linear polynomial
|
||||||
|
|
||||||
|
given discrete f: x \rightarrow y
|
||||||
|
|
||||||
|
interpolation: y = a + bx
|
||||||
|
|
||||||
|
[[1 x_0] [[y_0]
|
||||||
|
[1 x_1] \cdot [[a] = [y_1]
|
||||||
|
[1 x_n]] [b]] [y_n]]
|
||||||
|
|
||||||
|
consider p \in col(A)
|
||||||
|
|
||||||
|
then y = p + q for some q \cdot p = 0
|
||||||
|
|
||||||
|
then we can generate n \in col(A) by $Az$ and n must be orthogonal to q as well
|
||||||
|
|
||||||
|
(Az)^T \cdot q = 0 = (Az)^T (y - p)
|
||||||
|
|
||||||
|
0 = (z^T A^T)(y - Ax)
|
||||||
|
= z^T (A^T y - A^T A x)
|
||||||
|
= A^T Ax
|
||||||
|
= A^T y
|
||||||
|
|
||||||
|
|
||||||
|
A^T A = [[n+1 \Sigma_{n=0}^n x_n]
|
||||||
|
[\Sigma_{n=0}^n x_n \Sigma_{n=0}^n x_n^2]]
|
||||||
|
|
||||||
|
A^T y = [[\Sigma_{n=0}^n y_n]
|
||||||
|
[\Sigma_{n=0}^n x_n y_n]]
|
||||||
|
|
||||||
|
a_11 = n+1
|
||||||
|
a_12 = \Sigma_{n=0}^n x_n
|
||||||
|
a_21 = a_12
|
||||||
|
a_22 = \Sigma_{n=0}^n x_n^2
|
||||||
|
b_1 = \Sigma_{n=0}^n y_n
|
||||||
|
b_2 = \Sigma_{n=0}^n x_n y_n
|
||||||
|
|
||||||
|
then apply this with:
|
||||||
|
|
||||||
|
log(e(h)) \leq log(C) + rlog(h)
|
||||||
|
|
||||||
|
* homework 3:
|
||||||
|
|
||||||
|
two columns \Rightarrow coefficients for linear regression
|
48
notes/Sep-25.org
Normal file
48
notes/Sep-25.org
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
ex: erfc(x) = \int_{0}^x (\frac{2}{\sqrt{pi}})e^{-t^2 }dt
|
||||||
|
ex: IVP \frac{dP}{dt} = \alpha P - \beta P^2
|
||||||
|
P(0) = P_0
|
||||||
|
|
||||||
|
Explicit Euler Method
|
||||||
|
|
||||||
|
$\frac{P(t + \Delta t) - P(t)}{\Delta t} \approx \alpha P(t) - \beta P^2(t)$
|
||||||
|
|
||||||
|
From 0 \rightarrow T
|
||||||
|
P(T) \approx n steps
|
||||||
|
|
||||||
|
* Steps
|
||||||
|
** Calculus: defference quotient
|
||||||
|
$f'(a) \approx \frac{f(a+h) - f(a)}{h}$
|
||||||
|
|
||||||
|
** Test.
|
||||||
|
Roundoff for h \approx 0
|
||||||
|
|
||||||
|
** Calculus: Taylor Serioes w/ Remainder
|
||||||
|
$e_{abs}(h) \leq Ch^r$
|
||||||
|
|
||||||
|
(see Sep-20 . Taylor Series)
|
||||||
|
|
||||||
|
* Pseudo Code
|
||||||
|
#+BEGIN_SRC python
|
||||||
|
for i in range(n):
|
||||||
|
a12 = a12 + x[i+1]
|
||||||
|
a22 = a22 + x[i+1]**2
|
||||||
|
a21 = a12
|
||||||
|
b1 = y[0]
|
||||||
|
b2 = y[0] * x[0]
|
||||||
|
for i in range(n):
|
||||||
|
b1 = b1 + y[i+1]
|
||||||
|
b2 = b2 + y[i+1]*x[i+1]
|
||||||
|
detA = a22*a11 - a12*a21
|
||||||
|
c = (a22*b1 - a12*b2) / detA
|
||||||
|
d = (-a21 * b1 + a11 * b2) / detA
|
||||||
|
|
||||||
|
return (c, d)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
* Error
|
||||||
|
We want
|
||||||
|
$e_k = |df(h_kk) - f'(a)|$
|
||||||
|
|
||||||
|
$= |df(h_k) - df(h_m) + df(h_m) - f'(a)|$
|
||||||
|
|
||||||
|
$\leq |df(h_k) - df(h_m)| + |df(h_m) - f'(a)|$ and $|df(h_m) - f'(a)|$ is negligible
|
Loading…
Reference in New Issue
Block a user