{ "cells": [ { "cell_type": "markdown", "id": "bfee7cfe", "metadata": {}, "source": [ "# Fys1120 Lab\n", "\n", "\\ \n", "\n", "(Gruppene bestemmes under selve labøkten, så alle bør forberede sin egen notebook på forhånd. Du kan gjerne avtale å jobbe sammen med noen på forhånd, gitt at de skal ha samme labøkt. Gruppene skal bestå av 2-3 personer.)" ] }, { "cell_type": "markdown", "id": "885d742a", "metadata": {}, "source": [ "Denne notebooken skal fylles ut som del av lab i Fys1120, og skal godkjennes av labassistenten ved slutten av labøkten. Før dere går på lab må dere forberede notebooken for å ha tid nok til å bli ferdig med selve labøvelsene. Alle oppgavene (både de som skal gjøres før og under lab) er beskrevet i full detalj i labteksten. Her i notebooken skal dere besvare de prelab oppgavene (indikert av undertitlene) der dere blir bedt om å skrive et python skript . Dette skal gjøre noen av oppgavene som dere skal utføre under selve laben mye enklere. " ] }, { "cell_type": "markdown", "id": "32bf27b0", "metadata": {}, "source": [ "Resten av oppgavene trenger dere ikke forberede i notebooken før lab, **men** oppgavene i labteksten som er merket med *På lab* bør dere besvare i notebooken når dere er på lab, for at alle svarene skal være samlet. De oppgavene som er merket *Før lab* bør dere også prøve å løse (for dere selv) før lab, for at dere skal kunne bruke tiden på å løse andre eventuelle utfordringer under selve labøvelsen. " ] }, { "cell_type": "code", "execution_count": 146, "id": "88988492", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.stats import linregress" ] }, { "cell_type": "markdown", "id": "f9e19af4", "metadata": {}, "source": [ "## Oppgaver 1.1.2 (før lab) og 1.2.1 (på lab)\n", "\n", "I neste celle finner du en variabel $C$, en vektor $U$ og en vektor $t$, som forestiller \"falske\" verdier for kapasitansen, spenningene og tidene som du vil måle i forsøket. Bruk disse til å finne en tilsvarende \"falsk\" verdi av restistansen $R$, som beskrevet i labteksten. Plot også målepunktene og de tilpassede kurvene på både eksponentiell og på lineær form (plottene skal ligne på bildene). Tips: søk opp funksjonen `scipy.stats.lingress` på google!\n", "\n", "Husk å ha med aksebetegnelser og tegnforklaring! (Tips: du kan bruke Latex-syntax i matplotlib, f.eks. skriv ``plt.xlabel(\"$\\\\ln \\\\frac{U}{U_0} $\") `` for å få aksebetegnelsen på y-aksen i venstre plott).\n" ] }, { "cell_type": "markdown", "id": "3d749a30", "metadata": {}, "source": [ "\n", "\n", "\n", "
\"Målinger \"Målinger
" ] }, { "cell_type": "markdown", "id": "206c9902", "metadata": {}, "source": [ "Når du er på lab er alt du trenger å gjøre her å endre $C$, $t$, og $U$ til de \"ekte verdiene\", dvs. verdiene av kapasitans, tid og spenning som du har funnet under forsøket! **Merk:** disse verdiene vil muligens se veldig forskjellig ut fra \"dummy\"-verdiene dere bruker før lab. Dummy-verdiene har gjerne også feil antall desimaler, i forhold til nøyaktigheten dere vil måle størrelsene med under lab-øvelsen. " ] }, { "cell_type": "code", "execution_count": 147, "id": "b1dc5962", "metadata": {}, "outputs": [], "source": [ "C = 10 #Coulomp per Volt\n", "t = np.array([1, 2, 3, 4, 5]) #Sekunder\n", "U = np.array([149, 59, 18, 7, 3]) #Volt" ] }, { "cell_type": "code", "execution_count": 148, "id": "cc6a7b21", "metadata": {}, "outputs": [], "source": [ "R = 0 \n", " \n", "# Skriv din kode her (du kan så klart bruke flere celler om du vil). \n", "# Du skal plotte målepunktene og regne ut en fornuftig verdi av motstanden R. \n", "# Siste celle skal skrive ut R. \n" ] }, { "cell_type": "code", "execution_count": 149, "id": "166bb059", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Motstand R = 0.00 Ohm\n" ] } ], "source": [ "print()\n", "print(f\"Motstand R = {R:.2f} Ohm\") # Velg et passende antall desimaler!" ] }, { "cell_type": "markdown", "id": "cb0822f7", "metadata": {}, "source": [ "## Oppgaver 2.1.1 (før lab) og 2.2.1 (under lab)\n", "\n", "I cellen under finner du en vektor $I$ og en vektor $U$, som er dummy-verdier for strømmen gjennom og spenningen over amperemeteret som vi skal måle på laben. Bruk disse verdiene til å lage en lineær tilpasning, og til å finne en dummy-verdi for den indre motstanden i amperemeteret, $R_{\\mathrm{a}}$. Lag et plot som inneholder både verdiene av $I$ og $U$ samt den tilpassede kurven (noe liknende som figuren under). \n", "\n", "Når du er på laben (og gjør oppg. 2.2.1) skal alt du trenger å gjøre i notebooken være å sette inn de målte verdiene for strøm og spenning i vektorene $I$ og $U$." ] }, { "cell_type": "markdown", "id": "1077616c", "metadata": {}, "source": [ "\"Målinger\n" ] }, { "cell_type": "code", "execution_count": 150, "id": "87aab260", "metadata": {}, "outputs": [], "source": [ "I = np.array([6.4, 4.8, 3.9, 3.2, 2.0, 0.7]) # Ampere\n", "U2 = np.array([3, 2.5, 2, 1.5, 1, 0.5]) # Volt # Skriver U2, for å skille vektoren fra U i oppgave 1" ] }, { "cell_type": "code", "execution_count": 151, "id": "aba04bb1", "metadata": {}, "outputs": [], "source": [ "Ra = 0\n", "\n", "\n", "# Skriv din kode her\n", "# Siste celle skal skrive ut Ra \n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 152, "id": "3aadba97", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Motstand Ra = 0.00 Ohm\n" ] } ], "source": [ "print()\n", "print(f\"Motstand Ra = {Ra:.2f} Ohm\") # Velg et passende antall desimaler!" ] }, { "cell_type": "markdown", "id": "ccd840bc", "metadata": {}, "source": [ "## Oppgaver 3.1.2 (før lab) og 3.2.2 (under lab)\n", "\n", "I cellen under finner dere to lister med spenninger $U$ og motstander $R$, som dere kommer til å måle under forsøket. Verdiene som er der nå er \"falske\".\n", "\n", "Man kan bruke disse verdiene for å lage en liste med verdier for strømmen $I$. Når dere har strømmen kan dere bestemme indre resistans $r$ og emf $\\epsilon$ ved hjelp av en linærtilpasning, slik dere gjorde i de to tidligere oppgavene. Mer om dette står forklart i labteksten.\n", "\n", "\"Lineær \n", "\n", "Ved å lage en linærtilpasning skal dere få en graf (gitt dere bruker samme dummy-verdier) som ligner den over, og bruke denne til å anslå verdier for emf, og indre motstand. " ] }, { "cell_type": "code", "execution_count": 153, "id": "42ecc757", "metadata": {}, "outputs": [], "source": [ "U3 = np.array([12, 21, 28, 36, 39]) # Volt\n", "R3 = np.array([1, 2, 3, 4, 5]) # Ohm" ] }, { "cell_type": "code", "execution_count": 154, "id": "f0581bd9", "metadata": {}, "outputs": [], "source": [ "I3 = np.array([]) # Strømmen I, som dere må finne. \n", "r = 0 # Indre motstand som dere må finne.\n", "emf = 0 # Emf i Peltier-element som dere må finne.\n", "\n", "# Skriv din kode her" ] }, { "cell_type": "code", "execution_count": 155, "id": "f8283241", "metadata": {}, "outputs": [], "source": [ "# Skriv ut resultatene for Emf og indre resistans. \n", "# Bruk et passende antall desimaler, og riktige enheter!" ] }, { "cell_type": "markdown", "id": "419b5670", "metadata": {}, "source": [ "Når dere kommer på lab, vil alt dere trenger å gjøre være å sette inn målt verdi for spenning $U$ over motstanden, samt notere ned størrelsen på motstanden $R$ som ble brukt direkte inn i notebooken og produsere resultater! " ] } ], "metadata": { "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.7" } }, "nbformat": 4, "nbformat_minor": 5 }