diff options
author | lonkaars <loek@pipeframe.xyz> | 2024-01-08 19:11:43 +0100 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2024-01-08 19:11:43 +0100 |
commit | 251f03c22057f93daea2f38c6d8f693970cfc19f (patch) | |
tree | f1a012f55f44a8aa35018052dd5b2a2810fb9fa6 | |
parent | 84a9d1aa718660cea925056eee219f6896664ae9 (diff) |
de eenheidscirkel is een goed idee
-rw-r--r-- | circrect.tex | 165 | ||||
-rw-r--r-- | refs.bib | 4 |
2 files changed, 88 insertions, 81 deletions
diff --git a/circrect.tex b/circrect.tex index f22a7aa..8411fe8 100644 --- a/circrect.tex +++ b/circrect.tex @@ -47,68 +47,67 @@ De volgende variabelen (met uitzondering van functieparameters) worden gebruikt berekeningen. Deze variabelen zijn weergegeven in een diagram in \cref{fig:context}. \begin{description} - \item[$a$] (de cirkel) + \item[$ab$] (de rechthoek) + \item[$a$] (\'e\'en hoekpunt van de rechthoek $ab$) \begin{description} - \item[$a_r$] (de straal van cirkel $a$) + \item[$a_x, a_y$] (de co\"ordinaten van punt $a$) \end{description} - \item[$bc$] (de rechthoek) - \item[$b$] (\'e\'en hoekpunt van de rechthoek $bc$) + \item[$b$] (tegenovergestelde hoekpunt van $a$ in rechthoek $ab$) \begin{description} \item[$b_x, b_y$] (de co\"ordinaten van punt $b$) \end{description} - \item[$c$] (tegenovergestelde hoekpunt van $b$ in rechthoek $bc$) - \begin{description} - \item[$c_x, c_y$] (de co\"ordinaten van punt $c$) - \end{description} - \item[$o$] (het gedeelde oppervlak van $a$ en $bc$) + \item[$o$] (het gedeelde oppervlak van $ab$ en $c$) \end{description} \begin{figure} \centering - \begin{tikzpicture}[scale=1.25] + \begin{tikzpicture}[scale=2.5] % draw area - \clip(-2.5,-0.5) rectangle (3.5,3.5); + \clip(-1.25,-0.25) rectangle (1.75,1.75); % axes - \draw[->] (-3,0) -- (3,0) node[right]{$x$}; - \draw[->] (0,-3) -- (0,3) node[above]{$y$}; + \draw[->] (-1.5,0) -- (1.5,0) node[right]{$x$}; + \draw[->] (0,-1.5) -- (0,1.5) node[above]{$y$}; % labeled points - % \node(-0.707,0.707) {$a_r$}; - \coordinate [label=225:$b$] (b) at (1,1); - \coordinate [label=45:$c$] (c) at (2,2); + \coordinate [label=225:$a$] (a) at (0.5,0.5); + \coordinate [label=45:$b$] (b) at (1.0,1.0); % draw rectangle, circle and line - \draw[thick] (b) rectangle (c); - \draw[thick] (0,0) circle (2); - % label a, b and c - \path[thick,<->] (0,0) edge node[below left] {$a_r$} (-1.414,1.414); + \draw[thick] (a) rectangle (b); + \draw[thick] (0,0) circle (1); + % label a, a and b + \path[thick,<->] (0,0) edge node[below left] {1} (-0.707,0.707); + \node[fill,circle,inner sep=1.5pt] at (a) {}; \node[fill,circle,inner sep=1.5pt] at (b) {}; - \node[fill,circle,inner sep=1.5pt] at (c) {}; % hatch overlapping area \begin{scope} - \clip (0,0) circle (2); - \fill[pattern=north east lines] (b) rectangle (c); + \clip (0,0) circle (1); + \fill[pattern=north east lines] (a) rectangle (b); \end{scope} \end{tikzpicture} \caption{Voorbeeldvisualisatie toepassing} \label{fig:context} \end{figure} +Omdat elke transformatie bestaand uit een willekeurige schaling en/of translatie van +cirkel $c$ uit te drukken is door de bijbehorende inverse transformatie toe te passen +op rechthoek $ab$, is cirkel $c$ een eenheidscirkel. + Om de formules verder te vereenvoudigen worden de volgende eisen aan de invoerwaarden gesteld: \begin{equation}\label{eq:constrain:x} --a_r \leq b_x \leq c_x \leq a_r +-1 \leq a_x \leq b_x \leq 1 \end{equation} \begin{equation}\label{eq:constrain:y} --a_r \leq b_y \leq c_y \leq a_r +-1 \leq a_y \leq b_y \leq 1 \end{equation} \section{Aanpak} Mijn initi\"ele aanpak voor dit probleem was de integraal berekenen op het interval -$[b_x, c_x]$ van een kromme die een halfrond begrensde tussen $[b_y,c_y]$. Deze +$[a_x, b_x]$ van een kromme die een halfrond begrensde tussen $[a_y,b_y]$. Deze aanpak werkte in de Desmos grafische rekenmachine \autocite{circrect1}, maar was niet implementeerbaar in Python. @@ -119,37 +118,36 @@ kan gebruiken. \begin{figure} \centering - \begin{tikzpicture}[scale=1.25] + \begin{tikzpicture}[scale=2.5] % draw area - \clip(-0.25,-0.5) rectangle (3.5,3.5); + \clip(-0.1,-0.25) rectangle (1.5,1.25); % axes - \draw[->] (-3,0) -- (3,0) node[right]{$x$}; + \draw[->] (-1,0) -- (1.25,0) node[right]{$x$}; % labeled points - % \node(-0.707,0.707) {$a_r$}; - \coordinate (b) at (0.5,0.5); - \coordinate (c) at (2.5,1.5); + \coordinate (a) at (0.25,0.25); + \coordinate (b) at (1.00,0.75); % draw rectangle, circle and line - \draw[thick] (b) rectangle (c); + \draw[thick] (a) rectangle (b); \begin{scope} - \clip (-3,0) rectangle (3,3); - \draw[thick] (0,0) circle (2); + \clip (-2,0) rectangle (2,2); + \draw[thick] (0,0) circle (1); \end{scope} % hatch overlapping area \begin{scope} - \clip (0,0) circle (2); - \fill[pattern=north east lines] (0.5,5) rectangle (c); - \fill (b) rectangle (c); - \fill[pattern=crosshatch dots] (b) rectangle (2.5,0); + \clip (0,0) circle (1); + \fill[pattern=north east lines] (0.25,5) rectangle (b); + \fill (a) rectangle (b); + \fill[pattern=crosshatch dots] (a) rectangle (5,0); \end{scope} % labels - \node[anchor=east] at (0.5,1.75) {1}; - \node[anchor=east] at (0.5,1.00) {2}; - \node[anchor=east] at (0.5,0.25) {3}; + \node[anchor=east] at (0.25,0.875) {1}; + \node[anchor=east] at (0.25,0.500) {2}; + \node[anchor=east] at (0.25,0.125) {3}; \end{tikzpicture} \caption{Markering ongewenste gebieden} (alleen het oppervlak van gebied 2 is gewenst) @@ -160,20 +158,20 @@ De aanpak is als volgt: \begin{enumerate} \item\label{step:semicircfn} Defini\"eer de functie $f$ als alleen het bovenste halfrond van cirkel $a$. - \item Beschouw alleen het domein $[b_x, c_x]$. Als de integraal van $f$ genomen zou + \item Beschouw alleen het domein $[a_x, b_x]$. Als de integraal van $f$ genomen zou worden op dit interval, zou de uitkomst niet alleen het oppervlak van de overlap met rechthoek $bc$ zijn, maar het oppervlak van de bovenste rand van de cirkel tot de $x$-aslijn. Dit is ongewenst. - \item\label{step:regdelbelow} De regio tussen $[0, b_y]$ (regio 3 in + \item\label{step:regdelbelow} De regio tussen $[0, a_y]$ (regio 3 in \cref{fig:unwanted-area}) kan worden verwijderd door een verticale translatie van - $-b_y$ toe te passen op $f$ v\'o\'or de integraal wordt berekend. Dit zorgt voor - problemen zodra punt $(b_x,b_y)$ of $(c_x,b_y)$ buiten cirkel $a$ valt. - \item\label{step:regdelabove} De regio tussen $[c_y, a_r]$ (regio 1 in + $-a_y$ toe te passen op $f$ v\'o\'or de integraal wordt berekend. Dit zorgt voor + problemen zodra punt $(a_x,a_y)$ of $(b_x,a_y)$ buiten cirkel $a$ valt. + \item\label{step:regdelabove} De regio tussen $[b_y, 1]$ (regio 1 in \cref{fig:unwanted-area}) kan worden verwijderd door deze te berekenen en af te trekken van de resulterende regio uit stap \ref{step:regdelbelow}. Deze regio kan worden berekend door een tweede integraal te berekenen, maar op $f$ met een - translatie van $-c_y$. Dit zorgt weer voor problemen, maar bij de punten - $(b_x,c_y)$ en $(c_x,c_y)$. + translatie van $-b_y$. Dit zorgt weer voor problemen, maar bij de punten + $(a_x,b_y)$ en $(b_x,b_y)$. \item\label{step:limitintdomain} De tot nu toe genoemde problemen kunnen worden opgelosd door de intervallen van de integralen te begrenzen tot het punt waar de getransleerde functies de $x$-as snijden. @@ -189,58 +187,67 @@ Stap \ref{step:semicircfn} is beschreven in \cref{eq:fn:f}. Om later voor stap van functie $f$ nodig. Omdat de functie $f$ een cirkel beschrijft, is de inverse functie gelijk aan functie $f$. \begin{equation}\label{eq:fn:f} -f\left(x\right) = \sqrt{a_r^2-x^2} +f\left(x\right) = \sqrt{1-x^2} \end{equation} Stappen \ref{step:regdelbelow} en \ref{step:regdelabove} zijn beschreven in -\cref{eq:fn:fb,eq:fn:fc}. +\cref{eq:fn:fa,eq:fn:fb}. \begin{align} -\label{eq:fn:fb} f_b\left(x\right) &= f\left(x\right)-b_y\\ -\label{eq:fn:fc} f_c\left(x\right) &= f\left(x\right)-c_y +\label{eq:fn:fa} f_a\left(x\right) &= f\left(x\right)-a_y\\ +\label{eq:fn:fb} f_b\left(x\right) &= f\left(x\right)-b_y \end{align} Stap \ref{step:limitintdomain} is beschreven in \cref{eq:var:xb1,eq:var:xb2,eq:var:xc1,eq:var:xc2}. \begin{align} \label{eq:fn:clamp} \clamp\left(a,b,x\right) &= - \max\left(a, \min\left(b, c\right)\right)\\ -\label{eq:var:xb1} x_{b_1} &= - \clamp\left(b_x,c_x,-f\left(b_y\right)\right)\\ -\label{eq:var:xb2} x_{b_2} &= - \clamp\left(b_x,c_x, f\left(b_y\right)\right)\\ -\label{eq:var:xc1} x_{c_1} &= - \clamp\left(b_x,c_x,-f\left(c_y\right)\right)\\ -\label{eq:var:xc2} x_{c_2} &= - \clamp\left(b_x,c_x, f\left(c_y\right)\right) + \max\left(a, \min\left(b, x\right)\right)\\ +\label{eq:var:xb1} x_{a_1} &= + \clamp\left(a_x,b_x,-f\left(a_y\right)\right)\\ +\label{eq:var:xb2} x_{a_2} &= + \clamp\left(a_x,b_x, f\left(a_y\right)\right)\\ +\label{eq:var:xc1} x_{b_1} &= + \clamp\left(a_x,b_x,-f\left(b_y\right)\right)\\ +\label{eq:var:xc2} x_{b_2} &= + \clamp\left(a_x,b_x, f\left(b_y\right)\right) \end{align} -Nu kunnen de integralen berekend worden volgens \cref{eq:var:ob,eq:var:oc,eq:var:o}. +Nu kan de oppervlakte $o$ berekend worden door de integralen uit te rekenen volgens +\cref{eq:var:oa,eq:var:ob,eq:var:o}. \begin{align} +\label{eq:var:oa} o_a &= \int_{x_{a_1}}^{x_{a_2}}f_a\left(x\right)dx\\ \label{eq:var:ob} o_b &= \int_{x_{b_1}}^{x_{b_2}}f_b\left(x\right)dx\\ -\label{eq:var:oc} o_c &= \int_{x_{c_1}}^{x_{c_2}}f_c\left(x\right)dx\\ -\label{eq:var:o} o &= o_b - o_c +\label{eq:var:o} o &= o_a - o_b \end{align} \section{Uitbereiding} Om \cref{eq:var:o} als een constante formule te defini\"eren moet functie $f$ -geprimitiveerd worden. - -TODO: definieer functie $F$ als de primitieve van functie $f$ +geprimitiveerd worden. De primitieve van functie $f$ is gedefini\"eerd in +\cref{eq:fn:F} als de nieuwe functie $F$ met een extra argument $n$ voor een +verticale verschuiving van $f$. +\begin{equation}\label{eq:fn:F} + \begin{aligned}[c] +F\left(x,n\right)&=\int\left(f\left(x\right) + n\right) dx\\ + &=\frac{1}{2}\left(2nx+\sqrt{1-x^2}x+\sin^{-1}\left(x\right)\right) + \end{aligned} +\end{equation} -TODO: definieer functie $h$ (uitbereiding $o$ als functie) +Nu kan een complete functie $g$ beschreven worden: +\begin{equation}\label{eq:fn:g} +g\left(a,b\right) = \text{TODO} +\end{equation} -De complete oplossing bestaat uit de functie $h$ \'e\'en keer normaal berekenen, en -nog een keer met de rechthoek $bc$ gespiegeld om de $x$-as (vermenigvuldig $b_y$ en -$c_y$ met $-1$). De som van deze twee waarden vormt oppervlak $o$. -\begin{equation}\label{eq:fn:k} +De complete oplossing bestaat uit de functie $g$ \'e\'en keer normaal berekenen, en +nog een keer met de rechthoek $ab$ gespiegeld om de $x$-as (vermenigvuldig $a_y$ en +$b_y$ met $-1$). De som van deze twee waarden vormt oppervlak $o$. +\begin{equation}\label{eq:fn:h} \begin{aligned}[c] - k\left(a,b,c\right) ={} - h\,(a, & \left(b_x,\max\left(0,b_y\right)\right),\\ - & \left(c_x, \max\left(0,c_y\right)\right) - ) + \\ - h\,(a, & \left(b_x,\max\left(0,-b_y\right)\right),\\ - & \left(c_x, \max\left(0,-c_y\right)\right) + h\left(a,b\right) + = g\,(&\left(a_x,\max\left(0,a_y\right)\right),\\ + &\left(b_x, \max\left(0,b_y\right)\right))\\ + + g\,(&\left(a_x,\max\left(0,-a_y\right)\right),\\ + &\left(b_x, \max\left(0,-b_y\right)\right) ) \end{aligned} \end{equation} @@ -10,7 +10,7 @@ title = {circrect2}, url = {https://www.desmos.com/calculator/zudzhuj9yi}, author = {Loek Le Blansch}, - date = {2024-01-07}, - urldate = {2024-01-07}, + date = {2024-01-08}, + urldate = {2024-01-08}, } |