Drobne poprawki, autor, instrukcja itp.

This commit is contained in:
BartN 2021-02-18 12:21:15 +01:00
parent d9e804af21
commit 6332037f1a
2 changed files with 27 additions and 16 deletions

View File

@ -1936,14 +1936,14 @@
"language_info": { "language_info": {
"codemirror_mode": { "codemirror_mode": {
"name": "ipython", "name": "ipython",
"version": 3 "version": 2
}, },
"file_extension": ".py", "file_extension": ".py",
"mimetype": "text/x-python", "mimetype": "text/x-python",
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython2",
"version": "3.9.0" "version": "2.7.15"
}, },
"varInspector": { "varInspector": {
"cols": { "cols": {

View File

@ -4,13 +4,23 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"# Pola figur: całkowanie analityczne i metodą Monte Carlo\n", "# Przygotowanie innowacyjnych materiałów szkoleniowych i dokumentacji wewnętrznych w obszarze IT\n",
"\n",
"## 4. Jupyter - Pola figur: całkowanie analityczne i metodą Monte Carlo\n",
"### <i>Bartosz Naskręcki</i>\n",
"\n", "\n",
"W jaki sposób można obliczyć pole figury o zadanym kształcie, który jest trudny do analitycznego opisu?\n", "W jaki sposób można obliczyć pole figury o zadanym kształcie, który jest trudny do analitycznego opisu?\n",
"W tym pliku przedyskutujemy sposób obliczania pól figur oparty na metodach losowych z wykorzystaniem prostych spacerów losowych. Porównamy wyniki z obliczeniami analitycznymi na konkretnym przykładzie.\n", "W tym pliku przedyskutujemy sposób obliczania pól figur oparty na metodach losowych z wykorzystaniem prostych spacerów losowych. Porównamy wyniki z obliczeniami analitycznymi na konkretnym przykładzie.\n",
"\n", "\n",
"<div class=\"alert alert-block alert-info\"> \n", "<div class=\"alert alert-block alert-info\"> \n",
"Aby wzbogacić nasz repertuar matematyczny wykorzystamy w tym pliku funkcjonalność SageMath - obszernej biblioteki, która rozwija metody symboliczne Pythona. Do uruchomienia tego pliku będziesz potrzebować jądra \"SageMath\" w wersji co najmniej 8.9. Bez instalacji ten plik można rekompilować np. w przeglądarkowej wersji SageMath pod adresem cocalc.com.</div>" "Aby wzbogacić nasz repertuar matematyczny wykorzystamy w tym pliku funkcjonalność SageMath - obszernej biblioteki, która rozwija metody symboliczne Pythona. Do uruchomienia tego pliku będziesz potrzebować jądra \"SageMath\" w wersji co najmniej 8.9. Bez instalacji ten plik można rekompilować np. w przeglądarkowej wersji SageMath pod adresem cocalc.com.</div>\n",
"\n",
"\n",
"Metody instalacji SageMath:\n",
" * bezpośrednie pobranie paczki i instalacja ze strony sagemath.org\n",
" * uruchomienie SageMath w cocalc.com\n",
" * instalacja z linii komend (Linux): \n",
" `sudo apt install sagemath-common sagemath-jupyter`"
] ]
}, },
{ {
@ -41,7 +51,7 @@
], ],
"source": [ "source": [
"x,y=var('x,y')\n", "x,y=var('x,y')\n",
"implicit_plot((x**2+y**2)**2-2*(x**2-y**2),(x,-2,2),(y,-2,2),figsize=[5,5],ymax=1,ymin=-1,xmin=-2,xmax=2)" "show(implicit_plot((x**2+y**2)**2-2*(x**2-y**2),(x,-2,2),(y,-2,2),figsize=[5,5],ymax=1,ymin=-1,xmin=-2,xmax=2))"
] ]
}, },
{ {
@ -298,7 +308,7 @@
], ],
"source": [ "source": [
"#wykres licznika pochodnej\n", "#wykres licznika pochodnej\n",
"plot(licznik,(x,0,sqrt(2)),figsize=[3,3])" "show(plot(licznik,(x,0,sqrt(2)),figsize=[3,3]))"
] ]
}, },
{ {
@ -589,7 +599,7 @@
} }
], ],
"source": [ "source": [
"parametric_plot((sqrt(2*cos(2*t))*cos(t),sqrt(2*cos(2*t))*sin(t)),(t,0,pi/4) ,figsize=[3,3])" "show(parametric_plot((sqrt(2*cos(2*t))*cos(t),sqrt(2*cos(2*t))*sin(t)),(t,0,pi/4) ,figsize=[3,3]))"
] ]
}, },
{ {
@ -610,7 +620,7 @@
} }
], ],
"source": [ "source": [
"parametric_plot((-sqrt(2*cos(2*t))*cos(t),-sqrt(2*cos(2*t))*sin(t)),(t,-pi/4,pi/4),figsize=[3,3])" "show(parametric_plot((-sqrt(2*cos(2*t))*cos(t),-sqrt(2*cos(2*t))*sin(t)),(t,-pi/4,pi/4),figsize=[3,3]))"
] ]
}, },
{ {
@ -828,7 +838,7 @@
], ],
"source": [ "source": [
"r=random() #zmienna o rozkładzie jednostajnym i wartościac w przedziale [0,1]\n", "r=random() #zmienna o rozkładzie jednostajnym i wartościac w przedziale [0,1]\n",
"list_plot([random() for i in range(0,100)],figsize=[3,3])" "show(list_plot([random() for i in range(0,100)],figsize=[3,3]))"
] ]
}, },
{ {
@ -961,7 +971,7 @@
"teksty=text(\"(1/4,1/8)\",(1/4+0.4,1/8))+text(\"(0,1)\",(+0.2,1-0.1))\n", "teksty=text(\"(1/4,1/8)\",(1/4+0.4,1/8))+text(\"(0,1)\",(+0.2,1-0.1))\n",
"teksty+=text(\"Lemniskata $(x^2+y^2)^2=2(x^2-y^2)$\", (0.0,1.3), background_color=(1,1,0.8),fontsize=8)\n", "teksty+=text(\"Lemniskata $(x^2+y^2)^2=2(x^2-y^2)$\", (0.0,1.3), background_color=(1,1,0.8),fontsize=8)\n",
"\n", "\n",
"lem+pt+teksty" "show(lem+pt+teksty)"
] ]
}, },
{ {
@ -1005,7 +1015,7 @@
} }
], ],
"source": [ "source": [
"list_plot([PoleLemniskaty(1000*k) for k in range(1,10)],figsize=[3,3])" "show(list_plot([PoleLemniskaty(1000*k) for k in range(1,10)],figsize=[3,3]))"
] ]
}, },
{ {
@ -1284,7 +1294,8 @@
], ],
"source": [ "source": [
"#graf łańcucha Markowa\n", "#graf łańcucha Markowa\n",
"g = DiGraph({-1: [-1,0,1], 0: [-1,0,1],1: [-1,0,1]}); g" "g = DiGraph({-1: [-1,0,1], 0: [-1,0,1],1: [-1,0,1]}); \n",
"show(g)"
] ]
}, },
{ {
@ -1707,10 +1718,10 @@
], ],
"source": [ "source": [
"li=[CalkowanieMarkowa((randint(0,40),randint(0,40)),2000,40,S1,-sqrt(2).n(),2*sqrt(2).n(),-1/2,1)*1.0 for i in [1..100]] \n", "li=[CalkowanieMarkowa((randint(0,40),randint(0,40)),2000,40,S1,-sqrt(2).n(),2*sqrt(2).n(),-1/2,1)*1.0 for i in [1..100]] \n",
"print sum(li)/len(li) #wartość średnia po wielu iteracjach\n", "print(sum(li)/len(li)) #wartość średnia po wielu iteracjach\n",
"li.sort()\n", "li.sort()\n",
"print li[floor(len(li)/2)] #wartość środkowa (mediana)\n", "print(li[floor(len(li)/2)]) #wartość środkowa (mediana)\n",
"list_plot(li)" "show(list_plot(li))"
] ]
}, },
{ {