\documentclass[10pt]{beamer}
%\documentclass[ignorenoframetext,handout]{beamer}  % per stampare senza pause
\usetheme{Padova}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsopn}
\usepackage{amsthm}
\usepackage{mathrsfs}
\usepackage{soul}
\usepackage{enumerate}
\usepackage{txfonts}
\usepackage{marvosym}
\usepackage{xcolor}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{subfigure}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage{esvect}
\usepackage{booktabs}
\usepackage{adjustbox}
\usepackage{caption}
\usepackage{tikz}

\captionsetup{labelformat=empty}

\newtheorem{lem}{Lemma}
\newtheorem{rem}{Remark}
\newtheorem{thm}{Teorema}
\newtheorem{proposition}{Proposition}
\theoremstyle{definition}
% \newtheorem{definition}{Definizione}

\definecolor{blu}{RGB}{0,155,135}

\newenvironment{system}%
	{\left\lbrace \begin{array}{@{} l @{} }}%
	{ \end{array}\right.}

\newcommand{\bbR}{\mathbb{R}}
\newcommand{\bbN}{\mathbb{N}}
\newcommand{\bbP}{\mathbb{P}}
\newcommand{\bbZ}{\mathbb{Z}}
\newcommand{\calX}{\mathcal{X}}
\newcommand{\calV}{\mathcal{V}}
\newcommand{\calR}{\mathcal{R}}

\newcommand{\de}{\,\mathrm{d}}
\newcommand{\dist}{\,\mathrm{dist}}
\newcommand{\dx}{\,\mathrm{d} x_1 \ldots \mathrm{d} x_n}

\newcommand{\px}{p(x_1, \ldots, x_n)}
\newcommand{\bs}{\boldsymbol}

\DeclareMathOperator{\ctg}{ctg}
\DeclareMathOperator{\cst}{cst}

\usepackage[tikz]{bclogo}
\presetkeys{bclogo}{
ombre=true,
epBord=2,
couleur = white,
couleurBord = rossoPantano,
arrondi = 0.1,
logo= 
}{}

