{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Programmare in Python\n", "\n", "## Esercizi: Scipy\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1 - Trovate le intersezioni fra le curva $y = x^2 - 4 \\,\\sqrt{x}\\,\\,$ e la retta $\\,y = 3$.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__2 - Determinare le due soluzioni più vicine all’origine di: $\\sin(x) + \\cos(x) = 0$. Verificare la soluzione facendo il grafico.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__3 - Calcolate numericamente, usando la funzione `quad`, l'integrale:__\n", "$$\\,\\int_0^1 dx\\,e^{-x^2}$$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__4 - Calcolate l'integrale:__\n", "$$\\int_{-2}^2 dx\\,\\sqrt{4 - x^2}$$\n", "__Confrontate con il risultato esatto $\\,2\\, \\pi$.__ " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__5 - Calcolate numericamente, usando la funzione `quad`, l'integrale:__\n", "$$\\,\\int_0^\\infty dx\\,e^{-x^2}$$\n", "__Confrontate con il risultato esatto $\\sqrt{ \\pi}\\,/\\,2$.__ " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__6 - Trovate le radici dell'equazione $\\,x = \\sqrt{8/x -1}$ usando il metodo di bisezione. Prima di procedere determinate in quale intervallo l'equazione è definita. Fate il grafico della funzione in modo da scegliere opportunamente i parametri per il metodo di bisezione.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__7 - Calcolate, usando `quad`, l'integrale:__\n", "$$\\int_0^{\\frac{\\pi}{2}} dx\\,x^3$$\n", "__Confrontate con il risultato esatto $\\frac{\\pi^4}{2^6}$.__
\n", "__Calcolate lo stesso integrale usando il metodo dei trapezi, variando il numero di trapezi utilizzato.__
\n", "__Ripetete tutti i passaggi per:__\n", " $$\\int_0^{\\frac{\\pi}{2}} dx\\,\\sin^2(x)$$\n", "__Il risultato esatto in questo caso è $\\frac{\\pi}{4}$.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__8 - Trovate gli zeri della funzione:__\n", "$$ y(t) = t\\,(1-t) + t\\, e^{-t}$$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__9 - Risolvere l'equazione:__\n", "$$ 10^x + 11^x +12^x = 13^x +14^x.$$\n", "__Verificare graficamente e analiticamente il risultato.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__10 - Importate i dati contenuti in `../Data/parabolic_data.txt`. Fate un fit dei dati utilizzando la funzione $y(x) = a x^2 +b x +c$ con $a,\\,b,\\,c$ come parametri liberi.__\n", "\n", "__Sovrapponete ai dati la funzione ottenuta dal fit.__" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__11 - Importate i dati contenuti in `../Data/decay_data.txt` (05_input-output-files.ipynb). I dati (falsi) rappresentano il numero di particelle $\\alpha$ rilevate al secondo vicino a un elemento radioattivo $X$. Il tempo delle misure è dato nella prima colonna in secondi a partire dall'inizio dell'esperimento. La seconda colonna fornisce il numero di particelle rilevate in un dato secondo.__\n", "\n", "- __Fate un plot dei dati. Inserite i titoli opportuni per i due assi.__\n", "\n", "- __Il numero di nuclei non decaduti di un elemento radioattivo segue una legge del tipo:__\n", "$$R(t) = R_0~e^{-t/\\tau}$$\n", "__dove $R_0$ è il numero di nuclei a $t=0$, e $\\tau$ è la vita media. \n", "Il numero di decadimenti fra $t_1$ e $t_1 + 1$ è dato da__\n", "$$D(t) = R_0~e^{-t/\\tau}\\left( 1 - \\frac{1}{\\tau} \\right)\\approx \\frac{R_0}{\\tau}~e^{-t/\\tau} $$\n", "__Fate un fit dei dati utilizzando la funzione $D(t)$ con $R_0/\\tau$ e $1/\\tau$ come parametri liberi.__
\n", "__Notate che `curve_fit` non riesce a determinare i parametri.__\n", "__Due possibili soluzioni sono:__\n", " - __Fornire a `curve_fit` una stima del valore dei parametri (variabile p0 in input. Leggete la documentazione di `curve_fit`)__\n", " - __Fare il fit del logaritmo dei dati usando una retta: $\\,\\,\\log(D(t)) = a - b*t$__\n", "\n", "__Sovrapponete ai dati la funzione ottenuta dal fit.__
\n", "__I dati sono stati generati con $R_0 = 1\\cdot 10^{14},\\,\\tau = 3000.$__ " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }