{
"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
}