\definecolor{azzurro}{RGB}{0,155,135}
\newcommand{\gel}[1]{\textcolor{azzurro}{#1}}


\title[{\small{Cubatura adattiva su poligoni sferici}}\hspace{2em}\insertframenumber/
\inserttotalframenumber]{Cubatura adattiva su poligoni sferici}

\author{Nicole Mietto}
\institute{Universit\`a degli Studi di Padova}
\date{Laurea Triennale in Matematica \\ 11 Dicembre 2024}

\begin{document}

\frame{\titlepage}




\begin{frame}{Introduzione}

L'obiettivo di questo lavoro \'e di proporre un algoritmo di quadratura su un {\color{purple}{poligono sferico}} ${\cal P}$ che permetta di approssimare numericamente, a meno di tolleranze fissate dall'utente, la quantit\'a $$I=\int_{{\cal P}} f({\cal P}) d{\cal P}$$
dove si suppone che l'integranda $f \colon {\cal P} \subseteq \mathbb {S}^2 \to {\mathbb { R }}$ sia continua.

{\vspace{0.2cm}}

In questa presentazione
\begin{itemize}
\item mostriamo i dettagli principali dell'algoritmo utilizzato,
\item con alcuni esempi numerici illustriamo la bont\'a dell'approccio.
\end{itemize}


\end{frame}%


\begin{frame}{Poligono sferico}

\begin{tikzpicture}[overlay,remember picture]
            %\node[anchor=east,inner sep=0pt] at (current page.east) {\includegraphics[height=0.5\paperheight]{pol_spher.png}};

    
    \node[anchor=east,xshift=1cm] at (current page.east) {\includegraphics[width=7cm]{pol_spher.png}};

\end{tikzpicture}
\begin{minipage}{0.65\textwidth}
    Dati $n$ punti distinti $$V_1, \dots , V_n \in \mathbb{S}^2, \quad V_n=V_0,$$ un {\color{purple}{poligono sferico}} \'e la regione ${\cal P} \subset {\mathbb{S}}^2$ la cui frontiera \'e determinata, con orientamento antiorario, dagli archi $$\{\gamma_k\}_{k=0,\ldots,n-1},$$ dove $\gamma_k$ \'e la geodetica che unisce $V_k$ con $V_{k+1}$, per $k=0,\dots,n-1$.
    
\end{minipage}

\end{frame}






\begin{frame}{Algoritmo adattivo}
Nell'algoritmo utilizzato sussistono varie fasi:
\vspace{0.5cm}
\begin{enumerate}
    \item {\color{purple}{calcolo della triangolazione sferica minimale}} ${\cal T}$ del dominio di partenza ${\cal P}$,
    \item {\color{purple}{prima approssimazione dell'integrale richiesto}} attraverso formule composte sui triangoli sferici di  ${\cal T}$ e stima dell'errore compiuto,
    \item {\color{purple}{raffinamento}} nelle zone in cui l'errore risulta maggiore, finch\'e l'integrale non supera un test basato sulle tolleranze.
\end{enumerate}
\end{frame}

\begin{frame}{Prima iterazione, fase 1}

\textbf{Prima iterazione, fase 1}:

{\vspace{0.3cm}}

La prima fase dell'algoritmo consiste nel suddividere ${\cal P}$ in triangoli sferici ${\cal T}_j$. 

{\vspace{0.3cm}}

Supponendo ${\cal P}$ contenuto in una calotta di altezza minore di $1$ (ovvero, contenuto a meno di rotazioni in un emisfero),
\begin{enumerate}
    \item si calcola il baricentro $C$ del poligono e una rotazione $R$ t.c. $R(C)=(0,0,1)$ (rotazione al Polo Nord);
    \item si determinano i vertici ruotati ${\tilde{V}}_i=R(V_i)$, $i=1,\ldots,n$;
    \item mediante la {\color{purple}{proiezione gnomonica}} $\Pi$ si mappano i punti ${\tilde{V}}_i$ sul piano $z=1$ ottenendo ${\bar{V}}_i=\Pi({\tilde{V}}_i)$, $i=1,\ldots,n$;
    \item tramite la routine {\tt{polyshape}} si triangola $\Pi({\cal P})$ in $T_i$ (triangoli piani);
    \item usando $\Pi^{-1}$ e $R^{-1}$ si ottengono i triangoli sferici ${\cal T}_j$ che suddividono ${\cal P}$.
\end{enumerate}
\end{frame}


\begin{frame}{Prima iterazione, fase 2}
    \textbf{Prima iterazione, fase 2}:
\begin{itemize}
    \item si calcola numericamente una {\color{purple}{approssimazione rozza $S_{\cal P}^L(f)$}} dell'integrale su ${\cal P}$ sfruttando le formule di quadratura con grado di esattezza numerica $\delta$ sui triangoli di ${\cal T}$. Nell'implementazione si \'e usato $\delta=4$.
    \item si {\color{purple}{suddivide}} ulteriormente il dominio triangolando ogni ${\cal T}_i$ con quattro triangoli sferici utilizzando i suoi 3 punti medi.
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=0.4\textwidth]{sph_triangle_sons.jpg}
\caption{\footnotesize{\textbf{Fig.} : suddivisione in 4 triangoli sferici}}
\end{figure}
\end{frame}

\begin{frame}{Prima iterazione, fase 2}
    \begin{itemize}
        \item si calcola numericamente una {\color{purple}{approssimazione fine $S_{\cal P}^H(f)$}}, l'integrale numerico mediante la suddivisione pi\'u fitta in triangoli sferici;
        \item si considera il {\color{purple}{criterio di arresto}} $$| S_{\cal P}^L(f) - S_{\cal P}^H(f) | \le \max( {{\tt{atol}}, {\tt{rtol}} } | S_{\cal P}^H(f) | )$$ con {\tt atol} e {\tt rtol} rispettivamente la tolleranza assoluta e relativa fissata dall'utente. 
        
        {\vspace{0.3cm}}
        
        Nel caso di esito positivo l'algoritmo termina e fornisce il risultato altrimenti passa alle iterazioni successive.
    \end{itemize}
    
\end{frame}

\begin{frame}{Iterazioni successive}
   \textbf{Iterazioni successive}:
   \begin{itemize}
       \item Si determina il triangolo sferico ${\cal T}^*={\cal T}_i$ con {\color{purple}{peggiore stima dell'errore}} $$| S_{{\cal T}_i}^L(f) - S_{{\cal T}_i}^H(f) |$$ e lo si suddivide in 4 triangoli come in precedenza;
       \item si calcolano sulla nuova triangolazione sia l'approssimazione {\color{purple}{rozza}} $S_{\cal P}^L(f)$ sia quella {\color{purple}{fine}} $S_{\cal P}^H(f)$;
       \item si testa la {\color{purple}{condizione di arresto}} vista alla prima iterazione.
   \end{itemize}

{\vspace{0.3cm}}
   
   Se la condizione di arresto \'e verificata entro un {\color{purple}{numero massimo di iterazioni}}, l'algoritmo fornisce il risultato richiesto e una stima dell'errore compiuto altrimenti, oltre ai dati precedenti, segnala il fallimento.
\end{frame}

\begin{frame}{Test numerici}
  I codici Matlab dell'algoritmo adattivo e della demo utilizzata negli esempi che seguono sono disponibili open-source all'indirizzo:\\
  \begin{centering}
  \vspace{0.5cm}\url{https://github.com/NicoleMietto/adaptivecub_sphplg} % YOUR GITHUB ADDRESS
  \vspace{0.5cm}
  \end{centering}\\
Di seguito alcuni esempi tratti dalla demo.


\vspace{0.5cm}

Quali domini, consideriamo:

\begin{itemize}
\item una approssimazione dell'Australia;
\item una approssimazione di una cardioide sferica;
\item un decagono sferico.
\end{itemize}

Per semplicit\'a mostriamo una vista planare.


\end{frame}


\begin{frame}{Test numerici}
    $f_3(x,y,z):=((x-x_0)^2 + (y-y_0)^2 + (z-z_0)^2)^{1/2}$, dove $(x_0,y_0,z_0)$ indica il baricentro.
    \begin{figure}[h!]
    \centering
    \begin{minipage}{0.45\textwidth}
        \includegraphics[width=\textwidth]{fig_1.png}
        \vspace{-1cm}\caption{\footnotesize{(a) triangolazione minima}}
    \end{minipage}
    \hfill
    \begin{minipage}{0.45\textwidth}
     \includegraphics[width=\textwidth]{fig_4.png}
        \vspace{-1cm}\caption{\footnotesize{(b) triangolazione adattiva\\
        per tol$=10^{-12}$}}

    \end{minipage}
\end{figure}
\begin{table}[h!]
    \centering
    \footnotesize
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
  \multicolumn{7}{|c|}{$I_{\text{num}}=3.398364433363321e-02, \quad$ nodi: 579891}\\
  \hline
  tol & it. & triang. & $I_\text{a}$ & time & AE & RE \\
  \hline
   1e-06   &    1     &    167  &    3.398374406036552e-02   & 0.83s  &  9.9e-08  &  2.9e-06\\
   \hline
   1e-09   &    3     &    173    &  3.398364250523284e-02    & 0.85s  &  1.8e-09  &  5.4e-08\\
   \hline
   1e-12   &   21    &     227    &  3.398364191934793e-02  &   1.02s  &   2.4e-09  &  7.1e-08\\
   \hline
   \end{tabular}
   \end{table}  
    
   
\end{frame}

\begin{frame}{Test numerici}
    $f_2(x,y,z):= \text{exp}(-h(x,y,z)) \sin^2(10y+20z) \cos^2(10x+20z)$, dove $h(x,y,z):=(x-x_0)^2 + (y-y_0)^2 + (z-z_0)^2$ e $(x_0,y_0,z_0)$ indica il baricentro.
     \begin{figure}[h!]
    \centering
    \begin{minipage}{0.45\textwidth}
        \includegraphics[width=\textwidth]{f_0_1-1.png}
        \vspace{-0.7cm}\caption{\footnotesize{(a) triangolazione minima}}
    \end{minipage}
    \hfill
    \begin{minipage}{0.45\textwidth}
     \includegraphics[width=\textwidth]{f_1_4-1.png}
        \vspace{-0.7cm}\caption{\footnotesize{(b) triangolazione adattiva\\
        per tol$=10^{-12}$}}

    \end{minipage}

\begin{table}[h!]
    \centering
    \footnotesize
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
  \multicolumn{7}{|c|}{$I_{\text{num}}=2.559015739903048e-01, \quad$ nodi: 140250}\\
  \hline
  tol & it. & triang. & $I_\text{a}$ & time & AE & RE \\
  \hline
  1e-06    &    2   &      33   &   2.559018535051488e-01 &   0.25s  &  2.8e-07  &  1.09e-06
   \\
   \hline
   1e-09    &   31   &     120    &  2.559015742012746e-01 &   0.81s  &  2.11e-10  &  8.24e-10
   \\
   \hline
   1e-12   &   222   &     693     & 2.559015739902026e-01  &   3.4s  &   1.02e-13  &  3.99e-13
   \\
   \hline
   \end{tabular}
   \end{table}
\end{figure}
\end{frame}

\begin{frame}{Test numerici}
    $f_4(x,y,z):=((x-x_i)^2 + (y-y_i)^2 + (z-z_i)^2)^{1/4}$, dove $(x_i,y_i,z_i)$ corrispondono alle coordinate di uno dei vertici $V_i$ del poligono sferico.
    \begin{figure}[h!]
    \centering
    \begin{minipage}{0.45\textwidth}
        \includegraphics[width=\textwidth]{decagono/f_0_1 (1).png}
        \vspace{-0.7cm}\caption{\footnotesize{(a) triangolazione minima}}
    \end{minipage}
    \hfill
    \begin{minipage}{0.45\textwidth}
     \includegraphics[width=\textwidth]{decagono/f_3_4.png}
        \vspace{-0.7cm}\caption{\footnotesize{(b) triangolazione adattiva\\
        per tol$=10^{-12}$}}

    \end{minipage}
    \end{figure}

       \begin{table}[h!]
    \centering
    \footnotesize
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
  \multicolumn{7}{|c|}{$I_{\text{num}}=1.273072680943058e+00, \quad$ nodi: 42972}\\
  \hline
  tol & it. & triang. & $I_\text{a}$ & time & AE & RE \\
  \hline
  1e-06   &    1     &     8      & 1.273072697663152e+00    &0.05s  &   1.67e-08  &  1.31e-08
   \\
   \hline
   1e-09  &    10   &      35       &1.273072681165690e+00   &  0.21s  &  2.23e-10  &  1.75e-10
   \\
   \hline
   1e-12   &   26     &    83       &1.273072680809076e+00   &  0.46s  &  1.34e-10  &  1.05e-10
   \\
   \hline
   \end{tabular}
   \end{table}
\end{frame}

\begin{frame}
  \centering
  \color{white}
  \Huge{Grazie!}
\end{frame}

\end{document}