diff --git a/.buildinfo b/.buildinfo
new file mode 100644
index 00000000..5b426202
--- /dev/null
+++ b/.buildinfo
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: dcc52364a7347a6e40def564c63d0350
+tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/CNAME b/CNAME
new file mode 100644
index 00000000..8f20aa3c
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+progmod.no
diff --git a/README.html b/README.html
new file mode 100644
index 00000000..97c4c111
--- /dev/null
+++ b/README.html
@@ -0,0 +1,986 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/_images/0300c7be497769f7336f776c01af6c0a3ff2b673a27467437a684c675171cf72.png b/_images/0300c7be497769f7336f776c01af6c0a3ff2b673a27467437a684c675171cf72.png
new file mode 100644
index 00000000..68f78231
Binary files /dev/null and b/_images/0300c7be497769f7336f776c01af6c0a3ff2b673a27467437a684c675171cf72.png differ
diff --git a/_images/0491e1e92319233093fd5e7fead7066803010bfb0e80f9c11e344fbf8313ef50.png b/_images/0491e1e92319233093fd5e7fead7066803010bfb0e80f9c11e344fbf8313ef50.png
new file mode 100644
index 00000000..18ee2b28
Binary files /dev/null and b/_images/0491e1e92319233093fd5e7fead7066803010bfb0e80f9c11e344fbf8313ef50.png differ
diff --git a/_images/06f0f3a8df685a4acaa1272bdaaa2c21c8d96ddeb4900849eaec8a88afc192de.png b/_images/06f0f3a8df685a4acaa1272bdaaa2c21c8d96ddeb4900849eaec8a88afc192de.png
new file mode 100644
index 00000000..3283e69a
Binary files /dev/null and b/_images/06f0f3a8df685a4acaa1272bdaaa2c21c8d96ddeb4900849eaec8a88afc192de.png differ
diff --git a/_images/074d577fc0c2bdb7c44c14c82e16ae6172a4972bb34f3cd8ab67039e705ad80d.png b/_images/074d577fc0c2bdb7c44c14c82e16ae6172a4972bb34f3cd8ab67039e705ad80d.png
new file mode 100644
index 00000000..4a7e271b
Binary files /dev/null and b/_images/074d577fc0c2bdb7c44c14c82e16ae6172a4972bb34f3cd8ab67039e705ad80d.png differ
diff --git a/_images/078845904526f1de40ba5ca3a173afbfeae2df84a52c3326796de962e84cb472.png b/_images/078845904526f1de40ba5ca3a173afbfeae2df84a52c3326796de962e84cb472.png
new file mode 100644
index 00000000..e06bc262
Binary files /dev/null and b/_images/078845904526f1de40ba5ca3a173afbfeae2df84a52c3326796de962e84cb472.png differ
diff --git a/_images/09ebbf0cf8f149190963f7f5824d283c2a4ceca8c3a3d765865917474edfc3ae.png b/_images/09ebbf0cf8f149190963f7f5824d283c2a4ceca8c3a3d765865917474edfc3ae.png
new file mode 100644
index 00000000..6bb7f925
Binary files /dev/null and b/_images/09ebbf0cf8f149190963f7f5824d283c2a4ceca8c3a3d765865917474edfc3ae.png differ
diff --git a/_images/0b18793c2e6ef0df310504faf22e79e4802a18f1e4db262635eae7cc13f62451.png b/_images/0b18793c2e6ef0df310504faf22e79e4802a18f1e4db262635eae7cc13f62451.png
new file mode 100644
index 00000000..2458e208
Binary files /dev/null and b/_images/0b18793c2e6ef0df310504faf22e79e4802a18f1e4db262635eae7cc13f62451.png differ
diff --git a/_images/1590c82e77863b29825a8a9f763654cfee2db128a3aa9677643597e7dba73c6d.png b/_images/1590c82e77863b29825a8a9f763654cfee2db128a3aa9677643597e7dba73c6d.png
new file mode 100644
index 00000000..60867913
Binary files /dev/null and b/_images/1590c82e77863b29825a8a9f763654cfee2db128a3aa9677643597e7dba73c6d.png differ
diff --git a/_images/1ea2efb14933094823172c8e5321cb492583dcfdec0cf791340323982ed25a86.png b/_images/1ea2efb14933094823172c8e5321cb492583dcfdec0cf791340323982ed25a86.png
new file mode 100644
index 00000000..9fde01e0
Binary files /dev/null and b/_images/1ea2efb14933094823172c8e5321cb492583dcfdec0cf791340323982ed25a86.png differ
diff --git a/_images/2a73b83587bea8742ea1c05f1e3d7a2b9c70d8bb4d92cb95e023c08e3d06b6c6.png b/_images/2a73b83587bea8742ea1c05f1e3d7a2b9c70d8bb4d92cb95e023c08e3d06b6c6.png
new file mode 100644
index 00000000..89f816e4
Binary files /dev/null and b/_images/2a73b83587bea8742ea1c05f1e3d7a2b9c70d8bb4d92cb95e023c08e3d06b6c6.png differ
diff --git a/_images/2e05f5a750b2558a8fb8e9ac2fdfc2b004e5d2e32e7a7200406b566cf098c810.png b/_images/2e05f5a750b2558a8fb8e9ac2fdfc2b004e5d2e32e7a7200406b566cf098c810.png
new file mode 100644
index 00000000..33990569
Binary files /dev/null and b/_images/2e05f5a750b2558a8fb8e9ac2fdfc2b004e5d2e32e7a7200406b566cf098c810.png differ
diff --git a/_images/2e71d882b6a2fd246fbecf8ffdbbe14c91ef236491184f8387ed59eaeefb1e4a.png b/_images/2e71d882b6a2fd246fbecf8ffdbbe14c91ef236491184f8387ed59eaeefb1e4a.png
new file mode 100644
index 00000000..6a13284c
Binary files /dev/null and b/_images/2e71d882b6a2fd246fbecf8ffdbbe14c91ef236491184f8387ed59eaeefb1e4a.png differ
diff --git a/_images/2e90d7dcb2f3b6bdc7797db2bd4180cfd3989b629b045b4274528796c1bd0f34.png b/_images/2e90d7dcb2f3b6bdc7797db2bd4180cfd3989b629b045b4274528796c1bd0f34.png
new file mode 100644
index 00000000..8d8cad1c
Binary files /dev/null and b/_images/2e90d7dcb2f3b6bdc7797db2bd4180cfd3989b629b045b4274528796c1bd0f34.png differ
diff --git a/_images/2f20ca85b4643f939e041a1d85e57cc0aff02bddcd62409e117ea3d553bd1451.png b/_images/2f20ca85b4643f939e041a1d85e57cc0aff02bddcd62409e117ea3d553bd1451.png
new file mode 100644
index 00000000..b1c61201
Binary files /dev/null and b/_images/2f20ca85b4643f939e041a1d85e57cc0aff02bddcd62409e117ea3d553bd1451.png differ
diff --git a/_images/3117535104d683b7a607ce112e5ba9fe9a870830b64b39d5002384960ce99401.png b/_images/3117535104d683b7a607ce112e5ba9fe9a870830b64b39d5002384960ce99401.png
new file mode 100644
index 00000000..1528514b
Binary files /dev/null and b/_images/3117535104d683b7a607ce112e5ba9fe9a870830b64b39d5002384960ce99401.png differ
diff --git a/_images/31b54c42d6c2d606e6d17953220ba53c2deb59a11a5ab7b462cd15d9ddeba990.png b/_images/31b54c42d6c2d606e6d17953220ba53c2deb59a11a5ab7b462cd15d9ddeba990.png
new file mode 100644
index 00000000..388e87b5
Binary files /dev/null and b/_images/31b54c42d6c2d606e6d17953220ba53c2deb59a11a5ab7b462cd15d9ddeba990.png differ
diff --git a/_images/33b384dd47c247be7b66b45b566ae5db1a30328e352f4eb057a7643b84d25224.png b/_images/33b384dd47c247be7b66b45b566ae5db1a30328e352f4eb057a7643b84d25224.png
new file mode 100644
index 00000000..67a7d5a1
Binary files /dev/null and b/_images/33b384dd47c247be7b66b45b566ae5db1a30328e352f4eb057a7643b84d25224.png differ
diff --git a/_images/38b515ea3daf8aa65345953ca4c9e1f175577fe0167013cce7e863b47016382c.png b/_images/38b515ea3daf8aa65345953ca4c9e1f175577fe0167013cce7e863b47016382c.png
new file mode 100644
index 00000000..4cbeb41f
Binary files /dev/null and b/_images/38b515ea3daf8aa65345953ca4c9e1f175577fe0167013cce7e863b47016382c.png differ
diff --git a/_images/39262e8437160fc0fa4e41b0e69a987e656a9e9c5a941c22c4744177ab496591.png b/_images/39262e8437160fc0fa4e41b0e69a987e656a9e9c5a941c22c4744177ab496591.png
new file mode 100644
index 00000000..601b04b9
Binary files /dev/null and b/_images/39262e8437160fc0fa4e41b0e69a987e656a9e9c5a941c22c4744177ab496591.png differ
diff --git a/_images/3960a309d73a241d2315cf289a1ff61fce34d8adc41b3b62b015176d668cad9f.png b/_images/3960a309d73a241d2315cf289a1ff61fce34d8adc41b3b62b015176d668cad9f.png
new file mode 100644
index 00000000..b04d474a
Binary files /dev/null and b/_images/3960a309d73a241d2315cf289a1ff61fce34d8adc41b3b62b015176d668cad9f.png differ
diff --git a/_images/3a989f5d740b082f18625ed4d7e8426c87c004fc5943d6a88f599e931cff1bed.png b/_images/3a989f5d740b082f18625ed4d7e8426c87c004fc5943d6a88f599e931cff1bed.png
new file mode 100644
index 00000000..ed146c24
Binary files /dev/null and b/_images/3a989f5d740b082f18625ed4d7e8426c87c004fc5943d6a88f599e931cff1bed.png differ
diff --git a/_images/3d21dfafc76d930af24b8faf02ad81e560a8daf269c958d8e9aaaeb23693e751.png b/_images/3d21dfafc76d930af24b8faf02ad81e560a8daf269c958d8e9aaaeb23693e751.png
new file mode 100644
index 00000000..51da276d
Binary files /dev/null and b/_images/3d21dfafc76d930af24b8faf02ad81e560a8daf269c958d8e9aaaeb23693e751.png differ
diff --git a/_images/3f36174fe5766039b2e491b78bec06ee11ba7a5f79f07819526a61e80248ce3d.png b/_images/3f36174fe5766039b2e491b78bec06ee11ba7a5f79f07819526a61e80248ce3d.png
new file mode 100644
index 00000000..7c817caa
Binary files /dev/null and b/_images/3f36174fe5766039b2e491b78bec06ee11ba7a5f79f07819526a61e80248ce3d.png differ
diff --git a/_images/41091e2dd231f45077349bb1031fd1c0bddbc26b068912b73aa3a808c5d33560.png b/_images/41091e2dd231f45077349bb1031fd1c0bddbc26b068912b73aa3a808c5d33560.png
new file mode 100644
index 00000000..a8e3e786
Binary files /dev/null and b/_images/41091e2dd231f45077349bb1031fd1c0bddbc26b068912b73aa3a808c5d33560.png differ
diff --git a/_images/43367e1b17db03e1ebd10b514bcf75e643ca58391dd8042f470d8d3ac8953b4f.png b/_images/43367e1b17db03e1ebd10b514bcf75e643ca58391dd8042f470d8d3ac8953b4f.png
new file mode 100644
index 00000000..07931edf
Binary files /dev/null and b/_images/43367e1b17db03e1ebd10b514bcf75e643ca58391dd8042f470d8d3ac8953b4f.png differ
diff --git a/_images/43ebfd6b7b35a3e45cc6585150e9044e5e174e7e5d327281e3d6a391075cb09a.png b/_images/43ebfd6b7b35a3e45cc6585150e9044e5e174e7e5d327281e3d6a391075cb09a.png
new file mode 100644
index 00000000..93c8a3eb
Binary files /dev/null and b/_images/43ebfd6b7b35a3e45cc6585150e9044e5e174e7e5d327281e3d6a391075cb09a.png differ
diff --git a/_images/4bc2936e1f67fec6321b2aa0b8ce2af13b91ed7ec6192b2b9575c359a17f6fe4.png b/_images/4bc2936e1f67fec6321b2aa0b8ce2af13b91ed7ec6192b2b9575c359a17f6fe4.png
new file mode 100644
index 00000000..1e611c7a
Binary files /dev/null and b/_images/4bc2936e1f67fec6321b2aa0b8ce2af13b91ed7ec6192b2b9575c359a17f6fe4.png differ
diff --git a/_images/4cddcc924adf7607a6e4575ebf441aa866de96aee8a77c526c7565f5abca90c6.png b/_images/4cddcc924adf7607a6e4575ebf441aa866de96aee8a77c526c7565f5abca90c6.png
new file mode 100644
index 00000000..2ae43344
Binary files /dev/null and b/_images/4cddcc924adf7607a6e4575ebf441aa866de96aee8a77c526c7565f5abca90c6.png differ
diff --git a/_images/5474ca83bc2ccfa6657b098b103299c24bc69e9aaf03f3532fc117543d207bc5.png b/_images/5474ca83bc2ccfa6657b098b103299c24bc69e9aaf03f3532fc117543d207bc5.png
new file mode 100644
index 00000000..62db98e9
Binary files /dev/null and b/_images/5474ca83bc2ccfa6657b098b103299c24bc69e9aaf03f3532fc117543d207bc5.png differ
diff --git a/_images/5995f8b95f2e3c78c19d9baf45fd1288610eeab223f1849943f59a5c2053658d.png b/_images/5995f8b95f2e3c78c19d9baf45fd1288610eeab223f1849943f59a5c2053658d.png
new file mode 100644
index 00000000..dda8abe9
Binary files /dev/null and b/_images/5995f8b95f2e3c78c19d9baf45fd1288610eeab223f1849943f59a5c2053658d.png differ
diff --git a/_images/59c5f36ba4130d5a34d72cc6d9d6ae0c56e5e22b75662dc5179558b55b164510.png b/_images/59c5f36ba4130d5a34d72cc6d9d6ae0c56e5e22b75662dc5179558b55b164510.png
new file mode 100644
index 00000000..daa8086d
Binary files /dev/null and b/_images/59c5f36ba4130d5a34d72cc6d9d6ae0c56e5e22b75662dc5179558b55b164510.png differ
diff --git a/_images/5dc317a401e1ee4bbd97933eb575f2bffcefb5685caded7c9d32a8ee12c4ee5f.png b/_images/5dc317a401e1ee4bbd97933eb575f2bffcefb5685caded7c9d32a8ee12c4ee5f.png
new file mode 100644
index 00000000..5b85e6e2
Binary files /dev/null and b/_images/5dc317a401e1ee4bbd97933eb575f2bffcefb5685caded7c9d32a8ee12c4ee5f.png differ
diff --git a/_images/62f4853de0edbd86df6c69e73df8883983a22321ddcf604155b31f3342209328.png b/_images/62f4853de0edbd86df6c69e73df8883983a22321ddcf604155b31f3342209328.png
new file mode 100644
index 00000000..dc62ac9b
Binary files /dev/null and b/_images/62f4853de0edbd86df6c69e73df8883983a22321ddcf604155b31f3342209328.png differ
diff --git a/_images/695988a6d8dcb461f5535c63df103f5b0b4bec26e1c47da232dc7a779f2b5a8c.png b/_images/695988a6d8dcb461f5535c63df103f5b0b4bec26e1c47da232dc7a779f2b5a8c.png
new file mode 100644
index 00000000..4b597df9
Binary files /dev/null and b/_images/695988a6d8dcb461f5535c63df103f5b0b4bec26e1c47da232dc7a779f2b5a8c.png differ
diff --git a/_images/6be7161bdb4b177ba71d003377b9d071a898e2a1b2254b190fbe7074774bf853.png b/_images/6be7161bdb4b177ba71d003377b9d071a898e2a1b2254b190fbe7074774bf853.png
new file mode 100644
index 00000000..a7fe75b6
Binary files /dev/null and b/_images/6be7161bdb4b177ba71d003377b9d071a898e2a1b2254b190fbe7074774bf853.png differ
diff --git a/_images/715dda1e7c2832668a6f076b7321f9573077ff2411fde3e678bfe3e86c9c0654.png b/_images/715dda1e7c2832668a6f076b7321f9573077ff2411fde3e678bfe3e86c9c0654.png
new file mode 100644
index 00000000..972f790c
Binary files /dev/null and b/_images/715dda1e7c2832668a6f076b7321f9573077ff2411fde3e678bfe3e86c9c0654.png differ
diff --git a/_images/7431ca11e2ec6477c4eb68b1a605551cb75831c8a5a3080b22afc10396d067b6.png b/_images/7431ca11e2ec6477c4eb68b1a605551cb75831c8a5a3080b22afc10396d067b6.png
new file mode 100644
index 00000000..73b67a70
Binary files /dev/null and b/_images/7431ca11e2ec6477c4eb68b1a605551cb75831c8a5a3080b22afc10396d067b6.png differ
diff --git a/_images/78b50b1f112a30b4fa4d21c99314dfb7dc1d1646f1ffa4e6277ecbfe008d15cd.png b/_images/78b50b1f112a30b4fa4d21c99314dfb7dc1d1646f1ffa4e6277ecbfe008d15cd.png
new file mode 100644
index 00000000..ebf5f235
Binary files /dev/null and b/_images/78b50b1f112a30b4fa4d21c99314dfb7dc1d1646f1ffa4e6277ecbfe008d15cd.png differ
diff --git a/_images/8060312ef77d987b8d12addf21cb5591a69ba4f4439dcd4598a83d487a8cddc1.png b/_images/8060312ef77d987b8d12addf21cb5591a69ba4f4439dcd4598a83d487a8cddc1.png
new file mode 100644
index 00000000..3317968b
Binary files /dev/null and b/_images/8060312ef77d987b8d12addf21cb5591a69ba4f4439dcd4598a83d487a8cddc1.png differ
diff --git a/_images/820328cb6d0b14cdab80081959d8119e44f4fcabe714059fb804c0a67ffdfcdd.png b/_images/820328cb6d0b14cdab80081959d8119e44f4fcabe714059fb804c0a67ffdfcdd.png
new file mode 100644
index 00000000..cc52ae5d
Binary files /dev/null and b/_images/820328cb6d0b14cdab80081959d8119e44f4fcabe714059fb804c0a67ffdfcdd.png differ
diff --git a/_images/822bb093ce5d8e8331f4d28f1b58fe00d16582985b3d4e9145c1457e3b55d4d6.png b/_images/822bb093ce5d8e8331f4d28f1b58fe00d16582985b3d4e9145c1457e3b55d4d6.png
new file mode 100644
index 00000000..cd2b0418
Binary files /dev/null and b/_images/822bb093ce5d8e8331f4d28f1b58fe00d16582985b3d4e9145c1457e3b55d4d6.png differ
diff --git a/_images/824e9c3dcccad88610852dd4b1acbe552b27c553b42c860c74decac03355e1b3.png b/_images/824e9c3dcccad88610852dd4b1acbe552b27c553b42c860c74decac03355e1b3.png
new file mode 100644
index 00000000..27ed40cd
Binary files /dev/null and b/_images/824e9c3dcccad88610852dd4b1acbe552b27c553b42c860c74decac03355e1b3.png differ
diff --git a/_images/82b0112ac0d65af2c6f948ee1cb8bcf960abb3ceaa33fba5b7b19d2774da4ade.png b/_images/82b0112ac0d65af2c6f948ee1cb8bcf960abb3ceaa33fba5b7b19d2774da4ade.png
new file mode 100644
index 00000000..24b2e517
Binary files /dev/null and b/_images/82b0112ac0d65af2c6f948ee1cb8bcf960abb3ceaa33fba5b7b19d2774da4ade.png differ
diff --git a/_images/843d69fc2513037a3611755a5b75865a4fb482aa711fb5ad47f89b738471bc4c.png b/_images/843d69fc2513037a3611755a5b75865a4fb482aa711fb5ad47f89b738471bc4c.png
new file mode 100644
index 00000000..8b3ea57a
Binary files /dev/null and b/_images/843d69fc2513037a3611755a5b75865a4fb482aa711fb5ad47f89b738471bc4c.png differ
diff --git a/_images/86fd817870de92f0d86ea7ed39de9cc27c811f84cb216cb1d02a095d0603fed0.png b/_images/86fd817870de92f0d86ea7ed39de9cc27c811f84cb216cb1d02a095d0603fed0.png
new file mode 100644
index 00000000..7b3bf551
Binary files /dev/null and b/_images/86fd817870de92f0d86ea7ed39de9cc27c811f84cb216cb1d02a095d0603fed0.png differ
diff --git a/_images/8739d12f7dfac7822aa1b905b4894e700c88e474cd3ad3c18606a79946c6ca52.png b/_images/8739d12f7dfac7822aa1b905b4894e700c88e474cd3ad3c18606a79946c6ca52.png
new file mode 100644
index 00000000..a59893d6
Binary files /dev/null and b/_images/8739d12f7dfac7822aa1b905b4894e700c88e474cd3ad3c18606a79946c6ca52.png differ
diff --git a/_images/88848d68293aa485b3a27ac28a910611e3af7ad1f87635fde74e2631d6c9ba58.png b/_images/88848d68293aa485b3a27ac28a910611e3af7ad1f87635fde74e2631d6c9ba58.png
new file mode 100644
index 00000000..b263a9eb
Binary files /dev/null and b/_images/88848d68293aa485b3a27ac28a910611e3af7ad1f87635fde74e2631d6c9ba58.png differ
diff --git a/_images/8b1b8865688b47115714cb053a0d92205a9a49961ad4b9fd9ab2a95e59982a98.png b/_images/8b1b8865688b47115714cb053a0d92205a9a49961ad4b9fd9ab2a95e59982a98.png
new file mode 100644
index 00000000..413f030b
Binary files /dev/null and b/_images/8b1b8865688b47115714cb053a0d92205a9a49961ad4b9fd9ab2a95e59982a98.png differ
diff --git a/_images/8b8100aaa88d3519be2e0043360c4f3c0b35bdf7079122831a6d3e8cfd6cd7b0.png b/_images/8b8100aaa88d3519be2e0043360c4f3c0b35bdf7079122831a6d3e8cfd6cd7b0.png
new file mode 100644
index 00000000..22d201f6
Binary files /dev/null and b/_images/8b8100aaa88d3519be2e0043360c4f3c0b35bdf7079122831a6d3e8cfd6cd7b0.png differ
diff --git a/_images/8db497e1e4e19f6dc7688345fba54b8eab8346696a6be78c4be28838eb9c6d1e.png b/_images/8db497e1e4e19f6dc7688345fba54b8eab8346696a6be78c4be28838eb9c6d1e.png
new file mode 100644
index 00000000..e719b4b4
Binary files /dev/null and b/_images/8db497e1e4e19f6dc7688345fba54b8eab8346696a6be78c4be28838eb9c6d1e.png differ
diff --git a/_images/90689173cfb73ca2d496af6d98329d29d44f823c984a1cb677c21307cd67c0f7.png b/_images/90689173cfb73ca2d496af6d98329d29d44f823c984a1cb677c21307cd67c0f7.png
new file mode 100644
index 00000000..c1480f04
Binary files /dev/null and b/_images/90689173cfb73ca2d496af6d98329d29d44f823c984a1cb677c21307cd67c0f7.png differ
diff --git a/_images/92bc01781c6dfc740ed85bca74bc8468d8b764236980f6965d96cf4294a51a29.png b/_images/92bc01781c6dfc740ed85bca74bc8468d8b764236980f6965d96cf4294a51a29.png
new file mode 100644
index 00000000..56c18e8a
Binary files /dev/null and b/_images/92bc01781c6dfc740ed85bca74bc8468d8b764236980f6965d96cf4294a51a29.png differ
diff --git a/_images/9a89d6854899bad4609317cd061cc30f0846cb7450a8cb666be32d6af241a7d9.png b/_images/9a89d6854899bad4609317cd061cc30f0846cb7450a8cb666be32d6af241a7d9.png
new file mode 100644
index 00000000..d45d3f0f
Binary files /dev/null and b/_images/9a89d6854899bad4609317cd061cc30f0846cb7450a8cb666be32d6af241a7d9.png differ
diff --git a/_images/a12332cec3e85cdf9fe42fc691faaceb7fb27f45a78e17a56a08d1cebe5f0f38.png b/_images/a12332cec3e85cdf9fe42fc691faaceb7fb27f45a78e17a56a08d1cebe5f0f38.png
new file mode 100644
index 00000000..8d1584c3
Binary files /dev/null and b/_images/a12332cec3e85cdf9fe42fc691faaceb7fb27f45a78e17a56a08d1cebe5f0f38.png differ
diff --git a/_images/aa41fff3f835f7cf1dd52cea254b0b821e3bfa8892eff69382ca3e0d390f3349.png b/_images/aa41fff3f835f7cf1dd52cea254b0b821e3bfa8892eff69382ca3e0d390f3349.png
new file mode 100644
index 00000000..1ca18047
Binary files /dev/null and b/_images/aa41fff3f835f7cf1dd52cea254b0b821e3bfa8892eff69382ca3e0d390f3349.png differ
diff --git a/_images/acd99d6305c2c5b0405dd546bdeff24f5c1058b7dc0f8fdd6790beef60f0142d.png b/_images/acd99d6305c2c5b0405dd546bdeff24f5c1058b7dc0f8fdd6790beef60f0142d.png
new file mode 100644
index 00000000..d5c7cfea
Binary files /dev/null and b/_images/acd99d6305c2c5b0405dd546bdeff24f5c1058b7dc0f8fdd6790beef60f0142d.png differ
diff --git a/_images/b171b2e3b415000d9bc1676033c21f3bae12d14889b78426d7d5ebd0a4b8e62b.png b/_images/b171b2e3b415000d9bc1676033c21f3bae12d14889b78426d7d5ebd0a4b8e62b.png
new file mode 100644
index 00000000..d0dccf5d
Binary files /dev/null and b/_images/b171b2e3b415000d9bc1676033c21f3bae12d14889b78426d7d5ebd0a4b8e62b.png differ
diff --git a/_images/b624a85440b2f8f8b896392111317ab2b4f394a2ebc93fa8483e6dc56d70354a.png b/_images/b624a85440b2f8f8b896392111317ab2b4f394a2ebc93fa8483e6dc56d70354a.png
new file mode 100644
index 00000000..7766eac6
Binary files /dev/null and b/_images/b624a85440b2f8f8b896392111317ab2b4f394a2ebc93fa8483e6dc56d70354a.png differ
diff --git a/_images/b694b5603e6688126896a8a7f524f61588c3847cfd9a0e085207d59c4ff919ac.png b/_images/b694b5603e6688126896a8a7f524f61588c3847cfd9a0e085207d59c4ff919ac.png
new file mode 100644
index 00000000..1723832d
Binary files /dev/null and b/_images/b694b5603e6688126896a8a7f524f61588c3847cfd9a0e085207d59c4ff919ac.png differ
diff --git a/_images/b8fca37aab4876351bc90beb83c2c19158aa00b445878da5d8224c668cf7b17b.png b/_images/b8fca37aab4876351bc90beb83c2c19158aa00b445878da5d8224c668cf7b17b.png
new file mode 100644
index 00000000..6640dcd4
Binary files /dev/null and b/_images/b8fca37aab4876351bc90beb83c2c19158aa00b445878da5d8224c668cf7b17b.png differ
diff --git a/_images/baf5300739aa4908dba227644c2772a8eaca7f8e113f3bb4f3adb7f0652e92e1.png b/_images/baf5300739aa4908dba227644c2772a8eaca7f8e113f3bb4f3adb7f0652e92e1.png
new file mode 100644
index 00000000..13bbbfc3
Binary files /dev/null and b/_images/baf5300739aa4908dba227644c2772a8eaca7f8e113f3bb4f3adb7f0652e92e1.png differ
diff --git a/_images/bd62d9b7a0632af407cc578af2075fb922a4e8f14f3d062eefa34d2cb05f134f.png b/_images/bd62d9b7a0632af407cc578af2075fb922a4e8f14f3d062eefa34d2cb05f134f.png
new file mode 100644
index 00000000..8e61c790
Binary files /dev/null and b/_images/bd62d9b7a0632af407cc578af2075fb922a4e8f14f3d062eefa34d2cb05f134f.png differ
diff --git a/_images/be108ea126bfce2da9dee46addb8cfb87f4d0eb8a5034ba4407033863206881d.png b/_images/be108ea126bfce2da9dee46addb8cfb87f4d0eb8a5034ba4407033863206881d.png
new file mode 100644
index 00000000..35c3e2fa
Binary files /dev/null and b/_images/be108ea126bfce2da9dee46addb8cfb87f4d0eb8a5034ba4407033863206881d.png differ
diff --git a/_images/c0fd31cd9fa96b67edbd0c7fdde10735257e8fdb6d356b687c205c7e310272e5.png b/_images/c0fd31cd9fa96b67edbd0c7fdde10735257e8fdb6d356b687c205c7e310272e5.png
new file mode 100644
index 00000000..50ee979e
Binary files /dev/null and b/_images/c0fd31cd9fa96b67edbd0c7fdde10735257e8fdb6d356b687c205c7e310272e5.png differ
diff --git a/_images/c9bfc9beb463a18026d32d86a2b0228a1f77c50924b74e339e89e13fdf191e63.png b/_images/c9bfc9beb463a18026d32d86a2b0228a1f77c50924b74e339e89e13fdf191e63.png
new file mode 100644
index 00000000..812b0e3e
Binary files /dev/null and b/_images/c9bfc9beb463a18026d32d86a2b0228a1f77c50924b74e339e89e13fdf191e63.png differ
diff --git a/_images/daf942dd43adcf70ff832d44f3a1db5b4b7da5be1cdc3eb604efda45203db813.png b/_images/daf942dd43adcf70ff832d44f3a1db5b4b7da5be1cdc3eb604efda45203db813.png
new file mode 100644
index 00000000..fd416144
Binary files /dev/null and b/_images/daf942dd43adcf70ff832d44f3a1db5b4b7da5be1cdc3eb604efda45203db813.png differ
diff --git a/_images/e11c4f093345676678ed535b99d25e2358b6116c11b67e4e29faa82ad339bab2.png b/_images/e11c4f093345676678ed535b99d25e2358b6116c11b67e4e29faa82ad339bab2.png
new file mode 100644
index 00000000..077e9e5d
Binary files /dev/null and b/_images/e11c4f093345676678ed535b99d25e2358b6116c11b67e4e29faa82ad339bab2.png differ
diff --git a/_images/e41f560e6efb11cecf94f7d9b80cf2fc3fe96085c27ce725460717be44708d9c.png b/_images/e41f560e6efb11cecf94f7d9b80cf2fc3fe96085c27ce725460717be44708d9c.png
new file mode 100644
index 00000000..c161defc
Binary files /dev/null and b/_images/e41f560e6efb11cecf94f7d9b80cf2fc3fe96085c27ce725460717be44708d9c.png differ
diff --git a/_images/e8ce4b1fd36c66752db69954058bfedc5712f4287e89d52a14f04caa5f46229e.png b/_images/e8ce4b1fd36c66752db69954058bfedc5712f4287e89d52a14f04caa5f46229e.png
new file mode 100644
index 00000000..f8ad2f8f
Binary files /dev/null and b/_images/e8ce4b1fd36c66752db69954058bfedc5712f4287e89d52a14f04caa5f46229e.png differ
diff --git a/_images/eb2c0c50232e8ee10c858a18b10488cab9656db52b44aec919f64f19baf99000.png b/_images/eb2c0c50232e8ee10c858a18b10488cab9656db52b44aec919f64f19baf99000.png
new file mode 100644
index 00000000..4ed86a6c
Binary files /dev/null and b/_images/eb2c0c50232e8ee10c858a18b10488cab9656db52b44aec919f64f19baf99000.png differ
diff --git a/_images/eb4b7cdef67ea97baa3824f25528788261cdd5a727b7f8966584447e00741370.png b/_images/eb4b7cdef67ea97baa3824f25528788261cdd5a727b7f8966584447e00741370.png
new file mode 100644
index 00000000..fd72e092
Binary files /dev/null and b/_images/eb4b7cdef67ea97baa3824f25528788261cdd5a727b7f8966584447e00741370.png differ
diff --git a/_images/ef7404d0a9ed2237e6c77dbea281f29f3a887643ac42bd9dc92e149d10541404.png b/_images/ef7404d0a9ed2237e6c77dbea281f29f3a887643ac42bd9dc92e149d10541404.png
new file mode 100644
index 00000000..aaa6b358
Binary files /dev/null and b/_images/ef7404d0a9ed2237e6c77dbea281f29f3a887643ac42bd9dc92e149d10541404.png differ
diff --git a/_images/f0681d9c20edcb52108fad9f41b80e29e9a8e8f6246bbea8ef9b96bbbef76c5e.png b/_images/f0681d9c20edcb52108fad9f41b80e29e9a8e8f6246bbea8ef9b96bbbef76c5e.png
new file mode 100644
index 00000000..5682fa7e
Binary files /dev/null and b/_images/f0681d9c20edcb52108fad9f41b80e29e9a8e8f6246bbea8ef9b96bbbef76c5e.png differ
diff --git a/_images/f4d0b4cefb2578b8a4ba3ef088ea4fe1d7cc35fe39694eded5c8d2074da491d2.png b/_images/f4d0b4cefb2578b8a4ba3ef088ea4fe1d7cc35fe39694eded5c8d2074da491d2.png
new file mode 100644
index 00000000..bea43428
Binary files /dev/null and b/_images/f4d0b4cefb2578b8a4ba3ef088ea4fe1d7cc35fe39694eded5c8d2074da491d2.png differ
diff --git a/_images/f5122c9722337dcdd40e9f3b8e0a6635c872a67a3f1403d11bdc77d8969b95ce.png b/_images/f5122c9722337dcdd40e9f3b8e0a6635c872a67a3f1403d11bdc77d8969b95ce.png
new file mode 100644
index 00000000..ac463537
Binary files /dev/null and b/_images/f5122c9722337dcdd40e9f3b8e0a6635c872a67a3f1403d11bdc77d8969b95ce.png differ
diff --git a/_images/f7a914ae99ec21e1ecfaaab5760b6d022bec945e9995f9400897eccb00ba325b.png b/_images/f7a914ae99ec21e1ecfaaab5760b6d022bec945e9995f9400897eccb00ba325b.png
new file mode 100644
index 00000000..3a5fff77
Binary files /dev/null and b/_images/f7a914ae99ec21e1ecfaaab5760b6d022bec945e9995f9400897eccb00ba325b.png differ
diff --git a/_images/f7ae9087d4c5f7ff9669ecab3b3911c567d502661327ecc93ee410d32276c608.png b/_images/f7ae9087d4c5f7ff9669ecab3b3911c567d502661327ecc93ee410d32276c608.png
new file mode 100644
index 00000000..a09980a7
Binary files /dev/null and b/_images/f7ae9087d4c5f7ff9669ecab3b3911c567d502661327ecc93ee410d32276c608.png differ
diff --git a/_images/f8b63aa0b98a0f8831ac3c7ca0f31882a45cdbef61c518a7bf4c6cc8524a32ee.png b/_images/f8b63aa0b98a0f8831ac3c7ca0f31882a45cdbef61c518a7bf4c6cc8524a32ee.png
new file mode 100644
index 00000000..2431de17
Binary files /dev/null and b/_images/f8b63aa0b98a0f8831ac3c7ca0f31882a45cdbef61c518a7bf4c6cc8524a32ee.png differ
diff --git a/_images/fa1f5774a5a1badb497922da7b485ff31172d95d88a144988128c1ea08e776ac.png b/_images/fa1f5774a5a1badb497922da7b485ff31172d95d88a144988128c1ea08e776ac.png
new file mode 100644
index 00000000..89ddb2e7
Binary files /dev/null and b/_images/fa1f5774a5a1badb497922da7b485ff31172d95d88a144988128c1ea08e776ac.png differ
diff --git a/_images/fbe207c3f3e4f1b4c6d912bfc31b2e68287c362f14141cac4191864d23cb4348.png b/_images/fbe207c3f3e4f1b4c6d912bfc31b2e68287c362f14141cac4191864d23cb4348.png
new file mode 100644
index 00000000..b5892088
Binary files /dev/null and b/_images/fbe207c3f3e4f1b4c6d912bfc31b2e68287c362f14141cac4191864d23cb4348.png differ
diff --git a/_images/fe39371f27b679b763b859d1f891937e2ffe068571387bed4d6e106b1033c51d.png b/_images/fe39371f27b679b763b859d1f891937e2ffe068571387bed4d6e106b1033c51d.png
new file mode 100644
index 00000000..0ba884a8
Binary files /dev/null and b/_images/fe39371f27b679b763b859d1f891937e2ffe068571387bed4d6e106b1033c51d.png differ
diff --git a/_images/ff55ac88edb7cdb8136afef88dd945ed6affa18859770710fb83734b2688362b.png b/_images/ff55ac88edb7cdb8136afef88dd945ed6affa18859770710fb83734b2688362b.png
new file mode 100644
index 00000000..ebfebe98
Binary files /dev/null and b/_images/ff55ac88edb7cdb8136afef88dd945ed6affa18859770710fb83734b2688362b.png differ
diff --git a/_images/graf1.png b/_images/graf1.png
new file mode 100644
index 00000000..9c807137
Binary files /dev/null and b/_images/graf1.png differ
diff --git a/_images/pingvindata.png b/_images/pingvindata.png
new file mode 100644
index 00000000..95d2467c
Binary files /dev/null and b/_images/pingvindata.png differ
diff --git a/_images/pingviner.png b/_images/pingviner.png
new file mode 100644
index 00000000..736ae89b
Binary files /dev/null and b/_images/pingviner.png differ
diff --git a/_sources/README.md b/_sources/README.md
new file mode 100644
index 00000000..e2f21ec9
--- /dev/null
+++ b/_sources/README.md
@@ -0,0 +1 @@
+# ProMod
diff --git a/_sources/datafiler.ipynb b/_sources/datafiler.ipynb
new file mode 100644
index 00000000..1f105c2b
--- /dev/null
+++ b/_sources/datafiler.ipynb
@@ -0,0 +1,50 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datafiler\n",
+ "\n",
+ "[titreringsdata.txt](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h21/datafiler/titreringsdata.txt?vrtx=source)\n",
+ "\n",
+ "[alder_kjonn.txt](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/alder_kjonn.txt)\n",
+ "\n",
+ "[antall-meldte-covid-19.txt](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/antall-meldte-covid-19.txt)\n",
+ "\n",
+ "[D5_naringskjede_organisme.txt](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/d5_naringskjede_organisme.txt)\n",
+ "\n",
+ "[D5_naringskjede_trofisk.txt](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/d5_naringskjede_trofisk.txt)\n",
+ "\n",
+ "[vin.csv](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/vin.csv)\n",
+ "\n",
+ "[iris.csv](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/iris.csv)\n",
+ "\n",
+ "[cars.txt](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/mtcars.txt)\n",
+ "\n",
+ "[pingviner.txt](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h21/datafiler/penguings.txt)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/datafiler.ipynb b/_sources/docs/datafiler.ipynb
new file mode 100644
index 00000000..04114b64
--- /dev/null
+++ b/_sources/docs/datafiler.ipynb
@@ -0,0 +1,58 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datafiler\n",
+ "\n",
+ "[solflekker.txt](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/Datafiler/solflekker.txt)\n",
+ "\n",
+ "[temperatur.txt](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/Datafiler/temperatur.txt)\n",
+ "\n",
+ "[heistur.txt](https://raw.githubusercontent.com/andreasdh/programmering-i-kjemi/master/docs/datafiler/heistur_kjemi_fysikk.txt)\n",
+ "\n",
+ "[titrering.txt](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/titrering.txt)\n",
+ "\n",
+ "[vin.csv](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/vin.csv)\n",
+ "\n",
+ "[influensa.txt](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/influensa.txt)\n",
+ "\n",
+ "[covid19.csv](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/covid19.csv)\n",
+ "\n",
+ "[posisjon.txt](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/posisjon.txt)\n",
+ "\n",
+ "[vin.csv](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/vin.csv)\n",
+ "\n",
+ "[iris.csv](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/iris.csv)\n",
+ "\n",
+ "[cars.txt](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/mtcars.txt)\n",
+ "\n",
+ "[pingviner.txt](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h21/datafiler/penguings.txt)\n",
+ "\n",
+ "[titanic.csv](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/Datafiler/titanic.csv)"
+ ]
+ }
+ ],
+ "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": 4
+}
diff --git a/_sources/docs/ekstra/Prosjekt i databehandling.ipynb b/_sources/docs/ekstra/Prosjekt i databehandling.ipynb
new file mode 100644
index 00000000..d9bc5aff
--- /dev/null
+++ b/_sources/docs/ekstra/Prosjekt i databehandling.ipynb
@@ -0,0 +1,189 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Prosjekt i databehandling\n",
+ "\n",
+ "Å kunne automatisere behandlingen av store mengder informasjon er en viktig del av programmering. I dette prosjektet skal dere prøve å knytte programmet deres til større databaser med informasjon, og trekke informasjonen ut av disse databasene. Deretter skal programmene deres tolke informasjonen og behandle dataene. \n",
+ "\n",
+ "Dere skal jobbe i grupper på 2–4 personer, og alle skal bidra til det ferdige produktet. Det er veldig vanlig å jobbe i grupper når en skal programmere i yrkeslivet, og det er nyttig å få litt innblikk i hvordan en slik prosess fungerer allerede nå. Det er viktig at dere fordeler oppgaver på en hensiktsmessig måte mellom dere. Dere velger først en prosjektleder som kan ha det overordna ansvaret for at alt skal henge sammen til slutt, og som delegerer oppgaver som trengs å gjøres. For at det skal være enkelt å fordele oppgaver, kan det være lurt å lage ulike funksjoner som gjør forskjellige operasjoner. Dere kan eventuelt sitte sammen og gjøre all programmeringa felles. Prosjektet skal munne ut i et ferdig program og en rapport fra prosjektarbeidet. \n",
+ "\n",
+ "Dere kan velge mellom tre naturvitenskapelige problemstillinger, men dere står også fritt til å lage et eget prosjekt, dersom dere har noen gode idéer. Snakk med læreren når dere har fått en idé som dere tror lar seg gjennomføre. Under evaluering av prosjektet blir det lagt vekt på:\n",
+ "\n",
+ "- God og strukturert kode\n",
+ "- Kreativ og velreflektert løsningsstrategi\n",
+ "- Realfaglig forståelse\n",
+ "- Grad av samarbeid\n",
+ "\n",
+ "Det kan være lurt å bruke Github for å samarbeide, og dere skal bruke Jupyter Notebook som leveringsformat, der dere skal lage en rapport med programmene integrert i rapporten. Rapporten skal inneholde:\n",
+ "- Nødvendig faglig matematisk/naturvitenskapelig teori.\n",
+ "- Litt teori rundt noe av det programmeringstekniske (som statistik behandling av data eller regresjon, dersom du bruker det).\n",
+ "- Drøfting av dataene og analysen dere har gjort.\n",
+ "\n",
+ "Nedenfor er forslag til oppgaver som dere kan fordype dere i."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## _Oppgave 1: Kjernefysiske reaksjoner (fysikk)_\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "### Teori \n",
+ "\n",
+ "Kjernefysiske prosesser blir stadig viktigere i vårt energikrevende samfunn, og det diskuteres stadig om kjernekraft er en av løsningene på miljø- og energiutfordringene vi står overfor i samfunnet vårt i dag. Prinsippet bak fisjonsreaktorer er at atomkjerner som er tyngre enn jern, spaltes opp ved å skyte nøytroner på dem. Da omdannes noe masse til energi ifølge Einsteins berømte masse-energilov: \n",
+ "\n",
+ "$E=mc^2$\n",
+ "\n",
+ "For å regne ut energien som frigjøres i en kjernefysisk prosess, regner en ut forskjellen i masse før og etter en kjernefysisk reaksjon, og ganger så denne massen med kvadratet av lysets hastighet. Det er slitsom og kjedelig å slå opp alle disse nuklidemassene i en tabell hver gang en skal gjøre beregninger, og da er det nyttig med et program som kan gjøre dette for oss! \n",
+ "\n",
+ "### Oppgave \n",
+ "\n",
+ "Lag et program som regner ut energien som frigjøres i en kjernefysisk reaksjon valgt av brukeren. Det kan være både fisjon, fusjon og radioaktive prosesser. Brukeren skal gi input for hvilke grunnstoffer hun har på høyre og venstre side av reaksjonspila. Fila som programmet skal hente informasjon fra, ligger [her](https://github.com/andreasdh/Programmering-og-modellering/blob/master/Prosjekter/Filer/Nuklider.txt)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## _Oppgave 2: Lineær regresjon (matematikk)_\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "### Teori \n",
+ "\n",
+ "I matematikk 1T diskuterer man at hvis man gjør målinger/observasjoner og plotter dette som punkter i et koordinatsystem, da kan man bruke *regresjon* for å finne en kurve som passer best til punktene. Helt konkret, i matematikk 1T brukte man GeoGebra til å finne en lineær funksjon, $f(x)=ax+b$, som passet best til punktene. Men, hva betyr 'best'? Hvordan finner man egentlig denne funksjonen? Hvor sikker kan vi være på funksjonsuttrykket vårt? Sagt på en annen måte, hva pokker er lineær regresjon og hva er matematikken bak det?\n",
+ "\n",
+ "Anta man har f.eks. tre punkter $(x_1,y_1), (x_2,y_2), (x_3,y_3)$ som ikke ligger på en linje. Hvis vi ønsker å finne en linje som passer 'best' til disse så kan man tenke seg at avstanden fra linja til punktene skal være minst mulig. Det betyr at hvis man kan lage et uttrykk for avstanden så bør man kunne derivere uttrykket for å finne et uttrykk for linja sammen med litt matematikk. \n",
+ "\n",
+ "\n",
+ "### Oppgave \n",
+ "\n",
+ "1. Finn ut hvordan man gjør lineær regresjon for tre punkter i planet ved å lage et uttrykk for avstanden/feilen og minimere med derivasjon.\n",
+ "2. Hva hadde skjedd hvis man hadde hatt flere enn tre punkter?\n",
+ "3. Lag et program et program der brukeren kan taste inn $n$ punkter og programmet gjør lineær regresjon.\n",
+ "4. Bruk programmet deres på et egnet stort datasett.\n",
+ "5. Sammenlignn lineær regresjonsbiblioteker i Python med deres eget program."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## _Oppgave 3: Klassifisering av irisblomster (biologi)_\n",
+ "\n",
+ "\n",
+ "\n",
+ "### Teori \n",
+ "Irisblomster er en slekt av opp mot 300 arter innenfor sverdliljefamilien. I 1936 klassifiserte genetikeren Ronald Fischer tre varieteter av irisblomster i denne slekten (se bildet ovenfor). Det ble da også samlet inn data for ulike individer av disse varietetene, spesielt lengde og bredde på begerblad (sepal) og kronblad (petal). Fila som programmet skal hente informasjon fra, ligger [her](https://github.com/andreasdh/Programmering-og-modellering/blob/master/Prosjekter/Filer/Iris.csv).\n",
+ "\n",
+ "### Oppgave \n",
+ "\n",
+ "- Les av og undersøk irisblomstdatasettet. \n",
+ "- Lag flere plott av ulike variabler mot hverandre og beskriv sammenhengen mellom dataene. Eksperimenter med farger og ulike typer plott (histogram, boksplott, linjeplott, punktplott osv.).\n",
+ "- Finn ut hvordan du kan utføre regresjon på datasettene. \n",
+ "- Gjør en passende regresjon med ulike variabler og forklar sammenhengen."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## _Oppgave 4: Eulers totientfunksjon (matematikk)_\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "### Teori \n",
+ "\n",
+ "To naturlige tall (heltall$\\geq 1$) er *innbyrdes primiske* hvis største fellesdivisor mellom tallene er 1. For eksempel, $6$ og $25$ er innbyrdes primiske fordi $1$ er de største heltallet som deler både $6$ og $25$. Gitt, et naturlig tall $n$ kan man spørre hvor mange tall er innbyrdes primiske med $n$ og mindre enn $n$? Et svar på dette er *Eulers totientfunksjon* $\\varphi(n)$ som angir antall naturlige tall innbyrdes primiske tall med $n$ mindre enn $n$. Denne funksjonen er relevant innen kryptering.\n",
+ "\n",
+ "I denne oppgaven skal du lage et datasett ved å lese informasjon fra et nettsted. Deretter skal du bruke datasettet ditt til å utforske egenskaper med funksjonen, og så skal du produsere et stort datasett med verdier og annen informasjon om funksjonen.\n",
+ "\n",
+ "\n",
+ "### Oppgave \n",
+ "\n",
+ "1. Bruk Python til å lese informasjonen fra nettsiden http://primefan.tripod.com/Phi500.html til en `csv`-fil.\n",
+ "2. Rydd opp i `csv`-filen og lag hensiktsmessige kolonner.\n",
+ "3. Bruk datasettet ditt til å utforske funksjonen og lag hypoteser om funksjonen (f.eks. hva kan man si om $\\varphi(p)$ når $p$ er et primtall?)\n",
+ "4. Avgjør om hypotesene dine stemmer eller ei.\n",
+ "5. Utvid datasettet ditt på en hensiktsmessig måte og produser resultatet til en `csv`-fil."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## _Oppgave 5: Rødvinskvalitet (kjemi)_\n",
+ "\n",
+ "\n",
+ "\n",
+ "### Teori \n",
+ "Rødvinskvalitet er en subjektiv vitenskap, men kjemi er objektivt! Vi kan utforske ulike faktorer i vin for å bedømme hvilke kriterier som vinkjennere faktisk kjenner igjen. Datasettet vi skal se på ([her](https://github.com/andreasdh/Programmering-og-modellering/blob/master/Prosjekter/Filer/vin.csv), inneholder noen verdier som trenger forklaring:\n",
+ "\n",
+ "- Fixed and volatile acidity: Mengden syre og flyktig syre (gasser) i g/L.\n",
+ "- Citric acid: Mengden sitronsyre i g/L.\n",
+ "- Residual sugar: Mengden sukker etter endt fermentering av vinen i g/L.\n",
+ "- Sulphur dioxide: Mengde svoveldioksid tilsatt i vinen i mg/L.\n",
+ "\n",
+ "### Oppgave\n",
+ "- Les av fila og undersøk dataene.\n",
+ "- Finn gjennomsnitt med standardavvik (finn ut hva det er!) av de ulike verdiene og lag en tabell med disse statistiske dataene.\n",
+ "- Hvilken funksjon har svoveldioksid og sulfater i vin? Hva menes med fritt og bundet svoveldioksid?\n",
+ "- Plott ulike data mot hverandre.\n",
+ "- Finn ut hvilke faktorer som korrelerer med rødvinskvaliteten. Diskuter om korrelasjon nødvendigvis betyr kausalitet."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgave 6: Lemurer (biologi)\n",
+ "\n",
+ "\n",
+ "\n",
+ "Dette prosjektet er spesielt for de som har vært med på å samle inn data på Madagaskar i 2018. Datasettet \"Lemurer\" inneholder populasjonsdata fra 2015 til i dag. Spør Andreas om datasettet hvis du velger dette prosjektet.\n",
+ "\n",
+ "### Oppgave\n",
+ "- Les av fila og undersøk dataene.\n",
+ "- Finn flere måter å representere dataene på. Se f.eks. på utvikling over tid eller lemurtyper sortert etter tidspunkt på dagen.\n",
+ "- Er det noe forskjell på lemurforekomsten i Mariarano og Matsedroy?\n",
+ "- Drøft framstillingene. Hva kan de si oss om lemurpopulasjonen i dette området?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git "a/_sources/docs/ekstra/Str\303\245lingsbalansemodell.ipynb" "b/_sources/docs/ekstra/Str\303\245lingsbalansemodell.ipynb"
new file mode 100644
index 00000000..553a8063
--- /dev/null
+++ "b/_sources/docs/ekstra/Str\303\245lingsbalansemodell.ipynb"
@@ -0,0 +1,158 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Modellering av jordas strålingsbalanse\n",
+ "\n",
+ "Når vi lager en modell for dette systemet, er det hovedsakelig to ting vi bør ha med:\n",
+ "1. En modell for absorbert stråling (IR, synlig, UV) fra sola.\n",
+ "2. En modell for emittert stråling (IR) fra jorda.\n",
+ "\n",
+ "Modellen bør være et uttrykk for endringen i overflatetemperaturen til jorda som funksjon av tida. Siden vi er interessert i endringen til enhver tid, kan vi benytte den deriverte (momentan endring).\n",
+ "\n",
+ "$$T'(t) = S_{inn} - S_{ut}$$\n",
+ "\n",
+ "der $S_{inn}$ er absorbert stråling og $S_{ut}$ er emittert stråling. La oss se på ulike modeller for dette.\n",
+ "\n",
+ "### Antakelser \n",
+ "- Jorda modelleres med en statisk albedo (refleksjonsgrad), $\\alpha$. Dette begrenser tidsrommet modellen kan brukes i, da albedoen på jorda endres med tida. Mengden absorbert kortbølget stråling modelleres slik:\n",
+ "\n",
+ "$$\\frac{(1-\\alpha)S}{4}$$\n",
+ "\n",
+ "der $S \\approx 1361$ W/m$^2$ er gjennomsnittlig stråling motatt fra sola i løpet av et år og $\\alpha \\approx 0.32$ er albedoen til jorda.\n",
+ "\n",
+ "- Jorda modelleres som et svartlegeme med hensyn til utsending av stråling med lang bølgelengde, altså et legeme som absorberer all stråling som sendes mot den. Dermed følger emisjonen av langbølget stråling Stefan-Boltzmanns lov:\n",
+ "\n",
+ "$$F = \\epsilon \\cdot \\sigma \\cdot T^4$$\n",
+ "\n",
+ "der $\\epsilon$ er emissiviteten til legemet, altså et mål på hvor mye legemet oppfører seg som et svartlegeme. For et fullstendig svartlegeme er $\\epsilon = 1$, for et perfekt speil er $\\epsilon = 0$. Stefan-Boltzmann-konstanten $\\sigma = 5.67\\cdot 10^{-8}$ Wm$^{-2}$K$^-4$, og $T$ er den gjennomsnittlige temperaturen på overflaten til jorda.\n",
+ "\n",
+ "- Overflatetemperaturen blir tilnærmet som en planet med 70 % vann med gjennomsnittlig dybde på 70 meter. Varmekapasiteten til jorda kan da beregnes til å være $C = 2.08\\cdot 10^8$ JK$^{-1}$m$^{-2}$.\n",
+ "\n",
+ "### Totalmodell\n",
+ "\n",
+ "Vi ønsker å finne overflatetemperaturen til jorda som funksjon av tid, $T_s(t)$. Vi kan formulere en modell for *endringen* i overflatetemperatur ved hjelp av modellene vi har gjort rede for.\n",
+ "\n",
+ "$$T'(t) = S_{inn} - S_{ut} = \\frac{1}{C}\\left( \\frac{(1-\\alpha)S}{4} - \\epsilon \\cdot \\sigma \\cdot T^4 \\right)$$\n",
+ "\n",
+ "som er en differensiallikning der $T(t)$ er den ukjente.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from pylab import *\n",
+ "\n",
+ "T0 = 240\n",
+ "epsilon = 1\n",
+ "sigma = 5.67E-8\n",
+ "C = 2.08E8\n",
+ "S = 1361\n",
+ "alpha = 0.32\n",
+ "\n",
+ "#Tidsparametre\n",
+ "tid = 1000 # år\n",
+ "dt = 1E-3\n",
+ "N = int(tid/dt)\n",
+ "\n",
+ "T = zeros(N+1)\n",
+ "t = zeros(N+1)\n",
+ "T[0] = T0\n",
+ "\n",
+ "for i in range(N):\n",
+ " Tder = (1/C)*((1-alpha)*S/4 - epsilon*sigma*T[i]**4)\n",
+ " T[i+1] = T[i] + Tder*dt\n",
+ " t[i+1] = t[i] + dt\n",
+ "\n",
+ "plot(t,T)\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "N = 100 #antall steg\n",
+ "sigma = 5.67E-8 #Stefan-Boltzmanns konstant\n",
+ "\n",
+ "Rjord = 0.3 #andel reflektert av jorda\n",
+ "Ratm = 0.4 #andel reflektert av atmosfæren tilbake til jorda\n",
+ "\n",
+ "UatmTrans = 340 #utstrålingstetthet fra sola transmittert gjennom atmosfæren, W/m^2\n",
+ "UjordRef = zeros(N) #utstrålingstetthet reflektert av jordoverflaten\n",
+ "UjordEmit = zeros(N) #utstrålingstetthet emittert av jordoverflaten pga temperatur\n",
+ "UatmRef = zeros(N) #utstrålingstetthet reflektert av atmosfæren tilbake til jorda\n",
+ "UjordAbs = zeros(N) #utstrålingstetthet absorbert av jordoverflaten\n",
+ "\n",
+ "T = zeros(N) #jordas temperatur\n",
+ "\n",
+ "#startverdier: ingen drivhuseffekt\n",
+ "UjordAbs[0] = UatmTrans*(1-Rjord)\n",
+ "UjordEmit[0] = UjordAbs[0]\n",
+ "T[0] = (UjordAbs[0]/sigma)**(1/4)\n",
+ "\n",
+ "for i in range(N-1):\n",
+ " #starter drivhuseffekten\n",
+ " UatmRef[i+1] = (UjordRef[i] + UjordEmit[i])*Ratm\n",
+ " UjordRef[i+1] = (UatmTrans + UatmRef[i])*Rjord\n",
+ " UjordAbs[i+1] = UatmTrans + UatmRef[i] - UjordRef[i+1]\n",
+ " UjordEmit[i+1] = UjordAbs[i]\n",
+ " \n",
+ " T[i+1] = (UjordAbs[i+1]/sigma)**(1/4) #Stefan-Boltzmanns lov\n",
+ " \n",
+ " #lineær økning av atmosfærens reflektivitet i 10 steg\n",
+ " if i > 40 and i < 50:\n",
+ " Ratm += 0.005\n",
+ "\n",
+ "plot(T-273)\n",
+ "plot(40,T[40]-273,'.')\n",
+ "plot(50,T[50]-273,'.')\n",
+ "legend(['global temperatur', 'starter utslipp', 'stopper utslipp'])\n",
+ "xlabel('steg')\n",
+ "ylabel('$^\\circ C$')\n",
+ "title('Gjennomsnittlig global temperatur')\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/arrayer.ipynb b/_sources/docs/ekstra/arrayer.ipynb
new file mode 100644
index 00000000..580f63e6
--- /dev/null
+++ b/_sources/docs/ekstra/arrayer.ipynb
@@ -0,0 +1,156 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datasamlinger\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. opprette ulike arrayer\n",
+ "2. gjøre vektoroperasjoner med arrayer\n",
+ "3. gjøre rede for hva tupler er\n",
+ "4. opprette og bruke dictionarier\n",
+ "```\n",
+ "\n",
+ "Vi har flere måter å organisere data på i Python. Her er en kort oversikt over de viktigste datasamlingene:\n",
+ "1. Lister (fleksible samlinger av like eller ulike data)\n",
+ "2. Arrayer (samlinger av tall som kan opereres på som vektorer).\n",
+ "3. Tupler (statiske lister som ikke kan endres)\n",
+ "4. Dictionarier (lister med strenger, ikke tall, som nøkler)\n",
+ "\n",
+ "Vi har allerede sett hvordan lister fungerer. La oss se på de tre andre datatypene.\n",
+ "\n",
+ "## Arrayer\n",
+ "Vi begynner med et eksempel som illustrerer forskjellen mellom lister og arrayer. For å kunne bruke arrayer, må vi først importere _numpy_ eller _pylab_."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "listesum: [1, 2, 3, 2, 3, 1]\n",
+ "arraysum: [3 5 4]\n"
+ ]
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "liste1 = [1, 2, 3]\n",
+ "liste2 = [2, 3, 1]\n",
+ "\n",
+ "print(\"listesum:\", liste1 + liste2)\n",
+ "\n",
+ "array1 = np.array(liste1)\n",
+ "array2 = np.array(liste2)\n",
+ "\n",
+ "print(\"arraysum:\", array1 + array2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk koden ovenfor til å forklare forskjellen mellom listeaddisjon og arrayaddisjon.\n",
+ "```\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Når to lister adderes, legges den ene lista til slutten på den andre. Når to arrayer adderes, får vi komponentvis addisjon av elementene: [1+2, 2+3, 3+1]. Dette er det samme som vektoraddisjon.\n",
+ "```\n",
+ "\n",
+ "### Opprette arrayer\n",
+ "Vi kan opprette arrayer på flere måter:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar de ulike måtene å opprette arrayer på ved å endre på forskjellige parametre i programmet ovenfor.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Vi kan oppsummere måter å opprette arrayer på slik:\n",
+ "| Operasjon | Forklaring |\n",
+ "| --------- | ---------- |\n",
+ "| array([x1,x2,x3,...]) | gjør om en liste med tall til en array |\n",
+ "| arange(a,b,c) | lager en array med tallene a til, men ikke med, b, der c er steglengden |\n",
+ "| linspace(a,b,c) | lager en array med c elementer fra a til og med b |\n",
+ "| zeros(n) | lager en array med _n_ nuller |\n",
+ "| ones(n) | lager en array med _n_ enere |\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "### Behandle arraydata\n",
+ "I motsetning til med lister, kan vi ikke bruke listeoperasjoner som _append_, _remove_ og liknende når vi opererer med arrayer. Vi kan derimot få tilgang til elementene ved indekser, akkurat som med lister.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "1. Forklar hva koden nedenfor gjør.\n",
+ "2. Kjør koden og se om det stemmer med slik du hadde tenkt. Hvis ikke, hva er forskjellen?\n",
+ "3. \n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([1, 2, 3])"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "array2"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/ekstra/datahandtering.ipynb b/_sources/docs/ekstra/datahandtering.ipynb
new file mode 100644
index 00000000..ef4baa94
--- /dev/null
+++ b/_sources/docs/ekstra/datahandtering.ipynb
@@ -0,0 +1,145 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datahåndtering (teori)\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Lese data fra fil.\n",
+ "2. Plotte fildata.\n",
+ "3. Utføre regresjon for å modellere sammenhenger i fildata.\n",
+ "4. Bruke enkel statistikk (gjennomsnitt, standardavvik).\n",
+ "```\n",
+ "\n",
+ "## Lese fra fil\n",
+ "I videoen nedenfor forklares hvordan du kan lese datafiler med Python."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/EqE0RU82gIU? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Fila *temperatur.txt* inneholder temperaturmålinger som funksjon av tid. Les av fila og plott fildataene.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Regresjon\n",
+ "Her skal vi se hvordan vi kan utføre regresjon på datapunkter."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/l7aAcyzA4VE? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Benytt koderuta i forrige underveisoppgave og utfør regresjon av 1. og 2. grad av datapunktene ovenfor. Plott regresjonskurvene i samme koordinatsystem som datapunktene.\n",
+ "```"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/filmer_datasamlinger.ipynb b/_sources/docs/ekstra/filmer_datasamlinger.ipynb
new file mode 100644
index 00000000..22aa40b6
--- /dev/null
+++ b/_sources/docs/ekstra/filmer_datasamlinger.ipynb
@@ -0,0 +1,156 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datasamlinger (teori)\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Opprette og bruke lister, arrayer og dictionarier, og forklare forskjellen mellom dem.\n",
+ "2. Utføre operasjoner på lister, arrayer og dictionarier.\n",
+ "```\n",
+ "\n",
+ "## Lister\n",
+ "I videoen nedenfor forklares hvordan du kan opprette og utføre operasjoner på lister."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/1ZeRsnlxU4A? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag ulike to lister med bøker, TV-serier, fotballspillere eller liknende. Listene bør ha minst 5 elementer hver, men gjerne flere.\n",
+ "1. Legg sammen de to listene.\n",
+ "2. Slett det første og tredje elementet i den sammenslåtte lista.\n",
+ "3. Finn ut hvilken indeks ett av elementene har.\n",
+ "4. Lag ei ny liste av element 2–5.\n",
+ "5. Finn indeksen til et av elementene og slett dette elementet.\n",
+ "6. Skriv ut lista til slutt.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Arrayer\n",
+ "Her skal vi se hvordan vi kan opprette og utføre operasjoner på arrayer."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/MCrjhPeEUWg? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Et program skal regne ut *c = a + b* og *c = a * b*. Forklar hva c vil bli dersom\n",
+ "- a = [1,2,3,4] og b = [1,2,3,4]\n",
+ "- a = [1,2,3,4] og b = 2\n",
+ "- a = array([1,2,3,4]) og b = array([1,2,3,4])\n",
+ "- a = array([1,2,3,4]) og b = 2\n",
+ "Beskriv hva som skjer i de ulike tilfellene.\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/hjelp_modelleringsoppgave2.ipynb b/_sources/docs/ekstra/hjelp_modelleringsoppgave2.ipynb
new file mode 100644
index 00000000..6a11d4ee
--- /dev/null
+++ b/_sources/docs/ekstra/hjelp_modelleringsoppgave2.ipynb
@@ -0,0 +1,190 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import math as math"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Støtte til modelleringsoppgave 2 (temperaturmodellering)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\"\"\"Konstanter\"\"\"\n",
+ "#Stefan-Boltzman Konstant\n",
+ "sigma=(5.67e-8) #[W m^2 K^4]\n",
+ "#Temperatur Sola\n",
+ "temperatur_sol = 5778 #[Kelvin]\n",
+ "diameter_sol = 1391016e3 #[m]\n",
+ "distanse_sol_jord = 149600000e3 #[m]\n",
+ "radius_jord = 6371e3 #[m]\n",
+ "albedo = 0.3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgave 1)\n",
+ "Formelen for å kalkulere mengden energi som treffer toppen av atmosfæren ($S_0$) er: \n",
+ "\n",
+ "$$S_0 = \\large\\frac{{radius_{sun}}^2}{{distanse_{jord\\space sol}}^2} \\cdot stråling\\space sol$$ "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1365.948361181013\n"
+ ]
+ }
+ ],
+ "source": [
+ "stråling_sol = sigma*(temperatur_sol**4)\n",
+ "s0 = ((diameter_sol/2)**2)/(distanse_sol_jord**2)*stråling_sol\n",
+ "print (s0)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgave 2)\n",
+ "Bruk energiprinsippet og Stefan-Boltzmanns lov til å lage et utrykk for gjennomsnittlig temperatur på jorden. Noe av innstrålingen fra solen vil bli reflektert, og målet for refleksjonen til en flate kalles albedo. Legg til denne refleksjonsfaktoren for jordkloden og kalkuler temperaturen på jorden. Anta at\n",
+ "temperaturen på planeten er konstant, og at planeten er en flat sirkel."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![solar_insolation_planet_sphere_disk_600x320.png](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/solar_insolation_planet_sphere_disk_600x320.png)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Utrykket for temperatur man skal komme frem til:\n",
+ "$$T = \\sqrt[4]{\\frac{K_s\\cdot(1-albedo)}{4\\sigma}}$$\n",
+ "\n",
+ "Prøv å vis hvordan man får dette utrykket."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "-18.336567683297915"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "temperatur = ((s0*(1-albedo))/(4*sigma))**(1/4)\n",
+ "temperatur - 273.15"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgave 3) \n",
+ "\n",
+ "Når vi skal legge til atmosfæren i modellen gjør vi ganske mange forenklinger. Vi antar tre ting (og ingen av antagelsene er faktisk sanne!): \n",
+ "\n",
+ "1) Atmosfæren har en konstant temperatur - dvs. at atmosfæren er en stor blokk hvor hele blokken har den samme temperaturen. \n",
+ "2) Atmosfæren er fullstendig gjennomsiktig for stråling fra solen - dvs at all stråling fra solen treffer jordoverflaten. \n",
+ "3) Atmosfæren tar imot all stråling fra jorden."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![Atmosf%C3%A6re.png](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/atmosferestraling.png)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Figuren over viser situasjonen med antagelsene: \n",
+ "(1) viser solinnstårlingen som treffer jordkloden. \n",
+ "(3) viser utsrålingen fra jordkloden som treffer atmosfæren. \n",
+ "(2) viser situasjonen til atmosfæren. Atmosfæren vil sende ut stråling til verdensrommet, men også stråling tilbake til jorden. Energien atmosfæren sender ut kan da kalkuleres ved å bruke stefan-boltzmans lov. \n",
+ "\n",
+ "Prøv å legg inn atmosfæren som et ledd i din kalkulering og se hvordan det påvirker temperaturen.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Løsning ved bruk av figuren over.\n",
+ "$Energi_{inn} = Energi_{ut}$ er fortsatt det som gjelder, men denne gangen blir det to ligninger. Etter systemet nevnt i oppgave 3(a) blir likningene:\n",
+ "\n",
+ "$$\\space s_0\\cdot(1-albedo) = \\sigma T_{a}^4 $$\n",
+ "$$\\space s_0\\cdot(1-albedo) + \\sigma T_{a}^4 = \\sigma T_{s}^4$$\n",
+ "\n",
+ "Sett likning 1 inn i 2 for å få en løsning for $T_{s}$\n",
+ "\n",
+ "Prøv å vis på figuren hvilke piler disse to likningene representerer. Prøv å forklar til deg selv hva som er gjort her for å forstå likningsystemet. \n",
+ "\n",
+ "Kommentar: Resultatet her vil være veldig høyt. I denne situasjonen vil energien til atmosfæren være det jorden sender ut. Vi har jo kalkulert at jorden blir truffet med 1365 watt/m^2, men denne energien vil bare være når solen står på sitt høyeste vertikalt rett ned på jorden. På grunn av rotasjonen til jorden, med natt og dagsykluser, og at jorden egentlig er en kule vil ikke dette være den faktiske gjennomsnittelige innstrålingen som treffer jorden. En forenkling for å finne gjennomsnitt på innstrålingen over hele jordkloden når man tenker at deler ikke får like mye sollys hele tiden vil da være: $S_{0}$/4 = 1365/4 watt/$m^2$. Dette nummeret er veldig nærme den observerte gjennomsnittelige energien som treffer jorden. Sett inn $S_{0}/4$ inn for $S_{0}$ og sjekk hva som skjer med $T_{s}$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/ekstra/integrasjon.ipynb b/_sources/docs/ekstra/integrasjon.ipynb
new file mode 100644
index 00000000..92bd4c40
--- /dev/null
+++ b/_sources/docs/ekstra/integrasjon.ipynb
@@ -0,0 +1,139 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 10. Numerisk integrasjon\n",
+ "Her skal vi se på metoder for å tilnærme det bestemte integralet.\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Forklare forskjellen på ulike tilnærminger til rektangelmetoden (venstre-, høyre- og midtpunktstilnærming).\n",
+ "2. Forklare og utlede trapesmetoden.\n",
+ "3. Implementere rektangelmetoden og trapesmetoden.\n",
+ "4. Integrere funksjoner numerisk.\n",
+ "```\n",
+ "\n",
+ "## Rektangelmetoden"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import HTML\n",
+ "# Youtube\n",
+ "HTML('')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave: Derivasjon av funksjoner\n",
+ ":class: tip\n",
+ "Implementer algoritmen for rektangelmetoden som en Python-funksjon. Test metoden på integralet \n",
+ "\n",
+ "$$\\int_2^8 f(x) = x^2 - 2x + 4 \\ dx$$\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Ulike tilnærminger"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import HTML\n",
+ "# Youtube\n",
+ "HTML('')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave: Derivasjon av funksjoner\n",
+ ":class: tip\n",
+ "Implementer trapesmetoden og ulike tilnærmnger for rektangelmetoden som Python-funksjoner. Gjør en feilanalyse av metodene og sammenlikn svarene du får på integralet\n",
+ "\n",
+ "$$\\int_2^8 f(x) = x^2 - 2x + 4 \\ dx$$\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.7.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/kunstig_intelligens_ml.ipynb b/_sources/docs/ekstra/kunstig_intelligens_ml.ipynb
new file mode 100644
index 00000000..1a80e6a4
--- /dev/null
+++ b/_sources/docs/ekstra/kunstig_intelligens_ml.ipynb
@@ -0,0 +1,3662 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Maskinlæring II: Nevrale nettverk og kunstig intelligens\n",
+ "Kunstige nevrale nettverk har likhetstrekk med hvordan hjernen fungerer. Vi bygger dem opp ved hjelp av _noder_ og _sammmenkoblinger_ mellom nodene, ikke ulikt nerveceller og koblinger mellom dem. Nodene ...\n",
+ "\n",
+ "Først trener vi nettverket. Da finner vi ut av hvor mye de ulike koblingene mellom noder skal være _vekta_ for at forskjellene mellom faktiske verdier og forutsigelser skal være så små som mulig. En vekt bestemmer hvor sterk en kobling mellom noder er. Vi måler forskjell mellom forutsigelser og faktiske verdier slik:\n",
+ "\n",
+ "$$loss = \\Sigma (y - ŷ)^2$$\n",
+ "\n",
+ "## Lineær regresjon"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.keras.models import Sequential\n",
+ "from tensorflow.keras.layers import Activation, Dense\n",
+ "from tensorflow.keras.optimizers import Adam\n",
+ "from tensorflow.keras.metrics import categorical_crossentropy\n",
+ "from tensorflow.keras.losses import MeanSquaredError\n",
+ "from sklearn.utils import shuffle\n",
+ "from sklearn.preprocessing import MinMaxScaler"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ],
+ "text/plain": [
+ " Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm\n",
+ "count 150.000000 150.000000 150.000000 150.000000 150.000000\n",
+ "mean 75.500000 5.843333 3.054000 3.758667 1.198667\n",
+ "std 43.445368 0.828066 0.433594 1.764420 0.763161\n",
+ "min 1.000000 4.300000 2.000000 1.000000 0.100000\n",
+ "25% 38.250000 5.100000 2.800000 1.600000 0.300000\n",
+ "50% 75.500000 5.800000 3.000000 4.350000 1.300000\n",
+ "75% 112.750000 6.400000 3.300000 5.100000 1.800000\n",
+ "max 150.000000 7.900000 4.400000 6.900000 2.500000"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "iris.describe()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Maskinlæring\n",
+ "Plottene ovenfor kan si oss noe om at beger- og kronbladlengden for ulike irisblomstarter er forskjellig. Vi skal nå lage en modell som kan forutsi hvilken art vi har med å gjøre gitt ulike bredder og lengder av kron- og begerblad. Vi velger ut hvilke data vi ønsker å bruke som kriterium for arten, spesifiserer kategorien \"species\" som målkategorien vår:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split, cross_val_score\n",
+ "from sklearn import tree\n",
+ "from sklearn.metrics import accuracy_score, confusion_matrix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "kriterier = iris[['SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm', 'PetalWidthCm']] # features\n",
+ "kategorier = iris['Species'] # labels"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I maskinlæring er det viktig at modellen vår klarer å forutsi data som kommer utenfra datasettet vi trener modellen med. Derfor deler vi ofte opp dataene i et treningssett og et testsett. Treningssettet bruker vi til å trene modellen, testsettet til å teste og evaluere modellen i etterkant. Vi blander ikke disse dataene. Vi kan generere slike data med funksjonen _train\\_test\\_split()_. Her bruker vi 80 \\% av dataene til trening og 20 \\% til testing. Du bør bruke minst 70 \\% av dataene dine til trening."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testandel = 0.2 # Andel brukt til testing\n",
+ "ml_data = train_test_split(kriterier, kategorier, test_size=testandel, random_state=42)\n",
+ "\n",
+ "treningskriterier = ml_data[0]\n",
+ "testkriterier = ml_data[1]\n",
+ "treningskategorier = ml_data[2]\n",
+ "testkategorier = ml_data[3]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå kan vi lage modellen vår. Vi bruker en algoritme som heter _Decision Tree Classifier_. Det er basert på sammensatte og forgreinede valgtrær, der alle kombinasjoner av kriterier blir utforsket. Betingede sannsynligheter for ulike hendelser blir beregnet, og de mest sannsynlige utfallene blir framhevet basert på kombinasjonen av kriteriene. Først trener vi modellen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier()"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modell = tree.DecisionTreeClassifier()\n",
+ "modell.fit(treningskriterier, treningskategorier)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det var det - da har vi en modell! Den ligger nå i et objekt som vi har kalt _modell_. La oss sjekke hvordan modellen takler testsettet vårt.\n",
+ "\n",
+ "## Test og validering av modellen"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1.0"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modellkategorier_forutsett = modell.predict(testkriterier)\n",
+ "accuracy_score(testkategorier, modellkategorier_forutsett)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "For å få bedre oversikt over hva modellen forutsier riktig og hva den feiler på, kan vi konstruere en såkalt \"Confusion Matrix\" (forvirringsmatrise/feilmatrise):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Sortere etter alder\n",
+ "aldersklasse = []\n",
+ "\n",
+ "for alder in titanic['age']:\n",
+ " if alder > 15:\n",
+ " aldersklasse.append(\"voksen\")\n",
+ " else:\n",
+ " aldersklasse.append(\"barn\")\n",
+ " \n",
+ "titanic['aldersklasse'] = aldersklasse\n",
+ "\n",
+ "sns.countplot(x='aldersklasse', hue='survived', data=titanic, palette='ocean')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# *Frivillig: Erstatte kategorier for visualisering med nye kategorier\n",
+ "\"\"\"\n",
+ "overlevende = {0: \"døde\", 1: \"overlevde\"}\n",
+ "titanic[\"survived\"] = titanic[\"survived\"].map(overlevende)\n",
+ "titanic.head(5)\n",
+ "\"\"\"\n",
+ "# *Frivillig: Telle forekomster av ulike tilfeller\n",
+ "\"\"\"\n",
+ "titanic[\"survived\"].count()\n",
+ "titanic[\"survived\"].value_counts()\n",
+ "\"\"\"\n",
+ "None # Printer None for å unngå output"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Maskinlæring\n",
+ "Vi skal nå lage en modell som kan forutsi hvorvidt en person overlever på Titanic eller ikke, gitt data om personen. Vi velger ut hvilke data vi ønsker å bruke som kriterium for overlevelse, og spesifiserer kategorien \"survived\" som målkategorien vår:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split, cross_val_score\n",
+ "from sklearn import tree\n",
+ "from sklearn.metrics import accuracy_score, confusion_matrix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "kriterier = titanic[['pclass', 'sex', 'age', 'sibsp', 'parch']]\n",
+ "kategorier = titanic['survived'] "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I maskinlæring er det viktig at modellen vår klarer å forutsi data som kommer utenfra datasettet vi trener modellen med. Derfor deler vi ofte opp dataene i et treningssett og et testsett. Treningssettet bruker vi til å trene modellen, testsettet til å teste og evaluere modellen i etterkant. Vi blander ikke disse dataene. Vi kan generere slike data med funksjonen _train\\_test\\_split()_. Her bruker vi 80 \\% av dataene til trening og 20 \\% til testing. Du bør bruke minst 70 \\% av dataene dine til trening."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testandel = 0.2 # Andel brukt til testing\n",
+ "ml_data = train_test_split(kriterier, kategorier, test_size=testandel, random_state=42)\n",
+ "\n",
+ "treningskriterier = ml_data[0]\n",
+ "testkriterier = ml_data[1]\n",
+ "treningskategorier = ml_data[2]\n",
+ "testkategorier = ml_data[3]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå kan vi lage modellen vår. Vi bruker en algoritme som heter _Decision Tree Classifier_. Det er basert på sammensatte og forgreinede valgtrær, der alle kombinasjoner av kriterier blir utforsket. Betingede sannsynligheter for ulike hendelser blir beregnet, og de mest sannsynlige utfallene blir framhevet basert på kombinasjonen av kriteriene. Først trener vi modellen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier()"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modell = tree.DecisionTreeClassifier()\n",
+ "modell.fit(treningskriterier, treningskategorier)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det var det - da har vi en modell! Den ligger nå i et objekt som vi har kalt _modell_. Vi kan få innsyn i hvordan modellen ser ut, men det kan fort bli litt uoversiktlig og teknisk. La oss først nøye oss med å sjekke hvordan modellen takler testsettet vårt.\n",
+ "\n",
+ "## Test og validering av modellen"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7653631284916201"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modellkategorier_forutsett = modell.predict(testkriterier)\n",
+ "accuracy_score(testkategorier, modellkategorier_forutsett)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Dette betyr at modellen forutsier riktig ca. 76 % av gangene. Det er en ok modell. For å få bedre oversikt over hva modellen forutsier riktig og hva den feiler på, kan vi konstruere en såkalt \"Confusion Matrix\" (forvirringsmatrise/feilmatrise):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "cm = confusion_matrix(modellkategorier_forutsett, testkategorier)\n",
+ "\n",
+ "import seaborn as sns\n",
+ "sns.heatmap(cm, annot=True, cmap='viridis')\n",
+ "plt.title(\"Forvirringsmatrise\")\n",
+ "plt.xlabel(\"Predikerte verdier\")\n",
+ "plt.ylabel(\"Sanne verdier\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "La oss benytte disse dataene og telle hvor mange datapunkter vi har, hvor mange som overlevde og døde, og deretter beregne hvor stor prosentandel av overlevende og døde som modellen klarte å forutsi korrekt."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(Andel korrekt forventet død 77.68 %)\n",
+ "(Andel korrekt forventet overlevelse 73.13 %)\n"
+ ]
+ }
+ ],
+ "source": [
+ "presisjon_død = (87/(87+25))*100\n",
+ "presisjon_overleve = (49/(49+18))*100\n",
+ "print(f'(Andel korrekt forventet død {presisjon_død:.2f} %)')\n",
+ "print(f'(Andel korrekt forventet overlevelse {presisjon_overleve:.2f} %)')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det er større presisjon i å forutsi død. Dette er forventet, siden modellen har trent på flere tilfeller av død enn av overlevelse. \n",
+ "\n",
+ "La oss helt til sist visualisere modellen vår. Vi velger maks dybde på modellen til 3 for at vi ikke skal få alt for mange forgreininger."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABGoAAAIuCAYAAADnru5GAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAD0aElEQVR4nOzddXgVxx7G8e9EiAsJgeDu7u5upbQUKVXq7u5ChbrRQimUlgLFWtyd4u4Q3J0kxG3uHwfS5iZAgISTwPt5Hp5LZmdnf5tLYfOe2RljrUVERERERERERJzPxdkFiIiIiIiIiIiIg4IaEREREREREZEcQkGNiIiIiIiIiEgOoaBGRERERERERCSHUFAjIiIiIiIiIpJDKKgREREREREREckhFNSIiIiIiIiIiOQQCmpERERERERERHIIBTUiIiIiIiIiIjmEghoRERERERERkRxCQY2IiIiIiIiISA6hoEZEREREREREJIdQUCMiIiIiIiIikkMoqBERERERERERySEU1IiIiIiIiIiI5BAKakREREREREREcgg3ZxcgIiIi2c/L0+NYXHxCAWfXIdfO0yPP8di4+FBn1yEiIiLZw1hrnV2DiIiIZDNjjI1eM9HZZUgW8KndDWutcXYdIiIikj306pOIiIiIiIiISA6hoEZEREREREREJIdQUCMiIiIiIiIikkMoqBERERERERERySEU1IiIiIiIiIiI5BAKakREREREREREcggFNSIiIiIiIiIiOYSbswsQERERyQ1SUlL4cfRUfhk/g31HjhMU4MetrRvx9mN98ff1ztQYPrW7ZdheKH8wYdOHZmW5IiIikkspqBERERHJhNe//pXv/phI5+b1ePquboQdOMLAUZNZsyWM2UM+xs3NNVPjNK5Ziftva5+mzcfTIztKFhERkVxIQY2IiIjkauHnogiPjKZE4QLZdo1tew7ww6jJ3NKyAaM+fy21vVyJIjz+/nf8NmkO/f4vfLmYEoVD6dOpRTZVKiIiIrmd1qgRERER4uIT6D9oFDVue4x8je6gUPM7qdvzad76dni6vvNWrKfr4+9QqPmdBDXsQb1eTzNk3PQ0fe56+VP863Vn6bqtadonzVuGT+1uvDhg8DXVm5CYyJQFK+j78ieUancfUxauuKbxLmfsjMWkpKTwZN9b0rT37dyS4AA/Rk9bcEXjJSQmEhUTm4UVioiIyI1CM2pERESE5z4dxB9T5tGve3uqly9FfGIiuw4cYeHqTWn6DZ0wk6c/+pF6Vcvx0gM98PH0ZN6K9Tzz8U/sOXSMj569H4Dv33qCNVt30e/NL1k26mvy+vty6NhJHv/ge6qWK0n/8/2u1IqN2xk1dQHjZy/hTMQ5ihTIx+N9unJLywZp+kWciyYxKTlTY3p7euDtdelXj9ZsDcPFxYU6lculaXdzc6V2lXIsWbMZay3GmMte7685/zBq2gJSUlLIHxxIzw7NeOvRO/H19spUvSIiInJjU1AjIiIiTJ6/nPtvbcfXrz160T5HT57hxc9+pmeHZgz98PnU9od7duLFz37muz8m8VCPjpQsEkqgny/D+j9P+4fe4IkPvuf3T16i35tfEp+QyPCPXsQjj3uma9t98Cijpy1g9LQF7Dl0jEA/H25t3YjenVrQpFblDMORXi98xOI1mzM1/usP9+aNR/pcss+RE2cIDvTLsO7C+YOJiYvnbGQUQQF+lxynTuWydG/TmDLFChF+Lpppi1by/R+TWLZ+G7N+/ghPjzyZqllERERuXApqREREBH9fb1Zt3sneQ8coWSQ0wz5/z11KfEIi993allNnI9Mc69SsLj+OnsL8lRtSz29QvSKvP9yb93/8g3YPvc7yDdv54c0nKF+ySKZqGjtzEQNHTWHlph14euShQ5Pa9H/mPjo0rUMe90sHPR8/dz9nI6MydZ2ShTO+3/+KjYvH4yLX9Dwf3sTGxcNlgpqFv32e5uu7urbine9/5/Nh4xj21ywe690lUzWLiIjIjUtBjYiIiDDghQd58O2vqNLtEcoVL0yjmpXo2LQunZrVxcXFsaTdjr2HAOj4yJsXHefE6fA0X7/UrwfTFq1k+Ybt3NKyAfd1b5fpmn4ZP5OVm3ZQuEAwA996ijYNa2b63JoVy2S6b2Z4eXoQdTbjNWXiEhJT+1yNl/r14ItfxzNr6VoFNSIiIqKgRkRERKBLi/psnfwzM/9Zw5I1m5m/cgO//j2bprWrMPmH93B3d8NaC8DQD58nJCggw3H+f3bKnkPH2L73IABhB44QGxef6UDj4+f68fukOYyftYRuT75LqSKh9OrYnJ4dmlGuxKVn5ZyJOEdCYlKmruPr7XnZ9WEK5Q9i+96DxCckpnv96fCJ03h7epDX3zdT10t/fS+CA/w4HR55+c4iIiJyw1NQIyIiIgAEBfjRp1ML+nRqgbWWt777ja+GT2DGktV0bdmA0sUKAZAvbwCt6te47HiJiUnc9/rnuLq48snz/Xj1y6G8+uVQvnn9sUzVU7NiaWpWLM2nzz/ArKVrGDV1AV8On8DHP/9JzYql6dWxOT3aNaVgSFC6c+986ZMsXaOmdqWyzFm2jtVbdtK4ZuXU9uTkZNZuCaNGhdKZWkg4I+HnojgVHkndquWv6nwRERG5sSioERERucklJydzLiaWQL9/Z4QYY6heviTgmJ0CcHvbxrz7w+98+NNIGteslG7h24hz0Xh65EmdcfL297+zbttuhn/8Ij3aNSVs/2GGjJ9Bm4Y16fp/uzRdiru7G52b16dz8/qEn4vir9lLGTVtPq99NYzXv/6VZnWq8N4Td1Onyr87MmX1GjU92jdlwNCx/DBycpqg5o+p8zkVHslbHZul6X/w6Eli4uIpVSQUd3fH49bp8EiCA/3Tjf3u9yMA6Ni0TqbqFRERkRubuTCNWURERG5cxhgbvWZihsfCz0VRuv39dG5Wl2rlSxESFMj+w8cZMm46Flg15jtC8+UF4LdJc3jigx8oGpqP3h1bUKxgCCfPRrJl136mLFjOmnHfU7xQAWYvXUv3p9/nrq6t+OmdpwHHYrtN736B46fDWT7qawoXyHdN97T/yHFGT1vI6GkLeKBHB56885ZrGu9yXv5iCD+MnEyX5vXp2LQOuw4e5YeRk6hWriRzfvkkNZAB6PDwGyxes5mtkwdTvFCB1PNXb95J09pVKVYwhIioGGYsXsU/67bSrHYVJp1/xexyfGp3w1p7ddN3REREJMdTUCMiInITuFRQk5CYyIc/jWLBqo3sPXSMqJhYQvMF0bxuVV7qdwelixZM03/Z+m188/tfLNuwnYhz0QQH+lGueGE6NK3LIz07ERkdQ/3ezxDg680/f3yFj5dn6rmbw/bR/N6XqFulHNN++iB1oeJrFRUTe9l1Zq5VSkoKP4yazNDxM9l35DhBAX50b92Itx7rS4CfT5q+GQU1UxasYPDYaWzdfYDT4ZG4ubpSrkQRerRvwhN9ul52J6sLFNSIiIjc2BTUiIiI3AQuFdRI7qKgRkRE5MaWNR9jiYiIiIiIiIjINVNQIyIiIiIiIiKSQyioERERERERERHJIRTUiIiIiIiIiIjkEApqRERERERERERyCAU1IiIiIiIiIiI5hJuzCxAREZGbR0pKCj+Onsov42ew78hxggL8uLV1I95+rC/+vt5XNNaxU2ep3eMJws9F8+kLD/Dknbek65OUlMzgsdMYMXkeYfsP4+bqSskioTxwe3seuL1Dmr5zlq3ji2HjWLd9N8nJKVQpW4IX7rudLi3qX9M9i4iIiFwJBTUiIiJy3bz+9a9898dEOjevx9N3dSPswBEGjprMmi1hzB7yMW5urpke6+XPfyYpOfmixxMSE7njuf4sWr2JXh2b82CPDiQlJbPr4BEOHD2Zpu+oaQt46O2vKV20IK882BN3Nzf+nL6QXi98xKB3n+Gurq2u+p5FREREroSCGhEREbkutu05wA+jJnNLywaM+vy11PZyJYrw+Pvf8dukOfS7rX2mxpqxZDV/zV3Ge0/ezVvfDs+wzyc/j2H+yg1M/uE9mtetdtGxEhOTePWLX8gfFMii3z4nwM8HgEd7dqbxXc/zyhdD6Nqifmq7iIiISHbSGjUiIiJyXYydsZiUlBSe7Jv2FaW+nVsSHODH6GkLMjVOdGwcz30yiH7d21GnctmL9hk4ejJdmtened1qWGs5Fx2TYd8tuw9wKjySLi3qpQlj3Nxc6dGuKeHnopmycEXmblJERETkGimoERERketizdYwXFxcqFO5XJp2NzdXalcpx7ptu7HWXnacD38aRWx8PO8+efdF+/yzbivnomOpWbE0L372M6HNehParA/FW9/NO9//TlLSv69MJSQmAuDl6ZFuHB8vR9vqzTszdY8iIiIi10qvPomIiMh1ceTEGYID/fDI457uWOH8wcTExXM2MoqgAL+LjrFhxx4GjprMwLefJK+/70X7he07DMD3IyeTx92ND5++j6AAP/6csZDPh43jyInT/Pz+swCULV4YV1cXlqzZgrUWY0zqOItWbwLg0PFTV3PLIiIiIldMM2pERETkuoiNi8fDPX1IA+B5PryJjYu/6PkpKSk81X8gDWtUpG+XSy/uGxUTC8DZyHNM/fF9HrqjI7e3a8KYL9+gWe0qjJw6n+17DwKQ19+Xu7q0Yv323Tz+wfds2bWfnfsO8e4PvzPznzUAxFyiLhEREZGspBk1IiIicl14eXoQdTY2w2NxCRd//eiCn/6cysYde1k26qvLXsvTIw8A9aqUp1yJImmO9enSkkVrNrN49WYqlCwKwBcvP4wF/pgyj98mzgGgWMH8fPXKIzzx4Q/4+1zZ1uEiIiIiV0tBjYiIiFwXhfIHsX3vQeITEtO9/nT4xGm8PT0u+jpTxLlo3v/xD3q0b0Ied3d2HzwKwJETpwE4HR7J7oNHKZgvCG8vDwoXCAagQL7AdGOF5gsCIPxcVGqbl6cHP779FB8+fS879h7Cy9ODauVKMHfFBsDxepSIiIjI9aCgRkRERK6L2pXKMmfZOlZv2UnjmpVT25OTk1m7JYwaFUqnWR/mv8LPRXEuOpZRUxcwauqCdMcH/DKWAb+MZdxXb9KxWd3UBYsPHz+dru+R8+vNhOQNSHcsONCfRjUrpX49e+laANo3qZ35GxURERG5BgpqRERE5Lro0b4pA4aO5YeRk9MENX9Mnc+p8Eje6tgste3g0ZPExMVTqkgo7u5uhOQNZMSnL6cbc9ueg/QfNIq7uraiQ5M61KxUBoAShQvQsHpFlm/czrptu6lZsTTgCIWG/TULN1dXWjeoecl6N4XtY9iEmTSuWSlNvSIiIiLZSUGNiIiIXBeVShfj8T5d+GHkZHo9/xEdm9Zh18Gj/DByEnUql+Xebm1T+z70ztcsXrOZrZMHU7xQAby9POjepnG6MYPP78pUtVzJdMc/f/lh2j34Gl0ff5vHenchKMCP8bOWsHpLGK891IuiBUNS+/4yfgYz/1lDoxqVyBvgx+awfQz/ezYhQYEM+eC5bPqOiIiIiKSnoEZERESum0+e60fR0BCGjp/JrKVrCArw44Hb2vPWY31xd8/ax5IaFUoxd9invD9wBD+MnExcQgLlSxbhp3ee5u5bWqfpW6FUUcbOXMyXv47nXEwshfPno99t7XmpXw+CA/2ztC4RERGRSzHWWmfXICIiItnMGGOj10x0dhmSBXxqd8Nam/FiPiIiIpLruTi7ABERERERERERcVBQIyIiIiIiIiKSQyioERERERERERHJIRTUiIiIiIiIiIjkEApqRERERERERERyCAU1IiIiIiIiIiI5hIIaEREREREREZEcws3ZBYiIiIhc0H/QKD4aPPqix0sXLcjGv38CYO7y9Uyct5T12/ewOWwf8QmJTB/0Ic3qVE133tSFK5g0fzkrN+7g0PFT+Pt6U6FUUZ65uzvtGtXKtvsRERERuVIKakRERCTHuKVVQ0oVLZiufem6rQydMJMOTeuktv05fSFjZiyiYumiVCxVjPXbd1903Cf7D8Tfx5suLepTtlghzkRGMWLSXLo/9R7vPN6Xlx/omS33IyIiInKljLXW2TWIiIhINjPG2Og1E51dxlXr9fxHTFm4ghWjv6FK2RIAHDlxmuBAfzzyuPP9yEm88sUvF51Rs2DlRlrUq5amLSY2nkZ9n2Xf4RPsnT2cvP6+1+NWrplP7W5Ya42z6xAREZHsoTVqREREJEc7cSacGUtWU7ty2dSQBqBQ/mA88rhnaoz/D2kAvL086NCkLolJSYTtP5xV5YqIiIhcEwU1IiIikqONmrqApORk7rmldZaPfeTEKQDyBwVm+dgiIiIiV0NBjYiIiORov0+ei5dHHu5o3yxLx924cy8T5y2ncc1KlChcIEvHFhEREblaCmpEREQkx1q9eSfbdh+gW+tGBPj5ZNm4J89GcOeLn+DlmYcf3noyy8YVERERuVba9UlERERyrN8mzQHI0teezkSco+vj73D01BnGf/0WZYsXzrKxRURERK6VghoRERHJkWLj4hk3cwklC4dmuJPT1TgTcY4uj73Nzn2H+POL1zNcZFhERETEmfTqk4iIiORIE+ctIyIqmrtvaY0x174b9YWQZvveg4z6/DXaNqqVBVWKiIiIZC3NqBEREZEc6ffJc3FxceGurq2ueayzkVF0ffwdtu05wKjPXqN949pZUKGIiIhI1lNQIyIiIjnOgaMnWLhqE20a1qRwgXwZ9tkUto9pC1cCsGLjdgBGTVvAsvXbAHi0V+fUBYi7Pv4267fv5o72zTh7LopR0xakGatV/RoUCA7MnpsRERERuQIKakRERCTHGTF5HtZa7rmlzUX7rN+2m/d//CNN228T56T+vnen5qlBzbptuwEYO3MRY2cuSjfW9EEfKqgRERGRHMFYa51dg4iIiGQzY4yNXjPR2WVIFvCp3Q1r7bUv2iMiIiI5khYTFhERERERERHJIRTUiIiIiIiIiIjkEApqRERERERERERyCAU1IiIiIiIiIiI5hIIaEREREREREZEcQkGNiIiIiIiIiEgOoaBGRERE0uk/aBQ+tbul/lq5aYezS7ohrN0alub72n/QKGeXJCIiIjmMm7MLEBERkZzr0xceIDjQn1JFCl60z7FTZ6nd4wnCz0Xz6QsP8OSdt1y0r7WW1v1eYcXGHXRpXp8/v3z9ktd/69vhfDl8AgG+PhxZOPKq7yNs/2FGT1vA3OXr2XvoGHEJCZQsUpDb2jTiiTtvwcfLM8PzRk6dzy/jZ7Bl135SUizFCuWnR9smvPpQrzT9tu89yKdDxrB8w3aOnz5L/qBA6levwAv33U61ciVT+5UoHMqQD57jdHgkr3zxy1Xfj4iIiNy4FNSIiIjIRXVtUZ/ihQpcss/Ln/9MUnJypsYbMs4RemTG5rB9fDtiIr7eGYcoV+K3iXMYPHYanZvXp1fH5ri7ubJo9SbeG/gH42f/w4JfB+Dl6ZHmnEff+5Y/pszn1lYN6d2xBS4uhn2Hj3Pg6Ik0/bbs2k+Le18iwM+Hfre1p3D+YPYePsawCbOYPH8584YNoEaFUgAEBfjRp1ML9h85rqBGREREMqSgRkRERK7ajCWr+WvuMt578m7e+nb4JfsePXmGd77/ndce6s0b3/x6yb4pKSk81X8gbRrWJDo2jo079l5Tnbe1bcyL9/cgwM8nte3BHh0pXWwEA34Zy/CJc3i0V+fUY8P/ns3vk+by8/vPcmfnlpcce8i46cTExTN32KdpZs+0ql+Djo+8yR9T5qUGNSIiIiKXozVqRERE5KpEx8bx3CeD6Ne9HXUql71s/5c++5kiofku+WrUBT+Pm86mnXv54uWHs6JUalYskyakueD2tk0A2Lr731k+1lo+HzaOGhVKp4Y056JjsNZmOHZEVAwABUOC0rRf+NrHyyPdOSIiIiIXo6BGRERErsqHP40iNj6ed5+8+7J9Zyxezd/zlvHNa4/h5uZ6yb5HT57m3e9H8MqDPSlR+NKvXV2rwydOA5A/KDC1bee+w+w5dIwG1Svwyc9/UrTVXYQ260Oh5nfy9EcDiYqJTTNGq/o1AHjwra9YtWkHR06cZum6rTz23neE5svLg7d3yNZ7EBERkRuLXn0SERGRK7Zhxx4GjprMwLefJK+/7yX7RsfG8dyng7iraysa1qh42bFf/OxnCoYE8czdt2ZRtRlLTk7m0yF/4ubqSs8OzVLbw/YfBmDcrCUkJibx8gN3UKJwAaYvXsUv42cStu8w0wZ9iDEGgL5dWrL30FG+HzmJFve9nDpOncplWTLiCwqGBGfrfYiIiMiNRUGNiIiIXJEL68c0rFGRvl1aXbb/Bz+OJComlg+fvu+yfactWsnfc5cx9ccPyOPungXVXtzLX/zCio07ePeJuylXokhq+7nzM2ZOnY1g8sD3UmfM3Nq6EdbCH1PmMWvpWto3rg2AMYYiBUKoVq4Ut7RqQKkioWwO28/Xv/3FHc/1Z+qPH2T42pWIiIhIRvTqk4iIiFyRn/6cysYde/nq1Ucu23f99j0MHD2ZD566h3x5/S/ZNyomluc+GUSvjs1pUa9aVpWbofcH/sFPf06l323tealfjzTHvDzyAFAof3BqSHNB3y6ONWsWr9mc2vbdHxN59pOf+PaNx3iqbzc6N6/PKw/25PdPX2bdtt18O+LvbL0XERERubFoRo2IiIhkWsS5aN7/8Q96tG9CHnd3dh88CsCR82u9nA6PZPfBoxTMF4S3lwcvf/4zZYoWokntKql9L4iOi2P3waME+vkQHOjPV8MncPJsBA/16Jimb2xcPCk2hd0Hj+KZx53CBfJd0z30HzSKT38Zw923tObb1x9Ld7xwfserSgWCA9MdC83nWCA4PDIqte2HkZMpX7IIFUsVS9O3TcOa+Pl48c+6rddUr4iIiNxcFNSIiIhIpoWfi+JcdCyjpi5g1NQF6Y4P+GUsA34Zy7iv3qRjs7ocPHaKA0dPUL17+kBk/ooNVLv1UZ6+61Y+fu5+Dh47RXxCIm0eeDXDa1e79VFqVizNkhFfXnX9/QeN4qPBo+nbpRUD33oydZ2Z/6pcpgSeHnk4cuJMumOHT5wCICQoILXt+Omz+Hp7putrrSU5OYXk5JSrrldERERuPgpqREREJNNC8gYy4tOX07Vv23OQ/oNGcVfXVnRoUoealcoA8PVrjxITG5eu/12vDKB25bI8d093yhYvDMCjvTrRsWmddH37DxrF/iMnGPzeM+T197vq2j8ePJqPBo+mT+cW/PTOU7i4ZPwGuLeXB91aNeTP6QuZNG8Zt7RqmHpsyLgZAKnr0wBUKFWUzWH7Wb15J3WqlEtt/3vuUmLi4qlZqfRV1ywiIiI3HwU1IiIikmneXh50b9M4XXvw6k0AVC1XMs3x/wYa/69gvqA0fWtVKkutSmXT9Rs0ZhpHTpxJd939R45TqevDNK1dhRmD+1+y7kFjpvLhoFEUDQ2hZb3q/DljUZrjpYqEUr9ahdSv33vibuav3MD9b37Jo706U7xgfmb+s4YZS1ZzZ+eWNKj+7+5Vrz/Umz4vfUKXx9/moR4dKVkklC279jN0wkzyBfrzdN9ul6xNRERE5L8U1IiIiEiudC7asTtTwZCgy/Zds2UXAAePneThd75Jd7xvl1ZpgpqiBUNY8OsA3v1hBCMmzSUiKoZSRUL56Nn7earvLWnO7dqyAfOGfcqAX8YyZsYijp8OJyjAj9vaNuHNR/pQJDTkWm5TREREbjIKakREROSizkZG4+MVSaCfD25urhft16xOVaLXTMz0uFfS92KzZRat3oS7mxuvP9z7smMMfu8ZBr/3TKavCVC8UAGG9X8hU33rVS3PuK/fvGy/pKRkws9FczYy+opqERERkZuHghoREZEbmHGsltv1as9v3Pc5AOb/OoB6VctnVVlZYs6ydTxwe/vUNW5yg40799D07hedXYaIiIjkYMZa6+waREREJIsZY1yA24E3AAvUuJJZLHsPHWPv4WOpX9epXA5/X++sLvOmcy46hlWbd6Z+XbJwKCWLhF7RGD61uwF8DHxlrT2ZpQWKiIiI02lGjYiIyA3EGOMG9MIR0JwD3gSmAle0R3TJIlceIMjl+fl406p+jawYKi+wwxgzDPjcWns0KwYVERER58t4X0oRERHJVYwx7saYfsA24FHgWaCBtXaK1fTZG4619jGgGuAKbDHGfGeMKerkskRERCQLKKgRERHJxYwxHsaYR4Ew4E7gQWttU2vtLAU0NzZr7SFr7bNARSAW2GCMGWyMKeXcykRERORaKKgRERHJhYwx3saYZ4DdOBYL7mOtbWOtXejk0uQ6s9Yet9a+DJQDjgMrjTG/GmNy1urPIiIikikKakRERHIRY4yvMeYlHAFNC6CbtbaztXaZcyvL+Rat3oRP7W78Pmmus0vJFtbaU9bat4AyOP58LDHGjDLGVHFyaSIiInIFtJiwiIhILmCMCQCeAp4G5gHtrLWbnFvV1Vm0ehMdH3kz9WsXFxf8fbwomD+YmhVKc0eHZrRtWBPHzuJypay14cAHxpivgceAOcaYpcCH1tq1zqxNRERELk9BjYiISA5mjAnGsTDwYzh2b2pqrd3h1KKySO9OLWjTsCbWWqKiY9m5/zBTFqxg5NT5tKxfnRGfvkygn6+zy8y1rLXngAHGmO+Bh4HJxph1OAKb5c6tTkRERC5Grz6JiIjkQMaYAsaYT4GdQChQ31p7740S0gDUrFiaPp1acGfnljzcsxOfv/QQWyYN4qm+3Zi/YgP3vf5FpsaJiY1n9lJNFLkYa22MtfZroDSOsO9PY8xsY0wz51YmIiIiGdGMGhERkRzEGFMYeAm4BxgJ1LTWHnBuVdePq6srnzzfjzVbwpi9dC1L122lUc1KAGzcuZcPfxrJ0nVbSUxKomzxwjzaqwvTF68kLj6Rto1qpY4zZcEK+g8exY69h8iX15+7urSmca3KGV4zPiGRb0f8zZ/TF7Ln0DE88+ShUc1KvPnondSocONsoGStjQN+NMb8AtwFDDXGHAE+AOZolzAREZGcQUGNiIhIDmCMKQ68CvQChgFVrLVHnFuV89zTrQ1L129lxpLVNKpZibVbw2j/0Bt45HHnoTs6UjBfEFMXreSRd78hJCiADRN+TD130rxl3Pnyp5QoVIDXHuqNq6sLIybNZcaS1emuk5iYxK1Pvsvyjdvp06kFj/TsTERUNL/+NZs2/V5h1pCPqFWp7PW89WxnrU3AEdL8BvQGvgUijDEfAlMV2IiIiDiXghoREREnMsaUAV4DbgUGA+WttSedWlQOUKVsCQB2HXBkVS99PoSExCQW/vY5lUoXAyBf3gAWrd7E6fBznDgTToCfD8nJybz0+RDy5fVn4W+fERzoD8ADt7Wnfu9n0l3npzFTWbx2C39/9w5tGtZMbX/4jk7U7fkUr3/9KzMG98/mu3UOa20SMMIYMwq4DegPvH8+sPnbWpvi1AJFRERuUlqjRkRExAmMMRWNMSOA5cBBoKy19jWFNA7+vt4AREbHcOJMOMs3bKdz83qpIc3KTTt45ctf+GPAK6SkpDBh9j8ArNu2m0PHT3HPLW1SQxqAAD8fHri9Q7rrjJ62kAqlilKjQmlOnY1M/ZWQmESrBjVYun4rsXHx1+GOncdam2ytHQvUBN7DERxuNMb0Mca4Orc6ERGRm49m1IiIiFxHxpjqwBtAc+Br4AlrbYRTi8qBIqNiAPD38Wb/4eMAVCxVFID9R45z50ufMOT952hQvQIAew8fS/O/5UoUSTfmhfP/a8feg8TGJ1C8zd0XreV0eCRFQkOu4W5yh/MzaCYaYyYB7YG3gHeNMR8BI621iU4tUERE5CahoEZEROQ6MMbUwfGDb13gC+B+a220c6vKuTaH7QOgbPHC5MnjDoC3lycR56K5/ZkPeKlfD1rUq8aZiHMAxMYnXNV1LFCtfEn6P3PfRfvkyxtwVWPnVufXqJlhjJkJtMDx5/YdY8wnwHBr7Y09xUhERMTJFNSIiIhkI2NMY+BNoArwKdDbWhvr3Kpyvt8mzgGgQ5M6lChUAIDtew7S95VPaVijEo/07AzAtj2ODbEu9ClZOBSAnfsOpRtz256D6dpKFy3IqbORtKxXHWNM1t9ILnY+sJkPzP/Pn+M3jTEDgF/051hERCR7aI0aERGRLGYcWhlj5gEjgL+AMtba7/XD7aUlJyfz2lfDWLp+K+0b16ZhjYoE+PnQrnFtRk6dT0JCIl++/DAAKSkpfDFsPABdW9QHoGbF0hQuEMxvk+ZwOjwyddzIqBh+GT8j3fXu7NySIydO88OoyRnWc/x0eBbfYe5krf3HWtsRuB1oC+w2xrxgjPFxcmkiIiI3HM2oERERySLGMSXjwtoe+QCt7XEJ67btZtS0BQBERceyc/9hpixYwYGjJ2jdoAbD+r+Q2rd6+ZLM+mcNYQeO8NVvE/Dz8WbS/OUsWr2Jfre1p06VcgC4urry6fMPcPern9H8npe4r3tbXF1d+H3iXIIC/Dh4LO1azU/06cq8Fet55YtfmL9iA01rV8Hf15uDx06yYOVGPPO4M/0G3fXpalhrVwHd/rPW0svGmK+BH6y1kZc8WURERDLFOGa1ioiIyNU6H9DcguPVEC8c2xyPsdYmO7Ww/zDG2Og1E51dBgCLVm+i4yNvpn7t4uKCr5cnhQsEU7NiGe7o0Ix2jWqlHp+9dC33vf45g959hjEzFvLPuq2cjYyiVNGC3HdrW57o0zXda0sT5y3j45//ZMfeg4QEBXBXl9Y0rlWZW554h5/eeZq7b2md2jcpKZnBY6cxatoCtp9/PapgSBC1K5elb5dWabbtzgl8anfDWpsj3tMyxlQCXscRUP4AfGOtPevcqkRERHI3BTUiIiJXyRjjguNVkDeBZOBD4O/zu+fkKDkpqLlSJ86EE7b/MI1rVnZ2KTlCTgpqLjDGlMGxrfetwGDgS201LyIicnW0Ro2IiMgVMsa4GWPuAjYDL+CYUVDbWjshJ4Y0uV3+oECFNDmctXaXtfYBoDYQCOwwxnxhjCno3MpERERyHwU1IiIimWSMyWOM6QdsBx4GngEaWmunWk1RFcFau89a+xhQFXAFthhjvjfGFHVyaSIiIrmGghoREZHLMMZ4GmMeA3YCfYB+1tpm1trZCmhE0rPWHrbWPgtUBKKB9caYn40xpZxbmYiISM6noEZEROQijDHexphngd1AZ6C3tbattXaRcysTyR2stcetta8A5YBjwEpjzHBjTHknlyYiIpJjKagRERH5P8YYP2PMy8AeoBnQ1VrbxVq73MmlieRK1trT1tq3gDJAGLDYGDPaGFPVyaWJiIjkOApqREREzjPGBBpj3sIxg6Ym0MZae5u1dq2TSxO5IVhrw621HwKlgTXAbGPMX8aYWpc5VURE5KahoEZERG56xphgY8yHwC4cP0A2tdb2sdZudnJpIjcka+05a+1nQClgATDJGDPVGNPAuZWJiIg4n4IaERG5aRljChhjBuBYJDg/UM9ae5+1doeTSxO5KVhrY6y13+AISCcDo40xc4wxzZ1cmoiIiNMoqBERkZuOMaawMeYbYBvgBdSw1j5srd3j5NJEbkrW2nhr7U9AWWAk8IsxZpExpq0xxji5PBERketKQY2IiNw0jDEljDE/ApuARKCytfYpa+1BJ5cmIoC1NtFaOxSoAAwCvgGWGWO6KLAREZGbhbHWOrsGERGRbGWMKQO8DnTD8cPfV9bak86t6vry8vQ4FhefUMDZdci18/TIczw2Lj7U2XVcD8YYF+A24E3AAh8Cf1lrU5xamIiISDZSUCMiIjcsY0wlHAFNe+B74Dtr7RnnViUiV+r8bJquwFs4XlfsD4yx1iY7tTAREZFsoKBGRERuOMaYGsAbQDPga+AHa22kM2sSkWt3PrBphyOwyQ98BPxhrU10amEiIiJZSEGNiIjcMIwxdXH8AFcH+BwYZK2Ndm5VIpLVzgc2LXC8ElUK+AT41Vob78y6REREsoKCGhERyfWMMU1w/MBWCfgUGGqtjXVuVSJyPRhjGuEIaKsAA4Ah+u9fRERyMwU1IiKSK53/RL0ljh/QigMfA8OttQlOLUxEnMIYUwdHYFsf+AL4yVob5dyqRERErpyCGhERyVXOBzQdcPxAlg/HoqKjtEaFiAAYY6rh+PuhOY7tvX+w1kY4tyoREZHMU1AjIiK5wvltem/B8QOYJ45tesdq1xcRyYgxpiKOXd86Aj8A32jXNxERyQ0U1IiISI5mjHEFbscR0CQBHwATrbUpTi1MRHIFY0wZ4FWgO/Az8KW19oRzqxIREbk4F2cXICIikhFjjJsx5m5gM/Acjh+0altr/1JIIyKZZa3dZa19EKgF+APbjTFfGmMKOrk0ERGRDCmoERGRHMUYk8cY8wCwHXgQeApoZK2dZjUNVESukrV2v7X2cRy7QxlgizHmB2NMMSeXJiIikoaCGhERyRGMMZ7GmMeBMKAX0M9a29xaO0cBjYhkFWvtEWvtc0BFIApYZ4z52RhT2smliYiIAApqRETEyYwx3saY54DdOBb97GmtbWetXeTk0kTkBmatPW6tfQUoBxwFVhhjfjPGVHByaSIicpNTUCMiIk5hjPEzxrwC7AGaAF2stV2ttSucXJqI3ESstaettW8DpYEdwCJjzJ/GmKpOLk1ERG5SCmpEROS6MsYEGmPexhHQVAdaW2tvt9auc3JpInITs9ZGWGv7A6WA1cAsY8xfxpjaTi5NRERuMgpqRETkujDG5DPG9MfxilNJoLG19k5r7RYnlyYikspaG2Wt/QxHYDMfmGiMmWaMaejk0kRE5CahoEZERLKVMSbUGPMZsBPIB9Sx1t5vrd3p5NJERC7KWhtrrf0WxytRE4GRxpg5xpgWxhjj5PJEROQGpqBGRESyhTGmiDHmW2Ar4AFUs9Y+Yq3d6+TSREQyzVobb60dhGPR4T+An3GsY9NOgY2IiGQHBTUiIpKljDEljTE/ARuAeKCStfZpa+0hJ5cmInLVrLWJ1tphOLb1/hH4ClhujOmqwEZERLKSsdY6uwYREbkBGGPKAq8DtwA/AV9Za085tyoRkexhjHEBbgPePN/0ITDBWpvivKpERORGoKBGJIfwyuN2LC4xuYCz65Cs5enuejw2ISnU2XVkJ2NMZRwBTTvgO+A7a+1Z51YlInJ9nJ9N0wV4C/AB+gN/WmuTnVrYVXD38DqWlBCnZxHJFLc8nscT42Nv6GccEWdRUCOSQxhj7MmhDzu7DMliIf0GY629IafEG2NqAm8ATXG8AjDQWhvp3KpERJzjfGDTFkdgUwD4GBhhrU10amFXwBhj31lwxtllSC7xXougG/YZR8TZtEaNiIhcEWNMPWPMZGAK8A9Qylr7iUIaEbmZWYdZQDPgYeAuYKcx5hFjjIdzqxMRkdxEQY2IiGSKMaapMWYmMBaYDpS21n5lrY12cmkiIjnG+cBmgbW2NdAX6AbsMsY8bYzxcnJ5IiKSCyioERGRizIOrY0xC4BfcYQ0Za21A621cU4tTkQkh7PWLrXWdgK6Ay2BPcaYF40xvk4uTUREcjAFNSIiks75gKYTjlebfgB+Acpba4dYaxOcW52ISO5irV1tre0OtAfq4ghs3jDGBDi5NBERyYEU1IiISCpjjIsxpjuwGvgU+AaobK393Vqb5NzqRERyN2vtRmttLxzr2JQHdhtj3jfGBDm5NBERyUEU1IiICMYYV2NML2AD8CbwAVDdWpsrt5gVEcnJrLXbrbX3APWBQkCYMeYTY0x+J5fmFOFHD/BeiyAWDPvE2aWIiOQIbs4uQEQkO+04fJYvp6xlyfYjhEfHE+znRc0SIXx2TxPyB3hf8tx/th/h1gFTMjzWo0EZfny4VXaUfF0ZY9yAO4HXgTPAy8AMa611amEiIjcBa+1u4EFjzPvAK8B2Y8xw4DNr7RHnVic51emDu9g4ewy7V83n7JF9JCXEk7dQCSq16EaDHo+Sx8snU+O81yLjiVx++Qry/LgtWVmyiFwhBTUicsOat/kg9343ixL5/XmoTRVC/L04FRnH6t3HOReXSP5MrgxwT/MKNChXME1b8RC/bKj4+jHG5AHuAV4DDgJPAPMU0IiIXH/W2gPAE8aY/sCLwGZjzGjgU2vtfudWJznNuml/sOrvXyjfuCNV296Bq6s7+9YvZv4v/dm64G8eGDgLd4/MbTBWrFpDane5N02bu9elP8gSkeynoEZErrv9JyMJ9PEgwNsj265xMjKWRwfNo1H5Qox4uj3ublf/pmed0gW4o2HZLKzOeYwxnsADOD653QbcZ61d7NyqREQE4PwsmueNMZ8AzwNrjTF/AR+fn30jOVxiXAwRJw6Tr1j2PTdUatGNJn2fw9PXP7WtTrf7CSpcmsUjvmDd1BHUu+2hTI2Vt2AJqrXrmV2lishVUlAjkotExSbw7fQNLNhyiH0nIomJT6JoPl/uaFiWpzvVwM01bRhx4NQ53v5zGQu3HAagSYVCfNinId0HTKFoPj8mvtI1Tf+FWw7x/YwNrN1zkvjEZEqHBnB/y0rc17LSNdceHh3PxFW7GbtsFyt3HWPuO7dRtVj2BTXDF2zlbHQ87/Ssj7ubCzHxSbi7ulx1YBMdn4ibiwse7q5ZXOn1YYzxAR7B8UntaqCHtXalc6sSEZGMWGtPAK8aYwYAzwArjDHTgf7W2u3OrG399JFM/PRJ7vp8PPvXL2XDzFFEh58mpHg5mt/3ChWadEp3zp7VC1j65/cc3r6WpPg4/PIVpFTt5rR97D08vDOeoWpTUlj8x1fsXjmX04d2E3suHP+QQlRs2oUW97+a5vUem5LCivGDWDf9D8KPHgADfsGhFKvagC4vfIWLq+Pf7oObV7Dot885GraRuKgIvAOCCS1Theb3vkzhirWv+ntiU1LYu3YRG2ePZduiydTs1JcOT3181eNdTqHyNTJsr9yqO4tHfMGJvduuaLzkxASSExPI461d40VyCgU1IrnI0fAY/li8na51StGzUVlSUmD+loN8/NdqDpw6x9f3N0/teyYqjq4fT+JkZCz3tqhIuUJ5Wb7zKN0HTCEmPv3mPb8t2MaLvy+mTqkCPNelJt4ebizccpiXfl/CvpORvNuzwRXXm5CUzOwNBxi7PIzZGw6QkJRC1WLBvHtHA0oVSPve0elzcZke198rz2UDlzkbD+Ln5U5ETDwt3hnPloOncTGGumUK8EHvBtQsmfn1Gl8fuZSnhy4EoExoAA+1qUK/VpUzfb4zGWP8gceBZ4ElQCdr7Xpn1iQiIpljrT0DvGOM+RLHK6oLjTELcAQ2G51Z25yf3iUpMZ56tz1MSkoy66b+zp9v3U3P94dTsWmX1H6r/v6Fad+8TGCBotS99QEC8hcm/Pghti+eQmzE2YsGNcmJCSz783sqNr+FCs264ObuwYGNy1g2diDHdm3mni//Su27aMQXLBj6MVXb3EHdbg8AcPboPnb8M4OUpERcXF05dSCM31+8nbyFStCw1xN4+wcRdeYEBzYu4/ierVcV1BzfvYUNs/5k89zxnDt1FO+AYKq170WtLvek6ZcQE0VSQnymxnTL43HVgUnkSccHcz5BIZk+Z+vCiWyc/Sc2JQWfvPmp2uZ2Wt7/mkIbESdTUCOSixQP8WPD533TzJx5uG0Vnhgyn1FLdvLqrXUIzev4hOm7aes5cjaanx5uxe0NygBwf8tKvDdmOd/PSPtsdyw8htdHLuX2+mkXyO3XqjKvj1zKjzM3cV+LSpTI709mrAg7xrhlYUxctYez0fEUz+fHEx2q06NBGcoVypvhORWe+S3T34e/X+5C4wqFLtln17FwkpMtvb+cTte6pXiha00OnoriyylrufXTKcx861YqFL70bqhuri50qFGcNtWKEhrow5Gz0fy2cBuvjPiHsKPhfNy3caZrvt6MMXmBp4EngVlAa2utVgYUEcmFrLURwEfGmG+BR4GZxpgVwAfW2jXOqCkuKoJHf1mEh4/j2aB253v4/p76zPjuNco36oiLqysRJw4x4/vXKVCqEvd/OzW1L0DrB9/kUsuiuebx4PnxW9OstVL31gcIKlqaRcM/49CWVRSpXBeA7YunUqZea257c1CaMdo++l7q73evmkdiXAx3fz4B36Cr31wr8uQRNs0dx6bZYzm+ewvunt6OtWLa3EGZuq1wcUv/49W0b15hw8xRmRq/evs+3PraD1dcV0pyMot++xwXVzeqtu6RqXMKV6xFpebdCCpSmrioCHYunc7ysT9yYNMK7v9mCm4enldch4hkDQU1IrlIHrd/X7tJTEohKi6BFAstKhdhzNIw1u87SYfzQc3MDQcomNeH2+qXTjPG4x2qpwtqJq/eQ3xSMnc1q5BuZkv76sX4ec5mFm09fNmg5pO/VjN+eRj7Tp4j2NeTW+uVpkfDMtQrE3rZexv3Qvqp0hdTuWjwZftExSWSnGLp0aAM3z/QIrW9eol83DpgCp9PWsuQx9pccoz6ZUOpXzZt7fc0r0C3T6cwZO4W7m5ekUpFLh32XG/GmHw41jV4BJgINLbW7nRuVSIikhWstVHA58aYH4AHgb+NMZuAD621S69nLbVvuT9N8OIdGEzNznexdNS3HA3bQOEKtdi6cBIpSYk0v/flNH0vMMZcdHxjTGpIk5KURHxsFDY5mZI1m7Fo+Gcc3r42Najx9PHnxL7tHN+9hQKlM57xeuH6WxdMpPYt9+Hq5n5F97t71TyWjv6OvesWY4wLpWo3p1Gvp6jQpNNlZ5807vMU1drekanr+OW7/DNTRmZ8/zqHtqyi1UNvZXp9nAd/nJPm6xod+jD35w9Y8sdXrJn6G/Vve/iqahGRa6egRiSX+XnOZoYv2EbY0XBS/u+TqIiYhNTfHzh5jrplCqR7CArx9yLAO0+atrCj4QAX3YoaHIvzXs4Xk9cCjoDjm/ubUTo08LLnXNC8cpFM980MT3c3ouMT6d24XJr2xhUKUSTYl6U7jl7VuK4uLjzdqQZ9v5nB3E0HckxQY4wJxbH+TD9gDFDbWrvPqUWJiEi2sNbGAt8ZYwYD9wF/GGP2AB8ACzPawe/8q7AVrbUrsqKGjMKAkOLlATh7ZB+FK9TizKE9AISWqXpV19g0dzzL/vyB47s3k5Kc9rXtuKiI1N+3euhN/nzzbn56oCkBBYpSvFpDStdrTeUW3XB1dzzzVGl1G5tmj2H6t68w9+cPKFK5DiVqNqVamzsIKHD5Z5BNc8azZ81CPP0C6fTsZ1Rp2R3jkrl170JKVCCkRIUruPMrM++X/qz662dqdb2Xpn2fu6axmvZ9jiUjv2bXijkKakScSEGNSC4ycMZG3hmznNZVi/JY+6rkD/Amj6sLGw+c4v2xK9MFN5l14Xnup4dbkc8v42muxUMu/9rTb0+1Y8xSx3o0DV4fQ90yBbi9fhm61S1FPv9LbxN5PCIm0/Xm9fFIM7soI4WCfAg7Gk7+gPRbTBYI8Gbj/lOZvt7/K5bP8cnZmStYVye7GGOKAi8DfYHfgWrW2kPOrUpERK4Ha208MMgYMxTHvwODgePGmA+BWf8X2PgDU4wxba/XWmWpl7/EzJmL2bpwEhM+eIgilevS8ZkB+IcUws09D5GnjjLxkyewKSmpfYtWrsfTf6xh16p57Fu3hH3rF7Nx9hgWj/iCB36YhaevP255PLj7i784vM3R78CGpSz89VMW/vopPd8bTrlG7S9ZT9O7nsMnKITNc8Yx4YOHmP3j21Ru1Z1qbe6gYLnqlzw3LiqSpPjLf+AF4ObhlWY3p8tZMOwTFv/+BTU63kmX57/M9HkXk8fbF2//IGIizlzzWCJy9RTUiOQiY5eHUTyfHyOf6YCLy78PPftORqbrWzSfL7uPR2CtTTOr5mRkbJqZN0Dqwr7Bfp7XNLOlY80SdKxZgoiYeCau3MOYZWG8NvIf3hy9lBaVi3B7/TJ0rFUCH4/0042rPDci09fJzBo1NUuGEHY0nCNno6n4f7NejpyNvmxwdCl7jju+3yH+6UOg68UYUxJ4FbgD+AWoZK095rSCRETEaay1icCvxpjfgV7Al0D0+cBmsnU4ZIx5ChhnjKljrQ2/lmueOhCWru3k/h0A5C1UAoDgoo7Xr4/t2kTegsWvaPxNs8filseTe778O806NbtWzs2wfx5vXyo1v4VKzW8Bzi9i/PVLrJ/+Bw3ueCy1X+GKtVMXDo44cYhBD7Zg3i/9LxvUBBctQ9tH3qXNQ2+zd91iNs4aw9opv7F8zEDyFStLlTY9qNq6B0GFS6Y7d8Z3r2XLGjULhn3CwuEDqN6+D7e89O0lXyXLrLhzEcREnKZIpTrXPJaIXD0FNSK5iOv5f4AtFnD8PjYhiZ/npF8jtn2N4vwwYyMTVuxOXUwYYOCMDen6dqtbiv7jV/Hp36tpUC4UT/e0fzVExiTg4e6a6a2pA7w9uKdFRe5pUZH9JyMZt2wXY5eF8djP8/H2cKNjzRJ82LthmrAkq9eo6dmwLGOWhjF8wVZaVy2a2j5z/X6Ono3m7mZppyCHHQ3HzdWFkv9Zh+dMVBxBvmlnGMUmJPHF5LUYA22qFeV6M8aUA14HugI/AuWstVc/PUhERG4Y1tpkYKQxZjTQHXgPeP98YDPBWjvaGNMEGGaMuS2jV6Qya82kYdS9tV/qrk0x4adZP+0P/EMKUbCsY4ZJpea3MGfQeywa/hmla7dIt5bL/3+Y9F/GxQWMSTNzJiU5maWjv0/XNyb8NN6BaZ8NCpat5jgWeeaiffxDCuMTGExsZOZnjxgXx/o0pWo3p/Nzn7F9yTQ2zvqThb8OYMHQjylSqQ7N732ZMvX/XQcvO9aoWTh8AAuHD6Bau150e+W7S76GFXH8EIlxMeQtXDJ1bZ6YiDN4B6R/fXvukA8AKNvw0sGViGQvBTUiuUjn2iX5aMIq+nw9g861SnA2Op7RS3bi65l+hspTHWswfvkunvplAWv2nKBswUCW7zzKql3HCfb1TDMLuVCQLwPubsJzvy6i8Rtj6dGgDEXy+XH6XCzbDp1h+rp9LPmwJ8XyZbyF5qUUD/HnhVtq8cIttVi75wRjloXx94rdHA1PO6slq9eoaV65CLfVL82EFbvp/dV02lUvxqHTUQyZu5kCAd683C3tNpyN3hhD0WBf1n52Z2pb76+mExroTbXi+SgQ6MPRM1GMWRrG/lPneLZzjYvuYJUdjDFVgDeANsC3QOlr/TRURERuTNbaFGC8MWYC0Bl4C0dg0x/H67LzcSw8/8XVXsPTN4Ahj7WlRsc7sckprJ36GzGRZ7jj3WG4uDo+2AnIX4R2j3/AjG9f5ccHmlKtXU/8QwoReeIw2xZN4c6PRxNYsFiG41ds1pVtiybz2/O3Uq1dL5LiY9ky/+8Md4r64d4GFKlUh8IVa+OXL5Rzp4+zdspwXN09qNyyOwCLfv+c3avnU65hewILFgdr2bl0BqcOhNHkKtd1cff0pmqbHlRt04OoMyfYNHccG2eNYdeqeWmCmqxeo2blX0NYMOwTAgoUoVTt5myaMy7N8byFS1C0cr3Ur//66DH2b/iHZ0atT/1+L/r9cw5vW0OJGk0IKFCU+OhIdi6byYGNyyhRowk1O/XNsnpF5MopqBHJRZ7uVJ2UFMuoJTt4feRSCgX50qdxOWqXyk+PL6al6Rvs58mU127hnT+XM3LxDoyBJhUK8dfLXWj3wV/pZs3c2bQ8pUMDGDhjI78t3EZETAJBvp6UKRjAq7fWJX/A1b8qdEGtUvmpVSo/H/RqeNXr6VyJHx5sSeWiwYxcvIO3Ri/D3ysPXWuX4vXb66ZuY34pXWqXZPq6fQyZs4WI2Hh8PNypVjwf7/ZqQJfa6ac2ZwdjTE3gTaAx8BXwsLX23HW5uIiI5GrnZ8xMMcZMBdriCGzeBQYBLxtjVlprF1/N2G0efZd96/9h5fjBRIefIl+xcvR8fzgVm3ZJ06/+bQ8TXLgUS//8gRXjfiI5MRG/fAUpXbdlhjM6Lqjapgdx0ZGsGDeIWQPfwicwmMotu1OzU18G3tcoTd+GPZ8gbMVsVkwYTHx0JD6B+ShSqQ5N+j5HgVKVAKjQpDNRZ46zZf7fRJ89iZuHJ8FFStH1xa+p2fnuq/kWpOEblJ+GdzxOwzseJyEm6prHu5Qj29cBjpkyf3/8eLrj1dv3SRPUZKREjSac2r+DDTNHExNxGhdXN/IVK0ubR9+lwe2PXvGuWCKStcw1zHgUkSxkjLEnh2b/6vpnouIo//Rv3NuiIp/f0zTbr3ezC+k3GGtthvO6jTGfAAetteleRjfG1MfxQF0T+Az42Vobna3FiojIDcc43i1yOf/LFWiOY42zKjg+tK1mrT14vq99Z8GlXwNaP30kEz99knu/mkSJmk2ytXbJ2d5rEXTRZxwRuTaaUSNyA4tNSMIrT9r/zL+dth6A5pUKO6EiucAY0wPoCdT+v/ZmOGbQlAc+AXpYa52/vZSIiOQ6xpiWwDzAAslAyn/+FyAPjnVs+jmlQBERyZCCGpEb2B1fTKNEfn+qF89Hcopl0dbDzN54gHplCtCpVglnl3fTOr8g8I9AB2vt2fOfdrbGMYOmMPAx8Lu1NuESw4iIiFyStXa+McblWhYNFhGR609BjcgNrH2NYoxbtotpa/cSl5BM4SAfnuhQjRdvqY3rJXYHkOxjjPEGxuOYNbPWGNP5/O8Dgf7AaGttkvMqFBGRG4lCGhGR3EdBjcgN7KmONXiqYw1nlyHnnZ858yOwHjgJrMHx9/CHwPjz26qKiIjkWDU63kmNjndevqOIiFw1BTUiItfPQ0ArIAKoiGNdgMnnt1EVERERERFRUCMicj2c38XpJyAK2AEcAm4BuhhjLizsONNaO9F5VYqIiIiIiLMpqBERuT52Am8AB3Bsj3phm9T//v6Y06oTEREREZEcQUGNiGQoJcXy89zNDF+wjQMnz5HX14OudUrxWvc6+HnlueS5h05H8dGElWzYd4pj4TEkJidTOMiX1lWL8mTHGoQGeqc7Z+6mg3wxeS1bDpwmj7srjcsX5K076lO6QECafhNX7WHk4h1sP3yGM1FxeHu4UTJ/APc0r0ivxmVz7CLJ1tqzOHZzEhERkSxmU1JYMWEwayYN4+zRA3gHBFGxeVda9XsdDx//S54bcfwQ84Z8yJGd6zl36hjJSYkE5C9CmfqtadznafyCQ9P0T0lKYs3U31g39XfOHN4LQN5CJajevjd1u/XD1T39c9LOZbNYPvZHju5cT1JiAv4hhShdpyWdnh2Qdd8EEblhKKgRkQy9O2Y5P87aRIcaxXmsfTX2HAtn8JzNrNt7gsmv3oKb68UDkZORMRw6HU37GsUpHOSLu6sL2w6f4fdF25m4ag/z372dfP5eqf2nr9vHfd/PpmLhvLx9R31iEhIZPHsznftPZNbb3SmWzy+175aDp/H1dOe+lpUI8fciOj6RORsP8sywhazafZyv7muWrd8XERERyXlm/fQ2y8cMpHzjjjTs+QSnD+1mxfhBHNm2lvu/nYaL28V/7Ik6e4KIE4co36gj/vkL4+rmxom921k75Xe2LpjII0MW4hOYL7X/pM+eZsPM0VRs1pWane/GpqQQtmwmM79/nUNbVtLjnaFpxl/w66cs/PVTStdtRYv7X8Xdw4uIE4c4vntrtn0/RCR3M9qxTyRnMMbYk0MfdnYZAOw4fJZmb4+jY83i/Ppku9T2PxZv59lhi/jinqbc06LiFY87cdUeHvxxDu/1bMDjHaoBkJScQu2XR+HiYlj8fg98z8/W2XU0nGZvj6NrnZIMeqT1Zcfu8/V05m46yLav7yHYz/OKa8suIf0GY601zq5DRETkcowx9p0FZ5xdxhU7uW87P/ZrQvnGnej1wW+p7eumjWDSgKfp8sKX1O563xWPu2XB34x7tx9tH3ufRr2eBCD67Ek+v60CFRp3oteHv6fp/+szXdm/cSkvT9qNl18gAHtWL+D3F2+jRb/XaH7PS1d9jznRey2C9Iwjkk1y5jsCIuJUE1bsIsVaHmlXNU17r0blCPL1YOzysKsat2iwLwARMfGpbUt3HOXI2WjualohNaQBKFMwkDbVijJt7T6i4xMzMbYf1kJkbMJV1SYiIiK506a547EpKTS447E07dXb9cbLP4iNs8de1biBBYoCEBcVkdoWH30OrMU3X2i6/n75QjHGBbc8Hqlti//4Cp+8ITS98zkAEmKisCna7FFELk2vPolIOuv2ncTFGGqVzJ+m3c3VhZol87Nsx1GstRhz6Q9R4hOTiYpLJCEpmR1HzvLBuJUAtKlW7N9r7T0JQJ3S+dOdX7dMAaav28/2Q2ep/X/HI2MSSExOISImngVbDjFqyQ7KFQyk+H9ekxIREZEb35Ht6zAuLhSuUCtNu4ubG4Ur1mL/hqWZem5JSognISaKpMR4Tu7fwdzB7wNQtkHb1D6BBYsTVLgU66f9QcEyVSlZuzk2JYWdy2aydcFEmvR9FncPx+vdCbHR7N+wlLIN2rJ22ggW/fYZ504dxc3Di/KNOtDhqY/xDUr//CMioqBGRNI5djaaYD9PPNxd0x0rlNeHmIQkwqPjyet76VeMJqzYxdNDF6Z+XSyfHz893Iq6ZQqkth0NjwagYF6fDK7lm6bPf9393UyW7jgKgDHQvFJhPr+nKS4umoErIiJyMzl36ijeAcFpZrJc4B9SiMS4GOLOhePln/eS42yeO56Jnz6Z+nVgaDFue3MwRSvXS21zcXWld/8R/PXR40z+/Nl/293c6fDUx9S99YHUtjOH92JTkjm0dTW7V82nyZ3PUKBMFQ5sXMaK8YM4vmcLDw+ah7tn+k0WROTmpqBGRNKJTUgij1vGb0ZeCG9iE5K49OMOtKxSlHEvdCIqLpF1+04yc/3+NK89AcTGJwGQxy19KPTfa/2/93s14Gx0PMfDY5i2dh8RsfFEx6fvJyIiIje2xPjYDHdaAnDL4/hQKTEu5rJBTel6rbj78wnEx0ZxZPs6dvwzPc1rTxfk8fYluEgpQoqXo1yj9iQnJbFh5iimf/sKebx8qN6+N+B4zQkgJvwUXV/8mlpd7gGgYtMueHj7sXD4ANbPHE3dbv2u+t5F5MakoEZE0vHK40b0ubgMj8UnJqf2uZzQQO/Urbg71y5JyypFuPXTKbi7uXJ3swqOcTwc4yQkJV/RtaqXCEn9fa/G5XjqlwV0+3Qyy/r3TLOjlIiIiNzY3D28SIhNP/sWICnB8TyTmVkrfsGhqVtxV2zahdJ1WzH82a64urmnhizxMecY+kQHilVrSPc3fko9t2qbHgx7qiPTvnmZ8o074enrj5uHIyQyLi5Ua9crzbWqd+jDwuED2L9+iYIaEUlHiwmLSDqheX04fS4uNSj5ryNno/HO40agT/rpxZfTuHwhCuX1YdSSHaltBQMdrzwdPZv+AevI2ag0fS7ljoZlCY+OZ/q6fVdcl4iIiORefvkKEhNxmqSE+HTHIk8ewd3TG8/zuzBdiRI1GuMfUoj1M0amtm1dOInIk0eo1PyWNH2NMVRo2oWEmCiOhW0EHK9dAXj6BqZ7LcsvyPEaeOy58CuuS0RufApqRCSdmiVCSLGWtXtPpGlPTklh/d6TVC2e77IL8l1MXGISEdH/PkjVLOmYGbN694l0fVfvOoGnuysVilzuJSuIO/96VHhM+oc0ERERuXEVqlATm5LC4e1r07SnJCdzZPs6CpatdtXPLYnxcWnClKgzjueVlJT0H2alJCenOeYblJ+AAkWIPXeWxLiYNH0jTx4BwCcwBBGR/6egRkTS6V6/NMbAoNmb0rT/+U8Yp6Pi6NGgTGrbodNRhB0NJzHp360mT0SkfRi54K8VuzgTFU+tUv/ucNCofEEK5vVhxOLtRMX9uw33rqPhzN54gA41i+Pj4X7Jsa21DJ2/FSDN2CIiInLjq9LqNjCGFeN+TNO+YdZoYiJOU7XNHaltEccPcWr/TpKT/n3muBC+/L/Nc8cTG3mGIhVrp7aFFC8PwMaZf6bpm5KUxOa543FxdSO0dJXU9mpte4G1rJ78a5r+qyYNBdLuKCUicoHWqBGRdCoUDuLhNlUYNHsz93w3k7bVi7P3eASDZm+iVskQ+jatkNr3iSHzWbrjKGsG9KHY+a2x3x+3kh2Hz9K8cmGKBfsRk5DI6t0nmLx6LwUCvHm5278PPG6uLnx8ZyPuHzibLh9N5O7mFYlNSGLQ7E34ebnzxm310tRW86WRdKpVgspFg8nn58Xx8BgmrtrNtsNnub1BGRqXL3R9vkkiIiKSI+QvWZH6tz/CinE/MfqNuyjXsB2nD+9hxbifKFyxFjU735Xa96+PHmP/hn94ZtR6AgsWA2DOoPc4uW87peq0IDC0KAlxMRzeupqtCyfhGxxK8/teTT2/XIN2FCpfk53LZjL8uW5UaNqZlKRENs4ey/Hdm2nU52m8A4NT+zfu8xTbFk1i9o9vc/rgbkJLV+HApuVsmjOWkrWaUbll9+v3jRKRXENBjYhk6P1eDSkS7MvwBduYu+kgeX08uad5RV7rXhf3i+wIdUHX2iWJiI5n7NIwTp+Lw8UFigb78Wi7qjzZsToh/7fYb+faJRn5TAe+nLyO98YuJ4+bK43LF+KtHvUokd8/Td9H2lbln+1HWLT1MBExCfh55aFSkSC+ub85vRuXy/Lvg4iIiOR87R//kIACRVgzaTi7Vs7Byz+I2l3vo2W/13F1c7/kuRWbdyUuKpyNs/4kOvw0xsWFwNCiNOjxGI37PI1P3n9fT3Jxc+PeryexfOyPbFnwN/OGfEhKcjIhxcvT5YUvqdXl3jRje/j4c/+305g39CN2/DOdddNG4B9SiCZ3PU/zu1/ExTX9rpciIsZa6+waRAQwxtiTQx92dhmSxUL6DcZae3UvxouIiFxHxhj7zoIzzi5Dcon3WgTpGUckm2iNGhERERERERGRHEJBjYiIiIiIiIhIDqGgRkREREREREQkh1BQIyIiIiIiIiKSQyioERERERERERHJIRTUiIiIiIiIiIjkEApqRERERERERERyCDdnFyAiN4bjETE0fmMMETEJfNC7IY+2q5rmeFJyCkPnbWX0PzvYfSwCV1dDiRB/7m1RkXtbVErtV+ulkRw8HXXR67zWvQ7Pd62VbfchIiIiN56jOzewac449q5bTPjR/QAEFS5FjY53UqvLPbi6uWd4nrWWoU924NCWVZRv3Ine/UekOb5g2CcsHD4gw3O7vvg1tbrck7U3IiI3BQU1IpIl3hi5lKRkm+GxhKRk7vp2Jv9sP8LtDcpwX4tKJKWksOd4RLpQ5sM+jYiOT0w3xtdT1rHzaDjtqhfPlvpFRETkxvXPqG/Zs2YhFZp2plaXe7DJyexcNpNpX7/Ejn+m0XfAOIwx6c5bPWkYJ/Zsu+z47Z/oj3dAcJq2IpXrZln9InJzUVAjItds9sYDTF69lzd71OX9sSvTHf9i0loWbT3MuBc606RioUuO1alWiXRtpyJjeWboQqoVz0eVYsHpTxIRERG5hPq3P8ytr/6Am4dnalu92x5iwoePsGnOWMKWzaJco/Zpzjl3+hhzB79P83tfYvZP71xy/ApNOhNYsFi21C4iNx+tUSMi1yQ6PpFXfl/CPc0rUKtk/gyPD56zmQ41i9OkYiGstUTFJlzRNcYtDyMxOYW+TctnVdkiIiJyEylapX6akOaCyq26A3Bib/pZMzO+fZWAAkVo0OOxTF0jPjqSlOTkaytURATNqBGRazTg7zXEJSbzxu312HLwdLrjy3ceIyoukerFQ3h95FJGLt5BdHwiwb6e3NW8Aq/eWgc310tnxqOW7MTT3ZXbG5TJrtsQERGRm1DkySMA+ASFpGnfuWwWWxdN5v5vp+LidvkfmX58oAkJMVEYF1eKVq5L8/teoVTt5tlSs4jc+BTUiMhV23TgFIPnbOLr+5oT6OORYZ9dx8IBGDx7E+5urrzTsz55fTwYv3wX30xdz9Gz0fzwYMuLXmP93pNsPXSG2+qXJsA742uIiIiIXKmEmCiWjv4ODx9/KjTu9G97bDTTvn6JGh36UKxqg0uO4ekbQK2u91K0cj28/AI5uW8Hy8f9yIiXbqfH279QqUW37L4NEbkBKagRkauSkmJ5Yfhi6pUJpVfjchftFxXnWBj4bHQ8Sz64gzIFAwG4tV5pbh0wmTFLw3imUw3KFcqb4fkjl+wAoG/TCll7AyIiInLTSklOZkL/Rwk/up/b3voZL/9/n0PmD/uYhNgo2j7y3mXHaXBH2teiyjfuSPUOvfnx/sZM//ZVyjfpdNEdpURELkZr1IjIVRkydwubD5xmwF1NLtnPy92RB9culT81pLmgZ0NHwPPPjqMZnhuXmMSEFbsols+PppdZhFhEREQkM2xKCpMGPMWOf6bR6sE3qdr69tRjR8M2smLcINo8/A7egVe3gYFfcCg1OvYl6sxxjoVtzKqyReQmohk1InLFImMS+PivVXSvVxp3Nxf2HI8A4OjZaADORMWx53gEoYE+FAzyASB/gHe6cQoEOtrCo+MzvM60NfuIiEng0XZVM9wyU0RERORK2JQUJn32NBtmjqb5vS/T9K7n0xyf8d1rBBcpRfEajTlzaE+aY4lx0Zw5tAdPv0C8A4IueZ3AUMcOUDERZ7L2BkTkpqCgRkSuWHhMPFFxiYxZFsaYZWHpjn81ZR1fTVnHH0+3p1ZJx+J8F0Kc/zpyvi2fv1eG1xm5ZAcuxtC7sXZ7EhERkWtzIaRZP30kTe9+gRb3v5quT8TxQ0QcP8j3d9VNd2zPmoV8d1cdGvZ8gnaPf3DJa505tBsAn7whl+wnIpIRBTUicsXy+Xnxy+Nt0rXvOHyWARPX0LtxOdpWL0b1kiEUCPCmXpkCrNp9nA37T1G9eD4AklNSGLFwG26uhpaVi6Qb69DpKBZvO0KzSoUpEuyb7fckIiIiNy5rLZM+f4b100fS5K7nafXAGxn26/z85yTGxqRrH/vu/RSqUIvGvZ8iuFhZAFKSkkiMj8HDxz9N3zOH9rBu+h/4hxQitEzVrL8ZEbnhKagRkSvm7eHGLXVKpWv/x9exxWXlosFpjn/ctzFdP5lEj8+n8lDryuT19eTvlbtZu/ckL95SK8MgZvQ/O0ixljubajaNiIiIXJvZP77N+ml/UKB0FUKKlWPjrDFpjhcoXZkCpStTtn7bi47hFxyaZhenhNhovrmzJhWadCJfsXJ4+vpzcv9O1k0dQVJiPF3e/goXV9dsuycRuXEpqBGRbFeteD6mvd6Nj/9axaDZm4lPTKZsoUC+7decPk3SBzHWWkYv2UleHw861Sxx/QsWERGRG8qRHesBOL57M3999Gi6483vfZkCpStf0ZhuHp5UbNqFw9vWsG3RFBLjYvAOzEfZBm1ofOezFCxbLStKF5GbkLHWOrsGEQGMMfbk0IedXYZksZB+g7HWaiVkERHJ8Ywx9p0FWvxWMue9FkF6xhHJJtqeW0REREREREQkh1BQIyIiIiIiIiKSQyioERERERERERHJIRTUiIiIiIiIiIjkEApqRERERERERERyCAU1IiIiIiIiIiI5hJuzCxCRrDfg79V8Nmlt6tfT3+hGndIFnFhRzjVp9R4eGDgn9etv+zWnT5PyTqxIRETk5rJg2CcsHD4g9esHfphJkcp1nVhRznVk+zp+frR16tfN732ZFve/6sSKRCQ7KKgRuYF90LshwX6elMwfkNp26HQUH01YyYZ9pzgWHkNicjKFg3xpXbUoT3asQWigd5oxkpJT+H3RdkYs2s6+E5EAFA/xo1fjctzfshJ53FzT9N99PIIPxq5gyfYjJCalULlYMC/eUotWVYpe071cSR0h/QZfcqwfH2pJj4ZlAahVMj8DH2rJziNn+Xrq+muqUURERK5e+yf64x0QTFDhUumOxUaeZfGIL9m+ZBqRJ4/g4e1L/pIVadHvNYpXa3jRMce99wBb5v9FgdJVePSXRddU3+I/vuLYzg0cDdvI2SP7CChQlGf/3HDR/pvmjmfVXz9z6sAukhMTCChQmMotu9Ogx6N4+Pin9jt1IIy1U3/n6M4NHAvbSFxUxEUDmLyFStD99Z+IiTjNzB/euKb7EZGcS0GNyA2sU60SFMvnl6btZGQMh05H075GcQoH+eLu6sK2w2f4fdF2Jq7aw/x3byefv1dq/2eGLWTM0jC61C7JXc0qkJJimbXhAG+OWsaqXccZ8lib1L77T0bSqf/fuBjD4+2rkdfXk1FLdtDnqxkMf7ItHWqWuOp7uZI6Bj7UMsMx3hq1jMjYBFpULpLaViTYlzsaluWf7UcU1IiIiDhRhSadCSxYLF17+LGDDH+2Kwmx0dTsdBfBRUsTFx3Jid1bOHfyyEXHC1sxm60LJ+Lm4XXRPldi3s8f4OkXSMGy1YmLirhk3/nDPmbR8M8oWasZze97GVdXd/ZvXMqCYZ8Qtnw2DwychTEGgENbVrFszA/kLViCguVqsHftwouO6+Wfl2rtehJ+9ICCGpEbmIIakZtMzZL5mfRq13TtDcoV5MEf5zBmaRiPd6gGwMnIWMYuC6NTzRIMe6Jtat8HWlem26eTmbR6D+HR8QT6eADw4fiVhEcnMOed7lQtlg+APk3K0eLt8bz6xz+0qVYMN9crXxrrSuu44/xsmf/afOA0p6Pi6Fy7RJogSkRERHK2v/o/QkpyEo8OXYxfcGimzkmMi2HaVy9R55Z+7Fw2M0vqeHrkWvIWKgHATw80u2hYY1NSWD7mRwqWq87dn0/AuDiefep0ux9XtzxsmDmK47s2E1q2KgDlG3fklUl78PQL4FjYJgY91DxL6hWR3EuLCYsIAEWDfQGIiIlPbTsXm4C1UOD/XocCCA30xsUYPNwdrxxFxycyfe1+GlcomBrSAHi6u3Ffy0ocPhPNsp1Hr6q2K6njYkYu2QFA36YVrqoGERERuf72b1jKgU3LadTnafyCQ0lOSiQxLuay580f9gmJ8XG0evDNLKvlQkhzOSnJSSTGx+AblD81pLnAL58jaHL3+veZxss/L55+AYiIXKAZNSI3qfjEZKLiEklISmbHkbN8MG4lAG2q/TvluHiIHyXz+zNqyQ6qFs9Hs4qFSLEwa8N+Jq3ewzOdauCVx/HXyLZDZ4hPSs5w0eJ6ZRxt6/aepGnFwldc65XUkZGEpGTGLw+jYF4fWlUpctF+IiIikrOELZ8NQED+Iox6rQ9hK+ZgU5IJKlKa5ve8RLV2PdOdc2zXZlaM+4lbXxuIp69/uuPZzdU9D8WrNWLXyrksGfkNlZp1xcXNnf0b/mHlXz9TrW1PgouUvu51iUjuoaBG5CY1YcUunh767zvQxfL58dPDrahb5t+gxdXFhd+fas8TQ+bz/K//LsDn7upC/z6N6Neqcmrb0bPRABTM65PuWoXOt13oc6WupI6MzFi/nzNR8TzTuSKuLppIKCIiklucPrgLgMmfP0twkVLc+tpAkpMSWPbnD/z10aMkJydSs2Pf1P42JYUpXzxL8eqNqNqmh7PKpvsbP/H3x08wd/B7zB38nqPRGJr2fZ6WD7zutLpEJHdQUCNyk2pZpSjjXuhEVFwi6/adZOb6/Wlee7rA18udUgUCKFcokHbVi5OUnMKfS3fy2h9L8fFwp1fjcgDEJiQBkMctfRBy4bWkC32uRmbryMjIxY7Xnu7UttsiIiK5SnxMFAAe3r7c+9UkXN3zAI6Fh7/tU5N5P39IjfZ9Ul8xWvn3EI7t2syjQ65th6dr5e7pTd5Cxcnj1YlKLbrh6ubG9sVTWTziC9zyeNDsnhedWp+I5GwKakRuUqGB3qlbcXeuXZKWVYpw66dTcHdz5e5mjnVcomIT6NR/Ig3KhTLwoVap597eoAydP57Eq3/8Q8eaJfD3zpP66lFCUkq6a8UnJgNc8vWkS7mSOv7f0bPRLNhyiIblClKqgN7/FhERyU3cPTwBqNLq9tSQBsDLL5DyjTuyYeZoTh0MI6R4eSJPHGbekA9p1Osp8hW/+Ac42S0lOZnfX+iOWx5P7v9uWuruTpVbdgdjWPDrp1Ru1V2vP4nIRekdABEBoHH5QhTK68Oo84vuAkxavZcjZ6PpWqdUmr7GGLrUKklUXCKbDpwC/n3lKaPXm45c4rWozLiSOv7fn0t3kpxi6dtUs2lERERyG7+QQgD4BuVPd8w3yPG6dty5cADmDvkQN3cPKrfqzplDe1J/pSQnkZyUwJlDe4g6fTzba96/cSlHd26gYrMuqSHNBRWbdcWmJHNw04psr0NEci/NqBGRVHGJSURE//v604lIx64KySk2Xd+klJQ0xyoWCcLDzZXVu9M/AK0631ajRMhV1XUldfy/UUt24uflni7kERERkZyvcMVarJk0jMiTR9Idu9DmE+h4vog4foiYiNP81K9Jur7nTh3lu7vqULFZV3q+Pzxba446cwKAlJTkdMdSkpMuekxE5AIFNSI3mRMRMeQPSL/N9V8rdnEmKp521YuntpUvlBeAMUt30q3uv0FHUnIKE1bsxs3VULloMAA+Hu50qFmcyav3sunAqdQtuuMSkxg2byuF8vrQqHzBq6r5Sur4r+U7j7HneAT3NK+At4f+uhMREcltKjTpzIzvXmPj7DE0u/sF8nj7AnDu9DG2L5lGcNEyBBVxPBu0uP9VYsLTz7Cd+vVL5PH0pu2j7+F/foZOdgop7pjFu3nOeBr2eBwXt3+fQTbOGgNAofI1s70OEcm99JOLyE3m/XEr2XH4LM0rF6ZYsB8xCYms3n2Cyav3UiDAm5e71U7t27ZaMWqUCGHWhgN0HzCFTrVKkJScwthlYWw5eJqnOlYn2M8ztf+bt9dj0dbD9PxiGo+0q0qgtwcjl+xgz4kIfn2iHW6uad+2DOk3mKLBvqz97M5L1nyldVwwcsl2AO5sUuFavmUiIiLiJF5+gbR77H2mfPE8Qx5vR81OfUlOTGT1pKEkJyXQ8elPUvuWqNE4wzFm/fg2Hj7+VGrRLU37vnVLGP7cLVRv34dbX/vhsrVsmPUnEccOAhB99iRJCXEs+u1zAAJCi1K9XS8AQstUoUKTzmxfMpWfH2tDtbZ34OLmzvZFU9i3fgmVW95KaJkqqePGRUWycsJg4N/ZOPs3Lksdu3zjjhQofekdLkXkxqKgRuQm07V2SSKi4xm7NIzT5+JwcYGiwX482q4qT3asToi/V2pfN1cX/n6lCz/N2sSkVXv4aMIqklNSKFcwL1/c05S7m6cNQErk92fa6934YNxKvpu2gcTkZKoUzcfIZzrQplqxNH2jYhMACM3EujVXWgdAdHwik1btpULhvNQunf69dhEREckdane9D++AYP4Z9S3zh36MMS4UqVyH294cTLGqDa563PhYx45SfiGZm/G7buoI9m/4J03b/KEfAVC8euPUoAagx7tDWTN5OOunj2TR71+QGBdLUOGStH7obRr2eiLNGHHnwlPHuWDfusXsW7cYAP+QQgpqRG4yCmpEbmDh0fH4eLgT4J0ndTZL+xrFaV+j+GXO/JePhzsvdK3FC11rZap/mYKBDH+q3WX7LdnueK/89e51s6UOHw939v14/2X7JSQlcy42kcjzwZGIiIg4R2xUOHnCffD0DUjzuhA4FuGt2KzrVY377J8bMmzft24xnn6BNOr5RIbH/99930zO9DVd3dyp1/1B6nV/8LJ9AwsW450FZzI1bkpSEnFREcRGhWe6FhHJfRTUiNzAWr83AYDpb3SjTukCTq4mrXmbD9GuejGaVMz+d8UvZcb6/TwwcI5TaxAREREY/FALAB74YSZFKmfug5xrsXvVPJre9Txe/nmz/VpZ5diuTfz8aGtnlyEi2cxYm/FOKSJyfRlj7MmhD2fJWPtORLL/ZGTq17VK5cfPK0+WjH2jORkZy9aDp1O/Ll84iNDA9IstX62QfoOx1prL9xQREXEuY4zN7MyOrHT2yD7OHtmX+nXhirXw8PG/7nXkBvEx5zi8dU3q13kLlSBvoRJOqeW9FkF6xhHJJppRI3IDKpHfnxL59YCTGSH+XjSvXMTZZYiIiNy0nBk25DYe3n6UqtPC2WWISDZzuXwXERERERERERG5HhTUiIiIiIiIiIjkEApqRERERERERERyCAU1IpLj/LP9CCH9BjNqyQ5nlyIiIiI3qfCjB3ivRRALhn3i1DreaxHE3x9nbgtxEbkxaDFhEbmof7Yf4dYBU1K/djEGPy93Cub1oVrxfNxWvwytqhTBGC34LyIiIpkXHx3J8vGD2L54KmcO7SElJZnA0KKUbdCORr2exDcov7NLFBFxGgU1InJZdzQsQ8sqRbHWEhWXyK5jEUxft48xS8NoXqkwvzzehgBvD2eXKSIiIrnA6YO7GPFSD8KPH6Ri0y7U7HQXrm5uHNq6mhXjB7F++kj6fDySopXrObtUERGnUFAjIpdVrXgIdzQsm6btg94NeG/MCn6ctYmHf5rHn893vOw4MfFJLA87SqsqRbOrVBEREcnBEuNiGPX6nUSeOkqfj0ZRrmG71GO1u95H3W4P8NsL3Rn9xl08NnSJU2bWJCXEa7awiDiVghoRuSquLi6837sha/eeZN7mgyzfeYwG5UIB2HzgNJ/+vZrlYcdITEqhTGgAD7apwsz1+4lPTE4T1Exft48BE9cQdiScYD9PejcuR8PyBTO8ZnxiMgNnbmT88l3sOxGJh7srDcqF8sqtdahWPN91uW8RERG5emunjeD0wV006v1UmpDmgkIVatL6obeY9vVLLB39He0e/4CT+3cw8N6GNOr9FG0ffS/dOX+80pMDm5bz4oTtuHt6A3Du9DEWDv+MsOWziDpzAu+AYMo1bEerB97AJ29I6rkLhn3CwuEDeHToEtZO+Y2tCycRdeY4jwxegKdvQIb3YK1l9aRhrJv6Oyf378QYFwpXqEmze1+iZM2mAMSdi+Dz2ypQvnEH7nh3WLoxpn71IqsnDePZ0RsIKFAEgBN7tzFr4Fsc2LQcV/c8lK3fhvZP9L/o93LzvAmsnPAzx3dvISUlmQKlKtKo11NUatHtEv8PiEhuoMWEReSa9G1aHoDZGw8AsH7vSTp/NJHlYce4v2Ul3r6jHkF+njz1ywJWhB3jp4dbpZ47dc1e7v1+FlGxCbzYrRYPtqnM5DV7eX/sinTXSUxKoddX0/h80hrqlM7PB30a8nSnGuw8cpYuH09k/d6T1+eGRURE5KptWzgJgNpd7r1onxod+uDi5s62RZMBCClenkLla7JpzjhsSkqavlFnTrB71XwqNeuaGtJEHD/Ez4+0ZtvCSVRt3YNOzw6gWruebJ43gaFPdiQuKjLdNf/q/wjHwjbSuPdTtHvsfbz88160vr/6P8r0b14mqHBJ2j7yLi3uf4W46Eh+f+E2dvwzHQBPvwDKN2rPzqUz010vOTGBLfP/okT1xqkhzdmj+xn2dGcObFpBve4P0fL+14iJOM2Il+/IsIZ5Q/oz/v0H8fD2pWW/12jz8Nu4e3gz9t37WfnXkIvWLiK5g2bUiMg1qVQ0GIDdx8MBeH3UUhKSk5n51q1UKBwEQLCfF/9sP8Lpc3GcjIzB3zsPySkpvDFqKfn8vJj5VneCfD0BuLd5JZq/My7ddX6Zt5mlO47y53OdaFmlSGp7v1aVaPrWWN4Zs5yJr3TN5rsVERGRa3Fi7zbyePsSVKTURfu4e3qTr1hZTuzZSkJMFHm8fanWvhczvn2VPWsXUrpOy9S+m+eOx6YkU61979S26d++QkpyEo8MWYh/SKHU9srNuzHk8XYsHzuQFve/muaa3gHB3PXZeFxcXVPbwo8eSFfbtsVT2DRnLF1e/CpN2NTg9kcZ8ng7Znz3GuUadcAYQ7X2vdm6cBJbFvyVpm/Y8tnERp6lWvteqW3zhnxI3Llw7vt2KsWrNQSgbvcHGfPWPRwL25imhqM7N7B4xBc0uet5Wj/4Zmp7/dsfYfQbdzH35/ep3r4XHt5+F/0ei0jOphk1InJN/DzdAYiKTeRkZCyrdh2nfY3iqSHN6t3HeWv0MoY+3pYUa/l71R4ANuw7xeEz0fRpUj41pAHw987DvS0qprvO2GW7KF8oL9WK5+P0ubjUXwlJKTSvVIQVYceITUi6DncsIiIiVys++hyePv6X7XchZIiLdsxGqdrqdlzc3Nk4a0yafhtnjyGgQBFK1Gji6B8Vyc5lMynfpBNu7h7EhJ9O/RUYWoygwqXYvXp+uuvVv/2RNCHNxWyaPQZP3wAqNO6UZuy4qAjKNWpP+LEDnDm0G4Cy9drgHZgvg5r/xN3Tm0rNbwHApqSwc+lMilSqkxrSABhjaNTnqXQ1bJwzFoyhRoc+aWqICT9N+cYdSIiJ4tCWVZe9FxHJuTSjRkSuybm4RAB8vdw5cPIcABUKOUKaA6fOcf8Psxn4UEvqlikAwP6TkWn+t2zBwHRjli+Ufrpx2NGzxCYkU+GZ3y5ay5moOAoH+V79zYiIiEi28vDxIz7m3GX7XehzIdTxDgymbP02bFs0hc7PfU4eLx9O7tvO0Z0baHLX86mL/54+GIZNSWHt5OGsnTw8w7HzFiqRri2ocMlM1X9y/07ioiL4vHv5i/aJOnuS4KJlcHFzo0rr21g54WfOHt1P3oLFiT0Xzs5ls6nUvGtqGBV99iQJsVHkK1Y23VghxSukazu1fydYy/d31b1kDSKSeymoEZFrsvXgaQDKhAaSx90xSc/bw43ImATu/HoGz3auSdOKhTkbFQdAXELyVV3HWqhSLJh376h/0T7Bfp4XPSYiIiLOl79kRfZvWMqZQ3su+vpTYlwMpw6EERhajDze/34AU61dL3b8M51ti6dQvV0vNpyfqVK93b+vEFlrHW3t+1Ctbcbru7h5pH9ecPfwztwNWItvUAG6v/7jRbvkL/nvzODq7XqzcvxgNs4eQ/N7XmLL/L9JToyn2n9qvmLWYlxc6fvpnxiT8QsSISXTBzwiknsoqBGRa/LH4h0AtK1WjOL5HJ967Thyln4DZ1O/bAEeaF0ZgO1HzgJQLMTx6VHxEEffsKPh6cbccb7vf5UqEMDpc3E0q1RYW2aKiIjkUhWadmH/hqWsnfo7bR55J8M+G2b+SUpSIhWadUnTXr5RBzz9Atk4czTV2vZk05yxFK5YK81MlKDCpcAYUpITKVWnRZbXH1SkNLtWzKFolXqpixdfSqHyNQgpUYGNsxxBzcZZf+IbHEqp2v/W5h2Yjzxevpw6EJbu/JP7t2dcw8q5BBYsTnCR0td0PyKSM2mNGhG5KskpKbzz53JWhB2jTbWi1C8bir93HlpXLcqYpWHEJyXzSV/H++IpKZZvp60HoFPNEgBUL5GPQnl9GLVkB2fOz7YBOBebwPAF29Jdr2ejshw9G82g2ZszrOdEREzW3qCIiIhkuVqd7yaocCmWjR3IrhVz0h0/unMDc39+H+/AfDTulXZ9Flf3PFRu2Z296xazafZYIk8cplq73mn6eAcEUbZ+W7YsmMjh7WvTjW+tJTr81FXXX71dL1KSk5g75MMMj0edOZGurVq7Xpw5tJtNc8ZxcPMKqrbpkWY9HBdXV8o1bMehravZv3FZmlqXjvoug/F6AjB38PukJKefqZxRDSKSu2hGjYhc1sb9Jxm7zPEpT1RcIruOhjN93T4Ono6iReUiDHq4dWrfqsWCmbvpILuPRfDd9PX4eeVh2tp9LNl+hHuaV6BWqfwAuLq48EGfhjz44xzaf/AXdzWriKuLYeSSHeT18eDQ6ag0NTzcpioLthzmrdHLWLT1MI0rFMTPMw+HzkSxeNthPNxd+ftl7fokIiKSk+Xx8qH3R3/wx8t3MPK13lRs1pUSNZrg4urK4W1r2Th7jKPPh7/jG1wg3fnV2/dizaRhTPvmJVzd81Cl1W3p+nR+/nOGPdWJYU91olq7XoSWqYq1KZw9so8d/0ynerte6XZ9yqxKLbpRo+OdrBj3E0d3rKdMg7Z4BwQRefIIh7as4szhvTwzal2ac6q1vYN5Qz5g6lcvnL+H3unGbfnAG4StmMMfL/ekXvcH8Q8pxM5lM4gOP52ub+EKtWh+3yss/PVTBj3UnEotuuEXVIBzZ45zdMcGwlbM5q05x6/q/kQkZ1BQIyKXNXbZLsYu24WLMfh4ulEory8Nyxfks/plaF21aGq/eZsPMmz+Vn57qh3jl+9i6LythEfHU7KAPx/0bsgjbaukGfeWOqUY+nhbPp+0lgETV5PPz4vejcvRsHxB7vhiWpq+7m4ujHq2A0PnbWXssjAG/L0GgAKB3tQqlZ9ejcpl/zdCRERErllI8fI8+ssSVoz/iW2LphC2fA42JZmAAkWp1/0hGvV6MsOQBqBo5XoEFSnNmUO7qdCkM94BQen6BOQvwsOD5rNk1Dfs+Gc6G2eNwS2PBwH5C1OuUXsqt7z1murv9sr3lKjZlLWTh7Pkj69ITkzENyg/BctVp/VDb6Xr7x9SiJI1m7JnzUJCy1SlQKlK6foEFS7J/d9NY9bAN1n518+4uuehbP02dH/9pwwXLm5x3ysUKl+TlRMGsXzsjyTGxeATmI/8JSvS8alPrun+RMT5zIUFt0TEuYwx9uTQh51dxjU5GRnLrmPhNCxX0Nml5Bgh/QZjrdWiOiIikuMZY+w7C844uwzJJd5rEaRnHJFsohk1IpJlQvy9CPH3cnYZIiIiIiIiuZYWExYRERERERERySEU1IiIiIiIiIiI5BAKakREREREREREcggFNSIiIiIiIiIiOYSCGhERERERERGRHEJBjYiIiIiIiIhIDqGgRkREREREREQkh1BQIyIiIiIiIiKSQyioEXEy4/C2s+uQ7GOMyefsGkREREREJHcw1lpn1yBy0zLGGOBDoJunu2v+uMTkEGfXJFnLw901Oj4xeR/Q2lp73Nn1iIiIXIy7h9expIS4As6uQ3IHtzyexxPjY0OdXYfIjUhBjYiTnA9pPgPaAG2ttSedXJJkg/P/P78F9MER1hxxckkiIiJX7Py/ZwOAtui55Yal5xaRnMHN2QWI3IzO/yP4DdAIaGWtPePkkiSbWEca/r4xJgFYaIxpZa096Oy6REREMuv8c8vX6LnlhqfnFpGcQUGNyHVmjHEBBgLVgTbW2nDnViTXg7X2E2NMPP8+9Oxzdk0iIiKXk8FzS4STS5LrQM8tIs6loEbkOjLGuAI/A2WB9tbaSCeXJNeRtfar/3xC1dpau8vZNYmIiFzM/z23tLPWnnNySXId6blFxHkU1IhcJ8YYN+BXoBDQ0Vob5dyKxBmstT8YYxKB+caYttba7c6uSURE5P/933NLB2tttHMrEmfQc4uIcyioEbkOjDHuwAggL9DFWhvj5JLEiay1g89/QjXXGNPOWrvF2TWJiIhc8J/nlkD03HLT03OLyPWnoEYkmxlj8gCjgTzALdbaOCeXJDmAtfbX8w89c4wxHay1G5xdk4iIyP89t3TTc4uAnltErjcFNSLZyBjjCYwDEoHbrLUJTi5JchBr7cjz04lnGmM6W2vXOLsmERG5ef3nuSUBPbfI/9Fzi8j14+LsAkRuBMYYb2PMrf/fBkwEYoCeetiRjFhrxwKPANOMMQ3+e8wYU8YYU9c5lYmIyM3kP88tUUAvPbdIRvTcInJ9KKgRyRo9gPsvfGGM8QGmACeBO621ic4qTHI+a+1EHH9+JhljmvznUDngS+dUJSIiNypjzB/GmIL/+frCc8sJ4C49t8il6LlFJPspqBHJGn1wvM+NMcYPmAHsB+611iY5szDJHay104C+wARjTIvzzXOAisaYYs6qS0REbizGmLJAGxwfJl14bpkO7APu03OLZIaeW0Syl4IakWtkjAkBGuL4VCEQmAVsBR6w1iY7szbJXay1s4GewJjzW2AmABOAXs6tTEREbiC9gTHW2qT/PLdsAR7Uc4tcCT23iGQfY611dg0iuZox5jGgGfAEjoedZcDTVv9xyVU6P414AnAfEAt8Ya2t5dSiREQk1zPGGM6HMsB2HM8t/wDP6rlFrpaeW0SynmbUiFy7O3G81z0PWMD5kMYYU9EY09iplUmuYYwpYIxpZ4zxsNYuAboCw4C8QKgxpoJzKxQRkRtANcAbCMPx3DIPhTRyFfTcIpK9FNSIXIPz7+BWBl4HpuJYp6a/MWYbMBuo78TyJHfJD7wNHDPGjASKArcDA4G1ONZBEhERuRZ9gEnAfBwfMr0CFDLGPGGMmWCMyevU6iQ30XOLSDbSq08i18AY8wHwIrABKATE4Zj6OQFYba1NcWJ5kgsZY0KBbsBtONY+WgPUAyKBQvrUU0RErsb5154OAIk4tuE+BnTHsVPPFGAcMFn/zsiV0HOLSPZQUCNyDYwxewAP4Ccc4cxW/YMkWeX8J5udgXuBVkA5a+1u51YlIiK5kTGmK47ZNMcBC/yN49llgbbjlqyg5xaRrKOgRuQaGGOMghm5HvRnTUREroUxpieOxV4/BJZr1q9kJz23iFwbBTUiIiIiIiIiIjmEm7MLuFHk8fQ6lhgfV8DZdYhzuXt4Hk+Iiw11dh2SO3nlcTsWl5isv0ckUzzdXY/HJiTp7xvJUq55PI+lJMbr76EbiIu7x/HkhDj9XSHXhZeX17G4OP1MdLPz9PQ8Hhurn4muhWbUZBFjjP1hVYSzyxAne6JuANZa4+w6JHcyxtgTg+51dhmSS+R/ZLj+vpEsZ4yxLYcfcXYZkoXm31tIf1fIdWOMsSnx0c4uQ5zMxcNHf+9cI23PLSIiIiIiIiKSQyioERERERERERHJIRTUiIiIiIiIiIjkEApqRERERERERERyCAU1IiIiIiIiIiI5hIKaHOaJugH89u5jqV+fPrKfJ+oGMHXwx06sSkRuVAdORZH/keEMmLze2aWIiIiIAI5dg+5/8OHUr/ft24+Lhw/vftDfiVWJXD9uzi5A5FpZa1k1fQybl8xg/7Z1RJw8hm9gMEXKVaV9vxcpWaVOpsaZOvhjpv38SYbH7nzjWxrfqm2TRQSGL9rBsrDjbDpwht3HI0mxlivdVr326+M4eDrj7UuPDLwbN1d9jiKS251aO5OTa6YTuXsNcaeP4Obtj0+hshTt+BjB1Vpmaoyji/9k+5DnMjxWvOszlOrxSlaWLCI3gGPHjvHam28zbcZMzp2LomKF8jz/7NP07dM7U+f/+tvv9Hvo0QyPvf7qy3z43jtZWa5chIKaHObrJcdxcXV1dhm5SlJCPMPfeZii5atRp10PggsXJ+LkMZZMGMoX/dpwz7uDqNepV6bHu/25j/ENDE7TVrJa3awuW0RyqW9nbOJMVDxViwYRE+/N4bMZBy6XUzY0gGc7Vk3X7upirrVEEckBdvz6Mq6efuSr3R7vAqVIjA7n2OI/2fhFX0re/golbnkm02MV7/o03gXLpmnzLVohq0sWyTFiIk7jqp+Jrlh4eDhNW7bl6LFjPPv0kxQvVoxx4ydw930PcPZsOE8+nnEAk5HXXnmJihXKp2mrWqVyVpcsF6GgJodx9/B0dglZ7sjubRQoXgZXN/dsGd/F1Y1nf5pK2dpN0rQ3vvVePuxVnwnfvEGdDnfg4pK5T6irt+hMcKHi2VGqiGSjmIT/tXeX0VVcXRzGn4m7G0lwd3enuLTQQmkp9RbaUncvdacGdYNSpFC0aHF3dwkOSUhC3JN5P6QN720C3EDkAv/fWqw2c8+c2QOHzcy+Z85kczouhWoh3iV6nOlP9yTczx07O4O7vl5y2YWaQC8XBrWqWszRiYg10s4ex8HNG0f3kssXdR4ag28dy2uT8K73svH17hydMYqwG+7G0d3Hqr5863bAt3abEohSxDa5uFx790S79+yhRvXqODqWzD0RwAcff8rhiAhmTP2DG/v1AeCB++6hS/devPzaGwy57Vb8/Pys6qvbDV3o1LFDicUqF6dCTSnJykhn4djP2LRgKueiTuHg6IRvcBh123an/2Nv5rcb0dybln2GcNfIbwr0sX7uJP4e+zlnT0bgHRBM2/730O3upywKEKcP72XuD+8TsWMDKfGxuHr6UK5KTboOfYK6bbsBsHb274x/6xEeHT2dQ1tWs+6viSTHxxBSqQa9h71Ew459rvh8E2Ii2bRgKhvmTuLkgZ18vOQYbp4+V9xvYewdHAoUaQC8/IOo3qQt25bOJinuLN4BwVb3mZaciLOru2Y3iU2ZtOYQj49dzR9PdGPtgUgmrztMbFI61cv58FzfhvRqVKHAPsv3nubrhbvZejSG9KwcQnzc6FC7HCNvaYaHS+EXCrm5Jl/M38mS3ac4HJVIQmom5Xzd6NO4As/3a4S7s6NF2x+W7GXCmkMcj0nCMAyCvV1pVS2YT4a2wv6f/LThcDSj5uxgx/FYEtMy8fNwpl64H8/2bUiTyoGX/XuSm2uycv8Zpq6P4K8tx7ijbXXeGdzisvuzRoUAj2LrKzsnl/SsnAv+WYjYmuy0ZI7PGUPcruWkRR8jNzMVl4BwgtsMpEKfEdjZW15app09weFJbxK3awUAvrXbUO2Ot9j2wUBcAsrT+KU/LdrH7V7B8Tlfk3RkG7lZGbgGVyHshrsJ63LXFceelRJP9IbZRK35k4SDG2n25oISLdT8t0gDYO/sRkCjbpyY/x2pZw7jXa2p1f1lpyVj5+iMXQl98SVSGtLT0/ng40+ZNHkKJ06exMnJifLhYfTu1ZMP3n07v52dszt333kHv/z4fYE+fvt9Ah99MopDhyMoFxLCgw/cywvPPmNxT7R7zx7efPs91qxbR0xMLL6+PtSpXYtnn3qSXj17AOcf8VkwZxbLV65i3PjfOXs2htq1avLGq69w0419r/h8z5w5w8TJUxg/YSLbtu8gLuoUPj4+V9zvhUyYNJmqVarkF2kADMPgiUdHcPOttzFj1mzuu8f6x7WTkpJwcXEp0eKSFE6FmlIy+aNnWD9nIm3730P5mg3Iysrk7PHDHNi0wqr9dyyfQ+yZ43QcNAwP3wC2LZnFrK/fIulcDAOfzltoODk+ji8f6YeTiysdBt6PV0AIyediOLZnC0f3bM4v1Pxrxpevk52VSafBw8jNyWHNzHH88NwdPPDhbzTq3K/I55iRlsL2pX+xYd4k9m9cjpmbS5VGrbntpc9wcfPMb5ebm0tq4jmr+3Xz8rV6Nsx/nYs+jYOjE26e1l+IvTekLekpSdjZ21O5fgt6P/gitVp0uqzji5SEt6ZtJjM7h/s71yY312T8qgPc8+1Sfh7eiT6Nz88G+3nZPl6atJ7yfh7c16kWob7unIxLZu6248QlZ1ywOJCZk8vXf++mX5OK9GlcAScHe9YfiuLbRXvYdeIcfz7VPb/tZ/N28OGsbdzSogr3dsybHnssJokF20+QlWNibweHIhO49fO/qRjoySPd6uLn4Ux0QhrrDkWz91T8ZRVqdp+MY8q6CKZtjCAyPg1/D2dubVWVoe0tHw1ITs8iIzvHqj6dHexLtWCy5UgMFR/7naycXLzdnOjTuAKv9G9CoJdrqcUgUlQZ585wZsVEApv3IaTtQDBzid21nCN/fkj62ePUuv/T/LZZyXFsfa8/mQkxhHa5E/dy1Yk/sJ5tHwwkJyO1QN+nl45n/9gX8KrahIr9Hsfe2Y24XSs4MPZF0qKPUu2214scb252JrHbFhO19k9iti3CzM7Eo2I9qg5+DbeQKhZtM5Nire7XwdXrsgsmGXGnAXDytj737fz8HnLSk8Ew8KhQl4p9HiWo5Y2XdXyRsjTiiacY99vvPHj/fTRu1JCMjAwOHjrE0mXLrdp/1uy/OHrsOCMeHk5gQADTZszklddGEh19ls8++QiA2NhYbujRGzdXNx4ePoxyIcGcjYlh06YtbNi0Ob9Q868XXn6VjIxMHn34IXJyc/jp57HcfOttTJ08gQE3Ff3vWUpKCtNnzmL87xNZvHQZubm5tGvbhm9Gf4mnp+U9UVxcnNX9+vn5XfSeKDIykpMnT3HH7QWXfGjTuiUAGzdtsbpQc9Mtt5KUlPclXKOGDXjhuWe4deAtVscrV0aFmlKyfdlftOl/N7e9OOqy9j91aDcv/raC8Bp56xl0HPQgXz3an2WTvqH9zfcRXKk6EdvXkRR3lmd/WWzVArppyQm89PtqXD28AGg74B7eGtiMqZ++SIMOva2aTZKbk8P+jctYP3cy25f9RWZaCqFV69DvoVdp1nMQfiHlC+xzLvIEr9/UwOpzf2vmjst6FGnX6oUc272ZFr1vs+qRMlcPb9oOuIcqDVri5ulD5JF9LJn4NaMfG8B97/1Ckxv6FzkGkZKQmJrJ0tf64enqBMDQ9tVp+/oMXp28kZ4Ny2NvZ8epuBRe+2MjtcN8mf1sz/y2AC/3b4Jpmhfs39nBjh0fDsLV6fw/Efd1qkWVIG8+nbOdTRFnaVYl7wZj7tbjdKkbxjf3t7fo441bzuegpXtOk5qZzZQnuxF0BUWIM+dS+HPDEaZuiGDPyXO4OTnQs2F5bmlZhc51QgtdgPelSeuZvPawVf0Pbl2Vr+4p+A14SahZzoc72gZSvZwPmdk5rNx3holrDrFqfyQLX+qDn8e1N+Vbrg2uQRVp/dkmi5kz4d0fYO/3T3Bm5WQq3/wczr4hABybM4aMuDPUeWg0wa1vBiDshrs5NPltTsy1nDmcER/Fwd9fI7jVAOo8NDp/e9gN93Bw/GucmP89YV3uxjXIuuuB+AMbiFozjegNs8lOOYdLYAUq9HqY4DY34x5avdB9Vj9acM2oC2n04tTLehQp+fhuzm6eh3eNlrgGFpwF+V/2Tq4Etx6Ab512OHr6k3b2OCcX/sTurx8i/dwZKvQcXuQYRMrSjJmzeeC+e/n6q88va/8dO3exef1qGjbIu5cY8fBwevTux5ejv+ahBx+gZs0arF6zjujos6xduYyWLS69zmR8fALbNq3DyyvvnujB++6ldoMmPPnMc9zYt49Va+Xk5OSweMlSxk+YyPSZs0lJSaFe3Tq8/ebrDBk8mAoVCt4THT9+gio161h97hH791Cp0oVz4KnTZwAIDQ0t8FlQUBCOjo6cPn36ksdxc3NjyG230qVzJwIDAok4coSvxnzDbXfcxcmTp3j6ycetjlkunwo1pcTVw4tjuzYRc/IIAeGVi7x/7ZZd8os0AHb29nQd+jgHNq1gx8q5dKv0RH7BZceyvwirVhcnl4vfELW7+b78fQA8fPxpc9Od/D3uC07s20bFuheejpuRlsJf377HpgVTSIyNwicojA4D76d5z1st4iyMl38wj42eYcVZn29fVNHHDzPujWH4BIVy85PWvcavy5BHLH5u0LE3LfsO4d3bWjHl4+dp2LFPia2zI1IUd3WoYVF48fdwYUjb6oxeuIsdx+NoXCmA2VuOkpWTy7N9Glq0/ZdhXHjBWsMw8os02Tm5JKdnkWOatK8VwqdztrP1aEx+ocbL1Yn9p+PZfTKOuuGFP/Ps6Zr392b25qPc1aEmjkV8o9HSPacYs3A3q/ZFYmdAh9qhjOhWl16NKlxyBsyj3esxsGWVi7b5V4i3W5HiuhITHutq8fMtLarQpFIgz/6+ls/n7eStQVrAXGyTncP5fJKbnUVOejKmmYtv3Q5Erp5C0pHt+YWa2K1/4+xbjqBWAyz6qNDr4QKFmrMb/yI3K4NyHYcUmNni37gbJ//+iXO7V16yUBMx7SOi1kwn/ewxHD39CG51I8Gtb8a7+qX/TjV8ftIl2/zLo4L1N1f/ykyMZeeXD2Dn6EKt+z+xap+gljcWmDkT2nEIG1/rxpGpHxLSZiBOXv4X2FvE9nh7ebFh40YiIo5QpUrR74m6d70hv0gDYG9vzzNPPcGSZcuZ9dccnqtZA2/vvPubGbNm06B+PVxdL35PNHzY/flFGoCAgADuu+cuPv70M7Zs3UbzZhe+J0pJSeH1N99m4uQ/iIyMIjw8jIeHP8gdtw+2iLMwISHBLJw725rTzm9/MampeTMVnZ2dC/3cxcUlv83F3DrwlgIzZx647x4aN2/Nq2+8yZ133E5g4OU/ti7WUaGmlNzy9AeMe2M4bwxoRHDF6lRt1Jp67XtSv30vqx7rCa5Uo8C2kCp5jxnEnDoKQPWm7WjZ53YWjv2MJRO/plLdZlRv0pZmPQYSUrlmgf0L7bNyrfw+L1aoST4Xw5IJed94NezUl1uf/wSfwHKXPA/IWzC5VkvrXkt5OWJOHeXLR24EDB75YiqevgGX3Zd3QAit+g1l8fivOLF/B5Uu8nsiUlqqF7JYbo3QvG3HzibRuFIAEdFJANQrb92Ccf81bUME3/y9h90n48jOtZx9k5Camf//L/dvzN3fLKXz27Mp7+9Oy2rBdKkbxo1NK+LkkPcN1IBmlZm6PoKXJm3gnelbaFYlkHY1y3FLy8qE+116vZdpG46wYu8ZfNyc+OD2lvRvVhk7K9+MVDPUh5qhPtafeBm6q0MNPpi1lSW7T6lQIzbt5N8/cWrJb6SeOQRmrsVn2amJ+f+fHnMCr2rNChSGnbwCcHCzzGMppw8BsO2DgRc8bmbi2UvGdmzm5wB412hBrfs/xS3E+gW7/eqW3KKZWcnn2P7xYDLjo2jw9LgixfVf9s5uhHd/gIO/vUL83tV6BEquKp998hF33fcA1WrXo2aNGrRr14a+vXrRr29vq+6JatYseP9Sp3ZtACKOHAWgY4f23DV0CB9+/Cmffzmali2a06F9O26/dRC1axd8W1qtGgXvk+r80y7iyJGLFmrOno3hsy++AqD/jf0Y/cVnhIZad0/k4uJC1xu6WNXWGm5ueV84ZWRkFPp5enp6fpuicnd354nHRvDYk0+zdPkKPQJVClSoKSUNO/bhrZk72L36bw5uWcX+jctYM3Mc1Zu047ExM4ptpsZdI7+l69DH2b32bw5vXcviCWOY/8snDH7+E9rfcn+xHAPAJyiMe97+kQ1zJ7Fz5Tx2rpxHjWYdaN7zVhp26msxU+e/cnNySDoXY/WxPH0DrF7UN/b0Mb54uB8Zack8/vUswqpd+Svk/MvlfXuXHG/9s+siZe3fR5suMnHmgmZvOcZDP62kWZVA3r+9JaG+7jg52HEmPpXHf11N7v89NtW8ahAb3rmZpXtOs3r/GVbvj2Tq+gg+n7eDuS/0xsvVCWdHe6Y+2Z0tR86ydM9p1h6M4uO/tvHxX9v4eXgnujcoOB34/z3Zqz6Bnq5M2xjBQz+tZOSfm+jfrDIDW1ahQYWLf5OcmJZJWqZ1a9S4OtnjVcjso9IU7ufOybjLe4uUSGk4Pu9bDk96C78GXajQazhO3kEYDo4kHd1JxB/vYv6ncGO1f/JKnYdG4+hV+BcsroGXfuyp3hM/E7X6T2K3L2L9C+3xqtaM4NYDCGpx4yVnnmTER1sdrqOHj8XsoovJSj7Hto8Gk3rmMPWe+KXQRYaLyiWg/D99W7++hYgtuOnGvhw5sIe58xewfOUqFi9eyk8//0rHDu1ZOHd2sS1a++tPP/Ds008yb/5CVq1ew2dffMV7H3zE6C8+46FhDxTLMQDCw8MYP/Znxv8+kdlz5jJ7zly6dOrIkNsHM+CmGy1m6vxXTk4OZ89eugD9r8DAwIs+hhX2T4GosMeboqOjycrKKvSxKGtVqpiXg2NidE9UGlSoKUXu3n606D2YFr0HY5omM0e/wd/jvmDXqgU07HTxVcWjjh4osC0yYj8AAWGVLLaHVqtDaLU6dLvzCVKT4vn4nhuYOfrNAoWaqKMH4D9veIo8sq/QPv/L3sGB5j0H0bznIBJioti8MO8NT7+9+TCTPniKeu170rznrdRt0w0HR8sLmXNRJ0tkjZrY08f4/KG+pCUn8PiYmZSv2dDqY1zM2RN561t4+WmKn9iGg5EJ9PrPtgOnEwCoGJi3SF3V4LwLg10n4qgY4ElRTF1/GBdHe/58qrvFOjVLdp8qtL2HiyP9mlSkX5O8v6c/L9vHixPXM3H1IYZ3Pf94QJPKgfkLB5+KS+GGd2bz/sytlyzUVA325vVbmvLqgCas2h/JlPWHGb/qIN8u2kP1EG9ublGZm1tUpnJgwYuhVyZvsMk1agqTm2tyLCaZEG8tJiy2K2rNn7gEVqDBU+Mw/u/b77ToYwXaugSEkxYZgWmaFrNqMhNjyE5NsGjrGpL3CISjp/8VzWwJbNKTwCY9yUpJ4OyG2USumcrB8a9yaMIb+NbrSHCrAQQ27Ym9c8Fvldc80cjq41i7Rk1+keb0Qeo99hP+9TsV4WwuLC3qCACOXro2kauPn58fQ4fcztAht2OaJi++8hoff/oZc+bOp/9NF3+hyf79Be+J9uzdC0CVypUstterW5d6devy3DNPER8fT6t2nXjp1dcLFGr2HdjPTVjei+3Zu++fPi/+eJaDgwNDbhvMkNsGExkZmf+Gp3sfGM7Djz5Bvz69GXLbYHr17I6Tk+U90YkTJ4t1jZqQkBDCw8NYt35jgc/WrtsAQLOmTaw+3n8dPJQ38zE4OOiy+xDrqVBTCnJzckhPTbJ4PbVhGITXzCtWpCRc+tuQveuXcPLAzvz1X3Jzclj8+1cYhkH99r3y+3H19LGYNujm6YN/aEXOnowgOyvTomiyatrPdBj4AC7ueTdxyfGxrJ01Hp+gMMrXamT1+XkHBNNlyAi6DBnB6cN72TB3EhvnT2Hrohm4efnQuMtN3Pr8J/nHLok1amLPHOeLh/uSlpTAY6OnU6F24wu2zUxPJS7yJK4eXngH5D1Hn5OdTWZ6aoGZQNEnDrN2dt7vSXgN64tLIiVp3IoD3NepVv76LLHJ6Uxcc5BQXzcaVMh71Klfk0q8PW0Ln87ZQcfaoQXWcvnvjdP/s7ezwwCLmTM5ubmMWbi7QNvY5HT8/7Pw7b+zXM6lZFywTaivG/6eLvltrGFnZ9Chdjk61C7Hh0OymbftOFPWRfDJX9v5cNY2mlYO5Lm+DelSLyx/n7JeoyYqIZXEtCzC/Nxx+6fodS4lA1/3gs+Pj164i3MpGdzZvvCFTkVsgWH377e5/5cfMtM4ufCnAm39G3XjxLxviV43PX8xYYDj874p0DaoRT+OTP2AI9M+wbtGS+ydLHNGdmpi3qupHQtfe+G/HN29Ce08lNDOQ0k7e5yoNX8SueZP9n73KAec3Qho0oNqQ96ymGVT3GvUZKXEs+2j20g5dYB6j/2If8MLP+KQm51FWvRR7J1dcfEPP99HchyOHpaPsGYlx3Fi/rfYO7td1oLGImUlJyeHpKQki9dTG4ZB40Z5X67GWvEGpIWLFrN9x4789V9ycnIY9fmXGIZBvz69AYiLi8PHx/KeyMfHh8qVKnLo8GEyMzMtiibfff8Tjwwflv9GppiYGH4Z+xvh4WE0adzI6vMLCQnhqSce46knHmP3nj389vtEJkyazJQ/p+Hr68stA/oz+otR+ccu7jVqAG4ffCsff/oZs2bPyX9Ft2mafP7VaNzd3en/f68cz8rK4vDhCNzc3CwWO46NjcXf33IGYmxsLKO++BJ3d3c6dyy5x0TlPBVqSkF6ahIv96pJ/fa9KF+zAR5+gcSeOsbKP3/C3duXum17XLKPsGp1+fyhPnQcNAxPv0C2Lp7Joa2r6Th4OCH/rDWzfs4klkz8mkad+hJQvgr2Dg4c2rKavesW06zHwAIzW1w9vPn43hto1e8OzJwcVs8YS0pCHPd/MNbqR43+K7Rqbfo/9iY3jniDg5tXsmHuZDb/PY3+j7+Vf/ziXqMmPSWJLx7qS+zp43QcPJyoY4eIOnbIok3Dzn1xdnUH4OjuzXzxUF9a9hnCXSPzLhYz0pJ5o39DGnTsS0il6rh6eBN59ABrZo4jOzODe9/9+bJ/T0SKm5ebEz0/mMNtrauRa5r8tvIAcSkZ/DisE/b/XJSE+bnz5sBmvDx5A53ensWgllUJ9XXj1LkU5m49zvgRN1AhoPD1Yfo0rsBfW44x8LOFDGxZlfSsbGZuOkphL4pq98YMmlYOpEnlAEJ83IhKSOO3lQdwdrDjxmaVAPhszg6W7T1Nt/rhVAjwwDRh4Y6THIxM4Ime1r9l5f+5OTlwS4sq3NKiCtGJaUzbEMGUdREs3XPKolBTEmvULNh+gt0n8y4mI6Lz1uMYNWc7AN5uTtzfuXZ+23emb2Hy2sNMf7oHbWvmFYb/WHuYCWsO0aVuKOX9PcjMzmHVvkgW7jxJzXLePNbj8n5PREpDQLPeHJn6ATtG3UlA015kJ8dzZtVkHFwK5pMKfUYQtXYGe394isTDW3ErV434A+tJPLQJR08/4Hyx2MUvlBp3vc++n59lw0sdCW5zCy7+YWQlxZF8ci8xW+bT4r3luAZefAZeYVwDK1DppqeodFNeHJFrphK9fiYZ585YFGqKe42a7R/dRvKxnQS16k92SgKRq/+0+NyvXof8V3RnnItkw0sd8anVmsYvnW+34ZWu+NRsiXv52jj989anM8snkJUcR827P8TRw7dYYxYpSUlJSYRWrMqNffvQqFEDggIDOXL0GN9+/yN+fn706XXpe6IG9evRuVsvRjw8nKDAQP6cPoMVK1fx6CMPU6tW3loz48ZP4POvRtP/xn5Uq1oVR0dHVqxcyYK/F3H74EEFZrb4+HjTql0n7rlrKDm5Ofz406/Exsbyx8TxVr3xqTB169Thg3ff5r2332TZ8hWMnzCRyVOm8tH77+Qfv7jXqAF48blnmPrndO64+16efPxRKpQvz9Q/p7F8xUo+//RjiwLMqVOnqdOwCR07tGfp3/Pztzds1pIO7dpSr149ggLz3vr00y+/EhMTyzejv8TP7/LWP5SiUaGmFDi5uNH5tofZv3E5+zcuIyM1Ba+AEOp36E2Pe5/GO+DS1dEGHfsQEF6Zhb9+RszJCDz9g+n38Kt0v+eZ/DbVm7bj5IEd7Fw1n8SYKOzs7fEPrciAJ96h463DCvTZ//G3OLh5FcsmfUfyubMEV6rJAx/+RqPOF59yaA07OztqNu9IzeYdGfzCpzg4WfcN2OVISYgj9nTelOvlk79jeSFt3mq0I79QUxhHZ1cade7H0V2b2b50NhlpKXj6BlC3TTe63/NUsT1GJVIcXr+5KWsORPLj0r3EJKVTPcSbn4d3ok9jy+mwD3SpTZUgL8b8vZvvF+8hKyeXEB83OtUJxc/jwn8nb2lRhcS0TH5YvJeRUzfi7+nCTc0qMaRNddq/OdOi7cPd6rJo50l+XLqPxLRMAjxdaFo5kCd61adOWN4NRK9GFYhKSGPW5qOcTUzHxdGeKkFejLqzNXe0vfLZI0FerjzUtS4Pda1LcnrWFfd3KX9tPVbgcaoPZm0DoLy/u0WhpjCNKgWwav8ZZmw8SmxyOgAVAzx4uncDHu1R75JvshIpSxX7jIDcHM6snMzB8a/h4hdKSPvBeFVtzPaPbrNo6+TpT5NXZ3Bo4pucWTkJMPCt3YZGL05l88he2P1n1ky5DrfhGlKFE/O+5fTS38hOTcTR0w+3kKpUvvn5/KLGlfCq2hivqo2pdvvIAgshF7ekozsAiF43g+h1Mwp83ujFqZc8p+BWN3Fu7xridq0gJz0JBzcvvKo2oXzP4fjWblsSYYuUGDc3N554bARLli5j0ZKlJCcnU65cCP369ubl558jJCTkkn3c2K8vVatU5sOPR3Ho8GFCQoJ5+803eOn5Z/PbdOrYnm3btzNn7nzOREZib29P5UoV+fiD93j0kYcK9Pnhe++wbMVKvvr6G6Kjz1K7Vk2mTp7AgJuufKFuOzs7unTuRJfOnRjz5ecXfCNTcfH19WXl0kW89OprfPfDTyQlJVG7Vk3G/vwDd94xxKo+Bg8ayPIVK1m4aAmJiYn4+PjQqkVznnriMTp36lii8ct5hlnYV6RSZIZhmGM2Jly6oQ1YO/t3xr/1CE98+xc1mrYv63CuKSOae2Oa5mUs3yqSl0eiv7v7gp9PWnOIx8eutpidIdevoOFjlW+k2BmGYXYeW3AhyuKUlRzHqhH1CO18JzXv+bBEjyWw9O5Q5QopNYZhmLkZV8ei+L+O+437HnyIJQvn0UmP8xQrO2d35Z0rdOl3oImIiIiIXIaczLQC2479NRoA3xJ8HbaIiMjVTI8+iYiIiEiJ2P7x7bgGVcKzUn3M3FzO7V5J7PZFeFdvTmDTnmUdnoiIiE1SoUZERERESoR/o25ErZnG2c3zyM1Mx9kvlPK9HqJS/2f+7w1SIiIi8v+0Rk0xuZrWqJGSozVq5Epcao0akf+nNWqkJJTGGjVSurRGjZSmq2mNGik5WqPmymmNGhERERERERERG6FCjYiIiIiIiIiIjVChRkRERERERETERmgx4etIbm4uyyd/x8ppPxN7+hju3n407nITfR96BVcPryL1lRATxdu3NictKYFbnnqfLkMesfj8j4+f48jOjcSdOU56ShJeASFUrNuEHvc8TfmaDS/a94yv3uDvcZ/j6uHNJ0uPF/k8RaR05eaa/Lh0L2NXHOB4TBK+Hs70a1KJF29shKer00X33XE8lj83RLBqXyTHY5MBqBzoyW1tqnFn+xo42p//PmH1/kgGjFpw0f62fzCQcr7uAByKTGD8qoPsOB7LzhNxJKRm8mzfhjzfr9GVnbCIlAozN5eTi37m9JJxpMecwMHdl6Dmfah8y/M4uHoW2/5pZ0+w7tmWF+2r8Ssz8KnRotDPYncsZcendwDQ7K2FeFasV4SzFBFbl5uby1djvuG7H37iyNGj+Pv7ccuA/rw98nW8vC59D2Xn7F7o9rCwUE5EHCzucOUaoULNdWT6F6+xZMJo6nfozQ13PEr08UMsm/Qtx/Zs5qnv52PvYP1wmPrpC+Tm5Fzw8yM7N1KpXjOa9xyEi4cX5yJPsnb273x8zw08Ono6NZq2L3S/U4d2s/j30Ti7eRT5/ESkbIz8cxPfLtpDz4blebhbHQ5HJfLDkr1sORLD7Od64mB/4cmboxfsYsXeM/RuXIGh7auTm2uycMdJXpy4nvnbTzD58a4YRt5adNXLeTPm3nYF+ohLzuC1KRupV94vv0gDsCniLN8s2k3FAE8aVPBn5b4zxX/yIlJiDk9+mxPzvyOgcXfK9xxOalQEJxf+RGLENhq/Mh07+4tft1i7v5OXP7WHfVVgfzM3m/2/PI+DmxdeVRoXeoycjFQOjH0Rexd3ctK1gKrItei5F1/msy++4sa+fXj6ycc5cPAgX47+mo2bNrNiyd84WHEP1b5dWx68/16Lbe7uhRdwRECFmuvGmYh9LJ30NQ079WXYx7/nbw+uVIPf336UtbN+o93N916kh/N2rV7I1iUzuWnEG8z46o1C27wwblmBbe1uvpdX+9Zl8fjRhRZqcnNzmfjeE9RpfQMZqSmcPLDTupMTkTKz/3Q83y/eS+9GFfj14c7526uHePPkuDVMWH2IuzrUuOD+D3SpzZf3tMPF8fxreu/vXJuHf1rJnxsi+HvnSbo3KA9AkJcrg1pVLdDHd4v2ADCkTTWL7T0alufAqNvxdnNi54k4bnhn9hWdq4iUnpRTBzix4AcCmvai/uM/5W93L1eNfT89Q+SKSYR2Hlos+9s7uxHS9pYCfZzdPA8zJ4uQtgOxc3As9DhHZnxKbnYm5TrewckF31/u6YqIjdqzdy9ffDWGATfdyJ9/TMzfXqtmDR4Y/gg//zqOYQ/cd8l+qlSuxNAht5dkqHKN0Ro114lNC6Zi5ubSZcgIi+0te9+Ou7cfG+b/YVU/GWkpTP7wGdoOuIeKdZsWKQZP30CcXFxJSy78NeYrp/7EyQO7GPTsR0XqV0TKzvSNR8g1TR7qWsdi+62tquLn7szU9Ycvun+LqkEWRZp/9W9WCYB9p+MvGcPEtYdwdrDjlpZVLLb7ujvj7XbxR69ExDZFrZsBZi7lewyz2B7cdhCOHr5ErvmzRPcHiFw5GYByHQq/uUo+vpuTC36g2pCROLhqJrDItWji5Cnk5uby5OOPWmy/a+gd+Pv78/vESVb3lZmZSXJycnGHKNcoFWquE8f2bMGwsytQXLF3cKBi3aac2LsN0zQv2c+c794jKyONmx55/ZJtc3NzSY6PJTE2mmN7tvDr6w+SnpJE3TbdCrSNP3uGWV+/Rc/7nyUgrJLV5yUiZWvr0RjsDIPGlQIstjvY29G4cgA7jsdZlVv+63R83iMEgZ4uF223/Vgse06eo1ejCvi6Oxf5OCJim5KObAPDDq8qjSy229k74FmlMUlHd1w0t1zp/pkJZ4ndsQSvqk1wDys4K9DMzWXfL8/jU6sNwS1vKsKZicjVZNOmzdjZ2dGieTOL7Q4ODrRo1pTNW7ZadZ0z5c/puHn74+UfTLkKlXn6uRdUtJGL0qNP14mEs2fw8PHH0angjYxvUCiZ6amkJp7D3dvvgn2c2L+DpZO+Zehro3Hz8r3kMc9FnuD1mxrk/+zq4U2Pe5+h211PFmg75ZPn8Q4MoevQx607IRGxCZHxqfh5OONcyKyYUB83UjOziU/NLFIRJTk9izELd+Pl6kjPRhUu2nbimrxF+G5vW+2i7UTk6pJxLhJHTz/sHAvmDmffcuRmppGdEo+jR+HXI1e6f+TqqZg52ZRrf1uhn59a/CspJ/bQ/J3FRTgrEbnanDp9moAAf5ydC+aSsLAwUlNTOXfuHH5+F76HatG8GQNvHkD1atWIT4hn9l9z+fzL0axes5blixfi4nLxL6Xk+qRCzXUiMz0Vh0IuVgAcnF3+aZOGu3fh+/+7fkzVhq1o2ce65yu9/IN5bPQMsrOziD52kHV/TSQ9NZmc7Czs7M/f1O1cMY9tS2bx+NezcHDUYwoiV5PUzGycHQoWaYD84k1aZrbVhZqc3Fwe+Xklx2OS+fb+9hfdLyMrh2kbjhDu507HWqFFD15EbFZORhp2DoVfE9j986VTTmYajhReaLnS/c+snIydkytBrQrOlsmIO0PEnx9SofcjuIVUKWRvEblWpKamFVqkAfILLKmpaVykTsO6Vcstfr77zqG8/NobfPDRJ/zw0y88NuLhYotXrh169Ok64eTiRnZWRqGfZWek/9PG9YL7L//je04e2MngFz61+piOzi7UatmZem2702XICB4bM4Mtf0/j93cey2+TnprM5I+epXnPW6nZvKPVfYuIbXBzciAju/A3wGVk5W13dbLuO4HcXJMnxq5h/vYTvHxTY25ucfEboLnbjhOfmsng1tWwszOKFriI2DR7Z1dyszML/Sw3M+96xt7pwtctV7J/wqHNpJ4+QFDzvoW+BvzA+Fdx8vSnQt/HCtlbRK4lbm6uZGQUfg+Vnp6e36aoXn7hOQzDYP6ChVcUn1y7VKi5TngHliM5PpaszIKJ5lz0aZxc3C74OFNacgJ/ffsOTbvfgr2jI9EnDhN94jDx0Xmvuk1JiCX6xGEy01MvGoOnbwC1WnZh08KpZP1THFo07guSzp2l/cD78/uNPnGYzIw0TDOX6BOHORd16grPXkRKSoiPG3HJGflFmf93Oj4VNycHfKxY0Dc31+Sp39bwx7rDPNu3IU/2bnDJfSauOYRhwO1t9NiTyLXG2TeErKQ4cgv5kinj3BnsnFxxcPcpkf0vtojwuT2riNk8j/AeD5Jx7gypUUdIjTpCVkp8Xt9xp0mNOnJZa3OJiO0JCw0lJia20GLNqVOncHNzw9f30ktC/JeHhwf+/v7ExMYWR5hyDdKjT9eJinWasHfdYo7t3ky1xm3yt+fm5HB8zxbK12qIYRT+jXRqYjzpKUlsmDuJDXMLrmw+/+dPmP/zJzw0ajL12/e8aBxZGWmYubmkpyTh6OxCXORJsjMzGPVAj0Lbv3lzEyrUbsQL45YX+rmIlK3GlQJYuuc0W4/G0Kp6cP72nNxcth2NoX4Fvwvmln/9W6SZuOYQT/duwPP9Gl3yuKfiUlix9wztapajQoDetiJyrfGs3Ii4nctIjNiGT82W+dvN3BySjmzDs1L9i+aWy90/JzONqPUzcQ2ujE+tVgU+T4/N+/Lo4G+vFHrcnZ/fA0D77w7i4OJuxZmKiC1r1qwpC/5exIaNm2jfrm3+9pycHDZu3kKTxo0ueZ1TmPj4eGJiYmjVonlxhivXEBVqrhNNu9/Cgl8+YenEry0KNevnTCQ5Ppa+PQflb4uLPEFmehqB4ZWxd3DE0y+Q+z8YW6DPMxH7mPv9+7Tqewd123WnQu3GACTHx+Hq4YW9g+Xwij5+mH3rl+IfWhFPv0AAOt76IPXaFyzSzPnufeLOHOfOkd/gbsXCxSJSNvo3r8Rn83bw3eI9FoWaP9YeJjY5gxf+7/Glk3HJpGXmUCnQE0f7vAmdpmny9Pi8Is2Tverz4k2NrTru5LWHyDVN7tAiwiLXpOCWN3Fs9hecXPiDRaElctUUspLiCL755vxt6bEnyclIwzWoEnYOjkXe//+d3TiXnLQkyvV5tNDPfWu3pe6j3xfYHr1+Nmc3zqbq4NdwCSyPvZMWBxW5Ftx260De++AjvvhqjEWhZtz434mJiWHIG6/lbzt+/ASpqalUrVoFR8e8XBQbG4u/v3+Bfl9+bSQAfXr3KtkTkKuWCjXXidCqtel028Msnfg13z07hHrtenD2xGGWTvyGinWb0uamu/LbjnvjIQ5uWcVbM3fgH1oRJxc3mtzQv0CfB3xWAhBWvZ7F5ztXzmPOd+/RqHM/AsIrY2dvT+SR/ayfM5GsjHRufe7j/LYV6zShYp0mBfpe8ccPJJw9U+hxRcR21Ar1ZViX2ny3eC93fb2E7g3CiYhK4vsle2hSKYA72lXPb/voL6tYcyCKTe/ekj8LZuSfm5iw+hB1w32pHuLNlHWHLfqvE+5L3XDLFfpM02TS2sP4uDnRu3HFC8aWmJbJj0v2AhCdmAbAuoNRjJqzHYAeDcsX6FtEbIN7eE3Cuz3AyYU/sPOLe/Fv2JW0qCOcWPgjnlUaWzyWtPf7J4jft5ZWn6zHNbB8kff/f2dWTsKwsyek3aBCP3cJCMclILzA9pST+zi7EXzrtsezYr1i+B0QEVtQt04dHn/0Eb74agwDBg6mT+9eHDx0iC++GkOL5s24/96789veff+DLF+xkoj9e6hUKe/65J33P2TDxk107NCeihUqkJCQwJx581m5ajWdOnbgvnvuutCh5TqnQs115OYn38UvJJxV035hz5q/cff2o+3N99LvoVew/+cbqOJQsU4TajRrz+41C4k/G0lOViZeASHUb9+LG4Y+Rvmal157QkSuHm8ObE6YnzvjVhxgye5T+Lo7c1f7Grx4U+P8mTMXsv1Y3rPZu0+eY8Qvqwp8/mzfhgWKKWsPRnH0bBL3dqyJSyGvBf9XfEomH8zaZrFt1f5IVu2PBCDU112FGhEbVu32N3DxD+P0st+I3bEURw9fQjsPpcrNz+fPnCnO/dPOniB+3xr8GnTB2TekJE5JRK5Cn370ARXKl+f7H39m3oKF+Pv7MeyB+3l75Gv5M2cupFOHDuzdu++fGTixODg4UKtmDT587x2eeGzEJfeX65ehxc6Kh2EY5piNCWUdhpSxEc29MU1Tr5+Ry2IYhhn93d2XbigCBA0fq3wjxc4wDLPz2NNlHYYUo6V3hypXSKkxDMPMzUgp6zCkjNk5uyvvXCG99UlERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbIQKNSIiIiIiIiIiNkKFGhERERERERERG+FQ1gGI7Tu+bxub5k/hwKYVxJw+BkBgeBVa97uDtgPuwd7BEYD46NOsnzORPWsXE338EOkpSfiVq0Ddtt3ofvfTePj4leVpiIgNiUpIo93IGSSkZvL2oOYM71qn0HamadLno3lsijhLz4blGfdIF4vPP5q9jU/+2l7ovqPubM3QdjWKPXYRsR3HZn9F0rGdJB3dSfrZY7gEhNP60w2Ftj0yYxRxO5eRFn2U7NREnDz9ca9Qhwq9Hsa3dpsC7TPio4mY8h6x2xeTk56CW2g1yvd8iJA2N5fwWYlIWXv/o4/ZunU7W7ZuI+LIESpWrMCRA3sLbfv3osX8OX0mW7dtY8fOXWRkZLBk4Tw6dexQoO2y5Svo0r1Xof3ccftgfvv152I9D7l6qVAjl7Ro3Bfs27CMhp360qb/3eTm5rJr5Xwmf/QsO1bMZcSX0zAMg50r5zH3xw+p26YbXe98HBc3D47u3szSid+weeE0nh+7FO+A4LI+HRGxAa9O3kB2Tu4l2/26Yj97T527ZLu3BzXHz8PZYluzqoGXHZ+IXB0ipr6Pg7sPnhXrkZ2aeNG2SRHbcA+rQWCz3ji6e5OZEEPkmqls+2AgtYePtijAZKUksPXd/mTER1G+xzBcAsKJ3jCbvd89SnZKPOHd7ivpUxORMvTKayPx9fWlSaOGxCckXLTthEmTmTDpD+rWqU3dOrXZsnXbJft/8P77aN/OskBcpXLlKwlZrjEq1MgldRr8EHe+8Q2Ozi7nt906jF9fe5CN8/9g16oF1G/fk6qN2vDWzJ0WxZi2A+6hUr1mTHj3cRaP/5Kbn3y3LE5BRGzIop0nmb3lGK8MaMLb0zZfsF1UQirvTt/Cs30b8uafF24H0KtRBSoEeBR3qCJi41p9vBbXoIoAbHyt60WLNQ2eHldgW1i3+1j3XGuOz7Es1ByfM5q06KPUf+IXApr0AKBcxyFs+2AgEVPfJ7j1ABw9fIv5bETEVhzau4sqVfIKJ42bt7poseadN0fy7ZivcHZ25vMvR1tVqGndqgVDh9xeXOHKNUhr1MglVWnY0qJI86+m3fIuaM4c3gNAaNXahc6Y+bfd6cOFTxcUketHSkYWL0xcx53tq9OkUsBF2748aQNhfh4Mv6Hwx6L+Kyktk5zcS8/SEZFrx79Fmsvl4OKOo4cv2amWN2FRa6fhGlQpv0gDYBgG4d0fICc9hZgt86/ouCJi2/4t0lgjLCwUZ2fnSzf8j5SUFDIyMoq8n1wfVKiRy3Yu+hQAnn5BF20XH30aAC//i7cTkWvfR7O3kZaZwyv9m1y03d87T/LX1mN8NKQVDvaX/qeq09uzqPrkRMJHjKffx/NYsfdMcYUsIteYzKRYMhNjSD6+h4PjXyP19EH8G9yQ/3lGfDQZcWfwqlowT3lXbw5AYkTha2OJiFjjiaefw9MvCFcvP2rXb8zX335f1iGJjdGjT3JZ0lOTWfTbl7h6eNOgY++Ltv3r+/cAaNlH0/tErmc7T8Txw+K9fHZXW3zcL/zNU0pGFi9OXMdtravRstrFC7zerk7c2b4GzasG4uPmxIEzCXy7aA+3fvE3PzzYgX5NKxXzWYjI1W71o/Xz/9/OyYXQzndS7fY38rdlnosEwNk3pMC+Tl4BGPaOZJxTMVhEis7R0ZEb+/ahV88ehJYrx8lTp/jhp5959Imn2Lf/AF9+9klZhyg2QoUaKbLcnBzGvj6M2NPHuPedn3D3vvDbnBaN/4qti2bQdsA91GzesRSjFBFbkptr8uz4NbSoFsTg1lUv2vbDWdtITs/m9VuaXrLf/74tqmdDGNy6Kh3enMVLkzbQs1EFHK2YkSMi14+Gz0/CzMkh/exxzqz6g5yMVHKzM7F3dgMgJzMNAMPRqdD97Rydyf2njYhIUbRt05q2bVpbbBv2wH107taT0V9/w4P330P9evXKKDqxJbp6lSLJzc1l/Nsj2LF8Dv0eeY1mPQZesO3qGWOZ8eVr1GvXg8HPqzoscj37adk+dp04x4e3t7pou53HY/lhyV5eu7kJ/h4F18ayRrC3G7e3qUZ0Yho7j8deVh8icu3yq9sB/wadCbvhbhq/NJWkozvY+fk9+Z/bO7kCYGZlFrp/blYGdv+0ERG5Uvb29rzw7DMAzJu/sIyjEVuhQo1YLTc3l9/feYz1cybS+8EX6Xnvsxdsu2bWb0x87wlqtezCAx/+hr2DYylGKiK2JDEtk/dnbqV/80o4OtgREZ1IRHQiZ+JTAYhLTiciOpHUzGxembyBKkFetKkekt8uIjrvLS6pmdlERCcSl5x+yWOW9/f4p28t0iciF2bv5Epgsz4kHNhAamQEAE7/PPKU8c8jUP8vMzEGMycLZ99ypRqniFzbKlWqAEBMrL5gkjx69Ems8m+RZt3s8fS87zn6DHvpgm3XzPqNCe88Rs0WnRj+yQQcnYq+CrqIXDviUzJJTs9iyroIpqyLKPD5Z/N28tm8nYwf0YVT51I4EZtCq9enF2i3Yu8ZWr02nYe71eHNgc0veswj/xR3Ar30rbeIXNy/jzFlp+S9+cnZJwhnv3IkHt5SoG3CoU0AeFZuUHoBisg17+DBwwAEB+nlK5JHhRq5JNM0mfBuXpGmx73P0O/hVy/Ydu3s35nw7uPUaNaB4Z9MLPS13iJyfQnwcuGnYQXXqNp3Op6P/9rOba2r0q1+OA0rBvDRkFakZmQXaHv/98tpXMmfR7vXo2qINwDZObmkZWbj6Wq5jkREdCIT1hwi1NeNeuV9S+akROSqkp2WhGHviL2T5XVJZlIs0RtmYe/shnt4zfztwa0GcHzu18RsWZD/im7TNDm54Afsnd0IbNqzVOMXkWtDbGws/v7+FtvS0tJ45/0PMAyD3j17lFFkYmtUqJFLmv7Fq6ydNZ6w6vUJqVSTDXMnW3weVr0uYdXrsWP5XH5/51Fc3D1p2u1mti2ZZdHO0z+Q2i27lGboImID3JwcCn37kp9HJLCduuF++Z8He4dfoJflBHu7WfSTkpFN81f+pFejClQL8cbb1YmDkfGMX3WQzOxcPnmgA/Z2esJX5FoWuXoq6TEnAchMiCE3K4OjMz8HwCUgnJC2eWvpJR3dye4xwwhs1he3kCrYO7uRGn2EyJV/kJUUS817PspfTBigQt9Hid74F3u+HUF4j2G4+IcRvWE28fvWUv2Ot3D0uPCLFETk6vfb7xM4dvwEAFHR0aSnZ/DO+x8CULFCee68Y0h+2x07dzLrr7kArFu3Pm//CRNZtWYtAI898hDe3nlfMvW+cQCh5crRuHGj/Lc+/TZ+AkeOHuWlF56jdu1apXaOYttUqJFLOr53GwCnDu5k7BvDCnze+8EXCatejxP7t2Pm5pKWlMCE954o0K56k3Yq1IhIsXFxtKdP44psOXKWOVuPkZqRjb+nC13rhfN4z3rUr+B/6U5E5Kp2ZsVE4vettdh2ZNpHAPjUap1fqHENrkRg097E719H1Lrp5Gam4ejpj3eNFoR3fwDfWpZvYXF096HJKzM4/Md7nF46jpz0FNzKVaP2sC/z+xSRa9fPv45j+YqVFtteH/kWAB07tLco1GzZui3/s3/98uu4/P8fevtt+YWamwfcxMxZfzH662+Jj4/Hw8ODJo0a8vGH73Fz/5tK6nTkKmSYplnWMVwTDMMwx2xMKOswpIyNaO6NaZpGWcchVyfDMMzo7+4u6zDkKhE0fKzyjRQ7wzDMzmNPl3UYUoyW3h2qXCGlxjAMMzcjpazDkDJm5+yuvHOFNCdcRERERERERMRGqFAjIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChZpr1Jzv32dEc+/8X0d2bizrkK7YN0/danFOIlI8Ppq9jaDhY/N/bYo4W9Yh2azZm49a/F5NWnOorEMSuaocmf4JS+8Ozf+VcGhzWYdUqo7P/cbi/M/tXVPWIYlcE0a+/S52zu75v9at31DWIZWqqdOmW5z/r+N+K+uQ5Ao5lHUAUrJueep9PHz8CSxfJX/bnO/fZ+4PH1xwn8DyVRg5betlHS8hJpLlf3zP8b3bOLF/O8nnYmjZZwh3jfym0Pav3VifuDPHC/3sy7Wx2DucH6I3DH2Mpt1uYdWMXzm8VRc2IsXt7UHN8fNwpnKQZ/62k3HJvDdjKzuOxxIZn0pWdi5hfu7cUC+MR3vUI9jbLb/t6v2RDBi14KLH2P7BQMr5ugMwa/NRJqw+xL7T54hLzsDNyYHKQZ7c1b4Gt7auir3d5X2XUJQ4TNNk6voI/t55km3HYomKT8XPw4V65X15sncDmlYOtNivceUAxtzbjoORCXw+b+dlxSciUG3Imzh6+OEaXMli+9K7Qwtt7+xbjjafX35RJyM+ilOLfiHp6A6Sju4kKymWkHa3UvvBzwu0TY08TOSaPzm3awVp0UfJzcrANagigc37Ub7Hg9g7u1m03/vDk0Su+qPQ4zZ8fhJ+dTvk/+zfqCtO3kEkHFjP6WXjL/t8RKRwoz7+kIAAf6pVrWKx3c7ZvdD2YWGhnIg4aLHNNE2+/vZ7fvjpZw4cPISLiwsd2rXl3bdHUrdOnSuKr3KN2hw7Vvi9T2ZKAg4OBW/P58ydz+dffsXmrdvIyMggPCyMbl1vYPQXo/LbtGjWjHG//Mjefft5/8OPryhGsQ0q1FzjGnbqg39oRYttjTr3IzC8SoG2h7atYfX0X6nXrudlHy/q2EEW/PIpvsHhVKzThN2rF15yn+BKNeh577MFttvZ21v8XKNpewD2bVimQo1ICejVqAIVAjwstp1NTOdUXAo9GpQn1NcdR3s79p0+x2+rDjJz81GWvHojAZ4uAFQv582Ye9sV6DcuOYPXpmykXnm//CINwO4TcXi4OHBPh5oEermSkpHFol2neGLcGjZGnGXUnW0u6zyKEkdGdi4jfllF/fJ+3Ny8MhUCPIiMT2XsigP0/nAuo+9px6BWVfP7CPfzYFArD1bvj1ShRuQKBDTpiWtg+UI/867RktBOQy22/bc4UlSpZw5zbPaXOPuF4lmlEXHbF1+w7ZkVkzi1+FcCGvcguPUADHtH4veu5sifHxK9YTZNX5+NvZNrgf1qD/uqwDb3sFqWP4dWxz20OmZutgo1IiWg/439qFSpYqGftW/Xlgfvv9dim7t7wQLO8Ece48eff+GGzp148P77OBcfz9fffkebDl1YvXwx9erWvaIYa9WsycsvPldgu/1/7n0A3nznPd58+116dOvKyNdewc3NjeMnTrBz5y6LdhUqlGfokNtZtnyFCjXXCBVqrkNh1esRVr1ege1bl8wEoPWNQwt8Zq0KtRrxwcLDePoGkJoUz3NdCk+U/8/LL4gWvQdf9jFFpOQ0rhTAzGcLFm9bVQ/mge+X88e6wzzSLe+CJcjL1aKo8a/vFu0BYEibahbbX+rfpEDbYTfUYchXi/h99UFeGdAEfw+XIsdclDgc7AxmPNODNjVCLNoObV+DDiNn8sbUTdzSogp2dkaR4xCRy+MaVJGQtrcUa5+elRrQ9qudOHn5k5WSwKpHal+wbVDzflTs+xgObl7528K63IVrcBWOzf6CM8snEt7tvgL7FXfMIlK8qlSuxNAht1+0zdZt2/jx51/o3bMHf82clr996O23UbdRUx5/6lmWLJx3RXEEBwddMg6ARYuX8Obb7/LmG6/x2ssvXtEx5eqjNWoEgKS4s+xatYCKdZoQVu3yq8Qu7p54+gYUeb+c7GzSU5Iu+7giUrrC/fK+gUpMzbxk24lrD+HsYMctLQvO5Cu0b38PTBMS0y7dd1EUFoeDvV2BIg3kFXta1wgmJimds0npxRqHiFxabnYm2ekpxdafg6sHTl7+VrX1rNzAokjzr6CWNwKQcmp/ofuZpkl2WhJmbu7lByoiJSozM5Pk5OQLfr5s+UoAht5hWUipVKki7du2YdnyFRd8dKkosrOzSUq6+L3P+x99TFBQIC89n/fkQXJyMrnKL9cNFWoEgPVzJ5Gbk31Fs2ku19Hdm3iqfQjPdArn2S4VGP/2CJLitJipiC3JyMohNjmdM+dSWLbnNM9PWAfADfXCLrrf9mOx7Dl5jl6NKuDr7lxom8S0TGKT04mITuTnZfuYtOYQNcp5U9Hfs9D2l8OaOP7rzLlUnBzs8HZzKrY4ROTSojfMZvkDVVg5vDqrH2/IwQkji7Voc7ky4s4A4ORV+BdSKx+qycqHarJiWFW2f3IHSUd3lGZ4InIJU/6cjpu3P17+wZSrUJmnn3uhQNEmIzMDADfXgo9b/vuY1IZNm64ojvUbNuLuE4B3QAh+wWHcP/xhoqOjLdqkpKSwYuVqWjZvzk+/jCW8cjW8/IPx9Avi9qF3ExUVdUUxiO3To08CwLrZv+Po7EqzHgNL9bjlqtSizU13EVK5BtmZmezfuIx1s3/nwKaVPD92GR4+fqUaj4gUbvrGIzw+dnX+zxX8Pfjm/vY0rxp00f0mrslboO/2ttUu2Oaur5ew5kDeBYdhQIda5fhkaOtifdzImjj+36KdJ9lyNIZBrarg4ljwmXERKRmeVRoT1LwvriGVyU5NJHbrQk4u+J6EAxto/PI07J2K/jhkcTBzczg66zMMeweCWw+w+MzJO5DwHsPwrNQAeydXko7t5OTCH9jyTn8avTAZ7+rNyyRmETmvRfNmDLx5ANWrVSM+IZ7Zf83l8y9Hs3rNWpYvXoiLS15uqVMr77HIZStWcGO/Pvn7p6WlsX5j3lt0T5w4edlx1K1dm/vvvYfatWqSkZHB4qXL+HXsbyxbtoINa1bg75838+/Q4cPk5OSwbsMGFi5azAvPPUPDBvVZuWo1X47+mh07d7Fx7Urc3K5s/S6xXSrUCEd3b+ZMxF6a9xqMq0fpvvb6kc+nWPzcvOcgKtVtxsT3n2TBL59yy1Pvlmo8IlK4znVDmfJkN5LTs9h2NJYFO06QcInHnjKycpi24Qjhfu50rFX4m1wA3hzYnHMpGUQlpDF32zESU7NIycguttitjeNfEVGJjPhlFeV83HhzoG6wREpTszfmWPxcrt2tHJ7yPsf/+oozy38nvNv9ZRLXwd9fJ/HQZqoMfAm3cpYF36q3vmLxc2CzXgS16Memkb048NurNH/r4m+hE5GSt27Vcouf775zKC+/9gYffPQJP/z0C4+NeBiAXj27U6tmTcZ88x3hYWHc1K8v8QkJvPn2u5w9GwNAalraZcfx/+veAAy5bTAtmzfnoRGP8d6HH/PpR3lv5k1Kypvpc/ZsDN9/M4YH7rsHgAE33YiXlxdvvfMeY3/7nYeHP3jZsYht06NPwtpZvwHQpgweeypMu5vvxcM3gD1r/y7rUETkH8HebnSsHUqfxhV5ZUATPri9JS9OXM/4VQcuuM/cbceJT81kcOtqF50d07CiP53qhDK4dVXGPtyF8v7u9P9kPjHFtDaMtXEAHItJ4pbPFmIAEx/vmv9GKxEpOxX7PQ6GQeyOpWVy/Ig/P+LUol8I7TSUiv0es2ofj/K1CWjcneRjO8lMjCnhCEXkcrz8wnMYhsH8BeffUuvo6MjcWdNp2aI5z77wEtXr1Kd563YkJCbywnPPAODlWXyPZgMMe+A+AgMDmL/g/L2Pq2vem+Xs7Oy48z/r5dw99A4Alq9YWaxxiG1RoeY6l5mexuaF0wgIq0T1f15/bQv8QsqTHB9b1mGIyAW0qRFCqK8bE9ccumCbiWsOYRhwexvrHjf618CWVYlPzWTetitfrK8ocRyPSebmUQtIychiypPdqBPmWyzHF5Er4+DijqOHL1lJcaV+7CPTP+HYrM8JaT+YGvd8WKR9XQLCAcokbhG5NA8PD/z9/YmJtbznqFSpIiuW/E3E/j0sW7SAfTu3sXzxQjIz82YS16xRvdhjqVihAjGx54u64WF5M4B9fX1xdrZcW69cubyXIJw7d67Y4xDboULNdW7b0tmkJSfQqt9QDMM2Xj+bm5tL7OmjePldfO0LESlb6Zk5F3z86VRcCiv2nqFdzXJUCPAoWr9ZeY89xVvxRqlLsTaO4zHJDBg1n8S0LKY82Z36Fax7O4yIlLyslASykuJw8i76WyWvxJHpn3B0xihC2t1Krfs+LfJ1UlrUEQAcrXzblIiUrvj4eGJiYggOKvyeo1KlinRo344a/xRmFiz8Gy8vL9q1bVOsceTm5hJx5KhFHMHBwVSoUJ64uDhSU1Mt2p88eQqAoKDAYo1DbIsKNde5dbPHY9jZ0arvkFI/dkpC4d8wLfrtC1ISzlGvXY9SjkhE/is6sfDnsKdvPEJcSgZNKhV+4zR57SFyTZM7LrJ4b2F9m6bJL8vzXn3btPKV35RZE8eJ2LyZNAmpmfzxRDcaVtRNlUhZyEou/LogYmremg3+jbqVWixHZozi6IxRBLcZSK37R2HYFX7JnJORSm5WRoHtCQc3ErttEV5Vm+LkqZwiUpZiYwufpf/yayMB6NO71yX7+OGnX9i+YyePjXg4/+1PRRUXV3iO+3jUZ8TFxRWIY+iQ2zFNk+9++Mli+zff/wBAr566V7qWaTHh61jsmeMc2LSC2q1uwDf4wq/YnfP9+8z94QOGvv41rfvdccl+5/30MQDZmXnrS5w+tCt/W7XGbajepC0A6+dMYu3s8dRpfQP+5SqQnZXJ/o0r2LVqPiGVa9Ht7iev8AxF5Eq9PW0z+0/H07F2KOX9PUjNzGJzRAyztxwj2NuV5/o1KrCPaZpMWnsYHzcnejeueMG+m7w0ld6NKlA33I8ATxciE1KZtekoe0/Hc3OLyrSpEWLRPmj4WMr7u7P5PeveTmdNHMnpWQwYtYDjsck80LkWhyITOBSZYNGmd+MKuDs7WnVMEbl8R2d+QWLEFnxqtcElIDzvrU/bFpFwYD0+tdpQrv1tFu3/nfFS64HPKNd+sBX9fw6QX1hJPrEnf5tPzVb41GoFwMlFv3B0+ic4+4fhV7c9UWunW/TjGlwR72rNAEiNjGDHqDsJaNwD15DK2Du5knxsF2dW/YGdkys17tJLEUTK2jvvf8iGjZvo2KE9FStUICEhgTnz5rNy1Wo6dezAfffcZdH+gYceAaBRgwY4OjqyZOkypk6bTo9uXXnt5Rct2h49eowqNevQsUN7lv49/6JxjBs/gV/GjqNH925UqliRjIwMli5bzl9z51Gndm1eePZpi/bPP/MU06bP5LkXX+bAwUM0bFCf1WvW8PvEyXTp1JHBg0r3bb1SulSouY6t+2sCpmnS+hKLCKen5K067hNUzqp+//r2HYufT+zfwYn9OwDo/eCL+YWainWbcGDTCjYvnEZyfN4zmf6hleh533N0u+sJXNyLd6EuESm6vo0rkpCayZT1h4lNSsfOMCgf4MHwrrV5tHs9Ar1cC+yz9mAUR88mcW/Hmhd9tfWwLnVYcyCSFXvPkJCWiaeLI3XCffnirjYMbm05AyY5PQuAEB/rX0NpTRxxyRkcj8nLcT8u3Vdom03VblGhRqQU+NRuTcrpA0SumkJWchyGnT1u5apRdfCrhHd/ADsHy7+HOekpADj7hhTWXQFHpn1k8XPysV0kH9sFQKX+T+cXapKObAcgI/YUe394okA/Ie1uzS/UOHkH4VunHfH7VhO1dhq5WRk4+QQR0uZmKvZ9HNfgStb/BohIiejUoQN79+5j3PjfiYmJxcHBgVo1a/Dhe+/wxGMjcHS0zC3Nmzblux9+ZMrUaWRnZ1OzRnU+++QjHnloGA4OlrfPSclJAISFXvo+qXmzpixdtpzJU6bmv0GqSuXKvPLSCzz/zFN4/meRYi8vL1YsWchrI99m1l9/8fOvYwkPC+OlF57jtZdfxN7+wtdYcvVToeYal5oUj3O8B64e3tj/J7H0efBF+jz44gX2PO/g5hVUa9yW2i27WHXMMRsTLt0IqNqwFVVHTbKqLUBaciI52VlkFzLFWESuXEJqBrHJDni7OuFgnzfNv0fD8vRoWL5I/bSpEUL0d3dfst3rtzS1us9V+88A8NJNjYs1jgoBHlbF+q/M7ByS0rNITLvy9XNErmfZqfFkJrnh4OaNnX3e9Ulgk54ENulpdR/n9q7Gu2Yr/Op1tKp957GnrWpX+8HPqf3g51a1dfYJos7wr6xqC5CTmUZORmp+kUlEite5+HN4xLjj4+OTX1S56ca+3HRjX6v7GP7g/Qx/8H6r2i5dtgJHR0def+XlS7Zt26Y1M6dNsToOgICAAL4Z/QXfjP7iou0yMzNJTEwkISGxSP2L7VKh5hr3wdAOADz78yIq129e5P2T4s5y8uAunvtlcXGHVmS/vvYAu1YtKOswRK5ZN7z7FwBzX+hNsyq2tUDd0t2n6V4/nHY1rZvZV1IWbD/B/d8vL9MYRK4Fm17PW1uhyWuz8a5mfdH2X5mJMSQf30PTN+YUd2gl6tSiXzk8+e2yDkPkmtW0Zd7M/TUrltKqZYsSP97Cvxcx7IH78xccLiuz/prDrbdf/CkJuboYpmmWdQzXBMMwTGtnkpSGmJNHiDl1NP/ninWb4urhVXYBFYOTB3aSfO78a+tqtexchtEUbkRzb0zTtI3XZ8lVxzAMsyizO4rL0bNJHItJyv+5SaUAPF2dSj2Oq8HZxDT2nDr/OsxaoT4Ee1v/OFZxCho+VvlGip1hGKa1M08uR1r0MdLOHsv/2atKYxxcr59HndNjT5IaGZH/s2elBji6+5ToMZfeHapcIaXGMAwzN6P0Z4xFRBwh4siR/J9bNG+Gl9fVfe9TFNHR0ezYuSv/57p1alOuXNl9uWXn7K68c4VUqCkmtlaokbKhQo1cibIq1MjVSYUaKQklXaiR0qdCjZSmsirUiG1RoebK6fXcIiIiIiIiIiI2QoUaEREREREREREboUKNiIiIiIiIiIiNUKFGrljs6WOMaO7NnO/fL9M4RjT3ZtzIh8s0BhEpfav3RxI0fCyT1hwq61BE5CqQdvYES+8O5cj0T8o0jqV3h7L3hyfLNAYRKX3Llq/AztmdX8f9VtahiA3T67ltXFpyIssmfcv2ZbOJPhFBbk4O/qEVqNu2O12HPo6Xf1BZhygiAuQVTAaMWpD/s51h4OnqSDkfNxpU8Ofm5pXpXDcUw9DaciLXquy0JE4u/JGzm+eRFnUEMzcHl4Dy+De8gQq9HsbJO7CsQxQRAfIKJl2698r/2c7ODi8vL8JCy9G0SWNuu3UQPbp303WLlAkVamxY1LFDjHl8AHFnTtCwcz9a33gX9g4OHNm1iWWTvmXd7N95aNRkqjRoUdahiojkG9iyCp3rhGICyelZHI5KZN624/yx7jAdapfjp2Gd8HbT679FrjWpkYfZ/vEQ0mNPEti0N+U63I6dvSMJhzdzcuFPRK6cTP2nxuJdrVlZhyoikm/okNvo3q0rpmmSlJTM/gMHmDn7L8aNn0DXLp35Y+J4fHx8yjpMuc6oUGOjMtNT+fbpwcRHn+GhUZOp165H/mftbr6XDgPv56sR/fnu2dt5ZeLaMplZk5WZoQqziBTQsII/g1pVtdj21qBmvPnnZr5dtIfhP65g0uNdL9lPamY26w5G0aVuWEmFKiLFJCcjlR2f3U3GuUjqPzmWgEbn/46Hdh5K2A33sP2jwez8/F5avLukTGbW5GZlgK5bROQ/mjRuzNAht1tsG/Xxhzz/0it89sVXDLnzHubOnnHJflJTU1m5ajU9uncroUjleqI1amzUmpm/EX38EJ1vf9iiSPOvinWacOMjr5F8LoZFv30BQOSR/Yxo7s30L18rtM8xTwzkmU7hZKan5m9LiIlk4gdP8WrfujzeOoCXe9VkwruPkxR31mLfOd+/z4jm3pw6tJs/Pnmel3vV5Kl2wZyJ2HfBczBNkxVTf+SDOzvwZLsQnuoQyucP9eXAphX5bVKT4nmibRA/vnR3oX1M+uBpHm3hQ1zkifxtpw/vZfRjN/NU+3I8d0NFfnn1gQLx/r/NC//k0wd68HTHMJ5sF8JH93Rhy+IZF2wvIsXP3s6OtwY1p2W1IJbsPsW6Q1H5n+06EcddXy+hxlMTqfz473R79y8mrT3Eo7+s4qelljlm3rbjdHlnNuVH/EajF6fwwcytZOXkFnrMjKwcPp+7g/YjZ1B+xG9Ue3ICQ0cvZufx2BI9V5Hr0ZkVE0mLjCC8xwMWRZp/eVVuSJWBL5KVFMvxuV8DkHL6IEvvDuXQ5LcL7XP7p0NZMbwGORnnr1sy4qPY/+uLrHmqGcvuq8jqJxqz7+fnyEyMsdj3yPRPWHp3KMkn9nJg/KusfqIxyx+sQsqpAxc8B9M0ObV4LBtf78HyB6uwYlg1tr4/kHN7V+e3yUpJYPkDldk1enihfewf+xJL7wkjPfZk/raUk/vZ/skQlj9YlZWP1GHPtyMKxPv/otbPZMs7N7FieHWWP1iFTW/2IXrjXxdsLyLFz97enk8/+oB2bdswf+HfrFq9Jv+z7Tt20P+WW/EPCcfLP5jmrdsx9rfx3H3fg4z++luLfmbO+osmLVrj6uVHhao1eG3kW2RlZRV6zIyMDN778GPqNWqGq5cfvkGh3DhgIFu3bSvJUxUbpRk1Nmrr4pkAtB1wzwXbtOp3B1NHvcS2pbO4+cl3Calckwq1G7NpwVRuevRN7OzO1+ESY6PZt34JLXrdhpOLGwBxkSf45L5u5GRl0vrGOwkMr8zZkxGs/PNnDmxeyQvjluHq4W1xzLGvD8PF3ZOudz6Baebi7u2LmVv4TdLY14exaeFUGne5iVb9hpKdmcGm+X/w1aP9efDD8TTo2Bs3Tx/qt+/JrpXzSUtOsDhedlYmWxZNo1qTdviFlAcg5tRRPhvWk+ysLDreOgyf4DB2rZzHmMdvLjSG2d+8zfyfP6FO6670Hf4Khp0d25f9xU8v3k3Sc5/Q8dYHL/2HISLF5o621Vl/KJpFO0/Sqlow247G0P/TBTg52HFvx5oE+7ixYPsJHv91NQGeLqx7e0D+vnO2HuO+75ZRwd+DZ/s2ws7OYNKaQ/y982SB42Tl5HLbl4vYGBHNoJZVua9zLZLSsvht5QH6fjSPmc/2pFGlgNI8dZFrWvTGOQCEdhp6wTYh7W7l4O9vcHbTXKrd/gbuodXxrNyQ6LUzqDoo79/of2UmnOXcruUEt7kFe+e865b02JNsfutGzJxMynW4HdegSqRFHeHUknHE71tDs5HzcHDzsjjmnu8ew8HVgwq9H8E0c3H08MHMNQuNb+93jxG1bgZBzftQrv1gcrMziVo7je0f3Ua9x34koEkPHN298W/Ujdhtf5OdmmhxvNzsTKLXz8KnZmtc/MMBSDt7nC3vDcDMziS82304+5YjZtvfbP9kSKExREz9kGOzv8Cvfmcq3/w8hmFwdvN8do8eRuad7xLe9V4r/jREpLjcd89drFq9hjnz5tOubRs2bd5Cp649cHZ25uHhDxJarhyz/5rDvQ8MJygokP27tufvO33mLAYOHkLlSpV4/dWXsLez59dx45k7b36B42RlZdGrX3/WrF3H0DtuZ8TDw0lITODHn36lXaeuLF+8kGZNm5TmqUsZU6HGRp2J2IOLuydB5atesI2TixvBlWpw+tBu0lOTcXHzoGWf25nyyfPs37iM2i275LfdtGAquTk5tOxzW/62Pz5+ntycbF76fRU+QaH52xvf0J9P7uvKkglf02fYSxbHdPf247HRM7Czt8/fFnv6WIHYti2dzcb5fzDk5S8sik2db3uYT+67gamjXqB+h14YhkHL3rezdfFMtvw93aLt7tULSUk4R8ve52Oe/c3bpCbG89T386jWuA0AHQc9yA/PD+XE/h0WMRzft435P39Cj3uf4cZHXv+/GB7iu2eHMOvrN2nZ5zZc3D0v+HssIsWrTrgvAIejEgF45Y8NZGbnMP+l3tQKzfsswNOF1QciiUvO4GxiGl6uTuTk5vLq5I34e7iw4KU++Hm4AHB3hxp0emtWgeP8tHQvaw5GMunxrnSuc/7RqXs71qTDm7MY+ecmZjzTs6RPV+S6kXJyP/YuHrgFV75gG3tnN9zKVSPl5F6y01NwcHEnpO1ADo5/jXN7VuJXr2N+26h1MzBzcwhpNyh/28HfXsXMzab5W3/j7Fcuf3tgi35seasvJxZ8T+UBz1oc09HTj0bPTcSwO3/dknb2BP91dtM8otZOo+a9HxPa6Y787eHdH2DLW305+Pvr+DfujmEYhLQdyNmNfxG9YbZF29jti8lOOUdI24H52yKmfkB2SjyNX56OT82WAIR1vZddX95P8rFdFjEkHd3BsdlfULHf41QZ+KJFDDu/uJeIKe8T0nYQDq4eF/w9FpHi1aB+PQAOHsx7s+STzzxHZmYm61cvp26dOgAEBgawdPkKYmJiiYqKxtvbm5ycHJ585jkCAwNYv3o5/v7+AAx/8H4aNmtZ4Dijv/6W5StWMm/2DLp3Oz8r8ZHhw6jfpDnPvfgyS/8uWOCRa5cefbJRaclJuLh7XbLdv0WG9OS8m55mPQZi7+DIhrmTLdptmDcJ35DyVG/a/p/+E9i1aj4NOvbBwcmZ5PjY/F/+oRUJDK/C3nVLChyv820PWxRpLmTjvMm4enrToGMfi77TkhOo174XsaePE338MAB12nTDwzeA9fP+E/PcSTi5uNH4hpsAyM3NZefK+VSu3zy/SANgGAZd73yikBimYBgGrfreYRFDcnws9Tv0Ij0liSM7N1zyXESk+Hi4OAKQlJ7F2cQ0Nh4+S4+G5fOLNJsizvLaHxv5aVgnck2TmZuOArD9WCynzqUwpG21/CINgJerE3d3qFngOFPXR1CznA8NKvgTm5ye/yszJ5eOdcqx/lA0aZnZJX/CIteJnPQkHNwu/cXHv0WGnNS865agVv0x7B2JXP2nRbvI1VNx9g/Dp1bev/fZqYnEbFtEYJOeGI5OZCbF5v9yCQjHNbgScbuWFzhe+W73WxRpLiRq7Z84uHkT0KSHRd/ZqQn4N+pGeswJ0qIiAPBr0AVHT38iV0+17GPNn9g5uRLYvC8AZm4usdv+xqtq0/wiDeRdt1To80ghMUwHwyCk3a0WMWQmxRLQuDs56ckkHtp0yXMRkeLj5Zl3P5aYmEh0dDRr1q7jxr598os069Zv4OnnXmDKxN/Jzc3ljz+nAbB5y1ZOnDjJvXfflV+kAfD29mb4g/cXOM7vEydRp3YtmjRuRExMTP6vzMxMut7QhVWr15CWllYKZyy2QjNqbJSrhyfpKUmXbPdvGxePvCTi4eNPnTbd2LZ0Nre9OApnV3fOROzjxL7t9Lj3mfzFf6OOHcLMzWX19F9ZPf3XQvsOCKtUYFtg+SpWxR959ABpSQm82KPaBdskxUUTXLEa9g4ONOs+kOV/fEfMqaMEhFUiNfEcu1YvpFHnG/OLUUlxZ8lITSa4Yo0CfZWrUvBGLfLofkzT5M1bLjxNMPEia9uISPFLTs97LtvTxZHjsckA1Az1AeB4TDL3fbeUMfe2p3nVvAXSj8UkW/y3Wog3/1WjXMFtB88kkJaVQ+1nJhf47F9xyRmE+emfQZHiYO/iSXZa8iXb/dvG/p9Hhpw8/fFv0JmYzXPJyfgAe2c3Uk4dIPnYTir2ezz/uiX1zGEwczm9bDynl40vtG+XwIoFtrleZIbP/0s5fZDs1ARWP9bggm0yE2JwC6mKnb0Dwa36c3LRz6SdPY5rYAWyUuKJ3b6YwGa984tRmYkx5KSn4Fau4Oxo99CC1zIppw+CabL+hXYXjuEia9uISPFLTMorKnt5eXHkaN5TBHXq1Abg6NFjDLxtCON+/pE2rVsBEHHkiMV/a9Us+He9Tq3aBbbt3beftLQ0gsIK5rF/xcTEUr58+BWcjVxNdIVqo8pVqcOhrauJPnH4go8/ZaanEnX0AP6hFXBxOz8NtmWf29i5Yi7bls6mZe/b2DB3Ut723udXMzdN85+2Q2jR69ZC+3d0cS2wzamQbYUxTRMv/2DufvO7C7YJrXo+SbXscxvLJn/Lxnl/0OuB59m8aDrZmRkWj2oVmWliZ2/PI59PwTAKnzxWrmrBRCkiJWfPyXMAVAv2xskh71tuNycHEtMyuWP0Ip7o2YD2tcpxLiUDgPSsy5v1YgL1yvvxxi1NL9jG39Plgp+JSNG4h9ckYf86UqOOXPDxp5yMVFLPHMIloDwOLu7524PbDiJm60LObppLSNuB+TNV/v8RIpO865aQdrcS3KbwdensHAv+nbZzsu66BdPEyTuI2sO/vGAT9/DzXwqFtB3Eyb9/ImrNn1S66SmiN8wmNyuD4LaDLri/NTEYdvY0ePo3sCv8usU9rOAXUyJScnbszHtEsUaN6jg7OwHg7u5GQkICffvfwkvPP0eXzp2Ii4sDIP0yZ72Ypkmjhg346P13L9gmMFBr611PVKixUY069+PQ1tWsmTGO/o+9WWib9XMmkpOdRcNON1psr9++F25ePmyYM5EWvQazcf4UKtZtSnCl6vltAsOrYBgGOdlZ1GrZudjjDypfld1r/qZKw5b5ixdfTIXajSlXpTYb5k2i1wPPs2HuZLwDQqjV4nxsnr4BOLt5EHWs4BsbzkTsL7AtsEJV9qxdhH9oJYIqXHitHxEpPb+vPghA1/rhVAzIKzAfOJPAfd8to0W1YO7vXAuA/afjAajgnzej7t+2hyITCvR54EzBbZWDvIhNSqdDrXL538iLSMkJbNabhP3rOLN8AlVvfaXQNpGrp2LmZBHYrLfF9oDG3XBw9yFy9RSC29xC1NppeFZpjFu587Ny3YIrgWFg5mThV7dDscfvGlyZuJ1L8a7WLH/x4ovxrNwA97CaRK7OK9RErZ6Kk08wfnXb57dx8vLH3sU9bzbQf6ScLngt4xqSF4NLYAXcQqybwSwiJevnX8cB0KdXTypXqgTA3r37GHTbHbRt05oRD+e9AW73nr0AVPqnTZXKeQXrffsL/l3fs29vgW3Vq1XlbEwMN3TprOsWAbRGjc1q0/8uAstXYcmEMexes6jA58f3bWPmmDfx8A2g652PW3zm4OhEk243s3/TCjbO+4NzUSctZtMAePj4Ubdtd7YunsGx3ZsL9G+aJknnLn96bYs+t5Gbk82srwt/5WZibHTBfXoPJvr4YTbOn0LE9nU06znIYj0cO3t76rXrwZGdGzm09fwr8kzTzH9F+f9r2WswADPHjCQ3J8eqGESkZOTk5vLG1I2sPxRN13phtKwWhJerEzfUC+OPdYfJzMrhg9vz1nDIzTX5cv5OAHo1ynvjW8OK/oT6ujFh9SHiktPz+01Ky2TsioKF2ltbVeFMfCrfLy54MQQQnajnvEWKU2jHIbgGV+bE/O+J3bG0wOdJR3cQMeV9HD39Kd/rYYvP7BycCGpxI+f2rCZqzTQy4k5bzKYBcPTww7/BDURv+IvEiG0F+jdNk8zE2MuOP6TdIMycbCKmfljo55kJBR+VDm57C2lREUStnUbCwY0Etx5gsR6OYWePf8OuJB7eTPz+9RaxHp/zdcEY2uSdc8SU9zFzC163FBaDiJSMnJwcnn3hJVatXkPvnj1o26Y13t7e9OrRnXHjJ5CRmcnoL0YBeetofvjxpwD0v7EfAE2bNCY8PIxfxo4jNvZ8bkpMTOS7H34qcLw77xjCqVOn+eKrMYXGExUVVdynKDZOM2pslLOrOw99OonRj9/CN08NolGXG6nRpB129g4c27OZDXMn4+zmzvCPJ+AdEFxg/5a9b2fVnz8z+aNncXB0omn3Wwq0ue2FUXz6YE9GPdiTFr1vI7xGA0wzl5hTR9mxfA4t+9xe4K1P1mpyQ3929xvK0olfc3zvVuq26YaHjz/nok9zZOcGzp6I4K2Zlm9patFrMLO+fotJHzyddw59bi/Qb7+HX2XPmkWMeWIgHQc9mP967uRCikoV6zal97CXmPv9+7w/tD1NbuiPV0AwiTFRHN+3jd2rF/LlWj3rLVLcth+PZcq6vG+QkzOyOByZyLztxzkRm0KnOqF8+8D5b8Prl/dj8a5THI5OZPSCXXi6ODJ323FW7Y/kzvY1aFI5EAB7OzveHtScB35YTo/353Bn+xrYGQYT1xzC192Zk3EpFjEMu6EOy/ee4bUpG1mx7wxtagTj6eLEqbhkVuyLxMXRnunP9Ci93xSRa5y9sxv1n/yV7Z8MYceoOwls1gff2q0x7BxIjNhK5Jo/sXd2p/4TP+PsE1Rg/5B2Azm9dBwHfnsZw8GJ4FY3FWhT4+732fJuf7a825+QtgPxqFAXzFzSoo8Ts3UBIW0HFnjrk7WCmvcltv1gTi78gaSj2/FvcAOOnn5kxJ0m4dBm0qKP0vqTdZYxt76FiCkfsH9s3rVSSCGPPVW55QXidi5lx6d3ENb13vzXc2clFSwqeVVpRKX+z3B0xqdsfK07QS364uQdRGZCNElHdxC7fQmdfi74pk0RuTJbtm5l/ISJACQlJbP/wAFmzv6LY8eO073rDfw+7pf8to0aNWTegoUcOHiQjz79DC9PT2bMmsXSZSt48P77aNG8GQD29vaM+vhDBg+5k5ZtO/LA/fdgb2fPL2N/w9/Pj+PHLd8+98RjI1i0eAlPP/cCi5cspWOH9nh5eXH8xAmWLF2Gi4sLSxbOK73fFClzKtTYsJDKNXll4mqWTvyWbUtns3v135i5OfiFlKfjrcO4YejjhRZpAKo0aEFQhapEHz9Mw0598fDxK9DGNyScF39bzsKxn7FzxVw2zJuMo5MLvsFh1G/fiyZdB1xR/He+PoYazdqzevqvLBz7GdlZmXj5B1O+ZgNuGvFGgfY+QaHUbNaBfRuWEV6jPmHV6hZoExhehad+mMe0z19h+R/f4+DkRJ3W3bj7ze8LXbi4z4MvUrF2Y5ZN/pYlE8eQmZaKh28goVVrM+jZwr81E5ErM3V9BFPXR2BnGLg7OxDq60br6iF8PKQyXeqdf1X2kt2n+GX5fsY+3JlpG47w87J9xKdkUDnIi7cHNWfYDZZrSPVrWomfDINP52zno9nbCPB04bbW1WhVPZhbv/jboq2jvR0THr2BX5bvZ8q6w3w8ezsAwT6uNK4UwODWehxSpLi5h1anxTuLObHwR2I2zyVux2LM3FxcAsII73ov5Xs9XGiRBsC7WjNcg6uQFhVBQJOeOHoUvG5x8Q+j2ZvzOT5nDDFbFua9ZcnRGWe/UAIadSOoxY2F9Gy92g98hm/ttpxeNp5jf32FmZOFk3cgHhXrU2VQwS+unP3K4VunLed2r8SjQl08yhdc9841uBKNX57OoYlvcvLvn7FzdMa/QWfqDP+q0IWLKw94Bs/KDTn590+cWPADORmpOHn54x5Wi+pDC5+lLCJXZvyESYyfMAk7Ozs8PDwIDwujY/t23PbVIHr26J7fbsHCv/nmux+YPmUyEyf/wdfffkdc3DmqVa3CqI8/5InHRlj0O/DmAUyZ9Dtvv/s+I996l6CgQO6+cygd2rWlRx/LfOXo6MhfM6fx9bffM37CREa+nbdWTWi5crRo3pS7ht5R8r8RYlOMfxeVlStjGIY5ZmPBdRLk+jKiuTemaerBUrkshmGY0d/dXdZhlJqziWkcjkqkVfXCC85ycUHDxyrfSLEzDMPsPPZ0WYchxWjp3aHKFVJqDMMwczNSLt3wKhQdHc3+Awdp365tWYdi8+yc3ZV3rpBm1IiISJkI9HIl0MvKN7KIiIiIlKGgoCCCggqfFShS3LSYsIiIiIiIiIiIjVChRkRERERERETERqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshAo1IiIiIiIiIiI2QoUaEREREREREREboUKNiIiIiIiIiIiNMEzTLOsYrglOLq6RWRnpwWUdh5QtR2eXqMz0tJCyjkOuTq5ODpHpWTnKI2IVF0f7qLTMbOUbKVb2Ti6RuVkZykPXEDtH56iczHTlCikVrq6ukenpuie63rm4uESlpeme6EqoUHMNMQzjcaCbaZr9yjqW0mIYxo3AO0Aj0zRzyzoekWuRcotyi0hJUG5RbhEpCcotyi3XAj36dI0wDMMNeBF4vaxjKWWzgXRgYFkHInItUm5RbhEpCcotyi0iJUG5RbnlWqFCzbVjBLDGNM2tZR1IaTLzpoS9BrxpGIZ9Wccjcg1SblFuESkJyi3KLSIlQblFueWaoEefrgGGYXgCh4AupmnuLut4SpthGAawEvjONM3fyjoekWuFcotyi0hJUG5RbhEpCcotyi3XEhVqrgGGYbwK1DZN846yjqWsGIbRCfgJqGWaZlbZRiNybVBuUW4RKQnKLcotIiVBuUW55VqiQs1VzjAMH/Iqx21M0zxQxuGUKcMwFgMTTdP8saxjEbnaKbecp9wiUnyUW85TbhEpPsot5ym3XBtUqLnKGYbxFhBumuZ9ZR1LWTMMow0wEahhmmZGWccjcjVTbjlPuUWk+Ci3nKfcIlJ8lFvOU265NqhQcxUzDCMA2A80M03zSFnHYwsMw5gLzDFNc0xZxyJytVJuKUi5ReTKKbcUpNwicuWUWwpSbrn6qVBzFTMM40PA2zTNh8o6FlthGEYzYCZQzTTNtLKOR+RqpNxSkHKLyJVTbilIuUXkyim3FKTccvVToeYqZRhGCLAHaGCa5smyjseWGIYxHVhpmuaoso5F5Gqj3HJhyi0il0+55cKUW0Qun3LLhSm3XN1UqLlKGYbxOXl/fk+UdSy2xjCMBsBC8irIyWUdj8jVRLnlwpRbRC6fcsuFKbeIXD7llgtTbrm6qVBzFTIMIxzYDtQ1TTOyrOOxRYZhTAK2mab5QVnHInK1UG65NOUWkaJTbrk05RaRolNuuTTllquXCjVXIcMwvgGSTNN8vqxjsVWGYdQCVpJXQU4o63hErgbKLZem3CJSdMotl6bcIlJ0yi2Xptxy9VKh5ipjGEYlYDNQ0zTNmDIOx6YZhjEOOGya5ptlHYuIrVNusZ5yi4j1lFusp9wiYj3lFuspt1ydVKi5yhiG8RNw2jTN18o6FltnGEZVYD1QwzTNuLKOR8SWKbdYT7lFxHrKLdZTbhGxnnKL9ZRbrk4q1FxFDMOoDqwFqpumea6s47kaGIbxA3DWNM2XyzoWEVul3FJ0yi0il6bcUnTKLSKXptxSdMotVx8Vaq4ihmGMB/aZpvlOWcdytTAMowKwFahtmmZ0WccjYouUW4pOuUXk0pRbik65ReTSlFuKTrnl6qNCzVXCMIy6wFKgqmmaSWUdz9XEMIzRQIZpms+UdSwitka55fIpt4hcmHLL5VNuEbkw5ZbLp9xydVGh5iphGMYUYKNpmh+VdSxXG8MwQoFdQD3TNE+XdTwitkS55fIpt4hcmHLL5VNuEbkw5ZbLp9xydVGh5ipgGEYjYB55r1VLKeNwrkqGYXwKOJmm+VhZxyJiK5Rbrpxyi0hByi1XTrlFpCDlliun3HL1UKHmKmAYxixgsWmaX5R1LFcrwzCCgL1AY9M0j5d1PCK2QLnlyim3iBSk3HLllFtEClJuuXLKLVcPFWpsnGEYLYA/yVvVPL2s47maGYbxHhBgmuawso5FpKwptxQf5RaR85Rbio9yi8h5yi3FR7nl6qBCjY0zDGMBMN00zW/LOparnWEYfsABoKVpmofLOh6RsqTcUnyUW0TOU24pPsotIucptxQf5Zarg11ZByAXZhhGO6AG8HNZx3ItME0zDhgNvF7WsYiUJeWW4qXcIpJHuaV4KbeI5FFuKV7KLVcHzaixUYZhGOS9em6saZq/lHU81wrDMLyBQ0B70zT3lXU8IqVNuaVkKLfI9U65pWQot8j1TrmlZCi32D7NqLFdXYBQ4LeyDuRaYppmAjAKGFnGoYiUFeWWEqDcIqLcUhKUW0SUW0qCcovt04waG/RP5Xg1MNo0zQllHc+1xjAMD/IqyN1N09xR1vGIlBbllpKl3CLXK+WWkqXcItcr5ZaSpdxi2zSjxjb1AryByWUdyLXINM1k4CPgzbKORaSUKbeUIOUWuY4pt5Qg5Ra5jim3lCDlFtumQo0NMAzjW8MwQv75fwN4C3jDNM2cso3smvYN0MIwjKb/bjAM43PDMCqVXUgixUu5pUwot8g1T7mlTCi3yDVPuaVMKLfYKBVqbEN7IOCf/78JsAemlV041z7TNNOA98j7B+BfLYCwsolIpEQot5Qy5Ra5Tii3lDLlFrlOKLeUMuUW26VCjW2wB3IMw7AD3gZeN00zt4xjuh78CNQzDKP1Pz/nkPdnIXKtUG4pG8otcq1Tbikbyi1yrVNuKRvKLTZIhRrbYE/eX4hBQCrwF4BhGDcZhtG2LAO71hiG4WwYxguGYXiYpplB3j8Cb//zcQ76OyHXFuWWUqLcItcZ5ZZSotwi1xnlllKi3GL79AdgG/6tWL4JvAa4GIbxLfApcK7Moro2ZQG1gE2GYTQCxgKVDMPohKrHcu1Rbik9yi1yPVFuKT3KLXI9UW4pPcotNk6FGttgB/QFzgKngI2AF9DENM09ZRnYtcY0zVzTNO8F3gH+BoaT90zm20AuSkpybVFuKSXKLXKdUW4pJcotcp1Rbiklyi22z6GsAxAg7y/CE8AfwDLgeeBX0zTNsgzqWmaa5njDMNYDk4ATQBCQiIqXcm1Rbillyi1ynVBuKWXKLXKdUG4pZcottkt/ALbBE/AAugMdTNP8RQmp5JmmeRBoAxwB/IB6qHos1xblljKg3CLXAeWWMqDcItcB5ZYyoNxim1SosQ0uwFKglWmae8s6mOuJaZoZpmk+BdwHOALhZRySSHFSbikjyi1yjVNuKSPKLXKNU24pI8ottsdQkbLsGYbhbZpmQlnHcb0zDMMLSFLlXq4Vyi22QblFrjXKLbZBuUWuNcottkG5xTaoUCMiIiIiIiIiYiP06JOIiIiIiIiIiI24qt765OjoGJmdnR1c1nHYCgcHh6isrKyQso7DVmm8nKexcnEaK5Y0Xi5O4+U8jZWL01ixpPFycRov52msXJzGiiWNl4vTeDnvahorV9WjT4ZhmCNHjizrMGzGyJEjMU3TKOs4bJXGy3kaKxensWJJ4+XiNF7O01i5OI0VSxovF6fxcp7GysVprFjSeLk4jZfzrqaxokefRERERERERERshAo1IiIiIiIiIiI2QoUaEREREREREREboUKNiIiIiIiIiIiNUKFGRERERERERMRGqFAjIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChRoRERERERERERuhQo2IiIiIiIiIiI1QoUZERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbIQKNSIiIiIiIiIiNkKFGhERERERERERG6FCjYiIiIiIiIiIjVChRkRERERERETERqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshAo1IiIiIiIiIiI24rov1GRlZTFq1CiWLVtWrP3u37+ft956i9jY2GLtV8qWxotYS2NFikLjRaylsSJFofEi1tJYkaLQeCl5132hZs2aNWRlZdGqVati7bdmzZqEhISwaNGiYu1XypbGi1hLY0WKQuNFrKWxIkWh8SLW0liRotB4KXnXdaEmMzOTNWvW0LhxY1xcXIq9/5YtW7J3717Onj1b7H1L6dN4EWtprEhRaLyItTRWpCg0XsRaGitSFBovpeO6LtTs3LmTjIwMGjZsWCL916pVC0dHRzZv3lwi/Uvp0ngRa2msSFFovIi1NFakKDRexFoaK1IUGi+l47ou1OzZswcvLy+Cg4NLpH9nZ2cqVKjA7t27S6R/KV0aL2ItjRUpCo0XsZbGihSFxotYS2NFikLjpXRct4Wa3NxcTpw4QVhYWIkep3z58iQlJWlBpKucxotYS2NFikLjRaylsSJFofEi1tJYkaLQeCk9122hJiEhgczMTHx9fUv0OP/2f70/Y3e103gRa2msSFFovIi1NFakKDRexFoaK1IUGi+l57ot1KSkpADg6upaosdxc3OzOJ5cnTRexFoaK1IUGi9iLY0VKQqNF7GWxooUhcZL6bluCzWGYZTKcUzTLJXjSMnSeBFraaxIUWi8iLU0VqQoNF7EWhorUhQaL6Xnui3U/FulS0tLK9Hj/Nu/u7t7iR5HSpbGi1hLY0WKQuNFrKWxIkWh8SLW0liRotB4KT3XbaHG29sbJyenEl+gKC4uDoCgoKASPY6ULI0XsZbGihSFxotYS2NFikLjRaylsSJFofFSeq7bQo2dnR3ly5fn1KlThX5+9uzZ/AHyr/T0dM6ePVvgWbn4+HjOnj1LTk5OgX5OnjyJp6cnfn5+xRe8lDqNF7GWxooUhcaLWEtjRYpC40WspbEiRaHxUnqu20INQN26dUlOTub06dMFPhszZgxjx4612LZ3717GjBnDhg0bLLZPnz6dMWPGkJiYaLE9IyOD48ePU7du3eIPXkqdxotYS2NFikLjRaylsSJFofEi1tJYkaLQeCkd13Whpl69eri4uLBjx44S6X/fvn1kZWXRtGnTEulfSpfGi1hLY0WKQuNFrKWxIkWh8SLW0liRotB4KR0OZR1AWXJycqJ169asXbuWTp064eLikv/ZyJEjC7Rv3LgxjRs3LrD93nvvLbT/9evXU7t2bQIDA4stZik7Gi9iLY0VKQqNF7GWxooUhcaLWEtjRYpC46V0XNczagDatGmDk5MT69atK9Z+9+/fT2RkJF27di3WfqVsabyItTRWpCg0XsRaGitSFBovYi2NFSkKjZeSZ1xN7yg3DMMsrEp3vRo5ciSmaZbOy+yvQhov52msXJzGiiWNl4vTeDlPY+XiNFYsabxcnMbLeRorF6exYknj5eI0Xs67msbKdT+jRkRERERERETEVqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshAo1IiIiIiIiIiI2QoUaEREREREREREboUKNiIiIiIiIiIiNUKFGRERERERERMRGqFAjIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChRoRERERERERERuhQo2IiIiIiIiIiI1QoUZERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbIQKNSIiIiIiIiIiNkKFGhERERERERERG6FCjYiIiIiIiIiIjVChRkRERERERETERqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshGGaZlnHYDVHR8fI7Ozs4LKOw1Y4ODhEZWVlhZR1HLZK4+U8jZWL01ixpPFycRov52msXJzGiiWNl4vTeDlPY+XiNFYsabxcnMbLeVfTWLmqCjUiIiIiIiIiItcyPfokIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChRoRERERERERERuhQo2IiIiIiIiIiI1QoUZERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbIQKNSIiIiIiIiIiNkKFGhERERERERERG6FCjYiIiIiIiIiIjVChRkRERERERETERqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshAo1IiIiIiIiIiI2QoUaEREREREREREboUKNiIiIiIiIiIiNUKFGRERERERERMRGqFAjIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChRoRERERERERERuhQo2IiIiIiIiIiI1QoUZERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbMT/AIkgmXKGm3LWAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(20,10))\n",
+ "titanic.pop('survived')\n",
+ "tree.plot_tree(modell, max_depth=2, feature_names=titanic.columns, class_names=['Døde', 'Overlevde'], filled=True, label=None,) \n",
+ "None"
+ ]
+ }
+ ],
+ "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": 4
+}
diff --git a/_sources/docs/ekstra/modellering_kinematikk.ipynb b/_sources/docs/ekstra/modellering_kinematikk.ipynb
new file mode 100644
index 00000000..f004ef9f
--- /dev/null
+++ b/_sources/docs/ekstra/modellering_kinematikk.ipynb
@@ -0,0 +1,192 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Modelleringsoppgave: Kinematikk (fysikk)\n",
+ "\n",
+ "## Del 1 – Kinematikk: Diskrete modeller\n",
+ "I fysikken jobber vi ofte med forenklede modeller fordi vi er begrenset av matematikken. Vi kan fort ende opp med uttrykk som er svært vanskelige eller umulige å løse for hånd. Med programmering kan vi øke modellkompleksiteten og dermed utforske mer virkelighetsnære modeller.\n",
+ "\n",
+ "La oss begynne med en enkel modell for fritt fall av en kule. Modellen kan løses med penn og papir, så det er en god indikasjon på om framgangsmåten vår stemmer.\n",
+ "\n",
+ "For en kule i fritt fall kan vi modellere bevegelsen ved å ta hensyn til kun gravitasjonskreftene. Vi tar utgangspunkt i Newtons 2. lov:\n",
+ "\n",
+ "$$\\sum F = ma$$\n",
+ "\n",
+ "Her er summen av kreftene kun gravitasjonskraften:\n",
+ "\n",
+ "$$G = ma$$\n",
+ "\n",
+ "Vi trenger nå en modell for gravitasjonskraften *G*. Vi kjenner fra fysikk at vi ofte uttrykker *G* slik:\n",
+ "\n",
+ "$$G = mg$$\n",
+ "\n",
+ "der $g = 9.8$ m/s$^2$ er tyngdeakselerasjonen ved havnivå på jorda og $m$ er massen til legemet på jorda. Dette er en modell som kan utledes fra Newtons gravitasjonslov.\n",
+ "\n",
+ "a) Klikk på boksen nedenfor for å se begrunnelsen for modellen for gravitasjonskrefter. Prøv deretter å forklare for hverandre med ord hvordan $G = mg$ utledes og hvilke forutsetninger denne modellen har.\n",
+ "\n",
+ "```{admonition} Hint 1\n",
+ ":class: dropdown\n",
+ "Gravitasjonskreftene beskrives av Newtons gravitasjonslov:\n",
+ "\n",
+ "$$G = k_G \\frac{m_1m_2}{r^2}$$\n",
+ "\n",
+ "der $F_G$ er gravitasjonskreftene som virker mellom to legemer med henholdsvis masse $m_1$ og $m_2$ med avstand $r$ mellom hverandres tyngdesentre. $k_G$ er gravitasjonskonstanten ($k_G = 6,674\\cdot 10^{-11} N\\cdot (m/kg)^2$).\n",
+ "\n",
+ "En forenkling vi kan gjøre for legemer på jorda, er å løse Newtons gravitasjonslov ved å bruke massen til jorda ($5,972\\cdot 10^{24} kg$) og avstanden fra jordas massesenter til legemet. Dette gjør vi fordi vi kan si at gravitasjonskraften virker fra masssesenteret til et legeme. Avstanden fra jordas massesenter til overflaten, er 6371 km. Så for et punktlegeme som står på overflaten av jorda, får vi da:\n",
+ "\n",
+ "$$G = 6,674\\cdot 10^{-11} \\frac{m_1 \\cdot 5,972\\cdot 10^{24}}{6371000^2} \\approx m_1 \\cdot 9,8$$\n",
+ "\n",
+ "Dette kjenner vi igjen som tyngdeakselerasjonen $g$ multiplisert med massen til legemet: $G = mg$. Siden vi regner fra jordas overflate, varierer selvsagt $g$ med avstanden legemet befinner seg fra jorda.\n",
+ "\n",
+ "```\n",
+ "I *diskrete* modeller tar vi utgangspunkt i et endelig steg, f.eks. tidssteg, mellom hver verdi. Vi skal her operere med konstant akselerasjon og anta at farten og posisjonen også er konstante innenfor et lite tidsrom *dt*. For konstant posisjon har vi at:\n",
+ "\n",
+ "$$s_{t+dt} = s_t + v_t\\cdot dt$$\n",
+ "\n",
+ "som du kanskje kjenner igjen som \"formelen\" $s = v\\cdot t$. Tilsvarende kan vi anta for hastigheten:\n",
+ "\n",
+ "$$v_{t+dt} = v_t + a_t\\cdot dt$$\n",
+ "\n",
+ "b) Lag et program som regner ut hvor langt ballen har falt etter en viss tid. Velg startverdier og tid selv. Du kan ta utgangspunkt i dette programmet, eller lage et helt fra scratch:\n",
+ "\n",
+ "\n",
+ "\n",
+ "c) Hvilke antakelser har vi tatt og hvilke forutsetninger tar modellene våre utgangspunkt i? Kommenter både hvordan vi regner ut posisjon og fart, i tillegg til modellen for gravitasjon.\n",
+ "\n",
+ "d) Utvid programmet slik at det plotter posisjonen som funksjon av tid.\n",
+ "\n",
+ "La oss nå utvide programmet ved å ta hensyn til flere krefter, for eksempel luftmotstand. Vi har mange ulike modeller for luftmotstand, avhengig av hva slags legeme vi har med å gjøre og hvor stor hastighet legemet faller. Følgende modell er mye brukt:\n",
+ "\n",
+ "$$L = k\\cdot v^2$$\n",
+ "\n",
+ "e) Diskuter hva som menes med parameteren $k$. Hvordan finner man slike parametere? Hvorfor er $v$ kvadrert?\n",
+ "\n",
+ "Vi kan nå sette denne modellen inn i Newtons andre lov sammen med gravitasjonskreftene. Vi velger positiv retning nedover, så *G* får positivt fortegn og *L* får negativt fortegn.\n",
+ "\n",
+ "f) Lag et program som plotter både hastighet og posisjon for et legeme på 1,0 kg som faller. Bruk $k = 0.1$.\n",
+ "\n",
+ "g) Lag et program som finner ut *når* et legeme treffer bakken gitt en starthøyde $s_0$.\n",
+ "\n",
+ "En alternativ måte å lagre verdier på, er å bruke arrayer.\n",
+ "\n",
+ "f) Løs [dette programmeringspuslespillet](http://parsons.problemsolving.io/puzzle/638e48fe2d594c77a29f347591cd9e80). Puslespillet beregner akselerasjon, hastighet og posisjon til et legeme som faller med luftmotstand. Noen steder er rekkefølgen angitt som kommentar. Når rekkefølgen ikke er entydig, skal du angi $a$, $v$, $s$ og $t$ i denne rekkefølgen.\n",
+ "\n",
+ "g) Eksperimenter med modellene i programmet ditt ved å systematisk variere $k$, endre på luftmotstandsmodellen eller tilsvarende. Redegjør for resultatene dine og drøft det du ser.\n",
+ "\n",
+ "h) La legemet bli kastet oppover med en startfart istedenfor at den slippes. Fungerer programmet nå? Hva må du ta hensyn til når du beregner luftmotstanden? Hint: Tegn en tegning som viser kreftene på en ball når den faller nedover og når den er på vei oppover.\n",
+ "\n",
+ "### Differenslikninger\n",
+ "\n",
+ "Når vi bruker sammenhenger som $s_{t+dt} = s_t + v_t\\cdot dt$, formulerer vi sammenhengene mellom ulike størrelser som _differenslikninger_. En differenslikning er en likning der verdien til en størrelse (f.eks. posisjon) avhenger av den forrige verdien til størrelsen (f.eks. posisjonen ved forrige tidssteg). Et annet eksempel på dette er tallfølger. Se videoen nedenfor for en liten innføring i numerisk løsing av differenslikninger."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import HTML\n",
+ "# Youtube\n",
+ "HTML('')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Del 2 – Kinematikk: Kontinuerlig modeller\n",
+ "\n",
+ "Newtons 2. lov kan også formuleres som en *differensiallikning* fordi den beskriver den momentane endringen i posisjon og fart, det vil si den deriverte, som funksjon av tid. Dette er fordi $a(t) = v'(t) = s''(t)$. Da går vi fra en *diskret* modell til en *kontinuerlig* modell med et tidssteg som i utgangspunktet er så lite som mulig:\n",
+ "\n",
+ "$$a(t) = v'(t) = g - \\frac{kv(t)}{g}$$\n",
+ "\n",
+ "En differensiallikning er en likning som inneholder den deriverte av en funksjon, $f'(x)$. I de fleste praktiske situasjoner beskriver slike likninger sammenhengen mellom endringen, $f'(t)$, og tilstanden, $f(t)$, til et system ved tida $t$.\n",
+ "\n",
+ "Vi har altså en differensiallikning som beskriver endringen i systemet $v'(t)$, men ingen informasjon om selve farten $v(t)$. Vi ønsker med andre ord å finne farten (og etterpå posisjonen) ved enhver tid gitt en eller annen startbetingelse (startfart og startposisjon). Det er det samme som å si at vi ønsker å finne funksjonsverdien $v(t + dt)$ for hvert tidssteg $dt$.\n",
+ "\n",
+ "I teorien er ingen modeller kontinuerlige på en datamaskin, men vi gjør modellene \"mindre diskrete\" ved å velge tidssteg som er små.\n",
+ "\n",
+ "### Newtons 2. lov som differensiallikning\n",
+ "\n",
+ "Vi formulerer nå Newtons 2. lov slik:\n",
+ "\n",
+ "$$\\sum F = ma(t) = mv'(t) = ms''(t)$$\n",
+ "\n",
+ "det betyr at:\n",
+ "\n",
+ "$$v'(t) = \\frac{\\sum F}{m}$$\n",
+ "\n",
+ "$$s''(t) = \\frac{\\sum F}{m}$$\n",
+ "\n",
+ "Programmene våre blir egentlig ikke noe annerledes fra slik vi lagde dem da vi hadde diskrete modeller. Det er kun _graden_ av _diskretisering_ som skiller modellene. For kontinuerlige modeller må vi bare passe på å velge en *dt* som er liten nok.\n",
+ "\n",
+ "### En metode for løsing av differensiallikninger\n",
+ "Nå vi skal løse en differensiallikning, har vi en initalbetingelse $y_0$ og et uttrykk for den deriverte $y'$. Vi ønsker derfor å finne $y_1$ og alle andre funksjonsverider.\n",
+ "\n",
+ "Du kjenner faktisk allerede til et uttrykk som inneholder en funksjon og dens deriverte, nemlig definisjonen av den deriverte! Vi bruker den numeriske definisjonen der vi tilnærmer grenseverdiene med en _dx_ ($\\Delta x$) som er så liten som mulig:\n",
+ "\n",
+ "$$f'(x) \\approx \\frac{f(x+dx) - f(x)}{dx}$$\n",
+ "\n",
+ "Til å begynne med kjenner vi $f(x)$ ($v(t)$), altså $f(x_0)$. Dette er initialbetingelsen, for eksempel startfarten $v(t_0)$. Vi kjenner også et uttrykk for den deriverte av farten (akselerasjonen) gjennom Newtons 2. lov. I tillegg bestemmer vi selv tidssteget, _dx_ (_dt_), men husk at det verken bør være for lite eller for stort. Den eneste ukjente i likningen ovenfor er altså $f(x+dx)$, og det er jo nettopp dette vi prøver å finne. Med litt enkel algebra får vi omformet uttrykket slik at det blir et uttrykk for $f(x+dx)$. Vi ganger først med $dx$ på begge sider:\n",
+ "\n",
+ "$$f'(x)\\cdot dx \\approx f(x+dx) - f(x)$$\n",
+ "\n",
+ "Deretter får vi $f(x+dx)$ aleine på høyre side og ender opp med følgende likning:\n",
+ "\n",
+ "$$f(x+dx) \\approx f(x) + f'(x)\\cdot dx$$\n",
+ "\n",
+ "Dette kalles _Eulers metode_. Den brukes til å løse differensiallikninger, det vil si å integrere den deriverte slik at vi finner funksjonsverdiene. Siden vi ofte har med funksjoner av tid å gjøre, kaller vi gjerne _dx_ for _dt_.\n",
+ "\n",
+ "i) Forklar hva en differensiallikning er. Hvorfor er Newtons 2. lov en differensiallikning?\n",
+ "\n",
+ "j) Er det noen forskjell på å bruke Eulers metode og bevegelseslikningene vi brukte i programmene våre ($v = v_0 + at$ og $s = s_0 + vt$)?\n",
+ "\n",
+ "k) __Frivillig (Fysikk 2):__ Lag et program som simulerer todimensjonalt kast av ball. Ta hensyn til luftmotstand og gravitasjon."
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/modellering_populasjonsdynamikk.ipynb b/_sources/docs/ekstra/modellering_populasjonsdynamikk.ipynb
new file mode 100644
index 00000000..545503f4
--- /dev/null
+++ b/_sources/docs/ekstra/modellering_populasjonsdynamikk.ipynb
@@ -0,0 +1,130 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Modelleringsoppgave IIb: Bevaringsbiologi (biologi)\n",
+ "\n",
+ "## Bevaringsbiologi\n",
+ "\n",
+ "I bevaringsbiologi forskes det på hvordan artsmangfoldet i spesielt utsatte økosystemer og populasjoner kan bevares. En viktig del av dette er å modellere hvordan en populasjon kan utvikle seg gitt ulike omstendigheter og tiltak. Vi skal se på en enkel modell for populasjonsdynamikk her.\n",
+ "\n",
+ "### Del 1 – Diskrete modeller\n",
+ "En *diskret* populasjonsmodell er en modell som beskriver endringen i populasjonsstørrelse ved bestemte tidspunkter, men ikke alle tidspunkter. Slike modeller kan ofte formuleres som *differenslikninger* (ikke til å forveksle med *differensiallikninger*...). En differenslikning er en likning der neste verdi er avhengig av foregående verdi. For en populasjon er åpenbart endringen av antall individer ved en tid $t + \\Delta t$, avhengig av antall individer ved forrige tidspunkt $t$. Vi kan formulere en enkel modell slik:\n",
+ "\n",
+ "$$ \\Delta P = k\\cdot P_t$$\n",
+ "$$ P_{t+\\Delta t} - P_t = k\\cdot P_t$$\n",
+ "$$ P_{t+\\Delta t} = P_t + k\\cdot P_t$$\n",
+ "\n",
+ "der indeksen $t+\\Delta t$ viser til populasjonsstørrelsen ved neste tidssteg, mens indeksen $t$ viser til populasjonsstørrelsen ved nåværende tid.\n",
+ "\n",
+ "a) Forklar for hverandre hva modellen ovenfor beskriver. Hva er $k$, og hva avhenger denne parameteren av?\n",
+ "\n",
+ "b) Implementer modellen som et Python-program. Plott utviklingen for $t \\in [0,60]$ timer. Bruk $k = 1.25$ per time. Hva slags populasjon kan denne modellen beskrive?\n",
+ "\n",
+ "c) En populasjon vil alltid nå en bæreevne $B$ etter en viss tid. En modell som tar hensyn til dette, kan se slik ut:\n",
+ "\n",
+ "$$ P_{t+\\Delta t} = P_t + k\\cdot P_t\\left(1-\\frac{P_t}{B}\\right)$$\n",
+ "\n",
+ "Forklar hva leddene i modellen betyr. Hva skjer med endringen ettersom $P_t$ øker eller minker?\n",
+ "\n",
+ "d) Implementer modellen med en valgfri bæreevne. Beskriv det du ser."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Del 2 – Kontinuerlige modeller\n",
+ "\n",
+ "Populasjonsmodeller kan også beskrive populasjonsendringen for *enhver* tid. Slike modeller formuleres som oftest som *differensiallikninger*. En differensiallikning er en likning som inneholder den deriverte av en funksjon, $f'(x)$. I de fleste praktiske situasjoner beskriver slike likninger sammenhengen mellom endringen, $f'(t)$, og tilstanden, $f(t)$, til et system ved tida $t$. Siden vi nå bruker den deriverte istedenfor gjennomsnittlig vekst på diskrete tidspunkter, går vi fra en *diskret* modell til en *kontinuerlig* modell med et tidssteg som i utgangspunktet er så lite som mulig:\n",
+ "\n",
+ "$$P'(t) = k\\cdot P(t)$$\n",
+ " \n",
+ "Vi har altså en differensiallikning som beskriver endringen i systemet $P'(t)$, men ingen informasjon om selve systemet, altså antall individer, $P(t)$. Vi ønsker med andre ord å finne antall individer ved enhver tid gitt en eller annen startbetingelse (antall individer ved t = 0). Det er det samme som å si at vi ønsker å finne funksjonsverdien $f(t + dt)$ for hvert tidssteg $dt$.\n",
+ "\n",
+ "I teorien er ingen modeller kontinuerlige på en datamaskin, men vi gjør modellene \"mindre diskrete\" ved å velge tidssteg som er små.\n",
+ "\n",
+ "a) Forklar for hverandre hva modellen ovenfor sier oss, og hva de ulike faktorene betyr.\n",
+ "\n",
+ "b) Forklar hva en differensiallikning er. Hvorfor er modellen ovenfor en differensiallikning? Hva er forskjellen på en differensiallikning og en differenslikning?\n",
+ "\n",
+ "### En metode for løsing av differensiallikninger\n",
+ "Nå vi skal løse en differensiallikning, har vi en initalbetingelse $y_0$ og et uttrykk for den deriverte $y'$. Vi ønsker derfor å finne $y_1$ og alle andre funksjonsverider.\n",
+ "\n",
+ "Du kjenner faktisk allerede til et uttrykk som inneholder en funksjon og dens deriverte, nemlig definisjonen av den deriverte! Vi bruker den numeriske definisjonen der vi tilnærmer grenseverdiene med en _dx_ ($\\Delta x$) som er så liten som mulig:\n",
+ "\n",
+ "$$f'(x) \\approx \\frac{f(x+dx) - f(x)}{dx}$$\n",
+ "\n",
+ "Til å begynne med kjenner vi $f(x)$ ($v(t)$), altså $f(x_0)$. Dette er initialbetingelsen, for eksempel startfarten $v(t_0)$. Vi kjenner også et uttrykk for den deriverte av farten (akselerasjonen) gjennom Newtons 2. lov. I tillegg bestemmer vi selv tidssteget, _dx_ (_dt_), men husk at det verken bør være for lite eller for stort. Den eneste ukjente i likningen ovenfor er altså $f(x+dx)$, og det er jo nettopp dette vi prøver å finne. Med litt enkel algebra får vi omformet uttrykket slik at det blir et uttrykk for $f(x+dx)$. Vi ganger først med $dx$ på begge sider:\n",
+ "\n",
+ "$$f'(x)\\cdot dx \\approx f(x+dx) - f(x)$$\n",
+ "\n",
+ "Deretter får vi $f(x+dx)$ aleine på høyre side og ender opp med følgende likning:\n",
+ "\n",
+ "$$f(x+dx) \\approx f(x) + f'(x)\\cdot dx$$\n",
+ "\n",
+ "Dette kalles _Eulers metode_. Den brukes til å løse differensiallikninger, det vil si å integrere den deriverte slik at vi finner funksjonsverdiene. Siden vi ofte har med funksjoner av *tid* å gjøre, kaller vi gjerne _dx_ for _dt_.\n",
+ "\n",
+ "c) Implementer modellen ovenfor og bruk Eulers metode til å simulere utviklingen av populasjonen. Du kan ta utgangspunkt i programmet nedenfor eller lage et helt nytt et. Eksperimenter med ulike verdier av $k$. Er denne $k$-en den samme som i den diskrete modellen du implementerte i oppgave b)?\n",
+ "\n",
+ "\n",
+ "\n",
+ "d) Lag en differensiallikning som beskriver utviklingen av populasjonen gitt en bæreevne. Forklar hva de ulike leddene og faktorene betyr.\n",
+ "\n",
+ "e) Implementer modellen med bæreevne og beregn utviklingen med Eulers metode. Beskriv utviklingen med ord.\n",
+ "\n",
+ "f) Fyll inn koden nedenfor slik at programmet simulerer populasjonsdynamikken mellom hare og gaupe, gitt følgende modeller:\n",
+ "\n",
+ "$$H'(t) = aH(t)\\left(1-\\frac{H(t)}{B}\\right) - cH(t)G(t)$$\n",
+ "\n",
+ "$$G'(t) = dH(t)G(t) - eG(t)$$\n",
+ "\n",
+ "\n",
+ "\n",
+ "g) Hva kan de ulike parameterne/koeffisientene bety? Hva er de avhengig av? Hva er betydningen til hvert ledd i modellen ovenfor?\n",
+ "\n",
+ "h) [Følgende datasett](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/hare_gaupe_data.csv) beskriver (antakeligvis – datasettet er ikke verifisert!) et økosystem med gauper og harer i Canada fra 1845–1935. Prøv å lage en modell som beskriver denne dynamikken så godt som mulig. NB: Det er ikke lett å tilpasse alle parameterne manuelt slik at du får en god tilpasning til dataene, men prøv så godt du kan!\n",
+ "\n",
+ "i) Hvorfor kan slike modeller som du har jobbet med nå, være nyttige i bevaringsbiologi?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Rapport\n",
+ "Skriv en rapport i Jupyter notebook der du redegjør gradvis for de ulike modellene dine. Lag også en konklusjon."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/modellering_reaksjonskinetikk.ipynb b/_sources/docs/ekstra/modellering_reaksjonskinetikk.ipynb
new file mode 100644
index 00000000..2f5626b7
--- /dev/null
+++ b/_sources/docs/ekstra/modellering_reaksjonskinetikk.ipynb
@@ -0,0 +1,109 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Modelleringsoppgave IIc: Reaksjonskinetikk (kjemi)\n",
+ "\n",
+ "## Reaksjonsfart\n",
+ "_Kinetikk_ er et område av kjemien som handler om reaksjonsfart, det vil si hvor fort reaksjoner skjer. Gjennom eksperimenter kan vi finne ut hva forholdet mellom reaktanter og produkter er ved en gitt tid, og vi kan formulere matematiske modeller som viser denne sammenhengen. Denne sammenhengen er altså i utgangspunktet _empirisk_. Det vil si at vi modellerer sammenhengen basert på reelle data, ikke på matematiske utledninger.\n",
+ "\n",
+ "Reaksjonsraten til et produkt eller en reaktant kan defineres som endringa i konsentrasjonen til dette produktet eller denne reaktanten i løpet av en viss tid. Når vi reduserer denne tida til å være så liten som mulig, får vi den deriverte av konsentrasjonen, siden den deriverte handler om _momentan_ endring: $c'(t)$. Sammenhengen mellom den deriverte av konsentrasjonen og konsentrasjonene til de ulike stoffene som deltar i reaksjonen, kaller vi en _ratelov_. \n",
+ "\n",
+ "Vi tar et eksempel: Konsentrasjonen mellom hydrogengass og jod i gassfase har en relativt enkel ratelov. Merk derimot at ratelovene i utgangspunktet ikke har noen sammenheng med det støkiometriske forholdet mellom reaktanter og produkter. Egentlig er reaksjonen en likevektsreaksjon, men vi kan forenkle og skrive den slik (som en irreversibel reaksjon), noe som stemmer ved relativt lave temperaturer:\n",
+ "\n",
+ "$$H_2 (g) + I_2 (g) \\rightarrow 2HI (g)$$\n",
+ "\n",
+ "Rateloven for denne reaksjonen er som følger:\n",
+ "\n",
+ "$$v = c'(t) = k_r[H_2][I_2]$$\n",
+ "\n",
+ "a) Prøv å forklare hva rateloven ovenfor forteller oss, og hva de ulike faktorene betyr.\n",
+ "\n",
+ "```{admonition} Forklaring\n",
+ ":class: dropdown\n",
+ "Symbolet _v_ betyr farten på reaksjonen, og det er det samme som den deriverte av konsentrasjonen til produktet vårt (her HI). Farten avhenger av produktet av konsentrasjonen til både $H_2$ og $I_2$, i tillegg til en konstant $k_r$. Konstanten $k_r$ kalles _ratekonstanten_ for reaksjonen, og den kan vi finne ved å gjøre eksperimenter.\n",
+ "```\n",
+ "\n",
+ "Ratelovene er eksempler på _differensiallikninger_, det vil si likninger som inneholder den deriverte (endringen av en tilstand). Uttrykket beskriver endringen i systemet $c'(t)$, men ingen informasjon om selve systemet, altså konsentrasjonen, $c_{HI}(t)$. Vi ønsker med andre ord å finne konsentrasjonen ved enhver tid gitt en eller annen startbetingelse (konsentrasjoner av produkter og reaktanter ved t = 0). Det er det samme som å si at vi ønsker å finne en funksjonsverdi $f(t + dt)$ for hvert tidssteg $dt$.\n",
+ "\n",
+ "b) Forklar hva en differensiallikning er. Hvorfor er ratelover differensiallikninger?\n",
+ "\n",
+ "### En metode for løsing av differensiallikninger\n",
+ "Nå vi skal løse en differensiallikning, har vi en initalbetingelse $y_0$ og et uttrykk for den deriverte $y'$. Vi ønsker derfor å finne $y_1$ og alle andre funksjonsverider.\n",
+ "\n",
+ "Du kjenner faktisk allerede til et uttrykk som inneholder en funksjon og dens deriverte, nemlig definisjonen av den deriverte! Vi bruker den numeriske definisjonen der vi tilnærmer grenseverdiene med en _dx_ ($\\Delta x$) som er så liten som mulig:\n",
+ "\n",
+ "$$f'(x) \\approx \\frac{f(x+dx) - f(x)}{dx}$$\n",
+ "\n",
+ "Til å begynne med kjenner vi $f(x)$ ($v(t)$), altså $f(x_0)$. Dette er initialbetingelsen, for eksempel startfarten $v(t_0)$. Vi kjenner også et uttrykk for den deriverte av farten (akselerasjonen) gjennom Newtons 2. lov. I tillegg bestemmer vi selv tidssteget, _dx_ (_dt_), men husk at det verken bør være for lite eller for stort. Den eneste ukjente i likningen ovenfor er altså $f(x+dx)$, og det er jo nettopp dette vi prøver å finne. Med litt enkel algebra får vi omformet uttrykket slik at det blir et uttrykk for $f(x+dx)$. Vi ganger først med $dx$ på begge sider:\n",
+ "\n",
+ "$$f'(x)\\cdot dx \\approx f(x+dx) - f(x)$$\n",
+ "\n",
+ "Deretter får vi $f(x+dx)$ aleine på høyre side og ender opp med følgende likning:\n",
+ "\n",
+ "$$f(x+dx) \\approx f(x) + f'(x)\\cdot dx$$\n",
+ "\n",
+ "Dette kalles _Eulers metode_. Den brukes til å løse differensiallikninger, det vil si å integrere den deriverte slik at vi finner funksjonsverdiene. Siden vi ofte har med funksjoner av *tid* å gjøre, kaller vi gjerne _dx_ for _dt_.\n",
+ "\n",
+ "c) Implementer modellen ovenfor og bruk Eulers metode til å simulere utviklingen av konsentrasjonene til $I_2$, $H_2$ og $HI$. For denne reaksjonen er ratekonstanten for dannelse av HI $k_r = 4.84 \\cdot 10^{-2}$ ved 400 grader Celsius. Du kan ta utgangspunkt i programmet nedenfor eller lage et helt nytt et. Eksperimenter med ulike verdier av $k$. Hvis du ikke lager programmet fra grunnen av, må du forklare hva som skjer på de ulike linjene.\n",
+ "\n",
+ "\n",
+ "\n",
+ "d) Prøv å simulere reaksjonen for 750 sekunder. Beskriv hva som skjer i reaksjonen.\n",
+ "\n",
+ "Ved høye temperaturer vil flere og flere HI-molekyler kollidere og rives løs igjen til $I_2$ og $H_2$. Reaksjonen er derfor egentlig reversibel, selv om vi har gjort en forenkling og beskrevet den som irreversibel ovenfor. Det viser seg at den motsatte reaksjonen følger denne rateloven:\n",
+ "\n",
+ "$$c'(t) = k_{bakover}[HI]^2$$\n",
+ "\n",
+ "Reaksjonen er altså andreordens med hensyn på konsentrasjonen av hydrogenjodid. Den totale rateloven for hydrogenjodid blir derfor:\n",
+ "\n",
+ "$$c'(t) = k_{framover}[H_2][I_2] - k_{bakover}[HI]^2$$\n",
+ "\n",
+ "Dersom vi kjenner likevektskonstanten $K$ ved den gitte temperaturen, kan vi finne $k_{bakover}$ ved å benytte følgende sammenheng:\n",
+ "\n",
+ "$$K = \\frac{k_{framover}}{k_{bakover}}$$\n",
+ "\n",
+ "\n",
+ "e) Lag et program som simulerer reaksjonen mellom $I_2$ og $H_2$ ved 450$^\\circ$C. Sett likevektskontstanten til å være 100 og $k_{framover}$ til å være $4.8\\cdot 10^{-2}$. Lag et plott som viser konsentrasjonen som funksjon av tid, og et plott som viser reaksjonsraten/reaksjonshastigheten som funksjon av tid. Kommenter plottene. Stemmer dette med det du kan om likevekter?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Rapport\n",
+ "Skriv en rapport i Jupyter notebook der du redegjør gradvis for de ulike modellene dine. Lag også en konklusjon."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/modelleringsoppgave_a.ipynb b/_sources/docs/ekstra/modelleringsoppgave_a.ipynb
new file mode 100644
index 00000000..26326158
--- /dev/null
+++ b/_sources/docs/ekstra/modelleringsoppgave_a.ipynb
@@ -0,0 +1,192 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Modelleringsoppgave I: Smittemodellering\n",
+ "## Smittespredning\n",
+ "\n",
+ "Vi utforsker her en modell for smittesprendning av sykdommer. Vi kan tenke oss at antall smittede indivier *I* (\"Inceptibles\") utvikler seg slik:\n",
+ "\n",
+ "$$I_{t+1} = I_t + aI_t$$\n",
+ "\n",
+ "Bildet nedenfor viser spike-proteinet som ligger på overflaten til coronaviruset, og som gir viruset dets karakteristiske form:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/3dmoljs_load.v0": "
\n
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: \n jupyter labextension install jupyterlab_3dmol
\n
\n",
+ "text/html": [
+ "
\n",
+ "
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: \n",
+ " jupyter labextension install jupyterlab_3dmol
\n",
+ "
\n",
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import py3Dmol\n",
+ "\n",
+ "spike_prot = py3Dmol.view(query='pdb:6B7N')\n",
+ "spike_prot.setStyle({'cartoon':{'color':'spectrum'}})"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Oppgave 1\n",
+ "\n",
+ "- Forklar for hverandre med ord hva modellen for *I* sier. Hva betyr de ulike symbolene i likningen?\n",
+ "- I hvilke sammenhenger kan det være hensiktsmessig å bruke en slik modell? Hvilke begrensninger har modellen?\n",
+ "- Lag et program som simulerer smitteutviklingen over 48 uker i en populasjon med 157759 individer, en smitterate på 0.2 per uke og antall smittede ved t = 0 lik 3. Hvis du trenger hjelp, kan du trykke på hintet nedenfor.\n",
+ "\n",
+ "```{admonition} Hint 1\n",
+ ":class: dropdown\n",
+ "En pseudokode for programmet er:\n",
+ "\n",
+ "Sett opp startverdier: populasjonsstørrelse, kontaktrate og slutt-tid, antall smittede\n",
+ "\n",
+ "Lag lister for å spare på verdiene:\n",
+ "smittede = []\n",
+ "tid []\n",
+ "\n",
+ "gjenta til tid = tid_slutt:\n",
+ " Beregn antall smittede vha. modellen\n",
+ " Legg verdiene i lister\n",
+ " \n",
+ "plott antall smittede mot t\n",
+ "\n",
+ "```\n",
+ "- Beskriv utviklingen. Varier systematisk *a* og antall smittede til å begynne med. Kommenter hva som skjer.\n",
+ "- Hvorfor er det viktig at smitteraten har en *enhet* (her: uker)?\n",
+ "\n",
+ "### Oppgave 2\n",
+ "Vi utvider modellen ved å innføre en kategori for de som er *mottakelige*, *S* (\"susceptibles\"). Det vil si at de som allerede er smittet, ikke kan bli smittet igjen. Vi modifiserer da modellen for de smittede, slik at den også tar hensyn til den nye kategorien:\n",
+ "\n",
+ "$$I_{t+1} = I_t + aI_tS_t$$\n",
+ "\n",
+ "- Forklar hva som er endret i modellen. Hvorfor kan vi gjøre dette?\n",
+ "- Lag en modell for *S* (mottakelige) basert på modellen for *I*. Hint: Når en person er smittet, hva skjer med antall mottakelige? Modellen skal være nokså lik modellen for *I*, med noen små forskjeller. Lag en variabel *endring* $=aI_tS_t$ som første linje i løkka.\n",
+ "\n",
+ "```{admonition} Hint 2\n",
+ ":class: dropdown\n",
+ "Dersom endringen i antall smittede er $aI_tS_t$, må endringen i antall mottakelige være $-aI_tS_t$.\n",
+ "```\n",
+ "\n",
+ "- Utvid programmet ditt til å beregne og plotte antall mottakelige og smittede i samme koordinatsystem. Bruk merkelapper (labels og legend) slik at vi ser hvilken kurve som beskriver hva.\n",
+ "- Varier systematisk *a* og antall smittede til å begynne med ($I_0$). Kommenter hva som skjer.\n",
+ "- I hvilke sammenhenger kan det være hensiktsmessig å bruke en slik modell? Hvilke begrensninger har modellen?\n",
+ "\n",
+ "### Oppgave 3\n",
+ "Vi legger nå til muligheten for å bli frisk (hurra!). Da trenger vi også å innføre en *bedringsrate*, *b*. Et uttrykk for antall smittede kan nå være:\n",
+ "\n",
+ "$$I_{t+1} = I_t + aI_tS_t - bI_t$$\n",
+ "\n",
+ "- Forklar alle leddene i modellen for smittede. Hva er betydningen til *b*? Hva kan være en ok størrelse for b i dette tilfellet? Diskuter.\n",
+ "- Lag en modell for antall friske, *R* (\"recovered\"), med utgangspunkt i modellen ovenfor.\n",
+ "- Simuler og plott utviklingen. Hvis grafen ikke ser fornutftig ut, bør du eksperimentere med andre verdier av *b*.\n",
+ "- Beskriv grafen med ord.\n",
+ "- I hvilke sammenhenger kan det være hensiktsmessig å bruke en slik modell? Hvilke begrensninger har modellen?\n",
+ "\n",
+ "Det er vanskelig å fastsette parametrene *a* og *b*. Ofte fastsettes de ved å løpende sammenlikne modellene med reelle data fra observasjoner eller eksperimenter. I fila 'influensa.txt' (se \"Datafiler\" i sidemenyen) finner du en oversikt over antall smittede av influensaviruset H3N2 i en populasjon med 157 759 personer. \n",
+ "\n",
+ "- Les av fila og plott dataene sammen med modellen og prøv å variere *a* og *b* slik at modellen stemmer så godt som mulig med dataene.\n",
+ "- Diskuter om modellen kan si noe mer generelt om smittespredning enn akkurat dette tilfellet.\n",
+ "\n",
+ "### Ekstra: Oppgave 4\n",
+ "Vaksiner kan redusere antall mottakelige betraktelig.\n",
+ "- Hvordan kan du utvide modellen slik at den tar hensyn til vaksinering?\n",
+ "- Lag et program der du utforsker effekten av ulike grader av vaksinasjon (i %).\n",
+ "\n",
+ "### Rapport\n",
+ "Skriv en rapport i Jupyter notebook der du redegjør gradvis for de ulike modellene dine. Lag også en konklusjon."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/plotting_data.ipynb b/_sources/docs/ekstra/plotting_data.ipynb
new file mode 100644
index 00000000..0b9aeabb
--- /dev/null
+++ b/_sources/docs/ekstra/plotting_data.ipynb
@@ -0,0 +1,226 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Plotting og behandling av eksperimentelle data\n",
+ "En viktig del av kjemi som et eksperimentelt fag er å kunne representere og\n",
+ "behandle data på en hensiktsmessig måte.\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med denne delen av emnet, skal du kunne:\n",
+ "1. Plotte funksjoner.\n",
+ "2. Plotte data fra lister/arrayer.\n",
+ "3. Lese filer med *read* og *loadtxt*.\n",
+ "4. Utføre interpolasjon og regresjon. Vurdere når dette kan være nyttig.\n",
+ "5. Bruke ferdiglagde og lage egne statistikkmoduler.\n",
+ "```\n",
+ "\n",
+ "## Plotting av funksjoner\n",
+ "I videoen nedenfor vises plotting av funksjoner i Python. Legg merke til at kortversjonen *from pylab import ** brukes her. Du bør bruke *import matplotlib.pyplot as plt* og *import numpy as np*."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import HTML\n",
+ "# Youtube\n",
+ "HTML('')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Plott funksjonen $f(x) = e^{x} - 2$ for $x \\in [0,5]$. Bruk matplotlib og numpy.\n",
+ "```\n",
+ "\n",
+ "## Lesing av fildata"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import HTML\n",
+ "# Youtube\n",
+ "HTML('')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Les fila titrering.txt og plott titrerkurven. Bruk egnede aksetitler og pynt plottet.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n",
+ "\n",
+ "## Interpolasjon"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import HTML\n",
+ "# Youtube\n",
+ "HTML('')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk koderuta ovenfor og interpoler titreringsdataene over hele definisjonsområdet.\n",
+ "```\n",
+ "\n",
+ "## Regresjon"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import HTML\n",
+ "# Youtube\n",
+ "HTML('')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Prøv å gjøre regresjon av 1., 2., 3. og 4. grad av listedataene i progammet nedenfor:\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/plotting_filmer.ipynb b/_sources/docs/ekstra/plotting_filmer.ipynb
new file mode 100644
index 00000000..d83e7f2f
--- /dev/null
+++ b/_sources/docs/ekstra/plotting_filmer.ipynb
@@ -0,0 +1,92 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Plotting (teori)\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Bruke matplotlib-biblioteket og seaborn-biblioteket til plotting.\n",
+ "2. Plotte datapunkter og funksjoner.\n",
+ "3. Lage og tolke ulike visualiseringer.\n",
+ "```\n",
+ "\n",
+ "## Plotting med matplotlib"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/71SeDOstEwY? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Plott $f(x) = cos(x) - 1$ med $x \\in [0,8]$. Pynt plottet.\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/repetisjon.ipynb b/_sources/docs/ekstra/repetisjon.ipynb
new file mode 100644
index 00000000..43e41118
--- /dev/null
+++ b/_sources/docs/ekstra/repetisjon.ipynb
@@ -0,0 +1,39 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Repetisjon"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/tema1.ipynb b/_sources/docs/ekstra/tema1.ipynb
new file mode 100644
index 00000000..2577d7a6
--- /dev/null
+++ b/_sources/docs/ekstra/tema1.ipynb
@@ -0,0 +1,129 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Tema 1: Tall og variabler"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Summen er: 9.14\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Variabeltyper\n",
+ "heltall = 4 # Kommentar\n",
+ "flyttall = 2.2\n",
+ "streng = \"Hei på deg!\"\n",
+ "\n",
+ "# Output\n",
+ "a = 2\n",
+ "pi = 3.14\n",
+ "summen = heltall + a + pi\n",
+ "\n",
+ "print(\"Summen er:\", summen)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Input"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Masse:2\n",
+ "Energien til et legeme med masse 2.0 kg er 1.8e+17 J.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#m = 0.2 # masse i kg\n",
+ "c = 3E8 # lyshastighet i vakuum i m/s\n",
+ "m = input(\"Masse:\")\n",
+ "m = float(m) # Kan gjøres i linja over, men denne metoden er kanskje mer oversiktlig\n",
+ "E = m*c**2\n",
+ "\n",
+ "print(\"Energien til et legeme med masse\",\n",
+ " m,\"kg er\",E, \"J.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Matematiske biblioteker"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[H3O+] i mol/L: 0.1\n",
+ "pH-en i løsninga er: 1.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from pylab import *\n",
+ "\n",
+ "oksonium = input(\"[H3O+] i mol/L: \") # mol/L\n",
+ "oksonium = float(oksonium)\n",
+ "pH = -log10(oksonium)\n",
+ "\n",
+ "print(\"pH-en i løsninga er:\", round(pH,2))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.7.7"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/tema10.ipynb b/_sources/docs/ekstra/tema10.ipynb
new file mode 100644
index 00000000..42fc2707
--- /dev/null
+++ b/_sources/docs/ekstra/tema10.ipynb
@@ -0,0 +1,299 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Tema 10: Derivasjon og integrasjon"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Derivasjon\n",
+ "\n",
+ "#### 1. Derivasjon av funksjoner:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "For dx lik 0.1 er feilen 0.10000000000000187\n",
+ "For dx lik 0.01 er feilen 0.010000000000000675\n",
+ "For dx lik 0.001 er feilen 0.0009999999996974651\n",
+ "For dx lik 0.0001 er feilen 9.999999917198465e-05\n",
+ "For dx lik 1e-05 er feilen 1.0000013929811757e-05\n",
+ "For dx lik 1e-06 er feilen 9.999243673064484e-07\n",
+ "For dx lik 1e-07 er feilen 1.0108780656992167e-07\n",
+ "For dx lik 1e-08 er feilen 1.21549419418443e-08\n",
+ "For dx lik 1e-09 er feilen 1.6548074199818075e-07\n",
+ "For dx lik 1e-10 er feilen 1.6548074199818075e-07\n",
+ "For dx lik 1e-11 er feilen 1.6548074199818075e-07\n",
+ "For dx lik 1e-12 er feilen 0.00017780116468202323\n",
+ "For dx lik 1e-13 er feilen 0.0015985556747182272\n",
+ "For dx lik 1e-14 er feilen 0.0015985556747182272\n",
+ "For dx lik 1e-15 er feilen 0.22044604925031308\n",
+ "For dx lik 1e-16 er feilen 2.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "def f(x):\n",
+ " return x**2\n",
+ "\n",
+ "def derivert(f, x, dx):\n",
+ " fder = (f(x + dx) - f(x))/dx\n",
+ " return fder\n",
+ "\n",
+ "x = 1\n",
+ "analytisk = 2\n",
+ "for i in range(1, 17):\n",
+ " dx = 10**(-i)\n",
+ " numerisk = derivert(f,x,dx)\n",
+ " print(f\"For dx lik {dx} er feilen {abs(numerisk-analytisk)}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 2. Derivasjon av diskrete data (punkter)\n",
+ "\n",
+ "[Puslespill](http://parsons.problemsolving.io/puzzle/ced223639e5d45a5a22bbfc1ee521478)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from pylab import *\n",
+ "\n",
+ "# Startbetingelser\n",
+ "N = 157759 # Antall individer\n",
+ "a = 4/N # Smitterate\n",
+ "b = 3.5 # Bedringsrate\n",
+ "tid = 48 # Tid\n",
+ "\n",
+ "I = 3 # Smittede\n",
+ "S = N - I # Mottakelige\n",
+ "R = 0 # Restituert/friske\n",
+ "\n",
+ "syke = [I]\n",
+ "mulige = [S]\n",
+ "friske = [R]\n",
+ "t = [0]\n",
+ "\n",
+ "for i in range(1,tid):\n",
+ " S = S - a*S*I\n",
+ " I = I + a*S*I - b*I\n",
+ " R = R + b*I\n",
+ " syke.append(I)\n",
+ " mulige.append(S)\n",
+ " friske.append(R)\n",
+ " t.append(i)\n",
+ " \n",
+ "plot(t,syke,label='Syke')\n",
+ "plot(t,mulige,label='Mottakelige')\n",
+ "plot(t,friske,label='Friske')\n",
+ "legend()\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/ekstra/tema9.ipynb b/_sources/docs/ekstra/tema9.ipynb
new file mode 100644
index 00000000..0beb631b
--- /dev/null
+++ b/_sources/docs/ekstra/tema9.ipynb
@@ -0,0 +1,39 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Tema 9: Grafikk"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/fagoppgaver/biologioppgaver.ipynb b/_sources/docs/fagoppgaver/biologioppgaver.ipynb
new file mode 100644
index 00000000..ad5a9f71
--- /dev/null
+++ b/_sources/docs/fagoppgaver/biologioppgaver.ipynb
@@ -0,0 +1,170 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "99c322cd",
+ "metadata": {},
+ "source": [
+ "# Repetisjon II: Biologioppgaver\n",
+ "\n",
+ "Simulering av tilfeldige hendelser kaller vi _Monte Carlo-simuleringer_ etter det berømte kasinoet i Monte Carlo (MC). Her skal vi benytte MC-simuleringer til å simulere enkel nedarving av øyenfarge. Modellen vi bruker, baserer seg på at vi plukker ett tilfeldig allel som koder for øyenfarge fra mor og ett allel fra far. For å plukke ut et tilfeldig allel, kan vi bruke funksjonen _choice_, som plukker ut et tilfeldig element fra en liste:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "70fcf65f",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "b\n"
+ ]
+ }
+ ],
+ "source": [
+ "from pylab import *\n",
+ "\n",
+ "genotype_far = [\"B\", \"b\"] \n",
+ "print(choice(genotype_far))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5f5e7a6a",
+ "metadata": {},
+ "source": [
+ "__Oppgave:__\n",
+ "\n",
+ "1. Forklar hvordan programsnutten ovenfor fungerer.\n",
+ "2. Lag et program som trekker et tilfeldig allel fra både mor og far. Programmet skal skrive ut hvilken genotype og fenotype barnet får. Du kan bruke koden nedenfor som utgangspunkt hvis du syns det er vanskelig å starte.\n",
+ "\n",
+ " ```{admonition} Hint: Fyll inn i koden\n",
+ " :class: tip, dropdown\n",
+ " \n",
+ " ````\n",
+ "\n",
+ " ````{admonition} Løsningsforslag\n",
+ " :class: tip, dropdown\n",
+ " ```{code-block} Python\n",
+ " from pylab import *\n",
+ "\n",
+ " genotype_mor = [\"B\", \"b\"]\n",
+ " genotype_far = [\"B\", \"b\"]\n",
+ "\n",
+ " allel_mor = choice(genotype_mor) \n",
+ " allel_far = choice(genotype_far) \n",
+ " genotype = allel_mor + allel_far\n",
+ " if genotype == \"bb\": \n",
+ " fenotype = \"blå\"\n",
+ " else:\n",
+ " fenotype = \"brune\"\n",
+ "\n",
+ " print(\"barnet har genotypen\", genotype, \"og får derfor fenotypen\", fenotype, \"øyne.\")\n",
+ " ```\n",
+ " ````\n",
+ "\n",
+ "3. Forklar hva programmet nedenfor gjør uten å kjøre programmet. Hvilke forutsetninger og forenklinger legger vi til grunn for denne simuleringen?\n",
+ "\n",
+ " \n",
+ "\n",
+ "4. Kjør programmet 3–4 ganger. Hva gjør programmet? Stemmer dette med det du trodde? Hvorfor varierer resultatene fra programmet mellom hver kjøring? \n",
+ "\n",
+ "5. Endre systematisk på N og kjør programmet etter hver endring. Hva forteller resultatene av kjøringene deg? Endre nå systematisk på genotypene til mor og far, og undersøk hva som skjer. Skriv ned det du finner ut og prøv å validere resultatene fra simuleringene ved å lage krysningsskjemaer for nedarvingen.\n",
+ "\n",
+ "6. Modifiser programmet slik at det lagrer den relative frekvensen av blåøyde barn og antall barn i hver sin liste hver gang løkka kjører. Plott den relative frekvensen av blåøyde barn mot antallet barn. Hva beskriver plottet? Drøft følgende diskusjon mellom to foreldre med genotype Bb: «Vi har jo fått fire barn – hvorfor har ingen av dem blå øyne? Det er veldig usannsynlig».\n",
+ "\n",
+ " ````{admonition} Løsningsforslag\n",
+ " :class: tip, dropdown\n",
+ " ```{code-block} Python\n",
+ " from pylab import *\n",
+ "\n",
+ " genotype_mor = [\"B\", \"b\"]\n",
+ " genotype_far = [\"B\", \"b\"]\n",
+ " blaa = 0\n",
+ " N = 10000\n",
+ " frekvens = []\n",
+ " barn = []\n",
+ "\n",
+ " for antall_barn in range(1, N+1):\n",
+ " allel_mor = choice(genotype_mor) \n",
+ " allel_far = choice(genotype_far) \n",
+ " genotype = allel_mor + allel_far\n",
+ " if genotype == \"bb\":\n",
+ " blaa = blaa + 1\n",
+ " frekvens.append(blaa/antall_barn)\n",
+ " barn.append(antall_barn)\n",
+ "\n",
+ " plot(barn, frekvens)\n",
+ " xlabel(\"Antall kast\")\n",
+ " ylabel(\"Relativ frekvens blåøyde barn\")\n",
+ " axhline(y=1/4, color='red') # Markerer linja 1/4\n",
+ " title(\"Simulering av nedarving av øyenfarge med N = \" + str(N))\n",
+ " show()\n",
+ " ```\n",
+ " ````\n",
+ "7. Vi skal nå lage et program som simulerer dihybrid krysning for fargen og formen på erter ved nedarving. I dihybrid krysning er genotypen og fenotypen bestemt av to gener. Fenotypene som er mulig i krysningen nedenfor, er gul eller grønn, rynkete eller glatt, der genvarianten for glatt (R) og gul (Y) er dominante. Lag et program som finner sannsynligheten for å få grønne, rynkete erter. Programmet kan gjerne plotte den relative frekvensen som funksjon av antall avkom, slik som ovenfor. Du kan ta utgangspunkt i programmet nedenfor og fylle inn det som mangler:\n",
+ "\n",
+ "\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from pylab import *\n",
+ "\n",
+ "plante1_y = [\"Y\", \"y\"]\n",
+ "plante1_r = [\"R\", \"r\"]\n",
+ "plante2_y = [\"Y\", \"y\"]\n",
+ "plante2_r = [\"R\", \"r\"]\n",
+ "grønne_rynkete = 0\n",
+ "N = 10000\n",
+ "frekvens = []\n",
+ "avkom = []\n",
+ "\n",
+ "for antall_avkom in range(1,N+1):\n",
+ " allel1 = choice(plante1_y) \n",
+ " allel2 = choice(plante1_r)\n",
+ " allel3 = choice(plante2_y)\n",
+ " allel4 = choice(plante2_r) \n",
+ " genotype = allel1 + allel2 + allel3 + allel4\n",
+ " if genotype in [\"yyrr\", \"yryr\", \"yrry\", \"ryyr\", \"rryy\", \"ryry\"]:\n",
+ " grønne_rynkete = grønne_rynkete + 1\n",
+ " frekvens.append(grønne_rynkete/antall_avkom)\n",
+ " avkom.append(antall_avkom)\n",
+ "\n",
+ "plot(avkom, frekvens, color = \"green\")\n",
+ "xlabel(\"Antall avkom\")\n",
+ "ylabel(\"Relativ frekvens av grønne, rynkete erter\")\n",
+ "axhline(y = 1/16, color = \"red\") # Markerer linja 1/4\n",
+ "show()\n",
+ "```\n",
+ "````\n",
+ " \n",
+ "Forklar hvordan programmet fungerer når du har lagd det ferdig."
+ ]
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/fagoppgaver/kjemioppgaver.ipynb b/_sources/docs/fagoppgaver/kjemioppgaver.ipynb
new file mode 100644
index 00000000..b5dfd2db
--- /dev/null
+++ b/_sources/docs/fagoppgaver/kjemioppgaver.ipynb
@@ -0,0 +1,304 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "fc226795",
+ "metadata": {},
+ "source": [
+ "# Repetisjon I: Kjemioppgaver\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Oppgavene nedenfor er ment å fungere som en repetisjon av grunnleggende programmering, samtidig som du må anvende dette på nye problemstillinger. Når du setter deg inn i et nytt problem, må du, bevisst eller ubevisst:\n",
+ "\n",
+ "1. Dekomponere: Hvilke deler består problemet av? Hva er målet med å løse problemet?\n",
+ "2. Analysere: Hvordan henger delene sammen?\n",
+ "3. Vurdere I: Hvordan kan jeg bruke det jeg kan til å løse problemet, og hva trenger jeg å finne ut av? \n",
+ "4. Syntetisere: Sette sammen en løsning.\n",
+ "5. Vurdere II: Løste jeg problemet på en god måte? Finnes det andre måter å løse problemet på? Kan jeg gjøre det mer effektivt eller enklere?\n",
+ "```\n",
+ "\n",
+ "Her skal vi se på ulike problemet knyttet til kjemi, uavhengig av om du har kjemi som programfag eller ikke. Vi skal benytte to biblioteker som heter \"mendeleev\" og \"chemlib\", så du kan starte med å installere disse."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "cd4698a5",
+ "metadata": {},
+ "source": [
+ "## Oppgave 1: Periodiske trender I\n",
+ "Vi starter med et enkelt eksempel for å bli kjent med Mendeleev-biblioteket."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "730f9b83",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Atomnummer: 10 --Navn: Neon --Symbol: Ne --Gruppe: 18\n"
+ ]
+ }
+ ],
+ "source": [
+ "from mendeleev import element\n",
+ "\n",
+ "Z = 10\n",
+ "grunnstoff = element(Z)\n",
+ "\n",
+ "navn = grunnstoff.name\n",
+ "symbol = grunnstoff.symbol\n",
+ "gruppe = grunnstoff.group_id\n",
+ "\n",
+ "print(\"Atomnummer:\", Z, \"--Navn:\", navn, \"--Symbol:\", symbol, \"--Gruppe:\", gruppe)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "51121500",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "1. Forklar hva programmet ovenfor gjør. Hva slags struktur er \"element\", og hva er da \"grunnstoff\" i programmet ovenfor?\n",
+ "2. Utvid programmet slik at det også skriver ut periodenummeret. Du kan enten tippe på hva kommandoen for periode er, eller du kan slå det opp i [dokumentasjonen til mendeleev-biblioteket](https://mendeleev.readthedocs.io/en/stable/).\n",
+ "3. Modifiser programmet slik at det skriver ut informasjon om de 18 letteste grunnstoffene.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "689b3e04",
+ "metadata": {},
+ "source": [
+ "La oss kombinere mendeleev-biblioteket med løkker og lister slik at vi kan finne informasjon om flere grunnstoffer, i tillegg til at vi kan plotte ulike sammenhenger."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "id": "eb37f734",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pylab import *\n",
+ "from mendeleev import element\n",
+ "\n",
+ "atomnummer = []\n",
+ "elektronegativitet = []\n",
+ "\n",
+ "for i in range(1, 119):\n",
+ " grunnstoff = element(i)\n",
+ " atomnummer.append(grunnstoff.atomic_number)\n",
+ " elektronegativitet.append(grunnstoff.electronegativity())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "be4190e9",
+ "metadata": {},
+ "source": [
+ "````{admonition} Oppgave\n",
+ ":class: tip\n",
+ "1. Forklar hva programmet ovenfor gjør. \n",
+ "2. Kjør programmet og print ut lista med atomnummer og lista med elektronegativitet. Gjorde programmet det du tenkte?\n",
+ "3. Istedenfor å bare printe ut listene, prøv å plotte listene mot hverandre (atomnummer på _x_-aksen og elektronegativitet på _y_aksen). Bruk gjerne _scatter_ istedenfor _plot_, slik at vi får punkter og ikke linjer.\n",
+ "4. Modifiser programmet slik at det kun plotter grunnstoffene i andre periode. Beskriv trenden.\n",
+ "\n",
+ " Vi kan gjennomgå hvert element i ei liste slik:\n",
+ "\n",
+ " ```{code-block} Python\n",
+ " navneliste = [\"Arne\", \"Bjarne\", \"Mia\", \"Pia\"]\n",
+ "\n",
+ " for navn in navneliste:\n",
+ " print(navn)\n",
+ " ```\n",
+ "\n",
+ "5. Bruk denne måten å gjennomgå lister på til å modifisere programmet slik at det kun plotter grunnstoffene i første gruppe. Beskriv trenden. Gjør det samme for gruppe 18 og beskriv denne trenden også.\n",
+ "\n",
+ "6. Lag et program som skriver ut eller plotter kokepunktet til alle halogenene. Beskriv og forklar trenden i kokepunkt.\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e2030db6",
+ "metadata": {},
+ "source": [
+ "## Oppgave 2: Periodiske trender II\n",
+ "\n",
+ "a) Bruk mendeleev og plott året grunnstoffet er oppdaget (discovery_year) som funksjon av\n",
+ "atomnummer. Hvorfor tror du utviklingen ser slik ut? Prøv å beskrive ulike trender i plottet.\n",
+ "\n",
+ "b) Forklar hva plottet nedenfor beskriver. Prøv å lage et program som lager dette plottet.\n",
+ "\n",
+ "\n",
+ "\n",
+ "c) Når vi kjenner atomradius til et stoff, kan vi finne ut mye om elektronegativiteten, ioniseringsenergien og elektronaffiniteten til stoffet.\n",
+ "- Plott elektronegativitet som funksjon av atomradius. Beskriv det du ser.\n",
+ "- Utforsk trender i ioniseringsenergi (ionenergies) og elektronaffinitet (electron_affinity) ved hjelp av programmering. Du velger selv framgangsmåte, og om du vil skrive ut informasjonen eller lage illustrerende plott. Legg merke til at funksjonen _ionenergies_ skriver ut en liste med energiene som kreves for å fjerne opp til alle elektronene i grunnstoffet, ikke bare det første."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a1da622e",
+ "metadata": {},
+ "source": [
+ "## Oppgave 3: Støkiometriske beregninger\n",
+ "\n",
+ "Ved hjelp av biblioteket _chemlib_ kan vi også definere kjemiske forbindelser og gjøre støkiometriske beregninger på dem. Her er noen eksempler på hva du kan gjøre:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "cbb9b1b2",
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'grams': 2, 'molecules': 1.6243271319293604e+22, 'moles': 0.026982178271251833}\n",
+ "13.599017848710924\n",
+ "{'moles': 1, 'grams': 142.04099999999997, 'molecules': 6.02e+23}\n",
+ "{'molecules': 1e+24, 'moles': 1.6611295681063123, 'grams': 28.290697674418603}\n"
+ ]
+ }
+ ],
+ "source": [
+ "from chemlib import Compound\n",
+ "\n",
+ "butan1ol = Compound(\"C4H9OH\") # Definerer forbindelsen\n",
+ "# Regner fra gram til mol og molekyler\n",
+ "print(butan1ol.get_amounts(grams=2))\n",
+ "# Finner prosentvis masse hydrogen i ammoniakk\n",
+ "print(butan1ol.percentage_by_mass(\"H\"))\n",
+ "\n",
+ "natriumsulfat = Compound(\"Na2SO4\")\n",
+ "# Fra mol til gram og formelenheter\n",
+ "print(natriumsulfat.get_amounts(moles=1))\n",
+ "\n",
+ "ammoniakk = Compound(\"NH3\")\n",
+ "# Fra molekyler til mol og gram\n",
+ "print(ammoniakk.get_amounts(molecules=1E24))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a25db70b",
+ "metadata": {},
+ "source": [
+ "1. Hva gjør programmet ovenfor?\n",
+ "2. Finn antall gram i 2 mol NaCl.\n",
+ "3. Finn antall molekyler i 2 g metanol.\n",
+ "4. Finn antall mol HCl-molekyler i 2 g HCl."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2ae81c42",
+ "metadata": {},
+ "source": [
+ "Vi kan også sjekke om kjemiske reaksjoner er balansert, og vi kan balansere dem med chemlib:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "725a9ba3",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1H₂ + 1I₂ --> 1H₁I₁\n",
+ "False\n",
+ "1H₂ + 1I₂ --> 2H₁I₁\n",
+ "True\n"
+ ]
+ }
+ ],
+ "source": [
+ "from chemlib import Compound, Reaction\n",
+ "\n",
+ "# Definerer forbindelser\n",
+ "H2 = Compound(\"H2\")\n",
+ "I2 = Compound(\"I2\")\n",
+ "HI = Compound(\"HI\")\n",
+ "\n",
+ "# Definerer reaksjon som en liste med reaktanter og en med produkter\n",
+ "reaksjon = Reaction([H2, I2], [HI])\n",
+ "print(reaksjon.formula) # Printer reaksjonslikningen\n",
+ "print(reaksjon.is_balanced) # Sjekker om reaksjonen er balansert\n",
+ "\n",
+ "reaksjon.balance() # Balanserer reaksjonen\n",
+ "print(reaksjon.formula)\n",
+ "print(reaksjon.is_balanced)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4827eb8d",
+ "metadata": {},
+ "source": [
+ "1. Forklar hvordan klassen _Reaction_ fungerer (helt overordna). Skriv reaksjonslikningen vi har definert her.\n",
+ "2. Forklar hva resten av programmet gjør.\n",
+ "3. Lag et program som balanserer følgende reaksjonslikninger:\n",
+ "\n",
+ "$$C_2H_6(g) + O_2(g) \\rightarrow CO_2(g) + H_2O(l)$$\n",
+ "\n",
+ "$$NH_3(g) + O_2(g) \\rightarrow NO(g) + H_2O(g)$$\n",
+ "\n",
+ "$$Mg(s) + N_2(g) \\rightarrow Mg_3N_2(s)$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7d4a324e",
+ "metadata": {},
+ "source": [
+ "## Oppgave 4: Titrering (utfordring)\n",
+ "\n",
+ "Titrering er en kvantitativ analysemetode der vi bestemmer konsentrasjonen av et ukjent stoff (_analytten_) ved å tilsette et stoff med kjent konsentrasjon (_titranten_). Titranten tilsettes ofte fra en byrette, og vi kan notere oss pH i analytten underveis ettersom vi tilsetter et visst volum titrant. Her er en titreringskurve for titrering av en svak syre med en sterk base.\n",
+ "\n",
+ "![titreringskurve](https://github.com/andreasdh/programmering-i-kjemi/blob/master/docs/bilder/titrering.png?raw=true)\n",
+ "\n",
+ "Ved ekvivalenspunktet er grafen brattest, og her er stoffmengdene av syre og base _ekvivalente_ (og dermed like hvis forholdet er 1:1 i reaksjonslikningen). Dette kan vi bruke til å finne konsentrasjonen av analytten. Vi skal se på noen metoder for å finne ekvivalenspunktet og pH-en ved ekvivalenspunktet i en slik titrering.\n",
+ "\n",
+ "a) Les og plott dataene fra fila [titreringsdata.txt](https://raw.githubusercontent.com/andreasdh/programmering-i-kjemi/master/docs/datafiler/titreringsdata.txt), som viser titreringsdata for titrering av glykolsyre med NaOH. Sørg for at datapunktene vises i plottet.\n",
+ "\n",
+ "b) Deriver pH-en numerisk med hensyn på volumet og legg den deriverte pH-en i ei ny liste. Forklar hva den deriverte av pH-en kan fortelle oss.\n",
+ "\n",
+ "c) Lag en funksjon som finner den største deriverte i lista med de deriverte verdiene. Sammenlikn gjerne med numpy-funksjonen _max_. La programmet skrive ut hvilket volum dette tilsvarer. Dette er volumet sterk base som er tilsatt ved ekvivalenspunktet. Finn også pH ved ekvivalenspunktet ved hjelp av programmet ditt."
+ ]
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/fagoppgaver/teknologi.ipynb b/_sources/docs/fagoppgaver/teknologi.ipynb
new file mode 100644
index 00000000..6224bac0
--- /dev/null
+++ b/_sources/docs/fagoppgaver/teknologi.ipynb
@@ -0,0 +1,408 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Teknologi og programmering\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. lage enkle programmer på en micro:bit\n",
+ "2. bruke knapper, radio og sensorer på micro:bit\n",
+ "3. illustrere hvordan sensorer fungerer ved å bruke micro:bit\n",
+ "```\n",
+ "\n",
+ "## Teknologi i et bærekraftig perspektiv\n",
+ "Utvikling og bruk av teknologi lider av et dårlig rykte i miljøsammenheng. Støy, giftige utslipp, $CO_2$-utslipp og avfall er noen av problemene med bruk av teknologi og teknologiproduksjon. Men i tillegg til å være et potensielt miljøproblem kan teknologi også være en av løsningene mot en bærekraftig framtid med nok energi og ressurser til å dekke alles grunnleggende behov. Ikke minst kan teknologi hjelpe til med å rette opp i feil vi har gjort. Plastfangere kan samle inn avfall i havet. Sporere og kamera kan hjelpe til med å kartlegge det biologiske mangfoldet slik at vi kan sette inn tiltak der det trengs. Intelligente avfallsanlegg sorterer ulike plasttyper slik at de kan gjenvinnes fornuftig med minst mulig energitap. \n",
+ "\n",
+ "Sett i et større perspektiv er det ikke teknologien som er et problem, det er menneskene bak den. Dermed blir gode valg og fornuftig bruk av teknologi essensielt for å sikre en bærekraftig framtid for alle.\n",
+ "\n",
+ "## Programmering med mikrokontrollere\n",
+ "Vi kan utforske programmering i en teknologisk sammenheng gjennom _mikrokontrollere_. En mikrokontroller er en liten datamaskin i én enkel integrert krets. Den viktigste komponenten i en slik krets, er transistorene. Det er disse som styrer strømmen av informasjon gjennom en datamaskin. \"Hjernen\" i en datamaskin kalles for en _CPU_ (Central Processing Unit) og består i dag av flere hundretalls millioner transistorer (ja, de er små!). \n",
+ "\n",
+ "En transistor fungerer som en slags bryter og kan representere 0 (av) eller 1 (på). Det vil si at alt vi programmerer, må oversettes til et språk datamaskinen forstår, og det er et språk som består av kun 0-er og 1-ere. Dette tallsystemet kalles _det binære tallsystemet_ eller _totallsystemet_. Men det hadde vært tungvint å programmere en datamaskin ved å kun gi den instruksjoner med 0 og 1. Heldigvis er moderne programmeringsspråk enklere å bruke fordi et program som kalles en _kompilator_ oversetter dem til binær kode.\n",
+ "\n",
+ "Det finnes mange ulike mikrokontrollere: Arduino, Raspberry Pi og micro:bit er noen av de mest kjente. Det finnes utrolig mye utstyr til disse mikronkontrollerne, og de har til dels ganske kraftige prosessorer. Spesielt gjelder dette Arduino og Raspbery Pi. Micro:bit har en del lavere kapasitet, men den er til gjengjeld veldig enkel å bruke. Disse mikrokontrollerne skal vi lære oss å programmere.\n",
+ "\n",
+ "## Introduksjon til micro:bit\n",
+ "Micro:bit blei designa av det britiske selskapet BBC i 2014 for å lære britiske ungdommer programmering. De blei sendt ut gratis til britiske grunnskoler i 2016, og den ideelle foreningen Lær kidsa koding har i samarbeid med Vitensentrene og Sparebankstiftelsen sendt ut micro:bit til grunnskoler over hele Norge.\n",
+ "\n",
+ "Det går an å programmere micro:bit med [blokkbaserte kodesnutter](https://makecode.microbit.org/). Blokkbasert koding baserer seg på å flytte ferdigdefinerte blokker i en logisk rekkefølge slik at et program fungerer. Det går også an å programmere dem i [Python](https://python.microbit.org/v/3) (eller JavaScript). Vi skal se på både blokk og tekst (Python) her.\n",
+ "\n",
+ "### Elektronikken\n",
+ "Vi starter med å se litt på hvordan micro:bit-en er bygd opp:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Vi ser følgende komponenter på figuren:\n",
+ "\n",
+ "1. USB-tilkobling: Her kobles micro:bit med en USB til en datamaskin når vi skal programmere den.\n",
+ "\n",
+ "2. LED-lys: 25 LED-lys utgjør en slags \"skjerm\" på micro:bit-en.\n",
+ "\n",
+ "3. Knapper: A-knappen og B-knappen kan programmeres til å styre sekvenser på micro:bit-en.\n",
+ "\n",
+ "4. Innganger: Det finnes 5 hovedinnganger for tilkobling av eksternt utstyr, merka med 0, 1, 2, 3V og GND (ground = jording).\n",
+ "\n",
+ "5. Batteriinngang: Her kobles batteripakka på to AA-batterier (2 x 1,5 V) til.\n",
+ "\n",
+ "6. Omstartsknapp: Starter programmet på micro:bit-en på nytt.\n",
+ "\n",
+ "7. Radio og Bluetooth: Liten innebygd antenne som blant annet kan brukes til å kommunisere mellom to enheter.\n",
+ "\n",
+ "8. Prosessor: Norskprodusert lettvekterprosessor med svært lavt strømforbruk. Lav hastighet, men har også integrert midlertidig minne (RAM) og lagringsminne (flash).\n",
+ "\n",
+ "9. Kompass og akselerometer: Måler retning, posisjon og akselerasjon i de ulike retningene. Integrerte sensorer som en kan hente data fra.\n",
+ "\n",
+ "Vi kommer til å bruke all denne elektronikken i prosjektene vi skal se på seinere. Men la oss først se litt på hvordan vi kan programmere i både blokk og med Python.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Grunnleggende programmering\n",
+ "Med blokkspråket til micro:bit kan vi definere variabler slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Disse blokkene velges fra menyer, og legg merke til at de har \"puslespillender\". Det betyr at vi må ha en blokk uten \"knagger\", slik som _gjenta for alltid_-blokka (utføres hele tida) eller _ved start_-blokka (utføres når micro:bit startes opp) som vi kan putte andre blokker inni. Programmet ovenfor lager en variabel _a_ som den lagrer verdien 0 i, for deretter å legge til 1 i variabelen. Den tilsvarende Python-koden for dette kan skrives slik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "a = 0\n",
+ "a = a + 1\n",
+ "```\n",
+ "\n",
+ "Vilkår kan programmeres slik med blokker:\n",
+ "\n",
+ "\n",
+ "\n",
+ "I dette programmet settes variabelen til 10. Deretter testes det om tallet er mindre enn eller større enn 0. Hvis tallet verken er større eller mindre enn 0, må det være null, og det er det siste som inntreffer hvis de andre ikke inntraff. Merk at her skrives ikke noe ut, men teksten vises på \"skjermen\" av LED på micro:bit-en. Dette kan vi få til i Python slik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import *\n",
+ "\n",
+ "tall = 10\n",
+ "\n",
+ "if tall < 0:\n",
+ "\tdisplay.scroll('Tallet er negativt!')\n",
+ "elif tall > 0:\n",
+ "\tdisplay.scroll('Tallet er positivt!')\n",
+ "else:\n",
+ "\tdisplay.scroll('Tallet er 0!')\n",
+ "```\n",
+ "\n",
+ "Micro:bit inneholder en del spesialfunksjoner som vi må importere inn i programmet med linja _from microbit import \\*_. Deretter får vi tilgang til all micro:bit-elektronikken, som vi skal se på seinere. Når vi laster dette programmet over på micro:bit-en, ruller teksten over skjermen. Hvis vi vil vise teksten med én bokstav om gangen, bruker vi _display.show()_ isteden.\n",
+ "\n",
+ "Løkker kan også enkelt programmeres med blokk. En evig løkke kan lages med en enkelt blokk kalt _gjenta for alltid_ på samme måte som _ved start_-blokka:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Koden ovenfor er en evig løkke som for alltid viser et hjerte på skjermen. Dette kan skrives slik i Python:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import *\n",
+ "\n",
+ "while True:\n",
+ "\tdisplay.show(Image.HEART)\n",
+ "```\n",
+ "\n",
+ "\"while True\" betyr \"så lenge sant\" og sant er jo sant så lenge sant ikke blir usant. Dette er nesten litt filosofisk, men sant blir aldri usant av seg selv i datamaskinens verden, så løkka kjører til evig tid. Hvis vi ønsker at løkka skal stoppe, velger vi en annen betingelse for løkka vår, f.eks. slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Kodesnutten gir følgende output: _0 2 4 6 8_. Merk at løkka her har en annen farge, i tillegg til at den må pusles sammen med en annen brikke. En tilsvarende kode i Python kan være slik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import *\n",
+ "\n",
+ "partall = 0\n",
+ "while partall < 10:\n",
+ "\tdisplay.show(partall)\n",
+ "\tpartall = partall + 2\n",
+ "```\n",
+ "\n",
+ "Nå har vi raskt vært innom grunnleggende programmeringskonsepter i både blokk og tilsvarende Python-kode. La oss nå begynne å bruke dette for fullt på micro:bit-en!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## LED-skjermen\n",
+ "LED-lampene på micro:bit-en kan vi bruke til å vise eller rulle tekst over en slags skjerm. Vi har sett på noe av det før, men la oss kort oppsummere gjennom et kodeeksempel.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import * \n",
+ "\n",
+ "while True:\n",
+ "\tdisplay.show(Image.GHOST)\n",
+ "\tdisplay.scroll('Du er kul!')\n",
+ "```\n",
+ "\n",
+ "I blokk kan vi gjøre f.eks. som nedenfor. I tillegg kan du enkelt tegne hvilke LED-er som skal lyse. Dette kan du også gjør i Python, men det er litt mer komplisert, så det skal vi ikke vise her (men du kan enkelt finne det på internett!).\n",
+ "\n",
+ "\n",
+ "\n",
+ "Prøv å forstå hva programmet ovenfor gjør. Du kan programmere pause i Python ved å skrive _display.pause(1000)_, der det som angis i parentes, er pausen i kjøringen gitt i antall millisekunder. Skjermen kan tømmes ved å skrive _display.clear()_.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et Python-program som gjør omtrent det samme som blokkprogrammet ovenfor.\n",
+ "````\n",
+ "\n",
+ "## Knapper\n",
+ "Siden micro:bit har to knapper, kan vi bruke disse til å styre beslutninger og sette i gang prosesser. Det kan en enkelt gjøre i blokk slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Her kan vi selvfølgelig bytte ut knapp A med knapp B, og vi kan også angi at knapp A + B skal trykkes samtidig. I Python kan vi gjøre det slik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import *\n",
+ "\n",
+ "while True:\n",
+ " if button_a.is_pressed():\n",
+ " display.scroll('A')\n",
+ " elif button_b.is_pressed():\n",
+ " display.scroll('B')\n",
+ " elif button_a.is_pressed() and button_b.is_pressed():\n",
+ " display.scroll('AB')\n",
+ " sleep(1000)\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program som gjør et eller annet (f.eks. tegner en figur eller viser en tekst) når du trykker på én eller flere knapper.\n",
+ "````\n",
+ "\n",
+ "Det fins også mulighet for å telle antall trykk, f.eks. ved å skrive _antall = button\\_a.get\\_presses()_. Hvis vi da trykker på A-knappen 4 ganger, blir verdien til variabelen _antall_ lik 4.\n",
+ "\n",
+ "## Radio\n",
+ "Det er ganske enkelt å sette opp micro:bit til å sende og motta informasjon. Nedenfor er et enkelt blokkprogram som sender en melding:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Det meste ovenfor er kanskje enkelt å forstå, men _radio sett gruppe_ er litt spesiell. Den oppretter en kanal mellom 0 og 255 slik at mange micro:bit-er kan kommunisere sammen uten at det blir kollisjon i meldingene. Et tilsvarende program vil i Python kunne se slik ut:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import *\n",
+ "import radio # Importerer radio-funksjonaliteten\n",
+ "\n",
+ "radio.on() # Slår på radioen\n",
+ "radio.config(group=42) # Setter kanalen/gruppa til 42\n",
+ "\n",
+ "while True:\n",
+ " if button_a.is_pressed():\n",
+ " radio.send('Hei!')\n",
+ " display.scroll('SENDT')\n",
+ " elif button_b.is_pressed():\n",
+ " melding = radio.receive()\n",
+ " display.scroll(melding)\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program som sender en beskjed eller et hemmelig tall til en annen micro:bit.\n",
+ "````\n",
+ "\n",
+ "## Eksterne tilkoblinger (pins)\n",
+ "Det er egentlig veldig mange måter en kan feste ting til en micro:bit på. Inngangene heter \"pins\", og det er flere av dem enn du først kanskje antar. Bildet nedenfor illustrerer mulighetene for tilkobling:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Vi skal konsentrere oss om utgangene som er formet som store, runde hull (0, 1, 2, 3V og GND). \n",
+ "\n",
+ "### Spenning, strøm og resistans\n",
+ "La oss først repetere litt om spenning, strøm og motstand (resistans). _Spenning_ er den elektriske potensielle energien mellom to punkter. Det vil si at desto høyere spenning, desto høyere potensiell energi er det f.eks. mellom to ladninger. Høy potensiell energi kan føre til bevegelse, f.eks. av ladninger som elektroner. Når slike ladninger beveger seg, får vi _strøm_.\n",
+ "\n",
+ "```{admonition} Spenning\n",
+ "Spenning, _U_, er elektrisk potensiell energi mellom to punkter og måles i V (volt).\n",
+ "```\n",
+ "\n",
+ "```{admonition} Strøm\n",
+ "Strøm, _I_, er antallet ladninger som passerer et visst punkt hvert sekund og måles i ampere (A).\n",
+ "```\n",
+ "\n",
+ "Siden spenning får elektroner til å bevege seg, kan det ses på som et slags \"elektrisk trykk\". Desto høyere trykk, desto flere elektroner går igjennom en leder (f.eks. en kobbertråd/ledning), altså får vi en høyere strøm av elektroner.\n",
+ "\n",
+ "Noe som kan hindre en slik strøm av ladninger, er _motstand_. En elektrisk leder har lav motstand. Dette er typisk for metaller, f.eks. kobber og gull. Dette er fordi det er metallbinding mellom metallatomene. Du husker kanskje at dette er en binding der atomene deler på alle elektronene i en \"elektronsjø\"? Siden elektronene er så udefinert bundet, kan de lett flytte på seg. Det vil si at en spenning lett lager en strøm av elektroner gjennom et slikt metall.\n",
+ "\n",
+ "Plast, porselen og tre er eksempler på materialer som ikke leder strøm godt pga. liten mulighet for elektronflyt gjennom kovalente bindinger. Vi sier at disse materialene har _høy resistans_. Når vi kobler elektriske kretser, ønsker vi ofte å sette inn ulike motstander for å ikke få for høy strøm gjennom de elektriske komponentene våre. Disse motstandene ser ofte slik ut i småelektronikk:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Resistans\n",
+ "Resistans, _R_, er motstand mot strøm i en elektrisk krets og måles i ohm ($\\Omega$).\n",
+ "```\n",
+ "\n",
+ "### Lese av og skrive til eksterne tilkoblinger\n",
+ "For å sette spenning på pins, og/eller lese av spenningen, kan vi i blokk gjøre slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Her skrives verdien 1 til P0. Når vi skriver _digitalt_, betyr det at vi enten setter strømmen på (1) eller av (0). Det vil si 0 V eller 3 V. Hvis vi vil variere strømmen mellom disse verdiene, må vi bruke \"skriv analog\" isteden. Når vi setter på analog strøm, kan vi variere ved å sette verdien mellom 0 (0 V) og 1023 (3 V).\n",
+ "\n",
+ "I den andre linja i programmet leses analogverdi fra P1, dvs. at det leses av en verdi mellom 0 og 1023 og lagres i variabelen _spenning_. Hvis vi f.eks. har kobla pin0 med pin1 med en motstand imellom, kan vi lese av spenningen mellom pin-ene. Husk derimot at 1023 ikke betyr 1023 V, men 3 V!\n",
+ "\n",
+ "Vi skal konsentrere oss om pin0, pin1 og pin2 + GND. Pin-en som er merka med 3V er litt spesiell, så den skal vi kun bruke hvis vi må. I Python-kode kan vi lese av og sette på strøm slik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import *\n",
+ "\n",
+ "while True:\n",
+ "\tpin0.write_digital(1)\n",
+ "\tspenning = pin1.read_analog()\n",
+ "\tdisplay.scroll(spenning)\n",
+ "```\n",
+ "\n",
+ "Legg derimot merke til at Python-funksjonene som brukes, kan gi en helt annen følsomhet og spenning enn blokkene! Det er altså ikke 100 \\% samsvar mellom de ulike måtene å kode på og elektronikken.\n",
+ "\n",
+ "Vi kan også sende strøm igjennom kroppen (!) ved hjelp av f.eks. _pin0.is\\_touched_. Hvis vi da tar på pin0 og GND samtidig (lukka krets), aktiveres denne funksjonen. Blokkprogrammet nedenfor viser en beskjed når du gjør nettopp dette:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag programmet ovenfor i Python.\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Sensorer\n",
+ "En elektrisk sensor er et instrument som tolker et elektrisk signal om til en størrelse vi ønsker å måle. En temperatursensor kan for eksempel sende strøm gjennom en leder, for eksempel en platinatråd. Ved høye temperaturer øker motstanden i en slik leder, og det vil dermed være mer strøm som kommer igjennom tråden ved lave temperaturer. Hvis vi måler spenningen som har gått tapt, kan vi dermed oversette dette til temperatur. Men dette krever _kalibrering_.\n",
+ "\n",
+ "Kalibrering er en prosess som kreves for alle sensorer. Det vil si å måle (minst) to kjente størrelser. F.eks. kan temperatursensoren vår ovenfor testes i isvann. Dette vannet holder 0 $^\\circ$C. Vi leser av spenningen i dette vannet. Deretter tester vi i kokende vann (100 $^\\circ$C) og leser av spenningen der også. Disse to spenningene utgjør målepunkter vi er sikre på, også kan vi anta at spenningen er lineær mellom disse to punktene (og kanskje utenfor også?).\n",
+ "\n",
+ "La oss si at vi setter på en spenning, måler strømmen og regner om til resistans ($U = RI$). Vi sier at resistansen ved 0 $^\\circ$C var 100 $\\Omega$ og resistansen ved 100 $^\\circ$C var ca 140 $\\Omega$. Vi trekker en rett linje gjennom disse punktene, og hvis vi f.eks. neste gang leser av 120 $\\Omega$, veit vi at temperaturen er 50 $^\\circ$C. Dette vil ikke stemme for alle temperaturer, og vi sier at sensoren har et _lineært gyldighetsområde_. Derfor står det ofte på sensorer i hvilket intervall sensoren måler korrekt. Figuren nedenfor viser en temperatursensor med gyldighetsområde fra ca. -50 til 300 $^\\circ$C\n",
+ "\n",
+ "\n",
+ "\n",
+ "La oss nå bruke de innebygde sensorene i micro:bit først, så skal vi prøve å lage egne sensorer litt seinere. Vi kan hente data fra de ulike innebygde sensorene slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Akselerasjonen gir akselerasjon i milli-g ($1 \\ g = 9.81 \\ m/s^2$) i _x_-, _y_- eller _z_-retning. Kompasset gir retning i grader (360$^\\circ$ er nord, 90$^\\circ$ er øst, osv.). Temperaturen gir temperaturen på prosessoren i $^\\circ$C, men den er ikke kalibrert, og vil ofte gi for høy temperatur. Men den er grei for å se på enkle temperaturendringer.\n",
+ "\n",
+ "I Python kan du gjøre slik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import *\n",
+ "\n",
+ "while True:\n",
+ "\takselerasjon = accelerometer.get_x()\n",
+ "\tkompassretning = compass.heading()\n",
+ "\ttemperatur = temperature()\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Programmene ovenfor viser ikke variablene på skjermen. Modifiser dem slik at de viser det du måler, f.eks. ved ulike tastetrykk.\n",
+ "```\n",
+ "\n",
+ "Nå har du lært nok til å kunne bryne deg på noen litt mer utforskende og kreative oppgaver. Lykke til!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "\n",
+ "```{admonition} Oppgave 1\n",
+ ":class: tip\n",
+ "Lag et program som logger temperaturen og sender den til en annen micro:bit.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 2\n",
+ ":class: tip\n",
+ "Lag et program som teller antall ganger du trykker på en knapp, og viser deg hvor mange ganger du trykker på knappen.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 3\n",
+ ":class: tip\n",
+ "Et _vaterpass_, eller bare _vater_, er et instrument som måler om noe står eller ligger vinkelrett. Lag ditt eget vater ved hjelp av akselerasjons-sensoren på micro:bit-en. Tips: Det er virkelig vanskelig å få micro:bit-en til å ligge 100 \\% flatt -- prøv med et intervall du synes er greit.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 4\n",
+ ":class: tip\n",
+ "Lag en skritteller ved hjelp av akselerometeret.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Oppgave 5\n",
+ ":class: tip\n",
+ "Programmet nedenfor gjør micro:bit om til en krystallkule. Fyll inn og modfiser som du ønsker, og lag dine egne beskjeder.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from microbit import *\n",
+ "import random\n",
+ "\n",
+ "svar = [\n",
+ " \"Det er sikkert\",\n",
+ " \"Tvilsomt\",\n",
+ " \"Mine kilder sier nei\",\n",
+ " \"Du har blitt el-overfølsom\",\n",
+ "]\n",
+ "\n",
+ "while True:\n",
+ " if accelerometer.was_gesture('shake'):\n",
+ " display.scroll(random.choice(svar))\n",
+ " sleep(10)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave: Overlev på Mars!\n",
+ ":class: tip\n",
+ "Du er ansatt som astrobiolog og har fått ansvar for det eneste drivhuset på Mars. Siden både vann og mat er en begrenset ressurs, må du overvåke systemene nøye for å få mest mulig optimal avling med minst mulig bruk av ressurser. Først får du som oppdrag å lage en fuktighetssensor som måler fuktigheten i jorda.\n",
+ "\n",
+ "![dyrking på mars](https://github.com/andreasdh/Programmering-og-modellering/blob/master/docs/bilder/mars.png?raw=true)\n",
+ "\n",
+ "Sensoren du skal lage, baserer seg på at vi kobler to spikere til hver sin pin i en micro:bit. Disse spikerne setter vi ned i jorda. Deretter setter vi på en spenning (pin 0) og måler spenningsfallet (pin 1) som forårsakes av motstanden i jorda.\n",
+ "\n",
+ "1. Hvordan kan måling av strøm/spenning være et mål på fuktighet i jorda?\n",
+ "2. Foreslå en måte vi kan oversette spenning til prosentvis fuktighet.\n",
+ "3. Koble en ledning med bananplugg til pin1 og en annen til pin2.\n",
+ "4. Fest en spiker i den frie enden av hver av bananpluggene med en krokodilleklemme.\n",
+ "5. Diskuter hvordan du vil kalibrere sensoren, altså vite hva som er høyest og hva som er lavest fuktighet.\n",
+ "6. Lag et program som:\n",
+ "- Setter spenning på via pin0.\n",
+ "- Leser av spenningen via pin1 når du f.eks. trykker på en knapp.\n",
+ "- Viser spenningen til displayet. Her kan du gjerne oversette spenningen til prosent fuktighet. Spenningen blir gitt som et tall mellom 0 og 1023, der 0 er 0 V og 1023 er 3 V.\n",
+ "7. Test sensoren på ulike planter med tørr og våt jord. Hva viser sensoren?\n",
+ "8. Modifiser programmet som du ønsker, f.eks. slik at det:\n",
+ " - Sier fra når det er for lite vann.\n",
+ " - Gir tommel opp/smilefjes når det er nok vann.\n",
+ " - Kommuniserer med en annen micro:bit som fungerer som mottaker.\n",
+ "9. Ekstra: Koble til en liten motor som setter på vanning når fuktigheten i jorda er under en viss verdi. Dette må legges til i programmet ditt.\n",
+ "10. Utvid programmet og oppsettet med andre sensorer, for eksempel luftfuktighetssensor og temperatursensor.\n",
+ "```"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/intro.md b/_sources/docs/intro.md
new file mode 100644
index 00000000..e5f900ae
--- /dev/null
+++ b/_sources/docs/intro.md
@@ -0,0 +1,15 @@
+# Programmering og modellering
+
+Velkommen til ressursside for Programmering og modellering X. Her vil du finne ulike ressurser i emnet.
+
+```{admonition} Innhold
+På siden vil du finne følgende:
+- Tema 1: Grunnleggende programmering. Repetisjon av og litt mer om det helt grunnleggende: Variabler, vilkår og løkker.
+- Tema 2: Kodestrukturering. Strukturering av kode med funksjoner og klasser.
+- Tema 3: Datahåndtering. Lese og plotte data. Statistikk og maskinlæringsmodeller.
+- Tema 4: Algoritmer. Vi ser på noen algoritmer fra matematikken.
+- Tema 5: Modellering. Dette er den viktigste delen av faget. Vi lager og utforsker ulike modeller, spesielt regresjonsmodeller og modeller basert på differens- og differensiallikninger.
+- Oppgaver og datafiler
+```
+
+Når du gjennomgår fagstoffet på sidene, bør du gjøre underveisoppgavene. Da får du øvd deg regelmessig på aktuelle problemer. Dette er mye mer effektivt enn å bare lese om programmering! Noen ganger får du også muligheten til å bruke en interaktiv editor (Trinket) til å gjøre oppgaver, for eksempel fylle inn noe som mangler eller rette opp feil. Nettleseren din husker da hva du har gjort i disse editorene, så hvis du vil tilbakestille programmet, må du trykke på hamburgermenyen (de tre strekene) i editorvinduet og trykke på “reset”. God fornøyelse!
\ No newline at end of file
diff --git a/_sources/docs/kurs/programmering_intro.ipynb b/_sources/docs/kurs/programmering_intro.ipynb
new file mode 100644
index 00000000..9c1e9f14
--- /dev/null
+++ b/_sources/docs/kurs/programmering_intro.ipynb
@@ -0,0 +1,254 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Programmering med ENT3R\n",
+ "\n",
+ " \n",
+ "\n",
+ "Datamaskinen er et fantastisk verktøy som lar oss gjøre ting som nesten er umulig uten. La oss se litt på hva vi kan få til!\n",
+ "\n",
+ "## Gjett tallet\n",
+ "\n",
+ "La oss starte med et lite \"gjettespill\". Spillet finner et tilfeldig tall mellom 0 og 100, og du må deretter gjette deg fram til hva tallet skal være. Kjør programmet ved å trykke på \"play\"-knappen over programkoden. Deretter skriver du inn gjettet ditt i ruta til høyre. Hvor mange forsøk bruker du?\n",
+ "\n",
+ "\n",
+ "\n",
+ "Husk at du ikke trenger å forstå alt som foregår i koden ovenfor enda, men kanskje du kan forstå noe?\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Prøv å forklare hva koden ovenfor gjør. Hvilke kodesnutter syns du gir mening, og hvilke syns du er vanskelig å forstå?\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I gjetteprogrammet bruker vi til slutt kommandoen _print_ for å gi beskjeden om at du har vunnet spillet. For å få noe ut av et program, må vi nemlig be datamaskinen om å \"skrive ut\" noe. Dette gjør vi med kommandoen _print_. Dersom vi ønsker å skrive ut flere variabler, må vi skille dem med komma i print-kommandoen. Her ser du to eksempler:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Eksperimenter med programmet ovenfor og forklar hvordan print fungerer. Gi gjerne variablene _navn_ og _alder_ en annen verdi. Bruk for eksempel ditt eget navn og alder eller navnet og alderen på noen du kjenner.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsning\n",
+ ":class: tip, dropdown\n",
+ "Kommandoen _print_ gir oss et ouput fra programmet vårt. Vi sier at noe blir skrevet ut til \"konsollen\". Konsollen er der du får output i et programmeringsmiljø. Inni print-kommandoen kan vi skrive flere ting. Da må hver variabel og hver verdi være adskilt med komma.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Løkker\n",
+ "\n",
+ "Den kanskje viktigste strukturen i programmering er løkker. De lar datamaskinen gjenta en operasjon så mange ganger vi vil. Det er dette som er datamaskinens styrke.\n",
+ "\n",
+ "```{image} https://cdn.pixabay.com/photo/2015/06/08/15/02/roller-coaster-801833_960_720.jpg\n",
+ ":alt: berg-og-dalbane\n",
+ ":class: bg-primary mb-1\n",
+ ":height: 300px\n",
+ ":align: center\n",
+ "```\n",
+ "\n",
+ "## Skilpaddegrafikk\n",
+ "Vi skal se hvordan løkker fungerer ved å introdusere deg for en skilpadde. Han heter Gunnar. Her er han:\n",
+ "\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "```{image} https://cdn.pixabay.com/photo/2016/11/29/08/31/animal-1868436_960_720.jpg\n",
+ ":alt: skilpadde\n",
+ ":class: bg-primary mb-1\n",
+ ":height: 200px\n",
+ ":align: center\n",
+ "```\n",
+ "\n",
+ " \n",
+ "\n",
+ "Gunnar følger enkle kommandoer, som \"forward\", \"backward\", \"right\" og \"left\".\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Endre programmet ovenfor slik at Gunnar tegner en trekant. Hva er sammenhengen mellom vinkelen som skilpadden snur og vinklene i trekanten?\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsning\n",
+ ":class: tip, dropdown\n",
+ "Du kan tegne hvilken som helst trekant, men dersom vi velger en likesidet trekant, må alle vinkler være 60 grader (slik at summen av de tre vinklene er 180 grader). Men vi kan ikke snu skilpadden 60 grader mot venstre. Da blir ikke den indre vinkelen i trekanten 60 grader. Det er altså forskjell på å snu 60 grader og lage en vinkel på 60 grader. Siden en helomvending er 180 grader, må skilpadden snu 180 - 60 = 120 grader for at vinklene i trekanten skal være 60 grader.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from turtle import *\n",
+ "\n",
+ "shape(\"turtle\") # gir pekeren skilpaddeform \n",
+ "color(\"limegreen\") # gjør skilpadden limegrønn\n",
+ "forward(100) # går framover 100 steg\n",
+ "left(120) # vender 30 grader mot høyre (går ikke framover)\n",
+ "forward(100) # går framover 100 steg\n",
+ "left(120)\n",
+ "forward(100)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "### Skilpadder i løkker\n",
+ "Å tegne en trekant krever få linjer kode, men hva hvis du vil tegne en åttekant, en førtitokant, eller en nittisekskant? Det er slitsomt og kjedelig å skrive samme kommando hundrevis av ganger. Og det er totalt unøvdendig. Vi bruker nemlig løkker til å gjenta kode, for eksempel slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Modifiser programmet ovenfor slik at skilpadden Gunnar tegner en 20-kant.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsning\n",
+ ":class: tip, dropdown\n",
+ "Det er så enkelt som å endre _n_ til 20. Problemet er at 20-kanten blir litt stor, så vi kan også med fordel endre sidelengden, for eksempel til 25.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Få Gunnar til å tegne et hus. Du velger hvor detaljert huset skal være, men du bør bruke løkker for å automatisere ting.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsning\n",
+ ":class: tip, dropdown\n",
+ "Mulighetene er uendelige, men her er et enkelt forslag:\n",
+ "```{code-block} Python\n",
+ "from turtle import *\n",
+ "\n",
+ "for i in range(4):\n",
+ " forward(100)\n",
+ " right(90)\n",
+ " \n",
+ "for i in range(3):\n",
+ " forward(100)\n",
+ " left(120)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Få Gunnar til å tegne et menneske eller en blomst.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsning\n",
+ ":class: tip, dropdown\n",
+ "Mulighetene er uendelige, men her er et vakkert eksemplar av et menneske\n",
+ "```{code-block} Python\n",
+ "from turtle import *\n",
+ "\n",
+ "n = 100\n",
+ "vinkel = 360/n\n",
+ "\n",
+ "for i in range(n):\n",
+ " forward(3)\n",
+ " left(vinkel)\n",
+ " \n",
+ "right(90)\n",
+ "forward(50)\n",
+ "\n",
+ "for i in range(2):\n",
+ " left(120)\n",
+ " forward(75)\n",
+ " backward(75)\n",
+ "\n",
+ "left(120)\n",
+ "forward(50)\n",
+ "\n",
+ "right(30)\n",
+ "forward(75)\n",
+ "backward(75)\n",
+ "left(60)\n",
+ "forward(75)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Skilpaddekunst\n",
+ "Du kan være ganske så kreativ med skilpaddegrafikk. Her er et eksempel på et lite kunstverk som du kan eksperimentere med og gjøre til ditt eget. Bruk gjerne oversikten nedenfor over ulike turtle-kommandoer og farger.\n",
+ " \n",
+ "\n",
+ "```{image} https://cdn.pixabay.com/photo/2018/03/04/23/25/sea-turtle-3199593_960_720.png\n",
+ ":alt: skilpaddekunst\n",
+ ":height: 200px\n",
+ ":align: center\n",
+ "```\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n",
+ "`````{tabbed} Turtle-kommandoer\n",
+ "````{code-block} Python\n",
+ "from turtle import * # Importerer kommandoene vi trenger\n",
+ "\n",
+ "forward(100) # Går framover 100 skritt\n",
+ "backward(100) # Går bakover 100 skritt\n",
+ "right(45) # Snur 45 grader mot høyre\n",
+ "left(45) # Snurt 45 grader mot venstre\n",
+ "goto((30,45)) # Går til koordinaten (30, 45)\n",
+ "print(pos()) # Skriver ut posisjonen til pekeren\n",
+ "penup() # Slutter å tegne\n",
+ "pendown() # Begynner å tegne igjen\n",
+ "\n",
+ "shape('turtle') # Gir pekeren form som en skilpadde\n",
+ "color('green') # Fargelegger pekeren\n",
+ "pencolor('red') # Fargelegger det vi tegner\n",
+ "pensize(10) # Angir tykkelsen på strekene som tegnes\n",
+ "speed(4) # Tegnefart fra 1-10\n",
+ "````\n",
+ "`````\n",
+ "\n",
+ "`````{tabbed} Oversikt over fargenavn\n",
+ "![farger](https://matplotlib.org/2.0.2/_images/named_colors.png)\n",
+ "`````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Avsluttende oppgave\n",
+ "```{admonition} Avsluttende oppgave\n",
+ "Lag logoen til ENT3R med Turtle-grafikk! Du kan gjerne være kreativ med farger og former. Ta også gjerne utgangspunkt i programmet nedenfor.\n",
+ "\n",
+ "\n",
+ "\n",
+ "```"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/kurs/smittemodellering.ipynb b/_sources/docs/kurs/smittemodellering.ipynb
new file mode 100644
index 00000000..61b44131
--- /dev/null
+++ b/_sources/docs/kurs/smittemodellering.ipynb
@@ -0,0 +1,195 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Smittemodellering\n",
+ "\n",
+ "Hva tenker du når du hører ordet modell? En miniatyrdel av en liten by, kanskje? Eller kanskje du tenker på atommodeller? En modell er en forenklet representasjon av virkeligheten. Vi kan aldri representerere virkeligheten slik den er, så alle modeller vil ha visse forutsetninger og begrensninger. Her skal vi se på _matematiske modeller_, altså bruk av matematikk for å beskrive et eller annet fenom. Nærmere bestemt skal vi se på et veldig aktuelt tema i våre dager, nemlig modellering av smittespredning.\n",
+ "\n",
+ "En modelleringsprosess innebærer flere trinn. For det første må vi ha en observasjon eller et fenomen vi ønsker å studere. Ut fra visse egenskaper ved dette systemet lager vi en modell som skal beskrive systemet under visse betingelser. Denne modellen kan vi teste, for eksempel gjennom eksperimenter eller simuleringer. Da får vi data som vi kan bruke til å evaluere modellens gyldighet. Deretter kan vi eventuelt justere modellen og gjøre nye simuleringer og målinger.\n",
+ "\n",
+ "Modellering er altså en kontinuerlig prosess der modeller hele tiden evalueres og justeres opp mot virkeligheten. Programmering kan gjøre denne prosessen enklere fordi vi med noen tastetrykk kan endre modellen og observere utfallet av dette. For FHI har smittemodellering vært en svært viktig del av håndteringen av koronaviruspandemien, så la oss prøve oss som \"smittemodellerere\"!\n",
+ "\n",
+ "\n",
+ "### Modell 1\n",
+ "Vi begynner med en enkel modell for smittespredning der antall smittede øker med en prosentvis andel hver dag. Vi kan da beskrive utviklingingen i antall smittede indivier *I* (\"Inceptibles\") slik:\n",
+ "\n",
+ "$$I_{t+1} = I_t + aI_t$$\n",
+ "\n",
+ "Her betyr indeksen _t + 1_ betyr at det er antall smittede ved neste tidspunkt (her neste dag), mens indeksen _t_ betyr antall smittede på nåværende tidspunkt. Det er jo ganske logisk at antall smittede neste dag er avhengig av antall smittede i dag. I tillegg øker antall smittede med en vekstfaktor _a_. Vi kaller _a_ for en _parameter_. Disse parameterne er ofte bestemt av observasjoner og data, så vi kan ikke vite hva som er en god verdi for _a_ til å begynne med. \n",
+ "\n",
+ "- Forklar med egne ord hva modellen forteller. Drøft også i hvilke sammenhenger det kan være hensiktsmessig å bruke en slik modell. Er det en realistisk modell i noen sammenhenger?\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "\n",
+ "Modellen forteller at antall smittede individer ved neste tidssteg er lik antall smittede individer ved forrige tidssteg + en viss andel (a) av antall individer som sprer smitten videre.\n",
+ "\n",
+ "Modellen forutsetter at det ikke er noen immunitet innenfor smittemengden, altså at ingen smittede møter på personer som allerede er smittet. Det kan være et realistisk bilde i en stor populasjon i begynnelsen av et smitteforløp. Det er derfor usannsynlig at modellen beskriver utviklingen langt fram i tid. Modellen forutsetter også at ingen blir friske i løpet av den tiden vi ser på. Igjen peker dette på at modellen kun representerer et kort tidsrom.\n",
+ "```\n",
+ "\n",
+ "- Fyll inn det som mangler i programmet nedenfor for å simulere sykdomsutviklingen. Dersom du vil, kan du selvfølgelig viske ut alt og bygge programmet fra grunnen av. Varier med ulike verdier av _a_ og forklar betydningen av parameteren _a_ ut fra det du ser.\n",
+ "\n",
+ "\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from pylab import *\n",
+ "\n",
+ "N = 157759 # Populasjonsstørrelse\n",
+ "a = 0.2 # Kontaktrate per uke\n",
+ "tid_slutt = 48 # Antall uker vi ønsker å simulere\n",
+ "\n",
+ "# Startverdier\n",
+ "I = 3 # Antall smittede til å begynne med\n",
+ "\n",
+ "# Lister for å spare på verdiene\n",
+ "smittede = [I]\n",
+ "t = [0]\n",
+ "\n",
+ "for tid in range(tid_slutt):\n",
+ " I = I + a*I\n",
+ " # Legger inn verdier i listene\n",
+ " smittede.append(I)\n",
+ " t.append(tid)\n",
+ "\n",
+ "plot(t, smittede, label = \"Smittede\")\n",
+ "xlabel(\"Antall uker fra siste uke i september 2004\")\n",
+ "ylabel(\"Antall individer\")\n",
+ "legend() # Viser merkelapper\n",
+ "show()\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Modell 2\n",
+ "\n",
+ "La oss utvide modellen og innføre en ny kategori av individer som er mottakelige for smitte. Vi kaller dem _S_ (susceptibles).\n",
+ "\n",
+ "Vi kan anta at de smittede da utvikler seg slik:\n",
+ "\n",
+ "$$I_{n+1}=I_n+aI_nS_n$$\n",
+ "\n",
+ "De mottakelige kan da beskrives slik:\n",
+ "\n",
+ "$$S_{n+1}=S_n-aI_nS_n$$\n",
+ "\n",
+ "- Bekriv modellene og prøv å forklare alle leddene og faktorene.\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "\n",
+ "Modellen sier at antall mottakelige er lik antall mottakelige ved forrige tidssteg minus andelen som er smittet. Årsaken til at vi også ganger inn de mottakelige her, er at smittespredningen nå avhenger av både mottakelige og de som allerede er smittet. \n",
+ "````\n",
+ "\n",
+ "- Fyll inn det som mangler i programmet nedenfor for å simulere sykdomsutviklingen. Dersom du vil, kan du selvfølgelig viske ut alt og bygge programmet fra grunnen av. Prøv å variere antall smittede til å begynne med. Beskriv utviklingen til hverandre og diskuter hva som skjer. Du kan også prøve med andre modeller, hvis du vil. Legg merke til at vi lagrer endringen i I og S i en egen variabel for å bruke I og S ved samme tidspunkt.\n",
+ "\n",
+ "\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from pylab import *\n",
+ "\n",
+ "N = 157759 # Populasjonsstørrelse\n",
+ "a = 0.5/N # Kontaktrate\n",
+ "tid_slutt = 48 # Antall uker vi ønsker å simulere\n",
+ "\n",
+ "# Startverdier\n",
+ "I = 3 # Antall smittede til å begynne med\n",
+ "S = N - I # Antall usmittede til å begynne med\n",
+ "\n",
+ "# Lister for å spare på verdiene\n",
+ "mulige = [S]\n",
+ "smittede = [I]\n",
+ "t = [0]\n",
+ "\n",
+ "for i in range(tid_slutt):\n",
+ " endring = a*S*I\n",
+ " I = I + endring\n",
+ " S = S - endring\n",
+ " # Legger inn verdier i listene\n",
+ " smittede.append(I)\n",
+ " mulige.append(S)\n",
+ " t.append(i)\n",
+ " \n",
+ "plot(t, smittede, label = \"Smittede\")\n",
+ "plot(t, mulige, label = \"Mulige\")\n",
+ "xlabel(\"Antall uker fra siste uke i september 2004\")\n",
+ "ylabel(\"Antall individer\")\n",
+ "legend() # Viser merkelapper\n",
+ "show()\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Modell 3\n",
+ "La oss nå utforske en modell som også tar hensyn til at det går an å bli frisk fra sykdommen. Da innfører vi en kategori til, nemlig de friske og tidligere smittede. Disse har da immunitet og kan ikke bli smittet igjen. Vi kaller dem R (recovered/removed), og de kan beskrives slik:\n",
+ "\n",
+ "$$ R_{n+1}=R_n+bI_n$$\n",
+ "\n",
+ "Da må de smittede utvikle seg slik:\n",
+ "\n",
+ "$$I_{n+1}=I_n+aS_nI_n-bI_n$$\n",
+ "\n",
+ "Antall usmittede, men mottakelige individer, S, må fortsatt følge denne modellen:\n",
+ "\n",
+ "$$S_{n+1}=S_n-aI_nS_n$$\n",
+ "\n",
+ "Dette kaller vi SIR-modellen for smitteutvikling.\n",
+ "\n",
+ "\n",
+ "- Beskriv hva de ulike faktorene og leddene betyr. Hva tror dere den nye parameteren _b_ beskriver?\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "\n",
+ "Parameteren _b_ beskriver bedringsraten, altså hvor stor andel av de smittede som blir friske, beskrevet av leddet $bI_n$.\n",
+ "````\n",
+ "\n",
+ "- Nedenfor er det et program som simulerer smitte ved hjelp av SIR-modellen. Kjør programmet og forklar for hverandre hva det gjør, og hva resultatene er.\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "- Nå skal vi validere modellen vår. Vi utvider programmet og sammenlikner modellen med reelle data som viser antall smittede hver uke. Les filen «influensa.txt» og plott antall smittede (_I_) i det samme koordinatsystemet som den modellerte smittespredningen. Bruk gjerne programmet fra forrige aktivitet.\n",
+ "\n",
+ "- Sammenlikne modellen og de reelle dataene, og tilpass gjerne koeffisientene _a_ og _b_ slik at modellen samsvarer bedre med dataene.\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/oppgaver/differensiallikninger_oppgaver.ipynb b/_sources/docs/oppgaver/differensiallikninger_oppgaver.ipynb
new file mode 100644
index 00000000..0c46305f
--- /dev/null
+++ b/_sources/docs/oppgaver/differensiallikninger_oppgaver.ipynb
@@ -0,0 +1,186 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "d70b440e",
+ "metadata": {},
+ "source": [
+ "# Differensiallikninger (oppgaver)\n",
+ "\n",
+ "## Differensiallikninger\n",
+ "Vi har sett på modeller som beskriver endringer ved bestemte tidssteg, for eksempel i smittemodellen vår:\n",
+ "\n",
+ "$$I_{n+1}=I_n+aI_nS_n$$\n",
+ "\n",
+ "som er det samme som å skrive:\n",
+ "\n",
+ "$$\\Delta I = aI_nS_n$$\n",
+ "\n",
+ "Dette er eksempler på _differenslikninger_, der vi finner en tallfølge, som for eksempel beskriver antall smittede i en populasjon. Men hva hvis vi gjør tida mellom endringene så liten som mulig? Da får vi ikke en differenslikning, men en _differensiallikning_.\n",
+ "\n",
+ "En differensiallikning er en likning som inneholder den deriverte (altså den momentane endringen) av en funksjon, for eksempel:\n",
+ "\n",
+ "$$y' = 1$$\n",
+ "$$y' = y$$\n",
+ "$$y' - 2x = -1$$\n",
+ "\n",
+ "Vi har dermed uttrykk for en momentan endring. Likningene ovenfor er løsbare, men de fleste differensiallikninger er ikke det. Derfor er numeriske metoder for løsing av difflikninger svært viktige å kunne.\n",
+ "\n",
+ "## Eksempler\n",
+ "Det viser seg at vi faktisk ofte kjenner til _endringen_ (f'(x)) i et system framfor _tilstanden_ (f(x)). Eksempler på dette er:\n",
+ "\n",
+ "- Newtons 2. lov: $\\Sigma F = ma \\Leftrightarrow v' = \\frac{\\Sigma F}{m}$. \n",
+ "- Populasjonsdynamikk: $B'(t) = k\\cdot B(t)$ og $B'(t) = a\\cdot B(t)\\left(1-\\frac{B(t)}{b} \\right)$.\n",
+ "- Smittemodeller: $I'(t) = aI(t)S(t)$.\n",
+ "\n",
+ "```{admonition} Underveisoppgave: Differensiallikninger\n",
+ ":class: tip\n",
+ "Forklar hva en differensiallikning er og hvorfor Newtons 2. lov og modeller for populasjonsvekst og smitte kan formuleres som differensiallikninger.\n",
+ "```\n",
+ "\n",
+ "## Eulers metode for å løse differensiallikninger\n",
+ "\n",
+ "Eulers metode er en enkel metode som brukes til å løse differensiallikninger. Det vil si at vi finner en funksjon dersom vi har gitt et uttrykk for den deriverte av funksjonen.\n",
+ "\n",
+ "Siden vi går fra f'(x) til f(x), *integrerer* (antideriverer) vi differensiallikningen. Eulers metode går ut på å finne en verdi for $f(x + \\Delta x)$ gitt en startverdi $f(x_0)$ og et uttrykk for $f'(x)$:\n",
+ "\n",
+ "$$f(x+\\Delta x) \\approx f(x) + f'(x)\\cdot \\Delta x$$\n",
+ "\n",
+ "Dette er en iterativ algoritme. Vi starter derfor med $f(x_0)$ og finner de påfølgende funksjonsverdiene slik:\n",
+ "\n",
+ "$$f(x_1) \\approx f(x_0) + f'(x_0)\\cdot \\Delta x$$\n",
+ "$$f(x_2) \\approx f(x_1) + f'(x_1)\\cdot \\Delta x$$\n",
+ "$$f(x_3) \\approx f(x_2) + f'(x_2)\\cdot \\Delta x$$\n",
+ "$$...$$\n",
+ "\n",
+ "```{admonition} Underveisoppgave: Eulers metode\n",
+ ":class: tip\n",
+ "Utled Eulers metode fra den numeriske tilnærmingen til den deriverte (Newtons kvotient/framoverdifferansen).\n",
+ "```\n",
+ "\n",
+ "## Et program som løser differensiallikninger\n",
+ "\n",
+ "Siden vi skal løse differensiallikningene på en datamaskin, må vi jobbe med *funksjonsverdier*, ikke funksjonsuttrykk. Vi setter derfor opp noen startbetingelser som definerer intervallet vi skal integrere over."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "fa728a65",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x_start = 0 # Startverdi\n",
+ "x_slutt = 5 # Sluttverdi\n",
+ "dx = 1E-5 # Steglengde mellom x-verdiene\n",
+ "N = int((x_slutt-x_start)/dx) # Antall intervaller\n",
+ "y0 = 1 # Initialbetingelse"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b068e5b1",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave: Startverdier\n",
+ ":class: tip\n",
+ "Forklar hva de ulike størrelsene i programmet ovenfor betyr. Skriv ned de størrelsene du ikke forstår.\n",
+ "```\n",
+ "\n",
+ "Så trenger vi å definere funksjonen. La oss ta en enkel funksjon: $f'(x) = 1$. Definer funksjonen i vinduet nedenfor som en Python-funksjon. For å sjekke at du har gjort riktig, skriv ut et funksjonskall. Dette bør skrive ut 1 uansett argumentverdier i funksjonen. Teknisk sett trenger ikke funksjonen noen parametere, men vi pleier å definere både _x_ og _y_ som parametre i en funksjon som representerer en difflikning.\n",
+ "\n",
+ "\n",
+ "\n",
+ "Nå kan vi legge til noen tomme arrayer som vi skal fylle med verdier:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "902233b1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pylab import *\n",
+ "\n",
+ "x = zeros(N+1)\n",
+ "y = zeros(N+1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "3c64cbc8",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave: Arrayer\n",
+ ":class: tip\n",
+ "Legg inn arrayene i programmet. Prøv å forklare hvorfor vi lager N+1 verdier, og ikke N, ved å tegne opp et intervall fra 0 til 5 med steglengde (dx) 1. Hvor mange intervaller har vi, og hvor mange verdier har vi?\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "Nå kan vi løse differensiallikningen med Eulers metode. En pseudokode for dette kan se slik ut:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "cc6332f6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "gjenta N ganger:\n",
+ " y_{n+1} = y_n + yderivert(y_n, x_n)*dx\n",
+ " x_{n+1} = x_n + dx"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4de4904f",
+ "metadata": {},
+ "source": [
+ "Bruk Eulers metode til å løse differensiallikningen og plot _y_ som funksjon av _x_:\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6b5ef1bb",
+ "metadata": {},
+ "source": [
+ "### Oppgaver\n",
+ "Bruk funksjonen $y' = y + x$ når du løser oppgavene nedenfor.\n",
+ "\n",
+ "a) Lag programmet ovenfor uten funksjoner. Hvor må differensiallikningen være i programmet nå?\n",
+ "\n",
+ "b) Lag programmet ovenfor med lister istedenfor arrayer. Hva syns du er enklest?\n",
+ "\n",
+ "c) Plott løsninger for fem ulike initialbetingelser i samme plott. Hva sier dette oss om løsningen til en differensiallikning?\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/oppgaver/likninger_oppgaver.ipynb b/_sources/docs/oppgaver/likninger_oppgaver.ipynb
new file mode 100644
index 00000000..c8d550c6
--- /dev/null
+++ b/_sources/docs/oppgaver/likninger_oppgaver.ipynb
@@ -0,0 +1,141 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgave: Numerisk løsing av likninger\n",
+ "Her skal vi se på en oppgave der vi jobber med ulike strategier for å løse likninger.\n",
+ "\n",
+ "````{admonition} Oppgave\n",
+ ":class: tip\n",
+ "I denne oppgava skal vi løse likningen $e^{-x} + x + 5 - \\log(0.006x + 1) - x^{0.3} - 10 = 0$. Denne likningen er ikke analytisk løsbar, så vi må bruke numeriske metoder for å løse den.\n",
+ "\n",
+ "a. Se på programmet nedenfor uten å kjøre det. Hva gjør programmet? Du kan klikke på ruta nedenfor for å få et hint til hva som skjer. Her brukes det en enklere funksjon for å illustrere poenget.\n",
+ "\n",
+ "```{admonition} Hint: Figur\n",
+ ":class: tip, dropdown\n",
+ "\n",
+ "```\n",
+ "\n",
+ "b. Test programmet og se hva det gjør. Tegn grafen i Python og verifiser at programmet gjør det det skal.\n",
+ "\n",
+ "\n",
+ "\n",
+ "c. Prøv å løse likningen $x^2 - 4 = 0$ med metoden ovenfor. Fant du alle løsningene? Plott gjerne grafen til funksjonen $f(x) = x^2 - 4$ og sammenlikn med nullpunktene du ser. Diskuter det du finner ut med en annen som har gjort oppgaven.\n",
+ "\n",
+ "d. Modifiser programmet slik at det istedenfor å bruke funksjoner, benytter funksjonsverdier som er forhåndslagret i en array eller liste. I løkka bør du da sjekke om en verdi i arrayen har motsatt fortegn med den neste verdien i arrayen. Du kan lage arrayene og starten av løkka slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Test om programmet gir samme nullpunkt som før. Prøv også nå å løse likningen $x^2 - 4 = 0$ ved å lage et _x_-intervall fra -10 til 10, og sammenlikn med resultatet fra den forrige metoden. Hva er forskjellen, og hvorfor fikk du denne forskjellen?\n",
+ "\n",
+ "e. En annen metode for å løse likninger kalles _halveringsmetoden_. Bruk det første programmet du lagde som inspirasjon til å lage et program som bruker denne metoden. Halveringsmetoden går ut på å velge et intervall $[a, b]$ der $f(a)$ og $f(b)$ har motsatte fortegn. Vi kan bruke grafen til å vurdere hvilket intervall som egner seg dersom vi plotter den først. Deretter skal vi finne et nytt intervall $[a, b]$ som er mindre, men slik at $f(a)$ og $f(b)$ fortsatt har motsatte fortegn. Det kan vi gjøre ved å finne midten mellom _a_ og _b_. Da får vi et punkt $m = (a + b)/2$, og vi kan finne $f(m)$. \n",
+ "\n",
+ "Vi undersøker så om $f(m_1) = 0$. Hvis ikke, evaluerer vi fortegnene til $f(a)$, $f(b)$ og $f(m)$. Dersom $f(a)$ og $f(m)$ har samme fortegn, setter vi det nye intervallet til $[m, b]$ fordi da må $f(m)$ og $f(b)$ ha motsatte fortegn. Motsatt setter vi intervallet til $[a, m]$ dersom $f(b)$ og $f(m)$ har samme fortegn. Prosessen gjentas _n_ ganger til vi har at $f(m_n) \\approx 0$. Figuren nedenfor illustrerer metoden med to trinn\n",
+ "\n",
+ "\n",
+ "\n",
+ "Algoritmen kan mer generelt beskrives slik:\n",
+ "\n",
+ "```{admonition} Halveringsmetoden\n",
+ "La _f_ være en kontinuerlig funksjon med motsatte fortegn på funksjonsverdiene $f(a)$ og $f(b)$ i intervallet $[a,b]$. Da kan nullpunktene finnes slik:\n",
+ "\n",
+ "1. Finn midtpunktet $c_k$ mellom punktene _a_ og _b_.\n",
+ "2. Undersøk hvilke av $f(a)$ og $f(b)$ som har motsatt fortegn til $f(c_k)$, og sett det nye intervallet til $[a,c_k]$ eller $[c_k, b]$, der start- og sluttverdien i intervallet skal ha motsatt fortegn.\n",
+ "3. Gjenta prosessen _n_ ganger til $f(c_k) \\approx 0$.\n",
+ "```\n",
+ "\n",
+ "Programmet nedenfor gir deg litt starthjelp.\n",
+ "\n",
+ "\n",
+ "\n",
+ "Du kan også klikke på hintet nedenfor for å se en pseudokode som beskriver algoritmen:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "Definer funksjon f(x)\n",
+ "a = -10\n",
+ "b = 10\n",
+ "\n",
+ "m = (a+b)/2\n",
+ "\n",
+ "Gjenta så lenge f(m) ikke er lik null:\n",
+ " hvis f(a)*f(m) er mindre enn 0:\n",
+ " b = m\n",
+ " hvis f(b)*f(m) er mindre enn 0:\n",
+ " a = m\n",
+ " m = (a+b)/2\n",
+ "\n",
+ "Skriv ut m\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Feilhåndtering\n",
+ "\n",
+ "Algoritmer kan ha svakheter, og de kan være implementert på en slik måte at feil lett kan oppstå. For å unngå flest mulig feil, bør programmet vårt ta hensyn til ulike fallgruver. Noen gode prinsipper for robust kode er:\n",
+ "\n",
+ "- Pakk metoden inn i en funksjon. Da kan koden lettere gjenbrukes og testes.\n",
+ "- Ha med en oversiktlig dokumentasjon som forklarer hva funksjonen gjør, gjerne i form av en _docstring_ (se eksempelet nedenfor for forklaring).\n",
+ "- Dersom du kjenner til ulike svakheter i algoritmen, prøv å teste for dette, for eksempel med if-else-tester.\n",
+ "\n",
+ "````{admonition} Oppgave\n",
+ ":class: tip\n",
+ "\n",
+ "1. Lag en funksjon _halveringsmetoden_ som returnerer nullpunktet til en funksjon gitt relevante parametre.\n",
+ "2. Legg inn en docstring i funksjonen. En docstring kan ha følgende form:\n",
+ "\n",
+ " ```{code-block} Python\n",
+ " def f(x):\n",
+ " \"\"\"\n",
+ " Parameters\n",
+ " ----------\n",
+ " x: float (datatype)\n",
+ " x-verdi (beskrivelse)\n",
+ "\n",
+ " Returns\n",
+ " -------\n",
+ " y: float\n",
+ " y-verdi\n",
+ " \"\"\"\n",
+ " ```\n",
+ "3. Legg inn en ny parameter _maks\\_iter_ som står for maks antall ganger løkka går. Returner også antall ganger løkka gikk, i tillegg til nullpunktet.\n",
+ "4. Funksjonen skal også sjekke om _a_ og _b_ har forskjellige fortegn. Hvis ikke, skriv ut en feilmelding.\n",
+ "5. Gjør eventuelt andre endringer som gjør koden enda bedre!\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/oppgaver/maskinlaring_titanic_oppgaver.ipynb b/_sources/docs/oppgaver/maskinlaring_titanic_oppgaver.ipynb
new file mode 100644
index 00000000..05afeef7
--- /dev/null
+++ b/_sources/docs/oppgaver/maskinlaring_titanic_oppgaver.ipynb
@@ -0,0 +1,437 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Maskinlæring med Titanic (oppgave)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 210,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Les dataene\n",
+ "# ..."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Utforsking og opprydding av datasettet\n",
+ "La oss undersøke dataene og rydde litt, dersom vi trenger det."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Skriv ut de fem første linjene\n",
+ "# ..."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser at det ikke er alle kategoriene vi trenger. Siden vi er interessert i hvem som overlevde, og hvorfor, kan det også være lurt å sjekke hvor mange dette var. Du kan beregne sum og antall av et dataframe-element ved å bruke metodene .sum() og .count() på elementet (f.eks. titanic['age'].sum())."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Sjekk hvor mange som overlevde\n",
+ "# ..."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Slett kategorier du mener er irrelevante for overlevelse med datarammenavn.pop(\"navn på kolonne\")\n",
+ "# ..."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan også undersøke manglende verdier og eventuelt sette inn representative verdier der det mangler."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 214,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "survived 0\n",
+ "pclass 0\n",
+ "sex 0\n",
+ "age 177\n",
+ "sibsp 0\n",
+ "parch 0\n",
+ "class 0\n",
+ "alive 0\n",
+ "alone 0\n",
+ "dtype: int64\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Printer ut antall manglende verdier i kolonnene\n",
+ "print(titanic.isna().sum())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 215,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Fyller inn manglende alder med gjennomsnittet\n",
+ "gjennomsnitt = titanic['age'].mean()\n",
+ "titanic['age'].fillna(gjennomsnitt, inplace = True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "- I hvilke sammenhenger kan det være legitimt å gjøre som ovenfor? Var det legitimt i denne sammenhengen?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualiseringer\n",
+ "La oss først se hvilken effekt klasse og kjønn hadde på overlevelsessjansene:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 216,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Passasjerklasse\n",
+ "sns.countplot(x='pclass', hue='survived', data=titanic, palette='ocean')\n",
+ "plt.title(\"Antall døde (0) og overlevende (1) av hver klasse\")\n",
+ "plt.xlabel(\"Klasse\")\n",
+ "plt.ylabel(\"Antall\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Lag et tilsvarende plott som viser hvilken effekt kjønn hadde på overlevelsessjansene."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser, ikke overraskende, at menn på 3. klasse hadde særdeles dårlige odds. Vi har alderen til passasjerene, men ikke alderskategorier. Lag alderskategorier for barn og voksen, og lag en ny kolonne kalt \"aldersklasse\"."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Sortere etter alder\n",
+ "aldersklasse = []\n",
+ "\n",
+ "for alder in titanic['age']:\n",
+ " ### fyll inn kode her.\n",
+ " \n",
+ "titanic['aldersklasse'] = aldersklasse\n",
+ "\n",
+ "# Plott effekten aldersklasse har på overlevelse"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Maskinlæring\n",
+ "Vi skal nå lage en modell som kan forutsi hvorvidt en person overlever på Titanic eller ikke, gitt data om personen. Vi velger ut hvilke data vi ønsker å bruke som kriterium for overlevelse, og spesifiserer kategorien \"survived\" som målkategorien vår:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 220,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split, cross_val_score\n",
+ "from sklearn import tree\n",
+ "from sklearn.metrics import accuracy_score, confusion_matrix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "kriterier = titanic[[# Legg inn kriterier (kolonnekategorier) for overlevelse her]]\n",
+ "kategorier = # legg inn kategori her"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I maskinlæring er det viktig at modellen vår klarer å forutsi data som kommer utenfra datasettet vi trener modellen med. Derfor deler vi ofte opp dataene i et treningssett og et testsett. Treningssettet bruker vi til å trene modellen, testsettet til å teste og evaluere modellen i etterkant. Vi blander ikke disse dataene. Vi kan generere slike data med funksjonen _train\\_test\\_split()_. Her bruker vi 80 \\% av dataene til trening og 20 \\% til testing. Du bør bruke minst 70 \\% av dataene dine til trening."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 222,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Del opp datasettet ditt i trenings- og test-kriterier og trenings- og testkategorier."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "- Forklar hva funksjonen train\\_test\\_split gjør ut fra programmet ovenfor.\n",
+ "- Hva er poenget med separate treningskriterier og testkriterier?\n",
+ "\n",
+ "Nå kan vi lage modellen vår. Vi bruker en algoritme som heter _Decision Tree Classifier_. Det er basert på sammensatte og forgreinede valgtrær, der alle kombinasjoner av kriterier blir utforsket. Betingede sannsynligheter for ulike hendelser blir beregnet, og de mest sannsynlige utfallene blir framhevet basert på kombinasjonen av kriteriene. Først trener vi modellen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 225,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier()"
+ ]
+ },
+ "execution_count": 225,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Opprett og tren modellen her"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det var det - da har vi en modell! Den ligger nå i et objekt som vi har kalt _modell_. Vi kan få innsyn i hvordan modellen ser ut, men det kan fort bli litt uoversiktlig og teknisk. La oss først nøye oss med å sjekke hvordan modellen takler testsettet vårt.\n",
+ "\n",
+ "- Forklar med ord hva du tror modellen gjør når den \"trener\".\n",
+ "\n",
+ "## Test og validering av modellen\n",
+ "\n",
+ "La oss nå bruke modellen for å forutsi hvem som overlever og hvem som ikke gjør det:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 226,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7597765363128491"
+ ]
+ },
+ "execution_count": 226,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Regn ut accuracy score for å validere modellen her"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Hva sier dette resultatet deg?\n",
+ "\n",
+ "For å få bedre oversikt over hva modellen forutsier riktig og hva den feiler på, kan vi konstruere en såkalt \"Confusion Matrix\" (forvirringsmatrise/feilmatrise):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 227,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "cm = confusion_matrix(modellkategorier_forutsett, testkategorier)\n",
+ "\n",
+ "import seaborn as sns\n",
+ "sns.heatmap(cm, annot=True, cmap='viridis')\n",
+ "plt.title(\"Forvirringsmatrise\")\n",
+ "plt.xlabel(\"Predikerte verdier\")\n",
+ "plt.ylabel(\"Sanne verdier\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "- Hva forteller diagrammet ovenfor oss?\n",
+ "\n",
+ "Vi kan benytte disse dataene til å beregne hvor stor prosentandel av overlevende og døde som modellen klarte å forutsi korrekt."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Beregn andelen korrekt forventet død og korrekt forventet overlevelse."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "- Sammenlikn størrelsen på disse andelene. Hva er eventuelt årsaken til at det er en forskjell på dem?\n",
+ "\n",
+ "La oss helt til sist visualisere modellen vår. Vi velger maks dybde på modellen til 2 for at vi ikke skal få alt for mange forgreininger."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 229,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABGoAAAIuCAYAAADnru5GAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAD28klEQVR4nOzddXzV1R/H8ddZJ9sYOboZ3d0pHQoCoqLYndiBigrqz0QJC5WUkO7u7u5uGLCu8/vj4tW5AQMGd8D7+XjwgHu+53vu57ufv+3sfc/3fI21FhERERERERERcT03VxcgIiIiIiIiIiIOCmpERERERERERDIJBTUiIiIiIiIiIpmEghoRERERERERkUxCQY2IiIiIiIiISCahoEZEREREREREJJNQUCMiIiIiIiIikkkoqBERERERERERySQU1IiIiIiIiIiIZBIKakREREREREREMgkFNSIiIiIiIiIimYSCGhERERERERGRTEJBjYiIiIiIiIhIJqGgRkREREREREQkk1BQIyIiIiIiIiKSSSioERERERERERHJJDxcXYCIiIjceL4+3sdi4+JzuroOuT4+3l7HY2Ljcrm6DhEREblxjLXW1TWIiIjIDWaMsVGrx7u6DLlO/pXbYa01rq5DREREbhzd+iQiIiIiIiIikkkoqBERERERERERySQU1IiIiIiIiIiIZBIKakREREREREREMgkFNSIiIiIiIiIimYSCGhERERERERGRTEJBjYiIiIiIiIhIJuHh6gJEREREbgU79h3inW9+Y9GaTSQkJlExvAhvPd6VelXKpuv8PgOH8/GgEWke6//20/To0CwjyxUREZFblIIaERERkSvYc/AojR9+HXd3N154oCNBAX788tcM2jz1HhP6v0/9quXSPVbfl3sSGpwlRVv1siUyumQRERG5RSmoERERkVvalt0HKJY/DE/PGzeteb//70RciGLRH19QvkRhALq1bkiVTs/ycr9BrPrzu3SP1aZBdQqE5bxRpYqIiMgtTnvUiIiICLFx8fQZOJwKHZ8kW61O5GnQjaqdn+Odb4ak6jtmxiKaPPw6OeveS7ZanWj0UC+mLljpPH4+MpoybR+nWIuHOR1xPsW5L3wyAP/K7Zg0b/l11Xvs1Fm+HTqeWt1epGrnZ4mKjb2u8S4nKiaWSfNXULdyGWdIAxDg50uP9k3Zuucg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EREREREREbESKtSIiIiIiIiIiFgJFWpERERERERERKyECjUiIiIiIiIiIlZChRoRERERERERESuhQo2IiIiIiIiIiJVQoUZERERERERExEqoUCMiIiIiIiIiYiVUqBERERERERERsRIq1IiIiIiIiIiIWAkVakRERERERERErIQKNSIiIiIiIiIiVkKFGhERERERERERK6FCjYiIiIiIiIiIlVChRkRERERERETESqhQIyIiIiIiIiJiJVSoERERERERERGxEirUiIiIiIiIiIhYidu+UJOSksLnn3/O6tWrC3XcQ4cO8e677xIREVGo44plab5IfmmuSEFovkh+aa5IQWi+SH5prkhBaL4Uvdu+ULN+/XrS0tJo2rRpoY5btWpV/P39WbZsWaGOK5al+SL5pbkiBaH5IvmluSIFofki+aW5IgWh+VL0butCTUpKChs2bKB+/fo4OjoW+vjNmjVj//79hIeHF/rYUvw0XyS/NFekIDRfJL80V6QgNF8kvzRXpCA0X4rHbV2o2bt3L8nJydSpU6dIxq9WrRr29vZs27atSMaX4qX5IvmluSIFofki+aW5IgWh+SL5pbkiBaH5Ujxu60LN/v37cXd3JyAgoEjGd3R0pFy5cuzbt69Ixpfipfki+aW5IgWh+SL5pbkiBaH5IvmluSIFoflSPG7bQk1GRganT5+mbNmyRbqf4OBgYmJitCBSCaf5IvmluSIFofki+aW5IgWh+SL5pbkiBaH5Unxu20JNdHQ0KSkplC5dukj3c3X8y5cvF+l+pGhpvkh+aa5IQWi+SH5prkhBaL5IfmmuSEFovhSf27ZQEx8fD4Czs3OR7sfFxcVsf1Iyab5IfmmuSEFovkh+aa5IQWi+SH5prkhBaL4Un9u2UGMYRrHsx2QyFct+pGhpvkh+aa5IQWi+SH5prkhBaL5IfmmuSEFovhSf27ZQc7VKl5iYWKT7uTq+q6trke5Hipbmi+SX5ooUhOaL5JfmihSE5ovkl+aKFITmS/G5bQs1Hh4eODg4EBkZWaT7uTq+n59fke5Hipbmi+SX5ooUhOaL5JfmihSE5ovkl+aKFITmS/G5bQs1NjY2BAcHc+7cuRzfv3z5crYJmJSUxOXLl7PdKxcVFcXly5dJT0/PNs7Zs2dxd3fHy8ur8IKXYqf5IvmluSIFofki+aW5IgWh+SL5pbkiBaH5Unxu20INQM2aNYmNjeXixYvZ3hs7diwTJkwwaztw4ABjx45l8+bNZu2zZs1i7NixxMTEmLUnJydz+vRpatasWfjBS7HTfJH80lyRgtB8kfzSXJGC0HyR/NJckYLQfCket3WhplatWjg6OrJ79+4iGf/gwYOkpqbSsGHDIhlfipfmi+SX5ooUhOaL5JfmihSE5ovkl+aKFITmS/Gws3QAluTg4EDz5s3ZtGkTbdu2xdHRMeu9UaNGZetfv3596tevn6196NChOY6/adMmqlevjq+vb6HFLJaj+SL5pbkiBaH5IvmluSIFofki+aW5IgWh+VI8busragBatGiBnZ0dmzZtKtRxDx06xMWLF+nUqVOhjiuWpfki+aW5IgWh+SL5pbkiBaH5IvmluSIFoflS9IyS9IxywzBMOVXpblejRo3CZDIVz8PsSyDNl2s0V/KmuWJO8yVvmi/XaK7kTXPFnOZL3jRfrtFcyZvmijnNl7xpvlxTkubKbX9FjYiIiIiIiIiItVChRkRERERERETESqhQIyIiIiIiIiJiJVSoERERERERERGxEirUiIiIiIiIiIhYCRVqRERERERERESshAo1IiIiIiIiIiJWQoUaEREREREREREroUKNiIiIiIiIiIiVUKFGRERERERERMRKqFAjIiIiIiIiImIlVKgREREREREREbESKtSIiIiIiIiIiFgJFWpERERERERERKyECjUiIiIiIiIiIlZChRoRERERERERESuhQo2IiIiIiIiIiJVQoUZERERERERExEqoUCMiIiIiIiIiYiVUqBERERERERERsRIq1IiIiIiIiIiIWAkVakRERERERERErIQKNSIiIiIiIiIiVkKFGhERERERERERK6FCjYiIiIiIiIiIlVChRkRERERERETESqhQIyIiIiIiIiJiJVSoERERERERERGxEirUiIiIiIiIiIhYCcNkMlk6hnyzt7e/mJaW5m/pOKyFnZ3dpdTU1ABLx2GtNF+u0VzJm+aKOc2XvGm+XKO5kjfNFXOaL3nTfLlGcyVvmivmNF/ypvlyTUmaKyWqUCMiIiIiIiIicivTrU8iIiIiIiIiIlZChRoRERERERERESuhQo2IiIiIiIiIiJVQoUZERERERERExEqoUCMiIiIiIiIiYiVUqBERERERERERsRIq1IiIiIiIiIiIWAkVakRERERERERErIQKNSIiIiIiIiIiVkKFGhERERERERERK6FCjYiIiIiIiIiIlVChRkRERERERETESqhQIyIiIiIiIiJiJVSoERERERERERGxEirUiIiIiIiIiIhYCRVqRERERERERESshAo1IiIiIiIiIiJWQoUaEREREREREREroUKNiIiIiIiIiIiVUKFGRERERERERMRKqFAjIiIiIiIiImIlVKgREREREREREbESKtSIiIiIiIiIiFgJFWpERERERERERKyECjUiIiIiIiIiIlZChRoRERERERERESuhQo2IiIiIiIiIiJVQoUZERERERERExEqoUCMiIiIiIiIiYiVUqBERERERERERsRIq1IiIiIiIiIiIWAkVakRERERERERErIQKNSIiIiIiIiIiVkKFGhERERERERERK6FCjYiIiIiIiIiIlVChRkRERERERETESvwfIiRjuduLs6QAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(20,10))\n",
+ "titanic.pop('survived')\n",
+ "tree.plot_tree(modell, max_depth=2, feature_names=titanic.columns, class_names=['Døde', 'Overlevde'], filled=True, label=None,) \n",
+ "None"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "- Bruk visualiseringen av modellen ovenfor til å forklare hvordan modellen vår fungerer."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Lagre og åpne modellen vår\n",
+ "Vi kan også lagre modellen vår, slik at vi kan bruke den seinere:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "filnavn = \"titanicmodell.sav\"\n",
+ "joblib.dump(modell, filnavn)\n",
+ "\n",
+ "modell = joblib.load(filnavn)"
+ ]
+ }
+ ],
+ "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": 4
+}
diff --git a/_sources/docs/oppgaver/modelleringsprosjekt1.ipynb b/_sources/docs/oppgaver/modelleringsprosjekt1.ipynb
new file mode 100644
index 00000000..4862ad90
--- /dev/null
+++ b/_sources/docs/oppgaver/modelleringsprosjekt1.ipynb
@@ -0,0 +1,195 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Modelleringsoppgave I\n",
+ "## Smittespredning\n",
+ "\n",
+ "Vi utforsker her en modell for smittesprendning av sykdommer. Vi kan tenke oss at antall smittede indivier *I* (\"Inceptibles\") utvikler seg slik:\n",
+ "\n",
+ "$$I_{t+1} = I_t + aI_t$$\n",
+ "\n",
+ "Bildet nedenfor viser spike-proteinet som ligger på overflaten til coronaviruset, og som gir viruset dets karakteristiske form:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "scrolled": true,
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/3dmoljs_load.v0": "
\n
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: \n jupyter labextension install jupyterlab_3dmol
\n
\n",
+ "text/html": [
+ "
\n",
+ "
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: \n",
+ " jupyter labextension install jupyterlab_3dmol
\n",
+ "
\n",
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import py3Dmol\n",
+ "\n",
+ "spike_prot = py3Dmol.view(query='pdb:6B7N')\n",
+ "spike_prot.setStyle({'cartoon':{'color':'spectrum'}})\n",
+ "spike_prot"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Oppgave 1\n",
+ "\n",
+ "- Forklar med ord hva modellen sier. Hva betyr de ulike symbolene i likningen?\n",
+ "- I hvilke sammenhenger kan det være hensiktsmessig å bruke en slik modell? Hvilke begrensninger har modellen?\n",
+ "- Lag et program som simulerer smitteutviklingen over 48 uker i en populasjon med 157759 individer og en kontaktrate på 0.2 per uke. Hvis du trenger hjelp, kan du trykke på hintet nedenfor.\n",
+ "\n",
+ "````{admonition} Hint 1\n",
+ ":class: dropdown\n",
+ "En pseudokode for programmet kan være:\n",
+ "\n",
+ "```{code-block} text\n",
+ "# Sett opp startverdier\n",
+ "populasjonsstørrelse, kontaktrate og slutt-tid\n",
+ "antall smittede til å begynne med\n",
+ "\n",
+ "# Lag lister for å spare på verdiene\n",
+ "smittede = []\n",
+ "tid []\n",
+ "\n",
+ "gjenta til tid er lik tid_slutt:\n",
+ " # Beregn antall smittede vha. modellen\n",
+ " # Legg verdiene i lister\n",
+ " \n",
+ "plott antall smittede mot t\n",
+ "```\n",
+ "````\n",
+ "- Beskriv utviklingen. Varier systematisk *a* og antall smittede til å begynne med. Kommenter hva som skjer.\n",
+ "- Hvorfor er det viktig at kontaktraten har en *enhet* (her: uker)?\n",
+ "\n",
+ "### Oppgave 2\n",
+ "Vi utvider modellen ved å innføre en kategori for de som er *mottakelige*, *S* (\"susceptibles\"). Det vil si at de som allerede er smittet, ikke kan bli smittet igjen. Vi modifiserer da modellen for de smittede, slik at den også tar hensyn til den nye kategorien:\n",
+ "\n",
+ "$$I_{t+1} = I_t + aI_tS_t$$\n",
+ "\n",
+ "- Forklar hva som er endret i modellen. Hvorfor kan vi gjøre dette?\n",
+ "- Lag en modell for *S* (mottakelige) basert på modellen for *I*. Hint: Når en person er smittet, hva skjer med antall mottakelige?\n",
+ "- Utvid programmet ditt til å beregne og plotte antall mottakelige og smittede i samme koordinatsystem. Bruk merkelapper (labels og legend) slik at vi ser hvilken kurve som beskriver hva. Beskriv grafen med ord.\n",
+ "- Varier systematisk *a* og antall smittede til å begynne med. Kommenter hva som skjer.\n",
+ "- I hvilke sammenhenger kan det være hensiktsmessig å bruke en slik modell? Hvilke begrensninger har modellen?\n",
+ "\n",
+ "### Oppgave 3\n",
+ "Vi legger nå til muligheten for å bli frisk (hurra!). Da trenger vi også å innføre en *bedringsrate*, *b*. Et uttrykk for antall smittede kan nå være:\n",
+ "\n",
+ "$$I_{t+1} = I_t + aI_tS_t - bI_t$$\n",
+ "\n",
+ "Da får vi også følgende modell for antall friskmeldte _R_:\n",
+ "\n",
+ "$$R_{t+1} = R_t + bI_t$$\n",
+ "\n",
+ "- Forklar alle leddene i modellen for smittede og friskmeldte. Hva er betydningen til *b*? Hva kan være en ok størrelse for b i dette tilfellet? Diskuter.\n",
+ "- Lag en modell for antall friske med utgangspunkt i modellen ovenfor.\n",
+ "- Simuler og plott utviklingen. Hvis grafen ikke ser fornutftig ut, bør du eksperimentere med andre verdier av *b*.\n",
+ "- Beskriv grafen med ord.\n",
+ "- I hvilke sammenhenger kan det være hensiktsmessig å bruke en slik modell? Hvilke begrensninger har modellen?\n",
+ "\n",
+ "Det er vanskelig å fastsette parametrene *a* og *b*. Ofte fastsettes de ved å løpende sammenlikne modellene med reelle data fra observasjoner eller eksperimenter. I fila 'influensa.txt' (se \"Datafiler\" i sidemenyen) finner du en oversikt over antall smittede av influensaviruset H3N2 i en populasjon med 157 759 personer. \n",
+ "\n",
+ "- Les av fila og plott dataene sammen med modellen og prøv å variere *a* og *b* slik at modellen stemmer så godt som mulig med dataene.\n",
+ "- Diskuter om modellen kan si noe mer generelt om smittespredning enn akkurat dette tilfellet.\n",
+ "\n",
+ "### Oppgave 4\n",
+ "Vaksiner kan redusere antall mottakelige betraktelig.\n",
+ "- Hvordan kan du utvide modellen slik at den tar hensyn til vaksinering?\n",
+ "- Lag et program der du utforsker effekten av ulike grader av vaksinasjon (i %).\n",
+ "\n",
+ "### Rapport\n",
+ "Skriv en rapport i Jupyter notebook der du redegjør gradvis for de ulike modellene dine. Rapporten skal IKKE struktureres som svar på oppgavene ovenfor, men skal heller være en helhetlig og strukturert rapport der svar på spørsmålene ovenfor integreres på en naturlig måte. Rapporten skal følge denne malen:\n",
+ "\n",
+ "- Hensikt: Hva skal du gjøre i prosjektet. 1-2 linjer.\n",
+ "- Teori: Redegjør for de ulike modellene du bruker.\n",
+ "- Resultater: Her skal du ta med programmene du har lagd, visualiseringer og eventuelle tabeller. Det skal ikke være noen drøfting her!\n",
+ "- Drøfting: Her bør du drøfte forutsetninger for og begrensninger ved modellene. Hva beskriver modellene? Parameternes betydning i modellen må diskuteres her.\n",
+ "- Konklusjon: Gjør rede for hovedfunnet i de ulike modellene."
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/oppgaver/modelleringsprosjekt2.ipynb b/_sources/docs/oppgaver/modelleringsprosjekt2.ipynb
new file mode 100644
index 00000000..d7d1030a
--- /dev/null
+++ b/_sources/docs/oppgaver/modelleringsprosjekt2.ipynb
@@ -0,0 +1,301 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Modelleringsoppgave II"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I dette prosjektet skal dere modellere en naturvitenskapelig sammenheng ved å bruke differensiallikninger. Prosjektet skal presenteres på en ryddig måte med teori, programkode og drøfting i Jupyter Notebook. Oppgavene er ment som en veiledning til momenter dere bør ha med, men rapporten skal ikke struktureres etter oppgavene. Alle oppgaver og sentrale momenter skal være en integrert del av en helhetlig rapport. Dere vil bli vurdert etter følgende kriterier:\n",
+ "\n",
+ "- Koden virker og er lagt opp på en god måte.\n",
+ "- Koden er strukturert og oversiktlig.\n",
+ "- Det kommer fram at dere kan anvende grunnleggende programmering på en hensiktsmessig måte.\n",
+ "- Det kommer fram at dere forstår det realfaglige innholdet. \n",
+ "- Modellene som er brukt, er differensiallikninger.\n",
+ "- Rapporten er ryddig og oversiktlig. Rapporten skal ikke være inndelt etter _oppgaver_, men ha en klar struktur:\n",
+ " 1. Introduksjon: Hva dreier prosjektet seg om. Hva skal du vise/gjøre?\n",
+ " 2. Hvilke metoder bruker du? Utled metodene.\n",
+ " 3. Beskrivelse, resultater og drøfting: Gjør rede for framgangsmåte og programmer. Drøft de ulike modellene: Begrensninger, forutsetninger, antakelser, konsekvenser. Hva innebærer en endring av de ulike parametrene?\n",
+ " 5. Konklusjon: Hva har du gjort, og hvordan? Kort oppsummering.\n",
+ "- Alle figurer og grafer er oversiktlige med figurtekst, aksetitler o.l.\n",
+ "- Alle resultater er drøfta og redegjort for.\n",
+ "\n",
+ "## Oppgaver\n",
+ "Velg én av oppgavene nedenfor, eller foreslå en problemstilling for læreren. Problemstillingen må bli godkjent før dere går i gang med prosjektet.\n",
+ "\n",
+ "### Oppgave 1: Zombie-apokalypse (biologi)\n",
+ "\n",
+ "Denne oppgava tar utgangspunkt i å modellere og simulere en menneskepopulasjon under en zombie-apokalypse. Gjør rede for begrensninger for modellene dine, og drøft hva de forteller oss om populasjonen.\n",
+ "\n",
+ "#### Utgangspunkt\n",
+ "\n",
+ "Vi befinner oss i en postapokalyptisk situasjon der verden har blitt utsatt for et virus som gjør mennesker om til zombier. Viruset smitter kun via blod, f.eks. ved bitt eller kloring fra zombier. Vi skal studere en avsideliggende landsby, Alexandria, som ligger i nærheten av Washington D.C., og som etter et zombie-utbrudd har blitt et tilfluktssted for 500 mennesker. De har tilgang til en del mat og våpen, og de har en mur rundt hele landsbyen som holder zombiene unna. Men de må også ut for å finne nye ressurser og andre mennesker som trenger hjelp, så de er aldri helt trygge.\n",
+ "\n",
+ "#### Oppgave\n",
+ "\n",
+ "Modellen din kan inneholde mange ulike faktorer, og du står fritt til å legge til flere, dersom du begrunner det. Legg til én og én faktor, og test modellen etter hver gang. Kommenter populasjonsutviklinga etter hver nye faktor er lagt til. Her er et forslag til framgangsmåte:\n",
+ "\n",
+ "1. Lag først et program der menneskene er trygge mot zombier, og der nye mennesker kan komme til ved fødsel og (mer sannsynlig) innvandring. Lag gjerne ett ledd i likninga som inkluderer begge disse faktorene.\n",
+ "\n",
+ "2. Legg inn en ressursbegrensning (bæreevne) for populasjonen. Hvilke faktorer påvirker denne?\n",
+ "\n",
+ "3. Menneskene kan også dø av sykdom, skade og alderdom (naturlig død). Legg dette inn i modellen, og tenk på hvor sannsynlig dette er (hvor god er tilgangen på medisiner, lege o.l.?).\n",
+ "\n",
+ "4. Nå skal du legge inn en zombiepopulasjon som lever i nærheten av Alexandria. Du kan selv bestemme hvor mange zombier som finnes og hvor sannsynlig det er at mennesker blir drept av en zombie. Zombiene fungerer som rovdyr, slik at menneskene ikke blir til zombier i denne modellen.\n",
+ "\n",
+ "5. Nå kan du legge inn muligheten for at mennesker blir til zombier hvis de blir bitt, men ikke revet i fillebiter. Det vil si at noen mennesker vil bli smitta, mens andre vil bli drept av zombiene. De som blir smitta, blir til zombier, og dermed øker zombiepopulasjonen.\n",
+ "\n",
+ "6. Alexandria kan slå tilbake mot zombiene. Legg inn en faktor som bidrar til at menneskene kan ta livet av zombier.\n",
+ "\n",
+ "7. I nærheten av Alexandria finner vi landsbyene Hilltop og Kingdom. Fra disse kan det komme forsterkninger til Alexandria ved behov. Inkluder dette i modellen din."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Oppgave 2: Klimamodell 1 -- Ozonlaget (kjemi)\n",
+ "\n",
+ "Vi kan også simulere kjemiske reaksjoner ved hjelp av modeller for reaksjonsfart. Disse modellene lar oss forutsi hvordan og hvor fort en kjemisk reaksjon vil gå. Dette kan brukes til å simulere alt fra industrielle prosesser til viktige reaksjoner i miljøet. Her skal vi se på modeller som kan forutsi hvordan det vil gå med ozonlaget i framtida.\n",
+ "\n",
+ "#### Farstlover\n",
+ "\n",
+ "Modeller for reaksjonsfart kaller vi _fartslover_. En fartslov beskriver endringen i konsentrasjon i en kjemisk reaksjon. La oss ta et enkelt eksempel der vi har to reaktanter og ett produkt:\n",
+ "\n",
+ "$$A + B \\rightarrow C$$\n",
+ "\n",
+ "Fartsloven for denne reaksjonen må bestemmes eksperimentelt, og er derfor en _empirisk_ lov. For eksempel kan endringen i konsentrasjonen til C være gitt ved:\n",
+ "\n",
+ "$$\\frac{d[C]}{dt} = k[A][B]$$\n",
+ "\n",
+ "Her betyr $\\frac{d[C]}{dt}$ den deriverte av [C] med hensyn på tid (c'(t)). Det vil si at endringen i konsentrasjonen til produktet C er avhengig av konsentrasjonen til begge reaktanter i like stor grad. Men det kunne jo være at endringen i [C] varierte mer med [A] enn med [B], eller for eksempel ikke med [A] i det hele tatt. Da kunne vi henholdsvis fått disse modellene:\n",
+ "\n",
+ "$$\\frac{d[C]}{dt} = k[A]^2[B]$$\n",
+ "\n",
+ "$$\\frac{d[C]}{dt} = k[B]$$\n",
+ "\n",
+ "Eksperimenter avgjør hvilken form vi gir fartslovene. Og dersom endringen av [C] er gitt ved $\\frac{d[C]}{dt} = k[A][B]$, kan vi ut fra reaksjonslikningen utlede følgende sammenhenger (forklar hvorfor!):\n",
+ "\n",
+ "$$\\frac{d[A]}{dt} = -k[A][B]$$\n",
+ "\n",
+ "$$\\frac{d[B]}{dt} = -k[A][B]$$\n",
+ "\n",
+ "#### Fartslover for dannelse og nedbrytning av ozon i stratosfæren\n",
+ "\n",
+ "Den såkalte _Chapman-modellen_ kan benyttes for å simulere produksjon og nedbrytning av ozon i stratosfæren. Den er basert på følgende reaksjonslikninger med tilhørende reaksjonskoeffisienter:"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "$$O_2 \\xrightarrow{uv} 2O$$\n",
+ "$$O_2 + O + M \\rightarrow O_3 + M$$\n",
+ "$$O_3 \\xrightarrow{uv'} O + O_2$$\n",
+ "$$O + O_3 \\rightarrow 2O_2$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "hvor O, O$_2$ og O$_3$ er henholdsvis oksygen, dioksygen og ozon. M er en ikke-reagerende støtpartner, mens $h \\nu$ og $h \\nu '$ er energi tilført av UV-stråling med bølgelengde, $\\lambda$, under 242 nm og 336 nm, henholdsvis.\n",
+ "\n",
+ "Den første reaksjonslikningen beskriver spaltingen av O$_2$ til 2 O-atomer som resultat av UV-stråling. Den andre reaksjonslikningen viser den påfølgende reaksjonen mellom O$_2$ og O som krever en kollisjon med M for å danne O$_3$, mens de to siste reaksjonslikningene viser hvordan O$_3$ brytes ned henholdsvis som resultat av UV-stråling for å danne O og O$_2$, og gjennom reaksjon med O for produksjon av 2 O$_2$-molekyler.\n",
+ "\n",
+ "Fartslovene for [O], [O$_2$] og [O$_3$] er gitt ved henholdsvis\n",
+ "\n",
+ "$$\\frac{d[\\textrm{O}]}{dt} = 2 k_1 [\\textrm{O}_2] - k_2 [\\textrm{O}_2] [\\textrm{O}] [\\textrm{M}] + k_3 [\\textrm{O}_3] - k_4 [\\textrm{O}] [\\textrm{O}_3$$\n",
+ "\n",
+ "$$\\frac{d[\\textrm{O}_2]}{dt} = - k_1 [\\textrm{O}_2] - k_2 [\\textrm{O}_2] [\\textrm{O}] [\\textrm{M}] + k_3 [\\textrm{O}_3] + 2 k_4 [\\textrm{O}] [\\textrm{O}_3]$$\n",
+ "\n",
+ "$$\\frac{d[\\textrm{O}_3]}{dt} = k_2 [\\textrm{O}_2] [\\textrm{O}] [\\textrm{M}] - k_3 [\\textrm{O}_3] - k_4 [\\textrm{O}] [\\textrm{O}_3]$$\n",
+ "\n",
+ "Ratekonstantene er gitt som følger:\n",
+ "\n",
+ "$$k_1 = 3.0 \\times 10^{-12} \\textrm{ s}^{-1}$$\n",
+ "$$k_2 = 1.2 \\times 10^{-33} \\textrm{ cm}^6 \\textrm{ molekyler}^{-2} \\textrm{ s}^{-1}$$\n",
+ "$$k_3 = 5.5 \\times 10^{-4} \\textrm{ s}^{-1}$$\n",
+ "$$k_4 = 6.9 \\times 10^{-16} \\textrm{ cm}^3 \\textrm{ molekyler}^{-1} \\textrm{ s}^{-1}$$\n",
+ "\n",
+ "Ratekonstantene er gitt ved omtrent 25 km høyde, hvor $[\\textrm{M}] \\approx 9.0 \\times 10^{17}$ molekyler cm$^{-3}$. Systemet har følgende initialbetingelser:\n",
+ "\n",
+ "$$[\\textrm{O}_2]_{t=0} = 0.21[\\textrm{M}]$$\n",
+ "$$[\\textrm{O}]_{t=0} = 0$$\n",
+ "$$[\\textrm{O}_3]_{t=0} = 0$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Oppgaver\n",
+ "\n",
+ "a) Lag et program som beregner og plotter [O$_3$] og [O] som funksjon av tid i intervallet $t \\in [0,100]$ ved å benytte Forward Euler-algoritmen på fartslovene i teoridelen med de gitte initialbetingelsene og tidssteg $h = 0.001$. Plott med logaritmisk skala på $y$-aksen (_plt.yscale('log')_).\n",
+ "\n",
+ "b) Beregn og plott de samme verdiene med en backward-metode ('BDF) ved å bruke funksjonen _scipy.integrate.solve\\_ivp_ fra Scipy-biblioteket for $t \\in [0,10^8]$. Evaluer punktene for t = np.linspace(t0,tid_slutt,int(1E6)).\n",
+ "\n",
+ "c) Legg til justeringer i modellen eller søk og finn andre modeller du kan bruke. Ideer til endringer kan være å innkludere et økt utslipp av KFK-gasser (begrunn eventuelt hvorfor) og sammenlikninger av modellen med data og med andre modeller på internett."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Oppgave 3: Klimamodell II -- Drivhuseffekten (fysikk)\n",
+ "\n",
+ "Det som hovedsakelig varmer opp planeten vår, er sollys. Sola sender ut energi i form av elektromagnetisk stråling som treffer jordkloden. All elektromagnetisk stråling som treffer toppen av atmosfæren, har blitt målt til ca 1361 kW/m$^2$ Hvor mye energi som treffer toppen av atmosfæren er nesten konstant, og har bare variert med 0.2 prosent på 400 år. Strålingen blir kalt for _solkonstanten_ (K$_s$).\n",
+ "\n",
+ "![sunlight_angle.png](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/sunlight_angle.png)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Energien som treffer planeten kan beregnes slik:\n",
+ "\n",
+ "$$ E_{inn} = K_s \\cdot \\pi R_{jorda}^2$$\n",
+ "\n",
+ "a) Forklar hva vi forutsetter om modellen vår dersom vi bruker uttrykket ovenfor til å beregne hvor mye energi som treffer jorda.\n",
+ "\n",
+ "Ikke all energi som treffer jorda, blir absorbert av jordas overflate. En del energi reflekteres tilbake på grunn av jordas _albedo_. Den absorberte energien kan beregnes slik:\n",
+ "\n",
+ "\n",
+ "$$E_{absorbert} = K_s \\cdot (1 - albedo) \\cdot \\pi R{_E}^2$$\n",
+ "\n",
+ "b) Forklar hvorfor vi kan uttrykke den absorberte energien som ovenfor.\n",
+ "c) Beregn energien som treffer jorda, og energien som jorda absorberer. Hvor mange prosent blir absorbert?\n",
+ "\n",
+ "Alle legemer sender også ut (emitterer) energi. Dette kan beskrives med Stefan-Boltzmann-loven:\n",
+ "\n",
+ "$$\\phi=\\sigma T^4$$\n",
+ "\n",
+ "$\\sigma$ er Stefan-Boltzmann constant. $\\sigma = 5.670373 \\cdot 10^{-8} W / (m^2K^4)$\n",
+ "\n",
+ "$$E_{emittert} = \\sigma T^4 \\cdot 4\\pi R{_E}^2$$\n",
+ "\n",
+ "På grunn av energiprinsippet, loven om at energi er konstant, må energi inn på planeten være det samme som energi ut. Da har vi at:\n",
+ "\n",
+ "$$ E_{absorbert}= E_{emittert}$$\n",
+ "\n",
+ "d) Bruk dette energiprinsippet og uttrykkene ovenfor til å finne et uttrykk for den gjennomsnittlige temperaturen til jordkloden. Kommenter svaret og forklar hvilken modell du nå har brukt. \n",
+ "\n",
+ "Modellen vi nå har brukt, tar ikke hensyn til atmosfæren. Når vi legger til atmosfæren, kan vi først gjøre følgende forenklinger:\n",
+ "\n",
+ "1) Atmosfæren har en konstant temperatur. Det vil si at vi modeller atmosfæren som en stor blokk hvor hele blokken har den samme temperaturen. \n",
+ "2) Atmosfæren er fullstendig gjennomsiktig for stråling fra sola. Det vil si at all stråling fra sola treffer jordoverflaten. \n",
+ "3) Atmosfæren tar imot all strålinga fra jorden.\n",
+ "\n",
+ "![Atmosfære.png](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/atmosferestraling.png)\n",
+ "\n",
+ "e) Legg til atmosfæren i modellen din. Du må fortsatt bruke energibevaring som utgangspunkt, men beregne energi inn og ut av atmosfæren hver for seg. Da får du to likninger som du kan kombinere for å få en løsning or temperaturen.\n",
+ "\n",
+ "f) Nå kan du legge til flere faktorer i modellen din, f.eks. flere lag i atmosfæren. Her kan du lage modeller selv, eller du kan søke opp informasjon om ulike klimamodeller. Finn temperaturen for hver modell, og drøft modellene og resultatene underveis."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Oppgave 4: Solsystemet (fysikk)\n",
+ "Solsystemet har lenge vært til fascinasjon og undring for mennesker. Selv i et så stort system som solsystemet kan en simulere planetenes baner med god tilnærming ved å kun bruke Newtons lover!\n",
+ "\n",
+ "#### Teoretisk bakgrunn\n",
+ "\n",
+ "Hvis vi ser på kraften som virker mellom to planeter, en med masse $m_1$ og én med masse $m_2$, kan vi bruke Newtons _universelle gravitasjonslov_. Loven forteller oss at for to legemer med masse $m_1$ og $m_2$ som kan ansees å ha perfekt kuleform, er kraften mellom dem $F = \\frac{Gm_1m_2}{r^2}$. Vi bruker denne loven til å finne kreftene som virker på dem. Vi kan anta at planetene beveger seg i to dimensjoner, det vil si langs $x$- og $y$-aksen. Hvis du vil ha en mer realistisk simulering ved å inkludere en tredje dimensjon, dvs. $z$-aksen, er det mulig å utvide modellen med å gjøre akkurat det samme for $z$-aksen som modellen har gjort for $x$- og $y$-aksen, men dette er valgfritt. Kraften som virker på en planet med masse $m_1$ langs $x$- og $y$-aksen, $F_{x}$ og $F_{y}$, blir påvirka av en planet med masse $m_2$. Kreftene langs $x$- og $y$-aksen kan uttrykkes ved:\n",
+ "\n",
+ "$$F_{x} = -\\frac{G\\cdot m_1\\cdot m_2\\cdot x(t)}{r^3}$$\n",
+ "\n",
+ "$$F_{x} = -\\frac{G\\cdot m_1\\cdot m_2\\cdot x(t)}{\\left((x(t) - x_2(t))^2 + (y(t) - y_2(t))^2\\right)^{\\frac{3}{2}}}$$\n",
+ "\n",
+ "$$F_{y} = -\\frac{G\\cdot m_1\\cdot m_2\\cdot y(t)}{r^3}$$\n",
+ "\n",
+ "$$F_{y} = -\\frac{G\\cdot m_1\\cdot m_2\\cdot y(t)}{\\left((x(t) - x_2(t))^2 + (y(t) - y_2(t))^2\\right)^{\\frac{3}{2}}}$$\n",
+ "\n",
+ "der $G$ er gravitasjonskonstanten, $r$ er avstanden mellom planetene og $x(t)$ og $y(t)$ er posisjonen til planeten med masse $m_1$ langs henholdsvis $x$- og $y$-aksen etter ei tid $t$. Vi har også at $x_2(t)$ og $y_2(t)$ er posisjonen til planeten med masse $m_2$ langs henholdsvis $x$- og $y$-aksen etter ei tid $t$. \n",
+ "\n",
+ "#### Oppgaver\n",
+ "1. Vis at akselerasjonen $a_{x}(t)$ og $a_y(t)$ til en planet med masse $m_1$ langs henholdsvis $x$- og $y$-aksen er:\n",
+ "\n",
+ "\t$$a_x(t) = -\\frac{G\\cdot m_2\\cdot x(t)}{r^3}$$\n",
+ "\t$$a_y(t) = -\\frac{G\\cdot m_2\\cdot y(t)}{r^3}$$\n",
+ " \n",
+ "\n",
+ "2. Forklar hvorfor vi får at disse likningene må løses for å finne posisjonene $x(t)$ og $y(t)$:\n",
+ "\t\n",
+ " $$x'(t) = v_x(t)$$\n",
+ "\t$$y'(t) = v_y(t)$$\t\n",
+ "\t$$v_x'(t) = -\\frac{G\\cdot m_2\\cdot x(t)}{r^3}$$\n",
+ "\t$$v_y'(t) = -\\frac{G\\cdot m_2\\cdot y(t)}{r^3}$$\n",
+ "\n",
+ "\tder $v_x(t)$ og $v_y(t)$ er farten til planeten med masse $m_1$. \n",
+ "\n",
+ " Nå skal vi se på et solsystem som består av kun jorda og sola. Modellen antar at sola står stille. Du kan derfor fokusere på hvordan jordas bane blir påvirket av sola.\n",
+ "\n",
+ " I denne modellen lar vi jordas masse $m_1 = 3\\cdot 10^{-6}$ solmasser og solas masse $m_2 = 1$ solmasse. Solmasser er en enhet som forteller stor en planet er i forhold til sola. Ved å bruke AU (enhet brukt som den gjennomsnittlige avstanden mellom sol og jord) og år som enheter i vår modell, kan vi finne at $G = 4\\pi^2$.\n",
+ "\n",
+ " La startbetingelsene til jorda være $x(0) = 1$, $y(0) = 0$, $v_x(0) = 0$ og $v_y(0) = 2\\pi$. Sola kan stå i origo. Det betyr at i dette tilfellet vil $x_2(t) = 0$ og $y_2(t) = 0$ for alle tider $t$.\n",
+ " \n",
+ "3. Skriv et program som først bruker Eulers metode til å finne jordas bane rundt sola for ett år ved å bruke $N = 1000$ tidssteg. La programmet plotte banen. \n",
+ "\t\n",
+ "4. Euler-Cromers metode er en liten justering av Eulers metode. Finn ut hva som menes med denne metoden. Skriv om programmet fra deloppgave c) slik at det bruker Euler-Cromer isteden med samme verdi for $N$. Hvordan er plottet nå, sammenlikna med plottet fra deloppgave c)?\n",
+ "\n",
+ " Men vi kan jo ikke ha bare én planet i solsystemet vårt! Nå skal vi se på hvordan simuleringa kan være dersom vi har med flere planeter i solsystemet. Merk at $x_2(t)$ og $y_2(t)$ nå vil være avhengig av hvilken planet vi ser på. Du kan fortsatt anta at sola står stille.\n",
+ " \n",
+ "\n",
+ "5. Skriv et program som modellerer planetenes bane for $P$ planeter. Du kan gjerne bruke fila [planetermalstruktur.py](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/programmer/planetermalstruktur.py) som forslag til programstruktur i programmet ditt, men du kan også utvide programmet ditt fra d). Hvis du skriver om programmet ditt fra d), er det viktig at det greier å lese en datafil med info over planetenes startposisjon, startfart og masse.\n",
+ "\t\n",
+ " Forslaget til programstrukturen henter ut eksempeldata fra ei fil som heter [_planeter\\_data.dat_](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/Datafiler/planeter.dat). Tallene er henta fra NASA og har blitt noe modifisert. Du kan finne sida her: https://ssd.jpl.nasa.gov/horizons.cgi. Sola er ikke tatt med, da simuleringa antar at den står i origo og ikke beveger seg.\n",
+ " \n",
+ "\t__Kommentar til struktur:__\n",
+ " \n",
+ " Vi har ikke jobba så mye med matrisestrukturer. Tankegangen bak strukturen til _pos_ og _fart_ i [planetermalstruktur.py](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/programmer/planetermalstruktur.py) kan illustreres slik: \n",
+ " \n",
+ " \n",
+ " \n",
+ " Illustrasjon viser tankegangen bak _pos_, som er helt den samme for _fart_. Her kan en tenke at vi lagrer informasjonen over planetene i et arkiv. Det $j$-te \"arket\" med informasjon til den $j$-te planeten hentes ut ved _pos[:,:,$j$]_. Skal vi se hvor den $j$-te planeten befinner seg langs både $x$- og $y$-aksen ved et tidssteg $i$, bruker vi _pos[$i$,:,$j$]_. Skal vi for eksempel bare se på $x$-verdien til den $j$-te planeten ved tidssteg $i$, bruker vi _pos[$i$,0,$j$]_, og _1_ istedenfor _0_ dersom vi skal se på $y$-verdien.\n",
+ "\n",
+ "\tDu kan sjekke om simuleringa di gir følgende planetbaner etter ett år ved å bruke informasjonen fra fil [_planeter\\_data.dat_](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/Datafiler/planeter.dat). Fildataene gir følgende resultater av simuleringa etter ett år:\n",
+ " \n",
+ " \n",
+ "\n",
+ "6. Bruk _pygame_ til å visualisere planetenes bane rundt sola. Du får et forslag til hvordan programstrukturen kan være, men utvid gjerne med mer om du har lyst. Her er det kun fantasien som setter grenser! Et forslag til programstruktur har filnavnet [_planetermalpygame.py_](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/programmer/planetermalpygame.py)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/oppgaver/statistikkprosjekt.ipynb b/_sources/docs/oppgaver/statistikkprosjekt.ipynb
new file mode 100644
index 00000000..65af57af
--- /dev/null
+++ b/_sources/docs/oppgaver/statistikkprosjekt.ipynb
@@ -0,0 +1,43 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "639adf89",
+ "metadata": {},
+ "source": [
+ "# Statistikkprosjekt\n",
+ "\n",
+ "Vårt første modelleringsprosjekt er et prosjekt der du skal samle inn et datasett og gjøre statistisk analyse og regresjonsanalyse med disse dataene. Oppgaven går ut på følgende:\n",
+ "\n",
+ "1. Samle inn data. Du bør måle minst 4 variabler og samle inn minst 25 målepunkter for hver av de fire variablene. Du kan bruke sensorer, spørreundersøkelser eller tilsvarende. Lagre dataene i en .txt-fil, .csv-fil eller .xlsx-fil (Excel). Hvis du finner et veldig godt datasett på internett som du heller ønsker å bruke, spør læreren om dere kan bruke det isteden.\n",
+ "2. Les dataene i Python og lag relevante visualiseringer som beskriver hva datasettet forteller oss.\n",
+ "3. Beregn relevante mål på sentraltendens og spredning. Presenter resultatene i en oversiktlig tabell. Forklar hva disse målene forteller om dataene dine. Lag gjerne visualiseringer som beskriver spredningen.\n",
+ "4. Regn ut korrelasjoner i datasettet og lag et korrelasjonsplott. Diskuter eventuelle korrelasjoner.\n",
+ "5. Gjør en lineær regresjon av to variabler der en lineær modell kan beskrive sammenhengen mellom variablene. Diskuter modellen.\n",
+ "\n",
+ "Prosjektet leveres som fullstendig rapport (lever en .ipynb-fil og .pdf av notebooken)."
+ ]
+ }
+ ],
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/programmering_intro.ipynb b/_sources/docs/programmering_intro.ipynb
new file mode 100644
index 00000000..80e580f7
--- /dev/null
+++ b/_sources/docs/programmering_intro.ipynb
@@ -0,0 +1,235 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Programmering - en liten start\n",
+ "Programmering dreier seg om å få datamaskinen til å gjøre det vi ønsker. Her skal vi bruke programmeringsspråket Python til å utforske geometriske mønstre. Først får du en innføring i hvordan du kan bruke variabler og print-funksjonen. Deretter ser vi på hvordan du kan bruke løkker til å gjenta kode.\n",
+ "\n",
+ "## Variabler\n",
+ "\n",
+ "```{admonition} Variabel\n",
+ "En programmeringsvariabel er en størrelse som lagrer en verdi i et program.\n",
+ "```\n",
+ "\n",
+ "Du kan tenke på en variabel som en boks vi kan putte ting i, og som vi kan modifisere, endre og hente informasjon fra underveis.\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Nedenfor er et eksempel på en programkode i Python der vi beregner gjennomsnittshastigheten i m/s for ulike legemer som har beveget seg henholdsvis 3, 4.5, 7 og 14 meter i løpet av 3 sekunder. Hva er fordelen med å bruke variablen _t_ her?\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "t = 3\n",
+ "\n",
+ "v1 = 3/t\n",
+ "v2 = 4.5/t\n",
+ "v3 = 7/t\n",
+ "v4 = 14/t"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "For å få noe ut av programmet vårt, må vi be datamaskinen om å \"skrive ut\" noe. Dette gjør vi med funksjonen _print_. Dersom vi ønsker å skrive ut flere variabler, må vi skille dem med komma i print-kommandoen. Her ser du to eksempler:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Eksperimenter med programmet ovenfor og forklar hvordan print fungerer.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Løkker\n",
+ "\n",
+ "Den kanskje viktigste strukturen i programmering er løkker. De lar datamaskinen gjenta en operasjon så mange ganger vi vil. Det er dette som er datamaskinens styrke.\n",
+ "\n",
+ "```{admonition} Løkker\n",
+ "En løkke er en struktur som gjør at vi kan gjenta kode. Ofte skiller vi mellom en _telleløkke_, som gjentar noe et visst antall ganger, og en _tilstandsløkke_, som gjentar seg så lenge noe er sant. I Python heter disse henholdsvis _for_-løkke og _while_-løkke.\n",
+ "```\n",
+ "\n",
+ "## Skilpaddegrafikk\n",
+ "Vi skal se hvordan løkker fungerer ved å introdusere deg for en skilpadde. Han heter Gunnar. Her er han:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Gunnar følger enkle kommandoer, som \"forward\", \"backward\", \"right\" og \"left\".\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Endre programmet ovenfor slik at Gunnar tegner en trekant. Hva er sammenhengen mellom vinkelen som skilpadden snur og vinklene i trekanten?\n",
+ "```\n",
+ "\n",
+ "### Skilpadder i løkker\n",
+ "Å tegne en trekant krever få linjer kode, men hva hvis du vil tegne en åttekant, en førtitokant, eller en nittisekskant? Det er slitsomt og kjedelig å skrive samme kommando hundrevis av ganger. Og det er totalt unøvdendig. Vi bruker nemlig løkker til å gjenta kode, for eksempel slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Prøv å forklare hvordan programmet ovenfor fungerer. \n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsning\n",
+ ":class: tip, dropdown\n",
+ "Helt enkelt kan vi si at løkka repeterer alt som står rykket inn (med tab) _n_ ganger. \n",
+ "```\n",
+ "```{admonition} Mer komplisert/grundig løsning\n",
+ ":class: tip, dropdown\n",
+ "Vi kan forklare programmet ovenfor litt grundigere med at \"for i in range(n)\" betyr at for hver verdi av en variabel _i_, skal løkka gjentas. Variabelen _i_ får hver verdi i intervallet [0, 1, 2, 3, ..., n-1], som lages med funksjonen _range_. Det betyr at første gang løkka kjører, er $i = 0$, andre gang $i = 1$ og så videre. Løkka gjentas helt til $i = n - 1$, altså til, men ikke med verdien _n_.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Modifiser programmet ovenfor slik at skilpadden Gunnar tegner en 20-kant.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Få Gunnar til å tegne en blomst!\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Få Gunnar til å tegne en blomst!\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Litt mer om løkker\n",
+ "Vi har to typer løkker i Python: while-løkker (tilstandsløkker) og for-løkker (telleløkker). I programmene ovenfor har vi brukt en for-løkke, som teller et visst antall ganger. While-løkker gjentar derimot noe helt til et kriterium er nådd. Her er et eksempel:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Programmet kjører så lenge variabelen _partall_ har en verdi som er mindre enn eller lik 10. Alt som er rykket inn, gjentas hver gang løkka går. Programmet skriver derfor ut alle positive partall (og 0) som er mindre enn eller lik 10.\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Modifiser programmet ovenfor slik at programmet skriver ut alle positive _oddetall_ under 10.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "`````{tabbed} Grunnleggende\n",
+ "````{admonition} Oppgave 4.1\n",
+ ":class: tip\n",
+ "Sammenlikn programmene nedenfor. Beskriv eventuelle forskjeller og likheter.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "partall = 0\n",
+ "\n",
+ "for i in range(5):\n",
+ " partall = partall + 2\n",
+ " print(partall)\n",
+ "```\n",
+ "```{code-block} Python\n",
+ "partall = 0\n",
+ "\n",
+ "while partall < 10:\n",
+ " partall = partall + 2\n",
+ " print(partall)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.2\n",
+ ":class: tip\n",
+ "Programmet nedenfor skal finne summen av de 100 første tallene i en tallfølge der hvert ledd er den dobbelte av det forrige. Forklar hvordan programmet fungerer. Endre gjerne på ulike variabler og test hva utfallet blir for å forstå hvordan programmet fungerer.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Oppgave 4.3\n",
+ ":class: tip\n",
+ "Skriv om programmet ovenfor slik at du benytter en while-løkke istedenfor en for-løkke.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Oppgave 4.4\n",
+ ":class: tip\n",
+ "Hva skrives ut i følgende program? Prøv å undersøke dette for hånd. Til slutt kan du sjekke ved å kopiere programmet inn i en editor og kjøre det.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "a = 0\n",
+ "\n",
+ "for i in range(5):\n",
+ " b = a*i\n",
+ " print(b)\n",
+ " a = a + 1\n",
+ "print(a)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "I videoene nedenfor kan du få en innføring eller repetisjon i den grunnleggende teorien bak løkker:\n",
+ "\n",
+ "````{tabbed} For-løkker\n",
+ "\n",
+ "\n",
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Skriv et program som regner ut summen av tallene fra og med 1 til og med 449 ved hjelp av en for-løkke.\n",
+ "```\n",
+ "````\n",
+ "````{tabbed} While-løkker\n",
+ "\n",
+ "\n",
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Skriv et program som regner ut summen av tallene fra og med 1 til og med 449 ved hjelp av en while-løkke.\n",
+ "```\n",
+ "````"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/grunnleggende_programmering.ipynb b/_sources/docs/tema1_grunnleggende_programmering/grunnleggende_programmering.ipynb
new file mode 100644
index 00000000..8cc12763
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/grunnleggende_programmering.ipynb
@@ -0,0 +1,786 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Grunnleggende programmering (oppgaver)\n",
+ "Her er litt teori og oppgaver som kan hjelpe deg å komme i gang med det viktigste innen realfaglig programmering. Bruk gjerne de innebygde kodeboksene til å lage og kjøre programmer underveis.\n",
+ "\n",
+ "## 1. Variabler\n",
+ "\n",
+ "```{admonition} Variabel\n",
+ "En programmeringsvariabel er en størrelse som lagrer en verdi i et program.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Den kinetiske energien er: 4 J.\n"
+ ]
+ }
+ ],
+ "source": [
+ "m = 1 # Masse\n",
+ "v = 2 # Hastighet\n",
+ "\n",
+ "kinetisk_energi = m*v**2\n",
+ "\n",
+ "print(\"Den kinetiske energien er:\", kinetisk_energi, \"J.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan også bruke matematiske funksjoner som kvadratrot og trigonometriske funksjoner. Da må vi importere et bibliotek som inneholder disse funksjonene. Det enkleste er å importere alt fra biblioteket pylab. Det gjør vi slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Kvadratrota av 4 er: 2.0 Sinus til 30 grader er: 0.49999999999999994\n"
+ ]
+ }
+ ],
+ "source": [
+ "from pylab import *\n",
+ "\n",
+ "kvadratrot = sqrt(4)\n",
+ "sinus = sin(radians(30))\n",
+ "\n",
+ "print(\"Kvadratrota av 4 er:\", kvadratrot, \"Sinus til 30 grader er:\", sinus)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Merk at vi måtte gjøre om vinkelmålet til radianer (som er et vinkelmål man lærer om i R-matte) til grader. Det samme prinsippet gjelder for øvrig i GeoGebra."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 1.1\n",
+ ":class: tip\n",
+ "Bruk kodeboksen nedenfor til å lage relevante variabler slik at programmet regner ut arealet av en trekant med grunnlinje 4 og høyde 2. Programmet inneholder litt kode fra før til å hjelpe deg på vei.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "g = 4\n",
+ "h = 2\n",
+ "A = g*h/2\n",
+ " \n",
+ "print(\"Arealet til trekanten er:\", A)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "\n",
+ "```{admonition} Oppgave 1.2\n",
+ ":class: tip\n",
+ "Lag et program som regner ut radius til en sirkel med arealet 4.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "A = 4\n",
+ "pi = 3.1415 # Vi skal se hvordan vi kan bruke en forhåndsdefinert pi seinere\n",
+ "r = (A/pi)**0.5 # Vi skal se på hvordan vi kan ta rota uten å opphøye i 0.5 seinere\n",
+ " \n",
+ "print(\"Radius til sirkelen er:\", r)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Ekstra: Oppgave 1.3\n",
+ ":class: tip\n",
+ "For å ta input fra brukeren av programmet istedenfor å skrive variabelverdier rett inn i programmet, kan vi bruke input-funksjonen til Python.\n",
+ "\n",
+ "tall = float(input(\"Skriv et tall: \"))\n",
+ "\n",
+ "Lag et program som bruker en formel fra matematikken til å regne ut noe. Bruk input-funksjonen til å hente variabelverdier fra brukeren. Hvis du lurer på hva \"float\"-kommandoen foran _input_ gjør, kan du lese mer om det i 1.1 nedenfor.\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 1.1 Variabeltyper\n",
+ "I matematikk har vi ulike tallmengder, som _reelle tall_, _irrasjonale tall_, _rasjonale tall_, _naturlige tall_, _hele tall_ og _komplekse tall_. Disse tallmengdene er uendelig store, som betyr at de ikke kan eksistere på en datamaskin. Vi har derfor en del andre tallmengder og variabeltyper. For eksempel heter desimaltall _float_ fordi ikke alle desimaltall er representert på en datamaskin. Det er altså en annen tallmengde. De viktigste variabeltypene ser du her:\n",
+ "\n",
+ "| Datatype | Forklaring |Eksempel |\n",
+ "|--------|----------------------|-------------|\n",
+ "| Heltall (int) | Hele tall | 42 |\n",
+ "| Flyttall (float) | Desimaltall | 3.1415 |\n",
+ "| Streng (str) | Tekst | \"Hei!\"|\n",
+ "| Boolsk | Sannhet |True eller False |\n",
+ "\n",
+ "Når vi ønsker input fra en bruker av et program, må vi spesifisere hvilken variabeltype vi ønsker at inputen skal bli tolket som. Standard er tekst, men hvis vi for eksempel \"adderer\" teksten \"4\" med \"2\", får vi \"42\", mens tallet 4 + tallet 2 gir tallet 6. Eksempelet nedenfor illustrerer dette."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Skriv et tall: 4\n",
+ "Skriv et tall til: 2\n",
+ "Summen av teksten er: 42 og summen av tallene er: 6.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "tekst1 = input(\"Skriv et tall: \")\n",
+ "tekst2 = input(\"Skriv et tall til: \")\n",
+ "\n",
+ "tall1 = float(tekst1)\n",
+ "tall2 = float(tekst2)\n",
+ "\n",
+ "tullsvar = tekst1 + tekst2\n",
+ "tallsvar = tall1 + tall2\n",
+ "\n",
+ "print(\"Summen av teksten er:\", tullsvar, \"og summen av tallene er:\", tallsvar)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Input er ikke nødvendig for annet enn å lage et mer interaktivt program. Men hvis du lager et program med input, bør du legge til input helt til slutt. Start med å gi variablene verdier, og test at programmet fungerer. Deretter kan du bruke input på de variablene du ønsker. Dette er for å unngå å måtte taste inn input-verdier hver gang du kjører programmet ditt, spesielt hvis det inneholder feil du må rette opp!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 2. Vilkår (if-tester)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Vilkår (if-test)\n",
+ "Et vilkår, eller en betingelse, er en logisk test for å sjekke om et kriterium er oppfylt. Dersom kriteriet er oppfylt, utføres det en handling. Dersom kriteriet ikke er oppfylt, blir ikke handlingen utført.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tallet er passe stort.\n"
+ ]
+ }
+ ],
+ "source": [
+ "tall = 42\n",
+ "\n",
+ "if tall < 5:\n",
+ " print(\"Tallet er veldig lite.\")\n",
+ "elif tall < 20:\n",
+ " print(\"Tallet er ganske lite.\") \n",
+ "elif tall < 50:\n",
+ " print(\"Tallet er passe stort.\")\n",
+ "elif tall < 100:\n",
+ " print(\"Tallet er ganske stort.\")\n",
+ "else:\n",
+ " print(\"Tallet er enormt!\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det er noen ting å huske på her:\n",
+ "- Alt som er rykket inn utføres kun hvis if-testen ovenfor er sann. Innrykk er derfor viktig for strukturen.\n",
+ "- \"elif\" står for \"else if\", og sjekker noe nytt, mens \"else\" brukes for å gjøre noe dersom ingen av kriteriene under \"if\" og \"elif\" er sanne.\n",
+ "- Det er den første if-testen som er sann i en serie av if-elif-else som utføres. Alle andre overses. Dersom vi skriver \"if\" en gang til, begynner vi på en ny serie med if-elif-else.\n",
+ "- Vi _må_ begynne med \"if\", mens \"elif\" og \"else\" er valgfritt.\n",
+ "- De logiske operatorene vi kan velge mellom, er:\n",
+ "\n",
+ "| Symbol | Betydning |\n",
+ "|--------|----------------------|\n",
+ "| > | større enn |\n",
+ "| < | mindre enn |\n",
+ "| == | lik |\n",
+ "| != | ikke lik |\n",
+ "| <= | mindre enn eller lik |\n",
+ "| >= | større enn eller lik |"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 2.1\n",
+ ":class: tip\n",
+ "Lag et program der du sjekker om et tall er positivt, negativt eller null, og skriver ut relevante setninger. Du kan ta utgangspunkt i programkoden i kodeboksen her:\n",
+ "```\n",
+ "\n",
+ "\n",
+ "```{admonition} Oppgave 2.2\n",
+ ":class: tip\n",
+ "Lag et program med en variabel kalt pH. Programmet skal skrive ut om løsningen med denne pH-en er sur, basisk eller nøytral.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 2.3\n",
+ ":class: tip\n",
+ "Forklar hvorfor de to ulike programmene nedenfor gir ulike output.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "17\n"
+ ]
+ }
+ ],
+ "source": [
+ "a = 10\n",
+ "if a > 5:\n",
+ " a = a + 5\n",
+ "a = a + 2\n",
+ "print(a)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "15\n"
+ ]
+ }
+ ],
+ "source": [
+ "s"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 2.4\n",
+ ":class: tip\n",
+ "I et programmeringspuslespill skal du bruke ferdige kodeblokker til å pusle sammen et program. [Dette puslespillet](http://parsons.problemsolving.io/puzzle/6e30d3320c8e4ba69b61a0e302754a3c) skal bli et program som skal regne ut hvor mange løsninger en andregradslikning på formen $ax^2 + bx + c = 0$ har. Prøv å sette sammen puslespillet. Pass på innrykk og rekkefølge! Hvis du blir fort ferdig, kan du prøve [denne varianten](http://parsons.problemsolving.io/puzzle/a56e0f5a917a4079aadffb571c3d411e). Hvis du har mer tid til overs, kan du jo prøve å lage programmet selv!\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 3. Løkker\n",
+ "\n",
+ "Den kanskje viktigste strukturen i programmering er løkker. De lar datamaskinen gjenta en operasjon så mange ganger vi vil. Det er dette som er datamaskinens styrke.\n",
+ "\n",
+ "```{admonition} Løkker\n",
+ "En løkke er en struktur som gjør at vi kan gjenta kode. Ofte skiller vi mellom en _telleløkke_, som gjentar noe et visst antall ganger, og en _tilstandsløkke_, som gjentar så lenge noe er sant. I Python heter disse henholdsvis _for_-løkke og _while_-løkke.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2\n",
+ "4\n",
+ "6\n",
+ "8\n",
+ "10\n"
+ ]
+ }
+ ],
+ "source": [
+ "partall = 0\n",
+ "\n",
+ "for i in range(5): # Gjenta 5 ganger (i går igjennom intervallet [0, 1, 2, 3, 4])\n",
+ " partall = partall + 2\n",
+ " print(partall)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2\n",
+ "4\n",
+ "6\n",
+ "8\n",
+ "10\n"
+ ]
+ }
+ ],
+ "source": [
+ "partall = 0\n",
+ "\n",
+ "while partall < 10: # Gjenta så lenge partall er mindre enn 10\n",
+ " partall = partall + 2 # Øk partallsvariabelen med 2\n",
+ " print(partall) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Studer løkkene og prøv å forstå hvordan de virker. Legg merke til at alt som er rykket inn til høyre, tilhører løkka og gjentas hver gang løkka kjører.\n",
+ "\n",
+ "Det er viktig å forstå hvordan løkkene fungerer. For å illustrere dette, kan vi sette opp en _løkketabell_ som viser verdien til de ulike variablene i ei løkke. La oss bruke følgende program som utgangspunkt:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = 0\n",
+ "\n",
+ "for i in range(5):\n",
+ " a = a + 1\n",
+ " b = a*i"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "En løkketabell som beskriver hva verdien til alle variabelene er før og underveis i løkka, er gitt nedenfor. Bruk løkka og tabellen og prøv å forstå hva som skjer!\n",
+ "\n",
+ "| Løkkerunde | i | a | b |\n",
+ "|------------|---|---|---|\n",
+ "| Startverdi | - | 0 | - |\n",
+ "| 1 | 0 | 1 | 0 |\n",
+ "| 2 | 1 | 2 | 2 |\n",
+ "| 3 | 2 | 3 | 6 |\n",
+ "| 4 | 3 | 4 | 12|\n",
+ "| 5 | 4 | 5 | 20|\n",
+ "\n",
+ "Vi kan printe ut variablene underveis i løkka og se at vi faktisk får det samme (husk at kategorien \"løkkerunde\" ikke er en variabel):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i | a | b\n",
+ "0 | 1 | 0\n",
+ "1 | 2 | 2\n",
+ "2 | 3 | 6\n",
+ "3 | 4 | 12\n",
+ "4 | 5 | 20\n"
+ ]
+ }
+ ],
+ "source": [
+ "a = 0\n",
+ "print(\"i | a | b\") # Printer kun én gang\n",
+ "\n",
+ "for i in range(5):\n",
+ " a = a + 1\n",
+ " b = a*i\n",
+ " \n",
+ " print(i,\"|\", a,\"|\", b) # Printer hver gang i løkka"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 3.1\n",
+ ":class: tip\n",
+ "Lag et program som skriver ut \"Du er flink til å programmere!\" tusen ganger. Hvilken funksjon har \"tellevariabelen\" (_i_) her?\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 3.2\n",
+ ":class: tip\n",
+ "Programmet nedenfor skal finne summen av de 100 første tallene i en tallfølge der hvert ledd er den dobbelte av det forrige. Forklar hvordan programmet fungerer. Endre gjerne på ulike variabler og test hva utfallet blir for å forstå hvordan programmet fungerer.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Oppgave 3.3\n",
+ ":class: tip\n",
+ "Skriv om programmet ovenfor slik at du benytter en while-løkke istedenfor en for-løkke.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 3.4\n",
+ ":class: tip\n",
+ "Skriv om programmet ovenfor slik at du benytter en while-løkke istedenfor en for-løkke.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 3.5\n",
+ ":class: tip\n",
+ "Lag en løkketabell av programmet nedenfor:\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = 0\n",
+ "\n",
+ "for i in range(5):\n",
+ " b = a*i\n",
+ " a = a + 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 3.6\n",
+ ":class: tip\n",
+ "Hva skrives ut i følgende program? Prøv å undersøke dette for hånd. Til slutt kan du sjekke ved å kopiere programmet inn i en editor og kjøre det.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = 0\n",
+ "\n",
+ "for i in range(5):\n",
+ " b = a*i\n",
+ " print(b)\n",
+ " a = a + 1\n",
+ "print(a)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 3.7\n",
+ ":class: tip\n",
+ "Programmene nedenfor skal regne ut hvor lang tid det tar før du har doblet beløpet ditt i banken gitt en årlig rente på 5 \\% og en startkapital på 5000 kroner, men programmet fungerer ikke som det skal. Hva er feil? Rett opp programmet slik at det fungerer.\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 3.1 Løkker og lister\n",
+ "Lister er en datastruktur i Python som lar oss spare på ulike verdier i samme variabel. Eksempel på hvordan lister kan brukes, er slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "tom_liste = [] # Lager en tom liste\n",
+ "tall = [1, 2, 3.5] # Liste med tre tall\n",
+ "dyr = [\"Stumpneseape\", \"Lemur\", \"Sjøku\"] # Liste med tre dyr (tekststrenger)\n",
+ "\n",
+ "tom_liste.append(24)\n",
+ "print(\"Append-funksjonen legger til elementer i lista. Vi får:\", tom_liste)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Lister er en god kombinasjon med løkker, siden løkker kan generere ulike tallverdier som vi kan spare på i listene. For eksempel slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "startkapital = 5000\n",
+ "penger = startkapital\n",
+ "år = 0\n",
+ "rente = 0.01\n",
+ "år_liste = [0]\n",
+ "penger_liste = [startkapital]\n",
+ "\n",
+ "while penger < startkapital*2:\n",
+ " penger = penger + penger*rente\n",
+ " år = år + 1\n",
+ " år_liste.append(år)\n",
+ " penger_liste.append(penger)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 3.8\n",
+ ":class: tip\n",
+ "Forklar hvordan programmet ovenfor fungerer. \n",
+ "```\n",
+ "\n",
+ "Siden vi nå har en variabel som inneholder pengene ved et hvert år, er det en gyllen mulighet til å visualisere hvordan pengeutviklingen er. Da må vi først se litt på hvordan vi kan plotte."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 4. Plotting\n",
+ "Vi kan enkelt plotte lister med data på denne måten:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from pylab import * # Importerer relevante plotteverktøy\n",
+ "\n",
+ "tid = [0, 2, 4, 6, 8, 10, 12, 14] # dager\n",
+ "plantehøyde = [0, 1, 4.2, 7.9, 12.5, 13, 13.7, 13.9] # cm\n",
+ "\n",
+ "plot(tid, plantehøyde)\n",
+ "title(\"Forsøk: Plantevekst\")\n",
+ "xlabel(\"Tid (dager)\")\n",
+ "ylabel(\"Plantens høyde (cm)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det finnes utrolig mange måter å modifisere et plott på. Programmet nedenfor plotter miljøgifter i ulike organismer i to innsjøer. Studer programmet og eksperimenter med ulike verdier. Du kan finne verdier for farger, linjestiler, markører og liknende ved å google «python plotting colors» og tilsvarende. Biblioteket som inneholder plotting, heter matplotlib, noe du kan se av søkeresultatene dine. Du må bruke internett flittig når du lurer på noe i programmering!\n",
+ "\n",
+ "\n",
+ "\n",
+ "Vi kan også plotte funksjoner. Da må vi spesifisere hvilke verdier av _x_ vi ønsker å plotte for. Disse x-verdiene kan vi generere enkelt ved å bruke en kommando som heter _linspace(a, b, n)_. Denne genererer et intervall fra _a_ til _b_ med _n_ punkter. Test programmet nedenfor og prøv for eksempel med _n_ = 4 (altså at antall _x_-verdier er 4). Hva skjer da, og hvorfor?\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Oppgave 4.1\n",
+ ":class: tip\n",
+ "Prøv å plotte verdiene fra renteprogrammet nedenfor. Eksperimenter med ulike verdier av startkapital og rente, og se hvordan utviklingen endrer seg.\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## *5. Funksjoner\n",
+ "\n",
+ "Funksjoner er å regne som en grunnstruktur i programmering, men det er ikke en _nødvendig_ grunnstruktur for å lage enkel kode for å utforske matematikk og naturfag. Til tross for dette er funksjoner nyttig å kunne, men husk at det er mer en kodeteknisk ferdighet enn en ferdighet vi kan bruke for å forstå realfag.\n",
+ "\n",
+ "Det er viktig å vite at funksjoner i programmering ikke er det samme som funksjoner i matematikk. De KAN ha samme virkemåte, men trenger ikke det. La oss representere den matematiske funskjonen $f(x) = 2x^2 - x + 1$ som en Python-funksjon:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def f(x):\n",
+ " return 2*x**2 - x + 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi definerer en funksjon med kodeordet _def_ og gir den et funksjonsnavn, her _f_. Deretter spesifiserer hva inn-verdien/variabelen til funksjonen skal hete. Her kaller vi den _x_. I programmering kaller vi en slik størrelse for en _parameter_. Gitt én verdi av _x_, skal funksjonen _returnere_ (spesifisert ved _return_-kommandoen) en funksjonsverdi.\n",
+ "\n",
+ "Her har vi bare _definert_ funksjonen. Vi har ikke brukt den enda, så vi får ikke noe output her. La oss bruke funksjonen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(f(1))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Som vi ser, får vi funksjonsverdien til f(1). Nå har vi brukt funksjonen vi tidligere har definert. Dette heter å \"kalle på\" funksjonen. \n",
+ "\n",
+ "Poenget med funksjoner er i hovedsak to ting:\n",
+ "- Kodestrukturering.\n",
+ "- Gjenbruk av kode.\n",
+ "\n",
+ "Det er spesielt sistnevnte poeng som er sentralt. Ved å definere en funksjon kan vi bruke denne funksjonen flere ganger i programmet vårt, for eksempel slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "6 -2\n",
+ "1\n",
+ "2\n",
+ "3\n",
+ "4\n",
+ "5\n"
+ ]
+ }
+ ],
+ "source": [
+ "def f(x):\n",
+ " return x + 1\n",
+ "\n",
+ "addisjon = f(1) + f(3)\n",
+ "subtraksjon = f(1) - f(3)\n",
+ "\n",
+ "print(addisjon, subtraksjon)\n",
+ "\n",
+ "for x in range(5):\n",
+ " print(f(x))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 5.1\n",
+ ":class: tip\n",
+ "Forklar hvordan programmet ovenfor fungerer.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 5.2\n",
+ ":class: tip\n",
+ "I programmet nedenfor definerer vi en funksjon som regner ut volumet til en sylinder. Lag en annen funksjon i samme program som regner ut volumet til ei kule.\n",
+ "```\n",
+ "($V_{kule} = \\frac{4}{3}\\pi r^3$)\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Filmer\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/if-tester.ipynb b/_sources/docs/tema1_grunnleggende_programmering/if-tester.ipynb
new file mode 100644
index 00000000..baa36b1a
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/if-tester.ipynb
@@ -0,0 +1,556 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Vilkår (if-tester)\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. bruke vilkår til å systematisere valg i programkode\n",
+ "2. illustrere og løse matematiske og naturvitenskapelige problemstillinger med sammensatt kode der vilkår inngår\n",
+ "```\n",
+ "````{admonition} Innledende oppgave\n",
+ ":class: tip\n",
+ "Før du går i gang med å programmere, prøv å forklare hva følgende kodesnutter gjør:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall = 10\n",
+ "\n",
+ "if tall > 8:\n",
+ " print(\"Tallet er større enn 8.\")\n",
+ "```\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall = 10\n",
+ "\n",
+ "if tall < 8:\n",
+ " print(\"Tallet er mindre enn 8.\")\n",
+ "```\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall = 10\n",
+ "if tall < 8:\n",
+ " print(\"Tallet er mindre enn 8.\")\n",
+ "else:\n",
+ " print(\"Tallet er ikke mindre enn 8.\")\n",
+ "```\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall = 10\n",
+ "if tall < 8:\n",
+ " print(\"Tallet er mindre enn 8.\")\n",
+ "elif tall >= 8:\n",
+ " print(\"Tallet er ikke mindre enn 8.\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "## Definisjon\n",
+ "\n",
+ "```{admonition} Vilkår\n",
+ "Et vilkår, eller en betingelse, er en logisk test for å sjekke om et kriterium er oppfylt. Dersom kriteriet er oppfylt, utføres det en handling. Dersom kriteriet ikke er oppfylt, blir ikke handlingen utført. Vilkår beskrives ofte i programmering som en «hvis-setning» («if» i Python).\n",
+ "```\n",
+ "Vilkår er sentrale i programmering, men også sentrale i hverdagen. Vi kan lage et enkelt eksempel ut fra billettpriser på bussen. Hvis du er under 18 år, blir prisen 31 kroner. Hvis ikke, regnes du som voksen, og må betale 62 kroner. Vi kan beskrive dette med følgende pseudokode:\n",
+ "\n",
+ "```{code-block} text\n",
+ "hvis alder er mindre enn 18:\n",
+ " pris = 31\n",
+ "hvis ikke:\n",
+ " pris = 62\n",
+ "```\n",
+ "\n",
+ "Dersom vi oversetter denne pseudokoden til Python-kode, ser vi at logikken og strukturen er ganske lik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "if alder < 18:\n",
+ " pris = 31\n",
+ "else: \n",
+ " pris = 62\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Vi kan illustrere hvordan vilkår fungerer med et puslespill. Puslespillet nedenfor er basert på billettpriseksempelet. Løs [dette puslespillet](https://parsons.problemsolving.io/puzzle/a93e44cd81be4657b9fbd3602d9e2de9) uten å se på Python-koden ovenfor. Pass på at innrykkene er riktig! Hva tror du innrykk betyr?\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Vilkår i Python\n",
+ "La oss se på et eksempel i Python:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall = float(input(\"Tast inn et tall: \"))\n",
+ "if tall > 1:\n",
+ " print(\"Hurra, tallet er større enn 1!\")\n",
+ "```\n",
+ "\n",
+ "Programmet ber brukeren om å taste inn et vilkårlig tall som deretter konverteres til flyttall. Vilkåret starter med _if_, etterfulgt av variabelnavnet. Deretter gir vi et kriterium som skal sjekkes. Her tester vi om tallet er større enn 1. Dersom det er større enn 1, skrives det ut en beskjed. Vi må ha et kolon etter første linje, og innrykk på alt som hører til det spesifikke kriteriet. Dersom kriteriet ikke er oppfylt, skjer det ingen ting. Dersom vi vil at det skal skje noe selv om kriteriet ikke er oppfylt, kan vi legge til _else_-kommandoen:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall = float(input(\"Tast inn et tall: \"))\n",
+ "if tall > 1:\n",
+ " print(\"Hurra, tallet er større enn 1!\")\n",
+ "else:\n",
+ " print(\"Tallet er ikke større enn 1.\")\n",
+ "```\n",
+ "Dersom kriteriet (tall > 1) ikke er sant, blir beskjeden etter _else_ skrevet ut. Vi kan legge til enda flere kriterier ved å bruke _elif_ (forkortelse for _else if_):\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall = float(input(\"Tast inn et tall: \"))\n",
+ "if tall > 1:\n",
+ " print(\"Hurra, tallet er større enn 1!\")\n",
+ "elif tall < 1:\n",
+ " print(\"Tallet er mindre enn 1!\")\n",
+ "else:\n",
+ " print(\"Tallet er 1!\")\n",
+ "```\n",
+ "\n",
+ "Det er en logisk konklusjon at tallet _er_ 1 dersom det verken er større eller mindre enn 1. For å være helt sikre, kan vi erstatte else-kommandoen med nok en elif-kommando:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall = float(input(\"Tast inn et tall: \"))\n",
+ "if tall > 1:\n",
+ " print(\"Hurra, tallet er større enn 1!\")\n",
+ "elif tall < 1:\n",
+ " print(\"Tallet er mindre enn 1!\")\n",
+ "elif tall == 1:\n",
+ " print(\"Tallet er 1!\")\n",
+ "```\n",
+ "\n",
+ "Legg merke til at symbolet _==_ brukes for å teste om tallet er lik 1. Dersom vi bruker enkel likhetstegn (=) tror Python at vi prøver å tilordne en variabel. Da får vi en feilmelding. De ulike symbolene som brukes i vilkår, er oppsummert i tabellen nedenfor.\n",
+ "\n",
+ "| Symbol | Betydning |\n",
+ "| ------ | --------- |\n",
+ "| > | Større enn |\n",
+ "| < | Mindre enn |\n",
+ "| == | Er lik |\n",
+ "| <= | Mindre enn eller lik |\n",
+ "| >= | Større enn eller lik |\n",
+ "| != | Ikke lik |\n",
+ "\n",
+ "Det er noen ting å passe spesielt på når vi programmerer med vilkår:\n",
+ "- Alt som er rykket inn utføres kun hvis if-testen ovenfor er sann. Innrykk er derfor viktig for strukturen.\n",
+ "- \"elif\" står for \"else if\", og sjekker noe nytt, mens \"else\" brukes for å gjøre noe dersom ingen av kriteriene under \"if\" og \"elif\" er sanne.\n",
+ "- Det er den første if-testen som er sann i en serie av if-elif-else som utføres. Alle andre overses. Dersom vi skriver \"if\" en gang til, begynner vi på en ny serie med if-elif-else.\n",
+ "- Vi _må_ begynne med \"if\", mens \"elif\" og \"else\" er valgfritt.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program der du sjekker om et tall er positivt, negativt eller null, og skriver ut relevante setninger når de ulike kriteriene er nådd. Du kan ta utgangspunkt i programkoden i kodeboksen her:\n",
+ "```\n",
+ "\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "tall = 2\n",
+ "\n",
+ "if tall > 0:\n",
+ " print(\"Tallet er positivt\")\n",
+ "elif tall < 0:\n",
+ " print(\"Tallet er negativt\")\n",
+ "else: # Eventuelt elif tall == 0:\n",
+ " print(\"Tallet er 0\")\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Nøstede vilkår\n",
+ "Vi kan også ha vilkår inni vilkår. Dette er spesielt nyttig hvis vi skal sjekke flere ting som er avhengige av hverandre. Nedenfor ser du en svært forenklet bestemmelsesnøkkel for grunnstoffer som illustrerer prinsippet. Kanskje du kan legge inn et kriterium til som gjør bestemmelsen mer presis?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Hvilken elektronegativitet har grunnstoffet? 2.0\n",
+ "Er grunnstoffet svært reaktivt (ja/nei)? nei\n",
+ "Grunnstoffet kan for eksempel være et innskuddsmetall eller et jordalkalimetall.\n"
+ ]
+ }
+ ],
+ "source": [
+ "elektronegativitet = float(input(\"Hvilken elektronegativitet har grunnstoffet? \"))\n",
+ "if elektronegativitet > 2:\n",
+ " print(\"Grunnstoffet er mest sannsynlig et ikke-metall.\")\n",
+ "else:\n",
+ " reaktivt = input(\"Er grunnstoffet svært reaktivt (ja/nei)? \")\n",
+ " if reaktivt == \"ja\":\n",
+ " print(\"Grunnstoffet er mest sannsynlig et alkalimetall.\")\n",
+ " elif reaktivt == \"nei\":\n",
+ " print(\"Grunnstoffet kan for eksempel være et innskuddsmetall eller et jordalkalimetall.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk flytskjemaet nedenfor som utgangspunkt for et program som finner ut hva slags bergart du har oppdaget.\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "print(\"Velkommen til bestemmelsesnøkkel for bergarter!\")\n",
+ "prikker = input(\"Er mønsteret i steinen prikkete (ja/nei)? \")\n",
+ "if prikker == \"ja\":\n",
+ " print(\"Du har funnet en magmatisk bergart.\")\n",
+ "elif prikker == \"nei\":\n",
+ " striper = input(\"Er mønsteret i steinen stripete (ja/nei)? \")\n",
+ " if striper == \"ja\":\n",
+ " print(\"Du har funnet en metamorf bergart.\")\n",
+ " elif striper == \"nei\":\n",
+ " print(\"Du har funnet en sedimentær bergart.\")\n",
+ " else:\n",
+ " print(\"Vennligst svar 'ja' eller 'nei'\")\n",
+ "else:\n",
+ " print(\"Vennligst svar 'ja' eller 'nei'\")\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "```{admonition} Oppgave 3.1\n",
+ ":class: tip\n",
+ "Forklar hvorfor de to ulike programmene nedenfor gir ulike output.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = 10\n",
+ "if a > 5:\n",
+ " a = a + 5\n",
+ "a = a + 2\n",
+ "print(a)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = 10\n",
+ "if a > 5:\n",
+ " a = a + 5\n",
+ "else:\n",
+ " a = a + 2\n",
+ "print(a)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Verdien til _a_ er større enn 5. Dette gjør at programmet vil gjøre det som står under _if_ i begge programmene.\n",
+ "\n",
+ "Første program vil utføre _a = a + 2_ etter if -testen uansett om _a > 5_ stemmer eller ikke. Dette er fordi _a = a + 2_ ikke er en del av if-testen.\n",
+ "\n",
+ "Siden andre kodesnutt bruker en else-kommando, vil _a = a + 2_ utføres kun når _a_ ikke er større enn 5. Siden verdien til _a_ er større enn 5, vil programmet utføre det som står under _if_.\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 3.2\n",
+ ":class: tip\n",
+ "Lag et program som spør brukeren om alderen til brukeren. Skriv ut en kommentar som avhenger av om alderen er under eller over 17. Utvid programmet til å skille mellom flere aldre.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "alder = int(input(\"Hvor gammel er du? \"))\n",
+ "if alder < 17:\n",
+ " print(\"Dra tilbake til barnehagen!\")\n",
+ "elif alder == 17:\n",
+ " print(\"Du er i din beste alder\")\n",
+ "elif alder < 25:\n",
+ " print(\"Voksenlivet nærmer seg!\")\n",
+ "else:\n",
+ " print(\"Dra tilbake til gamlehjemmet!\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 3.3\n",
+ ":class: tip\n",
+ "Lag et program som tar en poengsum som input. Programmet skal finne ut hvilken karakter du får dersom maks poengsum er 60 poeng. Finn på karaktergrenser selv.\n",
+ "\n",
+ "Utvid programmet med en maks poengsum. Programmet skal benytte prosenter av denne makssummen til å regne ut sluttkarakteren. Lag prosentgrensene selv.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "maks_poeng = int(input(\"Hva er maks poengsum? \"))\n",
+ "poengsum = int(input(\"Hvor mange poeng fikk du? \"))\n",
+ "\n",
+ "prosent1 = 20\n",
+ "prosent2 = 40\n",
+ "prosent3 = 60\n",
+ "prosent4 = 80\n",
+ "prosent5 = 95\n",
+ "\n",
+ "grense1 = maks_poeng /100*prosent1\n",
+ "grense2 = maks_poeng /100*prosent2\n",
+ "grense3 = maks_poeng /100*prosent3\n",
+ "grense4 = maks_poeng /100*prosent4\n",
+ "grense5 = maks_poeng /100*prosent5\n",
+ "\n",
+ "if poengsum < grense1 :\n",
+ " karakter = 1\n",
+ "elif poengsum < grense2 :\n",
+ " karakter = 2\n",
+ "elif poengsum < grense3 :\n",
+ " karakter = 3\n",
+ "elif poengsum < grense4 :\n",
+ " karakter = 4\n",
+ "elif poengsum < grense5 :\n",
+ " karakter = 5\n",
+ "else: # poengsum må være større enn grense5\n",
+ " karakter = 6\n",
+ "\n",
+ "print(\"Du fikk karakteren\", karakter)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 3.4\n",
+ ":class: tip\n",
+ "Lag et program som tar to tall som input. Programmet skal skrive ut hvilket av de to tallene som er størst.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "tall1 = int(input(\"Skriv et tall: \"))\n",
+ "tall2 = int(input(\"Skriv et til tall: \"))\n",
+ "\n",
+ "if tall1 > tall2:\n",
+ " største = tall1\n",
+ "else:\n",
+ " største = tall2\n",
+ "print(\"Det største tallet av\", tall1 ,\"og\", tall2,\"er:\", største)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 3.5\n",
+ ":class: tip\n",
+ "Løs [dette programmeringspuslespillet](https://parsons.problemsolving.io/puzzle/504b4747ca87467082de3065086f579f). Programmet skal skrive ut antallet løsninger i en andregradslikning. Når du er ferdig, kan du prøve [dette puslespillet](https://parsons.problemsolving.io/puzzle/a970c2ff61754fc890f786bf6db5ac61), som er en litt mer avansert variant. Forklar forskjellen på programmene.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 3.6\n",
+ ":class: tip\n",
+ "Lag et program som tar utgangspunkt i puslespillet ovenfor. Programmet skal også regne ut hva løsningene er.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "a = 1\n",
+ "b = -3\n",
+ "c = 2\n",
+ "\n",
+ "rotuttrykk = b**2 - 4*a*c\n",
+ "\n",
+ "if rotuttrykk > 0:\n",
+ " x1 = (-b + rotuttrykk**0.5)/(2*a)\n",
+ " x2 = (-b - rotuttrykk**0.5)/(2*a)\n",
+ " print(\"Likningen har løsningene x1 =\", x1, \"og x2 =\", x2)\n",
+ "elif rotuttrykk == 0:\n",
+ " x = -b/(2*a)\n",
+ " print(\"Likningen har løsningen x = \", x)\n",
+ "else:\n",
+ " print(\"Likningen har ingen reelle løsninger.\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 3.7\n",
+ ":class: tip\n",
+ "Lag en kalkulator der brukeren må taste inn to tall og en regneoperasjon. Du bestemmer selv hvor mange regneoperasjoner programmet skal håndtere.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "tall1 = float(input(\"Første tall: \"))\n",
+ "op = input(\"Velg operasjon ( + , - , / , * ): \")\n",
+ "tall2 = float(input(\" Andre tall: \"))\n",
+ "\n",
+ "if op == \"+\":\n",
+ " resultat = tall1 + tall2\n",
+ "elif op == \"-\":\n",
+ " resultat = tall1 - tall2\n",
+ "elif op == \"/\":\n",
+ " resultat = tall1 / tall2\n",
+ "elif op == \"*\":\n",
+ " resultat = tall1 * tall2\n",
+ "else:\n",
+ " resultat = \"udefinert \"\n",
+ "print(tall1, op, tall2, \"=\", resultat)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Fysikkoppgave\n",
+ ":class: tip\n",
+ "Lag et program der du kan taste inn bølgelengden til synlig lys i nm og få ut hvilken farge lyset har. Utvid eventuelt programmet med andre deler av det elektromagnetiske spekteret.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "bl = float(input(\"Skriv inn lysets bølgelengde i nm: \"))\n",
+ "\n",
+ "if 380 <= bl < 420:\n",
+ " farge = \"fiolett\"\n",
+ "elif 420 <= bl < 490:\n",
+ " farge = \"blå\"\n",
+ "elif 490 <= bl < 575:\n",
+ " farge = \"grønn\"\n",
+ "elif 575 <= bl < 585:\n",
+ " farge = \"gul\"\n",
+ "elif 585 <= bl < 650:\n",
+ " farge = \"oransje \"\n",
+ "elif 650 <= bl <= 750:\n",
+ " farge = \"rød\"\n",
+ "else:\n",
+ " farge = \"udefinert \"\n",
+ "print(\"Fargen til lyset er:\", farge )\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Kjemioppgave\n",
+ ":class: tip\n",
+ "Lag et program som tar konsentrasjonen av oksoniumioner ($H_3O^+$) som input. Programmet skal skrive ut om løsningen med denne pH-en er sur, basisk eller nøytral.\n",
+ "\n",
+ "$$pH = -log([H_3O^+])$$\n",
+ "\n",
+ "Her står $[H_3O^+]$ for konsentrasjonen av $H_3O^+$-ioner. Test programmet med $[H_3O^+] = 1\\cdot 10^{-7}$. Dette bør gi nøytral løsning.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from numpy import log10\n",
+ "\n",
+ "oksonium = float(input(\"[H3O+]: \"))\n",
+ "pH = -log10(oksonium)\n",
+ "\n",
+ "if pH < 7:\n",
+ " print(\"Løsningen er sur.\")\n",
+ "elif pH > 7:\n",
+ " print(\"Løsningen er basisk.\")\n",
+ "elif pH == 7: # Eventuelt else:\n",
+ " print(\"Løsning er nøytral.\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Biologioppgave\n",
+ ":class: tip\n",
+ "Vi skal se på en populasjon av mennesker og ser på et gen som finnes i to varianter: $a$ og $A$. Andelen av populasjonen som har variant $A$ kan vi kalle for $p$ og andelen av populasjonen som har variant $a$ kan vi kalle for $q$. Verdiene til $p$ og $q$ må være mellom 0 og 1. \n",
+ "Siden alle i populasjonen vil ha enten $a$ eller $A$ (eller begge), må $p + q = 1$.\n",
+ "\n",
+ "Populasjonen sies å være i _Hardy-Weinberg-likevekt_ dersom verdiene til $p$ og $q$ ikke forandrer seg under forutsetningen at det foregår tilfeldig paring, ingen mutasjoner, ingen naturlig seleksjon og ingen evolusjon i populasjonen.\n",
+ "\n",
+ "Dersom populasjonen er i Hardy-Weinberg-likevekt kan en finne andelen til de tre mulige genotypene til menneskene i populasjonen:\n",
+ "- $AA$ : $p^2$ \n",
+ "- $Aa$ : $2pq$\n",
+ "- $aa$ : $q^2$\n",
+ "\n",
+ "Lag et program som ber brukeren om verdien til $p$ og $q$.\n",
+ "Programmet skal så teste om $ p + q = 1$. Hvis summen er 1, skal programmet regne ut andelene til de tre mulige genotypene, og skrive dem ut. Hvis summen ikke er 1, skal programmet skrive en feilmelding.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "p = float(input(\" Hvor stor andel har genvariant A?: \"))\n",
+ "q = float(input(\" Hvor stor andel har genvariant a?: \"))\n",
+ "if p + q == 1:\n",
+ " AA = p**2\n",
+ " Aa = 2*p*q\n",
+ " aa = q**2\n",
+ " print(\" Andel som har genotype AA:\", round(AA,2))\n",
+ " print(\" Andel som har genotype Aa:\", round(Aa,2))\n",
+ " print(\" Andel som har genotype aa:\", round(aa,2))\n",
+ "else:\n",
+ " print(\"Summen av p og q er ikke lik 1!\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Sammensatt oppgave\n",
+ ":class:tip\n",
+ "Lag et lite eventyrspill der spilleren får ulike valg underveis, og historien formes av valgene spilleren tar. Du kan gjerne bruke input-funksjonen for å gi spilleren ulike valg. Det blir gjerne mange if-tester inni if-tester, så hold styr på innrykkene dine.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Video\n",
+ "Se videoen nedenfor for å få en gjennomgang av det viktigste når vi skal programmere if-tester i Python:\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/kom_i_gang.ipynb b/_sources/docs/tema1_grunnleggende_programmering/kom_i_gang.ipynb
new file mode 100644
index 00000000..b0dcef61
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/kom_i_gang.ipynb
@@ -0,0 +1,56 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# En første kodesnutt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Oppgaver for nybegynnere\n",
+ "1. Lag et program som skriver ut summen og produktet av to tall.\n",
+ "2. Definer tre variabler med hver sin datatype (streng, heltall og flyttall). Skriv så ut disse variablene.\n",
+ "3. Lag et program som regner ut volumet til ei kule: $V_{kule} = \\frac{4}{3} \\pi r^3$\n",
+ "4. Lag et program som regner ut radius til en sirkel med arealet 4.\n",
+ "\n",
+ "### Oppgaver for de som kan litt fra før\n",
+ "1. Lag et program som avgjør om et tall er positivt, negativt eller null, gitt input fra brukeren av programmet.\n",
+ "2. Lag et program som skriver ut alle partall fra og med 0 til 99.\n",
+ "3. Lag et program som regner ut summen av de 499 første heltallene.\n",
+ "4. Lag en funksjon som regner ut volumet av ei kule. Bruk funksjonen til å regne ut volumet til ei kule med radius 3 cm."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/lister.ipynb b/_sources/docs/tema1_grunnleggende_programmering/lister.ipynb
new file mode 100644
index 00000000..194d5dac
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/lister.ipynb
@@ -0,0 +1,244 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Lister\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. opprette lister\n",
+ "2. gjør ulike operasjoner på lister (NB: Du trenger ikke pugge operasjonene!)\n",
+ "3. trekke ut informasjon av lister ved hjelp av indekser\n",
+ "```\n",
+ "\n",
+ "Når vi trenger å spare på flere verdier i samme variabel, kan vi benytte _lister_. Lister er samlinger med tall, strenger eller annet. Lister i Python markeres ved å sette objektene i klammeparentes:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "dyr = [\"gaupe\", \"torndjevel\", \"bjørnedyr\", \"blobfisk\", \"sjøkneler\"]\n",
+ "tall = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n",
+ "```\n",
+ "\n",
+ "Lister defineres altså gjennom klammeparentesen, og elementene i lista skilles med komma. Vi kan også gjøre ulike listeoperasjoner, som å legge til og slette elementer. La oss bruke lista med dyr som eksempel:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "dyr = [] \t\t # Lager ei tom liste\n",
+ "aper = [\"stumpneseape\", \"spøkelsesape\", \"neseape\"] # Lager ei liste\n",
+ "dyr.append(\"komodovaran\") # Legger til et element til dyrelista\n",
+ "dyr.append(\"glaucus atlanticus\")\t # Legger til et dyr til\n",
+ "dyr.extend(aper) # Legger hele apelista inn i dyrelista\n",
+ "dyr.remove(\"neseape\") # Sletter elementet \"neseape\"\n",
+ "dyr.pop(1) \t # Sletter element nr. 1 i lista\n",
+ "dyr.reverse() # Reverserer lista\n",
+ "\n",
+ "print(dyr)\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Hva slags output gir programmet ovenfor? Prøv å forstå hva som skjer uten datamaskin, og test så programmet for å se om du hadde rett.\n",
+ "```\n",
+ "\n",
+ "Plassnummeret til et element i lista kaller vi _indeks_. Indeksen angis ofte i klammeparentes. Vi kan også sortere lista, finne lengden av lista og finne de elementene vi ønsker. \n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Kjør programmet nedenfor og forklar hva som skjer.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "Men vent nå litt! Vi ser at lista inneholder ni elementer -- hvorfor står det at nummer 94 står på plass nr. 7 når vi ser at det er nest sist i lista (altså på plass nr. 8)? Det er fordi indekser i Python, og mange andre språk, starter på 0. Det vil si at indeksen til det første totallet er 0, og til det siste elementet (102) er 8. Ei liste med $n$ elementer har elementer med indekser fra $0$ til $n - 1$.\n",
+ "\n",
+ "Vi kan finne og bruke ulike elementer i ei liste ved å bruke indeksene til elementet. Vi trenger med andre ord ikke behandle hele lista hver gang vi trenger noen elementer derfra:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "liste = [1.3, 5.6, -2.0, 3.5, -3.5]\n",
+ "A = liste[2]\t\t# A får verdien til element 2 i lista \n",
+ "B = liste[1:3]\t\t# B blir ei liste med element 1 til og med 2\n",
+ "C = liste[2:]\t\t# C blir ei liste med element 2 og sluttelementet\n",
+ "D = liste[:2]\t\t# D blir ei liste med element 0 til og med 1 (til 2)\n",
+ "E = liste[-1] # E får verdien til det siste elementet i lista\n",
+ "F = liste[-2] # F får verdien til det nest siste elementet i lista\n",
+ "```\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Hvilken verdi får variablene A, B, C, D, E og F ovenfor?\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Indekser angir plasseringen i lista. Dersom indeksen er negativ, teller vi baklengs, altså fra det siste elementet og bakover. Husk at Python teller fra 0, ikke fra 1. Kolon angir \"til\", så 1:3 betyr fra og med element 1 til, men ikke med, element 3 (det vil si element 1 og 2). Når det ikke står noe foran kolon, tolkes det som fra det første elementet (element nummer 0). Når det ikke står noe etter kolon, tolkes det som til og med det siste elementet (element nummer -1). Vi får derfor:\n",
+ "\n",
+ "A: -2.0\n",
+ "B: [5.6, -2.0]\n",
+ "C: [-2.0, 3.5, -2.5]\n",
+ "D: [1.3, 5.6]\n",
+ "E: -3.5\n",
+ "F: 3.5\n",
+ "```\n",
+ "\n",
+ "Det er noen andre operasjoner som en kan gjøre med lister. I tillegg er det ofte flere måter å gjøre ting på. La oss lage et par tallister og gjøre noen operasjoner på disse.\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Prøv ut programmet ovenfor og forklar hva som skjer. Endre gjerne på noen av operasjonene og se hva utfallet blir. Utvid også programmet slik at det skriver ut det siste elementet i lista _c_. Skriv også ut alle elementer bortsett fra det første.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "print(c[-1])\n",
+ "print(c[1:])\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Siden vi sletter element nr. 2 (som er tallet 3), får vi beskjed om at 3 ikke er i c lenger (\"False\"). Legg også merke til at når vi legger sammen listene, er det omtrent det samme som å bruke kommandoen _extend_.\n",
+ "\n",
+ "## Oppgaver\n",
+ "````{admonition} Oppgave 2.1\n",
+ ":class: tip\n",
+ "Forklar for hvert program hvorfor det gir følgende output:\n",
+ "```{code-block} Python\n",
+ "a = [1,2,3,4,5,6,7,8,9]\n",
+ "b = a[1] + a[5]\n",
+ "print(b)\n",
+ "```\n",
+ "*Output:* 8\n",
+ "\n",
+ "```{code-block} Python\n",
+ "liste = [1,2,3,4,5]\n",
+ "liste1 = liste[:3]\n",
+ "liste.pop(1)\n",
+ "liste1.reverse()\n",
+ "del liste1[2]\n",
+ "liste += liste1\n",
+ "print(liste)\n",
+ "```\n",
+ "*Output:* [1, 3, 4, 5, 3, 2]\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "1. Siden _a[1]_ henter ut andre element i lista _a_, vil _a[1] = 2_. Siden _a[5]_ henter ut sjette element i lista, vil _a[5] = 6_. Dette gir at _b = a[1] + a[5] = 2 + 6 = 8_.\n",
+ "\n",
+ "2. Vi kan beskrive programflyten steg for steg slik:\n",
+ "- Lista _liste[:3]_ består av de tre første elementene fra _liste_. Dette gir at _liste1 = [1,2,3]_.\n",
+ "- Ved å skrive _liste.pop(1)_, fjernes elementet med indeks 1 fra _liste_. Elementet med indeks 1 er 2. Nå er _liste = [1,3,4,5]_.\n",
+ "- Kommandoen _liste1.reverse()_ reverserer liste1. Nå er _liste1 = [3,2,1]_.\n",
+ "- Ved å skrive _del liste1[2]_ fjernes elementet med indeks 2 fra _liste1_, altså 1. Nå er _liste1 = [3,2]_.\n",
+ "- Siden _liste += liste1_ er det samme som _liste + liste1_, vil _liste_ bli utvida med _liste1_. Da vil _liste = liste + liste1 = [1,3,4,5] + [3,2] = [1,3,4,5,3,2]_.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 2.2\n",
+ ":class: tip\n",
+ "Du får gitt ei liste som ser slik ut:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "['dette','er','en','ganske','lang','liste','med','ikke', 'så','viktig','innhold']\n",
+ "```\n",
+ "Lag ei ny liste der programmet henter relevante elementer fra den gitte lista. Når du skriver ut den nye lista, skal du få:\n",
+ "['dette','er','en','liste','med','viktig','innhold']\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "liste = [\"dette\", \"er\", \"en\", \"ganske\", \"lang\", \"liste\" ,\"med\" ,\"ikke\", \"så\", \"viktig\" ,\"innhold\"]\n",
+ "ny_liste = liste [:3] + liste [5:7] + liste [9:]\n",
+ "print(ny_liste)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 2.3\n",
+ ":class: tip\n",
+ "\n",
+ "Skriv om linja som endrer på lista _a_ slik at _i1_ og _i2_ har forskjellige verdier. \n",
+ "\n",
+ "```{code-block} Python\n",
+ "a = [1,5,2,5,2,4,4,2]\n",
+ "i1 = a.index(2)\n",
+ "print(\"i1 =\",i1)\n",
+ "del a[7]\n",
+ "i2 = a.index(2)\n",
+ "print(\"i2 =\",i2)\n",
+ "```\n",
+ "````\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "a = [1,5,2,5,2,4,4,2]\n",
+ "i1 = a.index(2)\n",
+ "print(\"i1 =\", i1)\n",
+ "del a[2]\n",
+ "i2 = a.index(2)\n",
+ "print(\"i2 =\", i2)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "## Video\n",
+ "Se videoen nedenfor for en innføring eller repetisjon til lister."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/1ZeRsnlxU4A? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/lokker.ipynb b/_sources/docs/tema1_grunnleggende_programmering/lokker.ipynb
new file mode 100644
index 00000000..ed5d8370
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/lokker.ipynb
@@ -0,0 +1,1028 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Løkker\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. bruke while- og for-løkker til å gjenta kode\n",
+ "2. tegne geometriske mønstre med turtle-grafikk\n",
+ "3. beregne rekkesummer\n",
+ "4. løse naturvitenskapelige problemer med løkker\n",
+ "```\n",
+ "\n",
+ "## Definisjon\n",
+ "\n",
+ "Den kanskje viktigste strukturen i programmering er løkker. De lar datamaskinen gjenta en operasjon så mange ganger vi vil. Det er dette som er datamaskinens styrke.\n",
+ "\n",
+ "```{admonition} Løkker\n",
+ "En løkke er en struktur som gjør at vi kan gjenta kode. Ofte skiller vi mellom en _telleløkke_, som gjentar noe et visst antall ganger, og en _tilstandsløkke_, som gjentar seg så lenge noe er sant. I Python heter disse henholdsvis _for_-løkke og _while_-løkke.\n",
+ "```\n",
+ "\n",
+ "## Skilpaddegrafikk\n",
+ "Vi skal se hvordan løkker fungerer ved å introdusere deg for en skilpadde. Han heter Gunnar. Her er han:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Gunnar følger enkle kommandoer, som \"forward\", \"backward\", \"right\" og \"left\".\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Endre programmet ovenfor slik at Gunnar tegner en trekant. Hva er sammenhengen mellom vinkelen som skilpadden snur og vinklene i trekanten?\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Du kan tegne hvilken som helst trekant, men dersom vi velger en likesidet trekant, må alle vinkler være 60 grader (slik at summen av de tre vinklene er 180 grader). Men vi kan ikke snu skilpadden 60 grader mot venstre. Da blir ikke den indre vinkelen i trekanten 60 grader. Det er altså forskjell på å snu 60 grader og lage en vinkel på 60 grader. Siden en helomvending er 180 grader, må skilpadden snu 180 - 60 = 120 grader for at vinklene i trekanten skal være 60 grader.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from turtle import *\n",
+ "\n",
+ "shape(\"turtle\") # gir pekeren skilpaddeform \n",
+ "color(\"limegreen\") # gjør skilpadden limegrønn\n",
+ "forward(100) # går framover 100 steg\n",
+ "left(120) # vender 30 grader mot høyre (går ikke framover)\n",
+ "forward(100) # går framover 100 steg\n",
+ "left(120)\n",
+ "forward(100)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "### Skilpadder i løkker\n",
+ "Å tegne en trekant krever få linjer kode, men hva hvis du vil tegne en åttekant, en førtitokant, eller en nittisekskant? Det er slitsomt og kjedelig å skrive samme kommando hundrevis av ganger. Og det er totalt unøvdendig. Vi bruker nemlig løkker til å gjenta kode, for eksempel slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Prøv å forklare hvordan programmet ovenfor fungerer. Hva tror du \"for i in range(n)\" betyr? Hva tror du _i_ er?\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Programmet tegner en regulær (likesidet) mangekant. Vi velger først antall sider og en sidelengde. Vi regner så ut hva vinklene i mangekanten må være. Deretter går vi inn i en løkke. Helt enkelt kan vi si at løkka repeterer alt som står rykket inn (med tab) _n_ ganger. Skilpadden går altså framover (50) og snur (45), og dette gjentas _n_ ganger.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Mer komplisert/grundig løsning\n",
+ ":class: tip, dropdown\n",
+ "Vi kan forklare programmet ovenfor litt grundigere med at \"for i in range(n)\" betyr at for hver verdi av en variabel _i_, skal løkka gjentas. Variabelen _i_ får hver verdi i intervallet [0, 1, 2, 3, ..., n-1], som lages med funksjonen _range_. Det betyr at første gang løkka kjører, er $i = 0$, andre gang $i = 1$ og så videre. Løkka gjentas helt til $i = n - 1$, altså til, men ikke med verdien _n_.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Modifiser programmet ovenfor slik at skilpadden Gunnar tegner en 20-kant.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Det er så enkelt som å endre _n_ til 20. Problemet er at 20-kanten blir litt stor, så vi kan også med fordel endre sidelengden, for eksempel til 25.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Få Gunnar til å tegne et menneske eller en blomst.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsning\n",
+ ":class: tip, dropdown\n",
+ "Mulighetene er uendelige, men her er et vakkert eksemplar av et menneske\n",
+ "```{code-block} Python\n",
+ "from turtle import *\n",
+ "\n",
+ "n = 100\n",
+ "vinkel = 360/n\n",
+ "\n",
+ "for i in range(n):\n",
+ " forward(3)\n",
+ " left(vinkel)\n",
+ " \n",
+ "right(90)\n",
+ "forward(50)\n",
+ "\n",
+ "for i in range(2):\n",
+ " left(120)\n",
+ " forward(75)\n",
+ " backward(75)\n",
+ "\n",
+ "left(120)\n",
+ "forward(50)\n",
+ "\n",
+ "right(30)\n",
+ "forward(75)\n",
+ "backward(75)\n",
+ "left(60)\n",
+ "forward(75)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## While-løkker\n",
+ "Vi har to typer løkker i Python: while-løkker (tilstandsløkker) og for-løkker (telleløkker). While-løkker gjentar noe helt til et kriterium er nådd. Her er et eksempel:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Programmet kjører så lenge variabelen _partall_ har en verdi som er mindre enn eller lik 10. Alt som er rykket inn, gjentas hver gang løkka går. Programmet skriver derfor ut alle positive partall (og 0) som er mindre enn eller lik 10.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Modifiser programmet ovenfor slik at programmet skriver ut alle positive _oddetall_ under 10.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "oddetall = 1\n",
+ "\n",
+ "while oddetall < 10:\n",
+ " print(oddetall)\n",
+ " oddetall = oddetall + 2\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## For-løkker\n",
+ "I for-løkker lager vi en _teller_ eller _tellevariabel_ som går igjennom en slags liste med tall. Denne listeliknende tallmengden kan vi lage med funksjonen _range_. Her er noen eksempler:\n",
+ "\n",
+ "| kommando | liste |\n",
+ "| -------- | --------- |\n",
+ "| range(3) | [0, 1, 2] |\n",
+ "| range(2,4) | [2, 3] |\n",
+ "| range(1,8,2) | [1, 3, 5, 7] |\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hvordan _range_-funksjonen fungerer med utgangspunkt i eksemplene ovenfor.\n",
+ "```\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Vi kan skrive en generell range-kommando slik: range(fra og med, til, steglengde). Vi kaller de tre tallene i range-funksjonen for _argumenter_. Dersom vi kun bruker ett argument, for eksempel _range(3)_, får vi en mengde fra 0 til, men ikke med, 3 (som er spesifisert), med steglengde 1, altså er hvert heltall med. Dersom vi bruker to argumenter, som i _range(2,4)_, får vi en tallmengde fra 2 til, men ikke med, 4, med en automatisk steglengde på 1. Dersom vi bruker tre argumenter, gir vi også steglengden, for eksempel hvert andre tall mellom 1 og 8, som i _range(1,8,2)_.\n",
+ "```\n",
+ "\n",
+ "Et enkelt eksempel på en for-løkke er slik:\n",
+ "```{code-block} Python\n",
+ "for i in range(5):\n",
+ " print(i)\n",
+ "```\n",
+ "Vi kan også gjøre noe mer enn å telle i løkka:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "a = 2\n",
+ "for i in range(5):\n",
+ " print(i)\n",
+ " a = a + i\n",
+ " \n",
+ "print(a)\n",
+ "```\n",
+ "Så hva betyr dette? Helt enkelt betyr det at alt som er rykket inn (med tab eller fire mellomrom), blir gjentatt 5 ganger. Operasjonen der vi oppdaterer _a_ er \n",
+ "\n",
+ "Hvis vi skal forklare litt mer presist hva som skjer, kan vi si at _range_-funksjonen lager en tallmengde [0, 1, 2, 3, 4], og at _i_ blir tilordnet hver av disse verdiene etter tur. Første gang løkka går, er $i = 0$. Da printes denne verdien, og $a = 2 + 0 = 2$. Deretter gjentas alt inni løkka på nytt, og _i_ får verdien 1. Så gjentas det som står rykket inn en gang til: Vi printer 1, og $a = 2 + 1 = 3$. Slik fortsetter det til og med $i = 4$. Når _i_ har hatt alle verdiene i tallmengden, avsluttes løkka.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Vi kan systematisere løkkene med en _løkketabell_. Den holder styr på hva verdien til de ulike variablene er underveis i løkka. Fyll inn resten av løkketabellen for løkka ovenfor.\n",
+ "\n",
+ "| Løkkerunde | i | a |\n",
+ "|---|---|---|\n",
+ "|Startverdi| - | 2 |\n",
+ "| 1 | 0 | 2 |\n",
+ "| 2 | 1 | 3 |\n",
+ "| 3 | | |\n",
+ "| 4 | | | \n",
+ "| 5 | | |\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "| Løkkerunde | i | a |\n",
+ "|---|---|---|\n",
+ "|Startverdi| - | 2 |\n",
+ "| 1 | 0 | 2 |\n",
+ "| 2 | 1 | 3 |\n",
+ "| 3 | 2 | 5 |\n",
+ "| 4 | 3 | 8 | \n",
+ "| 5 | 4 | 12 |\n",
+ "```\n",
+ "\n",
+ "I for-løkker kaller vi ofte tellevariabelen for _i_, _j_, _k_ eller liknende, men den kan egentlig hete hva som helst. I tillegg trenger vi ikke å _gjøre_ noe med tellevariabelen. Mange ganger brukes den bare for å telle. Her er et eksempel:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Modifiser programmet ovenfor slik at det skriver ut hvor mye penger du har etter et visst antall år. Lag en variabel som inneholder antall år, og som du bruker i løkka. Legg også inn hensiktsmessige kommentarer.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "penger = 100 # kroner i banken\n",
+ "renter = 1.025 # Rente (1+x%/100) \n",
+ "tid = 25 # Antall år pengene står i banken\n",
+ "\n",
+ "for år in range(tid):\n",
+ " penger = penger*renter\n",
+ " \n",
+ "print(\"Etter\", tid, \"år har du\", round(penger, 2), \"kroner i banken.\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "## Å tenke i løkker\n",
+ "Løkker kan brukes til alt fra å summere tallrekker i matematikk til å finne ut hvor mange harer det er i økosystem etter en viss tid, finne posisjonen til et legeme eller utforske hvordan kjemiske reaksjoner foregår. Når vi skal bruke løkker, må vi dele opp problemer slik at de kan utføres trinnvis. I matematikk og naturvitenskapelige fag er det ofte slik at vi representerer sammenhenger med kontinuerlige funksjoner og formler, men når vi løser problemene med løkker, gjør vi det trinnvis. For hvert trinn, gjør vi en bestemt operasjon. Dette kalles å løse noe _iterativt_, fordi _iterasjon_ betyr gjentakelse. Litt mer uformelt kan vi kalle det å løse noe trinnvis med små, repeterende operasjoner \"å tenke i løkker\". La oss se på noen eksempler fra både matematikk og naturvitenskap.\n",
+ "\n",
+ "### Tallfølger\n",
+ "En tallfølge er en oppramsing av tall som kan være enten endelig eller uendelig. Et eksempel på en endelig tallfølge er 2, 4, 6, 8, 10, som er en tallfølge av de 5 første partallene. En berømt uendelig tallfølge er _Fibonacci-tallene_: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ..., der de tre siste prikkene sier oss at rekka er uendelig lang. Fibonacci-tallene starter på 1, og hvert tall er deretter summen av de to foregående tallene.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Beskriv mønsteret i følgen 1, 4, 7, ... og skriv opp det neste tallet i følgen.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Hvert tall er lik summen av det forrige tallet og 3. Det neste tallet må derfor være 7 + 3 = 10.\n",
+ "````\n",
+ "\n",
+ "Hvert tall i en tallfølge kalles et _ledd_. Vi kan beskrive hvert ledd i en følge med symboler, for eksempel $a_n$, der _n_ er en indeks som beskriver leddnummeret. I tallfølgen 1, 3, 5, 7, ... kan for vi for eksempel si at $a_1 = 1$ og $a_2 = 3$. Poenget med å beskrive en følge med symboler, er at vi kan lage formler for hvert generelle ledd $a_n$. Følgen 1, 3, 5, 7, ... kan beskrives med den generelle formelen $a_{n+1} = a_n + 2$, der $a_1 = 1$. En slik formel kalles en _rekursiv formel_ fordi vi tar utgangspunkt i en tidligere verdi for å regne ut neste verdi.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hvorfor $a_{n+1} = a_n + 2$ er det samme som $a_n = a_{n-1} + 2$.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Formlene beskriver det samme, men med ulike indekser. Begge sier at neste tall er lik forrige tall + 2. Den første formelen vil starte med _n = 0_. Da har vi at $a_1 = a_0 + 2$. Den andre formelen vil starte med _n = 1_. Da har vi også at $a_1 = a_0 + 2$.\n",
+ "````\n",
+ "Når vi først har kommet fram til en generell formel for en tallfølge, kan vi finne det _n_-te leddet ved hjelp av programmering. Vi bruker tallfølgen 1, 3, 7, 15, 31, ... som eksempel. Denne følgen kan vi beskrive med formelen $a_{n+1} = a_n + 2^n$. La oss finne det hundrede leddet i denne følgen:\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hva som skjer i programmet ovenfor. For å sjekke om programmet vårt fungerer, kan det være lurt å beregne tall som vi kjenner i følgen. Prøv å finne tall nr. 3, 4 og 5 for å sjekke at programmet gjør det det skal.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Programmet definerer først et tall som er med i tallfølgen, deretter hvilket ledd (nummer) vi ønsker å finne i følgen. Løkka går fra 1 til (men ikke med) _n_. Det er fordi vi allerede har et tall i følgen, $a_0 = 1$. Da trenger bare løkka å gå to ganger for å finne ledd nr. 3, og for eksempel 6 ganger for å finne ledd nr. 7, og så videre. Hvis vi teller fra 0, er tall nummer 3 lik $a_2 = 7$, tall 4 er $a_3 = 15$ og tall 5 er $a_4 = 31$\n",
+ "````\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Endre programmet ovenfor slik at det finner det 20. elementet i tallfølgen 1, 5, 11, 19, 29, ...\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Tallfølgen ovenfor kan beskrives med den rekursive formelen $a_{n+1} = a_{n} + 2n + 2$. Vi kan finne det tjuende elementet slik:\n",
+ "```{code-block} Python\n",
+ "a = 1 # første verdi i tallfølgen\n",
+ "n = 20 # n-te ledd i tallfølgen\n",
+ "\n",
+ "for i in range(1, n):\n",
+ " a = a + 2*i + 2\n",
+ "\n",
+ "print(\"Tall nummer\", n, \"i følgen er:\", a)\n",
+ "```\n",
+ "Det tjuende elementet er 419.\n",
+ "````\n",
+ "\n",
+ "### Tallrekker\n",
+ "Når vi beskriver en tallfølge som en serie med tall som adderes med hverandre, kaller vi det for en _rekke_. For eksempel er 1, 5, 11, 19, 29, ... en tallfølge, mens 1 + 5 + 11 + 19 + 29 + ... er en tallrekke. Vi kan summere slike rekker, selv om de er uendelige.\n",
+ "\n",
+ "Noen rekkesummer går mot uendelig mens andre går mot en bestemt verdi. Vi kan utlede formler for å regne ut summen av slike rekker, men vi kan også lage programmer som gjør det. La oss si at vi har denne rekka (ei såkalt uendelig geometrisk rekke):\n",
+ "\n",
+ "$1 + \\frac{2}{3} + \\frac{4}{9} + \\frac{8}{27} + ...$\n",
+ "\n",
+ "Vi kan regne ut summen av denne rekka ved å først kjenne igjen et mønster i tallmengden. Vi kan vise at det _n_-te tallet i rekka er $\\left(\\frac{2}{3}\\right)^n$. Deretter kan vi programmere ei løkke som legger sammen så mange av disse tallene som mulig. Vi tilnærmer altså den uendelige rekka med et endelig antall ledd. Det kan vi gjøre slik"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2.9999999999999987\n"
+ ]
+ }
+ ],
+ "source": [
+ "N = 100\n",
+ "S = 0\n",
+ "\n",
+ "for n in range(N):\n",
+ " S = S + (2/3)**n # summen er lik forrige sum + sum av nytt tall\n",
+ "print(S)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Den nøyaktive, analytiske verdien vi kan få dersom vi uleder en summeformel for rekka, er 3 (uten desimaltall). Men når vi legger sammen de 100 første tallene i programmet ovenfor, får vi faktisk et tall som er ganske nærme. Det er ikke verst! Vi får sjeldent helt nøyaktige svar når vi bruker slike metoder, men vi kommer ganske nærme."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Naturvitenskapelige problemer\n",
+ "\n",
+ "Det som er ekstra morsomt med å løse problemer iterativt, er at vi ofte løser ting på samme måte på tvers av ulike fag. Se bare på de tre ulike programmene nedenfor, fra fagområdene fysikk og biologi. Du kan også sammenlikne med det du har lært om følger og rekker."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "I løpet av 10 sekunder falt steinen 490.01960014606396 m.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Fysikkeksempel\n",
+ "\n",
+ "tid = 10 # slutt-tid i sekunder\n",
+ "dt = 0.001 # tidssteg mellom hver iterasjon\n",
+ "t = 0 # start-tid\n",
+ "a = 9.8 # akselerasjonen til et legeme\n",
+ "\n",
+ "v = 0 # startfart i m/s\n",
+ "s = 0 # startposisjon i m\n",
+ "\n",
+ "while t <= tid:\n",
+ " v = v + a*dt # bevegelsesformel for hastighet (konstant a)\n",
+ " s = s + v*dt # bevegelsesformel for posisjon (konstant v)\n",
+ " t = t + dt # oppdaterer tida med dt\n",
+ "\n",
+ "print(\"I løpet av\", tid, \"sekunder falt steinen\", s, \"m.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Beskriv hva programmet ovenfor gjør. Problemet kan løses relativt enkelt ved hjelp av formler, men kan du tenke deg hvorfor denne måten å gjøre det på kan være nyttig likevel?\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Antall bakterier er: 23737\n"
+ ]
+ }
+ ],
+ "source": [
+ "B0 = 100 # antall bakterier ved t = 0\n",
+ "B = B0\n",
+ "antall_timer = 30 # slutt-tid i timer\n",
+ "t = 0 # start-tid\n",
+ "vekst = 1.20 # vekstfaktor\n",
+ "\n",
+ "for i in range(antall_timer):\n",
+ " B = B*vekst\n",
+ "\n",
+ "print(\"Antall bakterier er:\", int(B))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hva programmet ovenfor gjør. Dette programmet gjør det samme som å sette t = 30 inn i funksjonen $B(t) = 100\\cdot 1.20^t$. Hva beskriver denne funksjonen, og hvorfor kan det være nyttig å lage et program for å regne ut dette når det er såpass lett å løse analytisk?\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "De to programmene ovenfor benytter samme løsningsstrategi: Ut fra en startbetingelse (startposisjon og startfart eller antall bakterier til å begynne med) regner vi ut utviklingen over tid i et system (enten posisjonen til en stein som faller, eller antall bakterier til slutt), gitt noen premisser for systemet (henholdsvis akselerasjon og vekstfaktor). Det er altså mange likheter mellom måten vi løser problemene på.\n",
+ "\n",
+ "Fordelen ved å bruke programmering til å løse slike problemer, er at det er lett generaliserbart. Selv om det finnes formler som ganske nøyaktig kan beskrive posisjonen til steinen ved enhver tid, er det ikke så lett å forutse posisjonen til en fallskjermhopper, der akselerasjonen varierer ganske mye, eller veksten til bakterier hvis den avhenger av temperatur. Alt dette er relativt enkelt å legge til i programmene våre, mens de analytiske (formelbaserte) løsningene blir veldig kompliserte, og ofte uløselige.\n",
+ "\n",
+ "For eksempel kan vi enkelt legge inn en temperaturavhengighet i bakterieveksten vår slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Antall bakterier er: 229430\n"
+ ]
+ }
+ ],
+ "source": [
+ "B = 100\n",
+ "antall_timer = 30\n",
+ "vekst_liste = [1.20, 1.30, 1.42, 1.48]\n",
+ "temperatur = 30\n",
+ "\n",
+ "for i in range(antall_timer): \n",
+ " if 30 <= temperatur <= 40: \n",
+ " vekst = vekst_liste[0]\n",
+ " elif 40 < temperatur < 52: \n",
+ " vekst = vekst_liste[1]\n",
+ " elif 53 <= temperatur <= 65: \n",
+ " vekst = vekst_liste[2]\n",
+ " else:\n",
+ " vekst = vekst_liste[3] \n",
+ " B = B*vekst \n",
+ " temperatur = temperatur + 1\n",
+ "\n",
+ "print(\"Antall bakterier er:\", int(B))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå har vi egentlig lagd ulike modeller for to forskjellige systemer. Utvikling, testing og utforsking av modeller skal vi se mye på seinere. Her er hovedpoenget at du skal se hvordan løkker kan brukes til å løse problemer på en effektiv, robust og relativt intuitiv måte."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Nøstede løkker\n",
+ "Nøstede løkker er løkker inni løkker. Da gjelder det å holde tunga rett i munnen. La oss bruke et eksempel for å forklare hvordan det virker:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "i | j\n",
+ "-----\n",
+ "0 | 1\n",
+ "0 | 2\n",
+ "1 | 1\n",
+ "1 | 2\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(\"i | j\")\n",
+ "print(\"-----\")\n",
+ "for i in range(2):\n",
+ " for j in range(1,3):\n",
+ " print(i,\"|\", j)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser at den innerste løkka, som bruker _j_ som tellevariabel, gjentas to ganger for hver gang den ytterste løkka går. Først er altså _i = 0_. Det er første runde i den ytre løkka. Mens _i = 0_ går den indre løkka to ganger, en gang for _j = 1_ og en gang for _j = 2_. Deretter går neste runde i den ytre løkka, og _i = 1_. Den indre løkka går igjen to ganger, en gang for _j = 1_ og en gang for _j = 2_. Totalt har vi altså gått fire løkkerunder.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program som printer ut denne løkketabellen:\n",
+ "\n",
+ "| a | b |\n",
+ "|---|---|\n",
+ "|1|0|\n",
+ "|1|2|\n",
+ "|1|4|\n",
+ "|2|0|\n",
+ "|2|2|\n",
+ "|2|4|\n",
+ "|3|0|\n",
+ "|3|2|\n",
+ "|3|4|\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "print(\"i | j\")\n",
+ "print(\"-----\")\n",
+ "for i in range(1,4):\n",
+ " for j in range(0,5,2):\n",
+ " print(i,\"|\", j)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "``````{tab-set}\n",
+ "`````{tab-item} Grunnleggende oppgaver\n",
+ "````{admonition} Oppgave 4.1\n",
+ ":class: tip\n",
+ "Sammenlikn programmene nedenfor. Beskriv eventuelle forskjeller og likheter.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "partall = 0\n",
+ "\n",
+ "for i in range(5):\n",
+ " partall = partall + 2\n",
+ " print(partall)\n",
+ "```\n",
+ "```{code-block} Python\n",
+ "partall = 0\n",
+ "\n",
+ "while partall < 10:\n",
+ " partall = partall + 2\n",
+ " print(partall)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Begge programmene gir samme input. I det første programmet bruker vi en telleløkke som gjentar en operasjon (legger til 2 til variabelen partall) 5 ganger. I det andre programmet bruker vi en tilstandsløkke som legger 2 til partallsvariabelene helt til partall ikke er mindre enn 10.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 4.2\n",
+ ":class: tip\n",
+ "Lag en løkketabell med utgangspunkt i følgende kode:\n",
+ "```{code-block} Python\n",
+ "a = 0\n",
+ "\n",
+ "for i in range(5):\n",
+ " a = a + 1\n",
+ " b = a*i\n",
+ "```\n",
+ "````\n",
+ "```{admonition} Løsningforslag\n",
+ ":class: tip, dropdown\n",
+ "| Løkkerunde | i | a | b |\n",
+ "|------------|---|---|---|\n",
+ "| Startverdi | - | 0 | - |\n",
+ "| 1 | 0 | 1 | 0 |\n",
+ "| 2 | 1 | 2 | 2 |\n",
+ "| 3 | 2 | 3 | 6 |\n",
+ "| 4 | 3 | 4 | 12|\n",
+ "| 5 | 4 | 5 | 20|\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 4.3\n",
+ ":class: tip\n",
+ "Lag et program som skriver ut \"Du er flink til å programmere!\" tusen ganger. Hvilken funksjon har \"tellevariabelen\" (_i_) her?\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "for i in range(1000):\n",
+ " print(\"Du er flink til å programmere!\")\n",
+ "```\n",
+ "Vi bruker ikke tellevariabelen til utregning eller output, men den teller i bakgrunnen slik at løkka går 1000 ganger. Hver gang løkka går, får variabelen _i_ en ny verdi (først 0, så 1, så 2, osv. opp til 999).\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.4\n",
+ ":class: tip\n",
+ "Programmet nedenfor skal finne summen av de 100 første tallene i en tallfølge der hvert ledd er den dobbelte av det forrige. Forklar hvordan programmet fungerer. Endre gjerne på ulike variabler og test hva utfallet blir for å forstå hvordan programmet fungerer.\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Vi starter med å definere variablene våre. Variabelen _tall_ representerer et tall som dobles hver gang vi kjører løkka, _summen_ inneholder summen av alle disse tallene, og øker med _tall_ hver gang løkka kjører. Tellevariabelen _i_ sørger for at vi legger sammen 100 tall (den går fra 0 til 99), og har ingen funksjon utenom dette. Til slutt skriver vi ut summen av alle disse tallene.\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.5\n",
+ ":class: tip\n",
+ "Skriv om programmet ovenfor slik at du benytter en while-løkke istedenfor en for-løkke.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "tall = 1\n",
+ "summen = 0\n",
+ "i = 0\n",
+ "\n",
+ "while i < 100:\n",
+ " summen = summen + tall\n",
+ " tall = tall*2\n",
+ " i = i + 1\n",
+ "\n",
+ "print(summen)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 4.6\n",
+ ":class: tip\n",
+ "Hva skrives ut i følgende program? Prøv å undersøke dette for hånd. Til slutt kan du sjekke ved å kopiere programmet inn i en editor og kjøre det.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "a = 0\n",
+ "\n",
+ "for i in range(5):\n",
+ " b = a*i\n",
+ " print(b)\n",
+ " a = a + 1\n",
+ "print(a)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Husk at print som skjer inni løkka gjør at vi får output hver gang løkka går, mens print utenfor løkka gir sluttverdien til variabelen etter at løkka har kjørt. Siden _i_ får verdien 0, 1, 2, 3 og 4, får _b_ verdien 0, 1, 4, 9 og 16, siden _a_ øker med 1 hver gang løkka går. Det betyr at 0, 1, 4, 9, 16 skrives ut, etterfulgt av sluttverdien til _a_, 5.\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.7\n",
+ ":class: tip\n",
+ "Bruk turtle-grafikk til å tegne et hus. Du bestemmer selv hvor detaljert huset skal være.\n",
+ "```\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Mulighetene er uendelige, men her er et enkelt forslag:\n",
+ "```{code-block} Python\n",
+ "from turtle import *\n",
+ "\n",
+ "for i in range(4):\n",
+ " forward(100)\n",
+ " right(90)\n",
+ " \n",
+ "for i in range(3):\n",
+ " forward(100)\n",
+ " left(120)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "`````\n",
+ "\n",
+ "`````{tab-item} Matematikk\n",
+ "```{admonition} Oppgave 4.8\n",
+ ":class: tip\n",
+ "Bruk turtle-grafikk til å tegne en hundrekant. Hva slags form minner dette deg om?\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from turtle import *\n",
+ "\n",
+ "sidelengde = 5\n",
+ "n = 100\n",
+ "vinkel = 360/n\n",
+ "\n",
+ "for i in range(n):\n",
+ " forward(sidelengde)\n",
+ " left(vinkel)\n",
+ "```\n",
+ "Hundrekanten minner om en sirkel. Det er faktisk slik at når _n_ nærmer seg uendelig, får vi en perfekt sirkel! En sirkel er altså en slags uendeligkant.\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.9\n",
+ ":class: tip\n",
+ "Programmet nedenfor skal regne ut hvor lang tid det tar før du har doblet beløpet ditt i banken gitt en årlig rente på 5 \\% og en startkapital på 5000 kroner, men programmet fungerer ikke som det skal. Hva er feil? Rett opp programmet slik at det fungerer.\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Feilen er ikke kodeteknisk, men matematisk. Vi må enten definere rente som 1.05 eller gjøre slik i løkka:\n",
+ "```{code-block} Python\n",
+ "startkapital = 5000\n",
+ "penger = startkapital\n",
+ "år = 0\n",
+ "rente = 0.05\n",
+ "\n",
+ "while penger < startkapital*2:\n",
+ " penger = penger + penger*rente\n",
+ " år = år + 1\n",
+ " \n",
+ "print(\"Det tar\", år, \"år å doble beløpet.\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.10\n",
+ ":class: tip\n",
+ "Lag et program som regner ut denne summen:\n",
+ "$\\sum_{n = 0}^{50} \\frac{1}{2^n}$\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "s = 0\n",
+ "n = 0\n",
+ "while n <= 50:\n",
+ " s = s + 1/2**n\n",
+ " n = n + 1\n",
+ "print(\"Summen er lik:\", s)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.11\n",
+ ":class: tip\n",
+ "Lag et program som regner ut denne summen:\n",
+ "\n",
+ "$\\sum_{n = 2}^{16} n^2 + n + 1$\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "s = 0\n",
+ "n = 2\n",
+ "while n <= 16:\n",
+ " s = s + (n**2 + 1 + n)\n",
+ " n = n + 1\n",
+ "print(\"Summen er lik:\", s)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.12\n",
+ ":class: tip\n",
+ "Fibonnacifølgen er en kjent tallfølge med heltall der hvert tall etter det første er summen av de to foregående. Følgen starter slik: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...\n",
+ "\n",
+ "Lag et program som finner tall nr. _n_ i rekka.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "x0 = 0\n",
+ "x1 = 1\n",
+ "n = 100\n",
+ "\n",
+ "for i in range(n):\n",
+ " print(f'Fibonaccitall nr. {i+1} er: {x1}')\n",
+ " x0_ny = x1\n",
+ " x1 = x1 + x0\n",
+ " x0 = x0_ny\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.13\n",
+ ":class: tip\n",
+ "Lag et program som viser at summen av denne rekka er 4.5:\n",
+ "\n",
+ "$\\displaystyle 3 + 1 + \\frac{1}{3} + \\frac{1}{9} + \\frac{1}{27} + ...$\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Rekka kan skrives slik: $3 + \\sum^{\\infty}{i=0} \\frac{1}{3**i}$. Vi kan ikke summere et uendelig antall ledd på en datamaskin. Derfor tilnærmer vi svaret ved å bruke svært mange ledd, for eksempel 10 000.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "N = 10000\n",
+ "s = 3\n",
+ "for i in range(N+1): # for at rekka summes fra og med 0 til og med N\n",
+ " s = s + 1/3**i\n",
+ "print(s)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.14\n",
+ ":class: tip\n",
+ "I kombinatorikk er _n-fakultet_ definert som produktet av alle heltall fra og med 1 til og med _n_. Dette kan vi skrive slik:\n",
+ "\n",
+ "$n! = \\prod_{k=1}^{n} k$\n",
+ "\n",
+ "Lag en funksjon som regner ut fakultetet av et tall.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "n = int(input(\"Skriv inn n:\"))\n",
+ "fakultet = 1\n",
+ "for k in range(1, n+1) :\n",
+ " fakultet = fakultet*k\n",
+ "print(\"n! =\", fakultet)\n",
+ "```\n",
+ "````\n",
+ "`````\n",
+ "\n",
+ "`````{tab-item} Naturvitenskap\n",
+ "```{admonition} Oppgave 4.15 (biologi)\n",
+ ":class: tip\n",
+ "Tøffeldyr formerer seg ukjønnet annenhver time dersom de befinner seg i en omgivelse med temperatur på $20 ^{\\circ}C$.\n",
+ "\n",
+ "Skriv et program som regner ut og skriver ut hvor mange tøffeldyr det vil være dersom vi begynner med 5 tøffeldyr som formerer seg ukjønnet i løpet av 24 timer. Du kan anta at ingen tøffeldyr dør.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "toeffeldyr = 5\n",
+ "for time in range(2, 25, 2):\n",
+ " toeffeldyr = toeffeldyr*2\n",
+ "print(\"Antall tøffeldyr etter 24 timer :\", toeffeldyr)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.16 (fysikk)\n",
+ ":class: tip\n",
+ "Vi kan bruke Bohrs formel til å regne ut frekvensen til et foton som emitteres når et elektron i et hydrogenatom deeksiterer fra skall $n$ til $m$:\n",
+ "\n",
+ "$$f =\\frac{B}{h}\\cdot \\left( \\frac{1}{m^2} - \\frac{1}{n^2} \\right)$$\n",
+ "\n",
+ "der $B = 2.18\\cdot 10^{-18} J$ er Bohrs konstant, $h = 6.63\\cdot 10^{-34}$ m$^2$kg s$^{-1}$. Vi har også en sammenheng mellom frekvens og bølgelengden til fotonene:\n",
+ "\n",
+ "$$\\lambda = \\frac{c}{f}$$\n",
+ "\n",
+ "der $c = 3.00\\cdot10^8$ m/s er lysets hastighet i vakuum.\n",
+ "\n",
+ "a) Lag et program som skriver ut bølgelengden ti lyset som emitteres ved en gitt deeksitasjon. Test programmet ved deeksitasjon fra $n = 5$ til $n = 2$. Dette skal gi $\\lambda = 434.47 \\ nm$.\n",
+ "\n",
+ "b) Lag et program som regner ut alle bølgelengdene til fotonene som emitteres når atomet deeksiterer fra et skall _n_ til alle mulige energinivåer _m_.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "a)\n",
+ "\n",
+ "```{code-block} Python\n",
+ "B = 2.18E-18\n",
+ "h = 6.63E-34\n",
+ "c = 3e8\n",
+ "\n",
+ "n = 5\n",
+ "m = 2\n",
+ "\n",
+ "f = B/h *(1/ m**2 - 1/n **2)\n",
+ "bl = c/f # bølgelengde i meter\n",
+ "bl_nm = bl*1E9 # bølgelengde i nanometer\n",
+ "print(\"Bølgelengden til fotonet fra n =\", n, \"til m =\", m, \":\", round(bl_nm,2), \"nm\")\n",
+ "```\n",
+ "\n",
+ "b)\n",
+ "```{code-block} Python\n",
+ "n = int(input(\"Skriv inn en verdi for n:\"))\n",
+ "\n",
+ "B = 2.18E-18\n",
+ "h = 6.63E-34\n",
+ "c = 3e8\n",
+ "for m in range(n-1, 0, -1): # Går baklengs, men kan godt gå forlengs med range(1, n)\n",
+ " f = B/h *(1/ m**2 - 1/n **2)\n",
+ " bl = c/f # bølgelengde i meter\n",
+ " bl_nm = bl*1E9 # bølgelengde i nanometer\n",
+ " print(\"Bølgelengden til fotonet fra n =\", n, \"til m =\", m, \":\", round(bl_nm,2), \"nm\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 4.17 (fysikk)\n",
+ ":class: tip\n",
+ "Over tid vil den radioaktive strålingen i et radioaktivt stoff reduseres. Dette skjer fordi atomene i det radioaktive stoffet vil omdannes til andre grunnstoffer. Mengden $N(t)$ som gjenstår av det radioaktive stoffet etter ei tid $t$ kan finnes ved:\n",
+ "\n",
+ "$N(t) = N_0e^{-at}$\n",
+ "\n",
+ "der $N_0$ er hvor mye radioaktivt stoff vi starter med ved tida $t = 0$. Verdien til $a$ forteller hvor raskt det radioaktive stoffet omdannes til andre grunnstoffer. Hvis vi kjenner halveringstida $T$, vil $a = \\frac{\\ln(2)}{T}$. \n",
+ "\n",
+ "Plutonium-239 har halveringstid på omtrent $T = 24\\ 000$ år. \n",
+ "Skriv et program som skriver ut hvor mye Plutonium-239 som gjenstår etter hvert 5000. år over en periode på 50 000 år dersom $N_0 = 4$ kg. \n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from numpy import log, exp\n",
+ "N0 = 4\n",
+ "a = log(2)/24000\n",
+ "\n",
+ "for t in range(0, 50001, 5000):\n",
+ " N = N0*exp(-a*t)\n",
+ " print(\"Etter \", t, \"år gjenstår\", N0*exp(-a*t), \"kg av Plutonium-239.\")\n",
+ "```\n",
+ "````\n",
+ "`````\n",
+ "``````{tab-set}"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "I videoene nedenfor kan du få en innføring eller repetisjon i den grunnleggende teorien bak løkker:\n",
+ "\n",
+ "``````{tab-set} \n",
+ "`````{tab-item} For-løkker\n",
+ "\n",
+ "\n",
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Skriv et program som regner ut summen av alle heltallene fra og med 1 til og med 449 ved hjelp av en for-løkke.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "s = 0\n",
+ "\n",
+ "for tall in range(1, 450):\n",
+ " s = s + tall\n",
+ " \n",
+ "print(\"Summen er:\", s)\n",
+ "```\n",
+ "````\n",
+ "`````\n",
+ "\n",
+ "`````{tab-item} While-løkker\n",
+ "\n",
+ "\n",
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Skriv et program som regner ut summen av tallene fra og med 1 til og med 449 ved hjelp av en while-løkke.\n",
+ "````\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "s = 0\n",
+ "tall = 1\n",
+ "\n",
+ "while tall <= 449:\n",
+ " s = s + tall\n",
+ " tall = tall + 1\n",
+ "\n",
+ "print(\"Summen er:\", s)\n",
+ "```\n",
+ "````\n",
+ "`````\n",
+ "``````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/programmeringsverktoy.ipynb b/_sources/docs/tema1_grunnleggende_programmering/programmeringsverktoy.ipynb
new file mode 100644
index 00000000..5d685522
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/programmeringsverktoy.ipynb
@@ -0,0 +1,155 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Programmeringsverktøy\n",
+ "\n",
+ "Vi ser her på to mye brukte verktøy i forbindelse med programmering, Jupyter Notebook og GitHub. Jupyter Notebook brukes til å skrive tekst, lage rapporter og kjøre programmer i samme system, mens GitHub er en plattform som gir _versjonskontroll_. Versjonskontroll kjenner du gjennom Dropbox, Onedrive, Google Disk og liknende. Det er en måte å spare på og dele programmene deres for hver endring dere gjør i programmet. Dette gjør det lett å gjenopprette tidligere versjoner dersom ting har gått skeis.\n",
+ "\n",
+ "## Jupyter Notebook"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/4CsRUI_MOBU? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan også lage rapporter med Jupyter Notebook:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/bQAMrj07MxQ? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 2. GitHub* (frivillig)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/Or3xpe0G9aM? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/quiz1.ipynb b/_sources/docs/tema1_grunnleggende_programmering/quiz1.ipynb
new file mode 100644
index 00000000..5837f4f1
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/quiz1.ipynb
@@ -0,0 +1,1198 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Quiz 1: Variabler og aritmetikk"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "from jupyterquiz import display_quiz"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": [
+ "var questionsyouVCDPnIJSZ=[\n",
+ " {\n",
+ " \"question\": \"Hva er output fra følgende kode?\",\n",
+ "\t \"code\": \"a=\\\"1\\\"\\nb=\\\"2\\\"\\nprint(a+b)\",\n",
+ " \"type\": \"multiple_choice\",\n",
+ " \"answers\": [\n",
+ " {\n",
+ " \"answer\": \"1\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Variablene inneholder strenger. Strenger slås sammen når de addderes.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"2\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Variablene inneholder strenger. Strenger slås sammen når de addderes.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"3\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Variablene inneholder strenger. Strenger slås sammen når de addderes.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"12\",\n",
+ " \"correct\": true,\n",
+ " \"feedback\": \"Riktig. Variablene inneholder strenger. Strenger slås sammen når de addderes.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"error\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Variablene inneholder strenger. Strenger slås sammen når de addderes.\"\n",
+ " }\n",
+ " ]\n",
+ " },\n",
+ " {\n",
+ " \"question\": \"Hva skjer når du kjører følgende kode?\",\n",
+ "\t \"code\": \"print = \\\"Hei\\\"\",\n",
+ " \"type\": \"multiple_choice\",\n",
+ " \"answers\": [\n",
+ " {\n",
+ " \"answer\": \"\\\"Hei\\\" blir skrevet ut.\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Korrekt syntaks for utskrift er: print(\\\"Hei\\\")\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"En feilmelding blir skrevet ut.\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Det er fullt tillatt å skrive over print-funksjonen. Men nå finnes ikke print-funksjonen i programmet ditt mer, og du må restarte Python.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"Programmet krasjer.\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Et program krasjer ikke med mindre det skjer noe teknisk feil.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"Ingenting skjer.\",\n",
+ " \"correct\": true,\n",
+ " \"feedback\": \"Riktig. Det er fullt tillatt å skrive over print-funksjonen. Men nå finnes ikke print-funksjonen i programmet ditt mer, og du må restarte Python.\"\n",
+ " }\n",
+ " ]\n",
+ " },\n",
+ " {\n",
+ " \"question\": \"Hva er output?\",\n",
+ " \"code\": \"print(3>4)\",\n",
+ " \"type\": \"multiple_choice\",\n",
+ " \"answers\": [\n",
+ " {\n",
+ " \"answer\": \"En feilmelding blir skrevet ut.\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Dette er en gyldig syntaks.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"True.\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. 3 er ikke større enn 4.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"False.\",\n",
+ " \"correct\": true,\n",
+ " \"feedback\": \"Riktig. 3 er ikke større enn 4, og vi får den boolske verdien False (merk at det alltid er stor forbokstav).\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"Ingenting skjer.\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil.\"\n",
+ " }\n",
+ " ]\n",
+ " },\n",
+ " {\n",
+ " \"question\": \"Hva er output fra følgende kode hvis du taster inn 1 og 2 i konsollen når du kjører programmet?\",\n",
+ "\t \"code\": \"a = input(\\\"tall 1: \\\")\\nb = input(\\\"tall 1: \\\")\\nb = float(b) \\nprint(a + b)\",\n",
+ " \"type\": \"multiple_choice\",\n",
+ " \"answers\": [\n",
+ " {\n",
+ " \"answer\": \"3\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Den ene variabelen er streng, og den andre er heltall. Disse kan ikke adderes.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"12\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Den ene variabelen er streng, og den andre er heltall. Disse kan ikke adderes.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"1\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Den ene variabelen er streng, og den andre er heltall. Disse kan ikke adderes.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"Feilmelding\",\n",
+ " \"correct\": true,\n",
+ " \"feedback\": \"Ja. Den ene variabelen er streng, og den andre er heltall. Disse kan ikke adderes.\"\n",
+ " }\n",
+ " ]\n",
+ " },\n",
+ " {\n",
+ " \"question\": \"Hva er output fra følgende program?\",\n",
+ " \"code\": \"a = 5.0 \\nb = 3.0 \\nc = a + b \\na = 3.0 \\nd = 2.0 \\ne = a + c * d \\nprint(e)\",\n",
+ " \"type\": \"multiple_choice\",\n",
+ " \"answers\": [\n",
+ " {\n",
+ " \"answer\": \"18.0\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Pass på regnerekkefølge og hold styr på innholdet i variablene.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"15.0\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Pass på regnerekkefølge og hold styr på innholdet i variablene.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"22.0\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Pass på regnerekkefølge og hold styr på innholdet i variablene.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"19.0\",\n",
+ " \"correct\": true,\n",
+ " \"feedback\": \"Riktig.\"\n",
+ " }\n",
+ " ]\n",
+ " },\n",
+ " {\n",
+ " \"question\": \"Hva er verdien til variablene nedenfor?\",\n",
+ " \"code\": \"a = 10 \\nb = 20 \\na = b\",\n",
+ " \"type\": \"multiple_choice\",\n",
+ " \"answers\": [\n",
+ " {\n",
+ " \"answer\": \"a = 20, b = 20\",\n",
+ " \"correct\": true,\n",
+ " \"feedback\": \"Riktig. I tredje linje får a verdien til b.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"a = 20, b = 10\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. I tredje linje får a verdien til b, men ikke motsatt.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"a = 10, b = 10\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. I tredje linje får a verdien til b.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"a = 10, b = 20\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. I tredje linje får a verdien til b.\"\n",
+ " }\n",
+ " ]\n",
+ " },\n",
+ " {\n",
+ " \"question\": \"Hvilke(n) kodesnutt(er) skriver ut 20 % av verdien til en variabel x?\",\n",
+ " \"type\": \"many_choice\",\n",
+ " \"answers\": [\n",
+ " {\n",
+ " \"answer\": \"print(20 % x)\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Dette er faktisk riktig Python-syntaks, men den regner ikke ut prosent. Her får vi resten etter en heltallsdivisjon mellom 20 og x.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"print(20% * x)\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Dette gir feilmelding.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"print(1.20 * x)\",\n",
+ " \"correct\": false,\n",
+ " \"feedback\": \"Feil. Her får du 120 % av verdien.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"print(x - 0.8 * x)\",\n",
+ " \"correct\": true,\n",
+ " \"feedback\": \"Riktig.\"\n",
+ " },\n",
+ " {\n",
+ " \"answer\": \"print(0.2 * x)\",\n",
+ " \"correct\": true,\n",
+ " \"feedback\": \"Riktig.\"\n",
+ " }\n",
+ " ]\n",
+ " }\n",
+ "]\n",
+ ";\n",
+ " // Make a random ID\n",
+ "function makeid(length) {\n",
+ " var result = [];\n",
+ " var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n",
+ " var charactersLength = characters.length;\n",
+ " for (var i = 0; i < length; i++) {\n",
+ " result.push(characters.charAt(Math.floor(Math.random() * charactersLength)));\n",
+ " }\n",
+ " return result.join('');\n",
+ "}\n",
+ "\n",
+ "// Choose a random subset of an array. Can also be used to shuffle the array\n",
+ "function getRandomSubarray(arr, size) {\n",
+ " var shuffled = arr.slice(0), i = arr.length, temp, index;\n",
+ " while (i--) {\n",
+ " index = Math.floor((i + 1) * Math.random());\n",
+ " temp = shuffled[index];\n",
+ " shuffled[index] = shuffled[i];\n",
+ " shuffled[i] = temp;\n",
+ " }\n",
+ " return shuffled.slice(0, size);\n",
+ "}\n",
+ "\n",
+ "function printResponses(responsesContainer) {\n",
+ " var responses=JSON.parse(responsesContainer.dataset.responses);\n",
+ " var stringResponses='IMPORTANT!To preserve this answer sequence for submission, when you have finalized your answers:
Copy the text in this cell below \"Answer String\"
Double click on the cell directly below the Answer String, labeled \"Replace Me\"
Select the whole \"Replace Me\" text
Paste in your answer string and press shift-Enter.
Save the notebook using the save icon or File->Save Notebook menu item
\n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from jupyterquiz import display_quiz\n",
+ "display_quiz('https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/quizer/quiz6.json')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "finalized": {
+ "timestamp": 1622574926456,
+ "trusted": true
+ },
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/tall_variabler.ipynb b/_sources/docs/tema1_grunnleggende_programmering/tall_variabler.ipynb
new file mode 100644
index 00000000..05b783a6
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/tall_variabler.ipynb
@@ -0,0 +1,504 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Variabler og datatyper\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. kjøre enkle programmer med en programmeringseditor\n",
+ "2. definere og gjøre rede for ulike variabeltyper: heltall, flyttall og strenger\n",
+ "3. skrive ut output ved å bruke print-funksjonen\n",
+ "4. gjøre enkel aritmetikk i Python\n",
+ "5. ta input fra brukeren av programmet\n",
+ "6. importere og bruke biblioteker\n",
+ "```\n",
+ "\n",
+ "## Variabler\n",
+ "\n",
+ "```{admonition} Variabel\n",
+ "En programmeringsvariabel er en størrelse som lagrer en verdi i et program.\n",
+ "```\n",
+ "\n",
+ "Variabler er spesielt nyttig når vi skal bruke samme verdi flere ganger, eller når vi skal oppdatere en verdi underveis i programmet. Et enkelt eksempel er hvis vi ønsker å finne ti tall i en bestemt tallrekke. Dette kan vi beskrive slik med en pseudokode:\n",
+ "\n",
+ "```{code-block} text\n",
+ "tall = 0\n",
+ "gjenta 10 ganger:\n",
+ " tall = tall + 3\n",
+ " vis tall på skjermen\n",
+ "```\n",
+ "\n",
+ "Du kan tenke på en variabel som en boks vi kan putte ting i, og som vi kan modifisere, endre og hente informasjon fra underveis.\n",
+ "\n",
+ "```{admonition} Hva er en pseudokode?\n",
+ ":class: caution, dropdown\n",
+ "En pseudokode er en beskrivelse av en algoritme uten å bruke et bestemt programmeringsspråk. Pseudokode kan skrives på mange måter og kan beskrives med ord, bilder og symboler.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Nedenfor er et eksempel på en programkode i Python der vi beregner gjennomsnittshastigheten i m/s for ulike legemer som har beveget seg henholdsvis 3, 4.5, 7 og 14 meter i løpet av 3 sekunder. Hva er fordelen med å bruke variablen _t_ her?\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "t = 3\n",
+ "\n",
+ "v1 = 3/t\n",
+ "v2 = 4.5/t\n",
+ "v3 = 7/t\n",
+ "v4 = 14/t"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Print\n",
+ "For å få noe ut av programmet vårt, må vi be datamaskinen om å \"skrive ut\" noe. Dette gjør vi med kommandoen _print_. Dersom vi ønsker å skrive ut flere variabler, må vi skille dem med komma i print-funksjonen. Her ser du tre måter å bruke print-kommandoen på:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1.0\n",
+ "1.0 1.5 2.3333333333333335 4.666666666666667\n",
+ "Gjennomsnittsfarten for legeme 4 er: 4.666666666666667 m/s.\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(v1)\n",
+ "print(v1, v2, v3, v4)\n",
+ "print(\"Gjennomsnittsfarten for legeme 4 er: \", v4, \"m/s.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program som regner ut arealet av et rektangel og skriver ut en svarsetning med enheter.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "side1 = 5\n",
+ "side2 = 3\n",
+ "A = side1*side2\n",
+ " \n",
+ "print(\"Arealet til rektangelet er:\", A, \"kvadratmeter\")\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Kommentarer\n",
+ "Bruk av kommentarer i koden er viktig for at en selv skal huske hva koden illustrerer, hvilke enheter som brukes, og liknende. I tillegg er det viktig dersom andre skal bruke koden din til noe, for eksempel i store samarbeidsprosjekter. Kommentarer legges til ved å sette en \\# foran kommentaren. Eventuelt, dersom du kommenterer over flere linjer, kan du bruke triple anførselstegn før og etter kommentarene. Her er et eksempel:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Den kinetiske energien er 1.0 J.\n"
+ ]
+ }
+ ],
+ "source": [
+ "\"\"\"\n",
+ "Regner ut kinetisk energi i én dimensjon \n",
+ "for et legeme med masse m og hastighet v\n",
+ "\"\"\"\n",
+ "\n",
+ "m = 2.0 # masse i kg\n",
+ "v = 1.0 # fart i m/s\n",
+ "\n",
+ "E = 0.5*m*v**2 # Kinetisk energi i J\n",
+ "print(\"Den kinetiske energien er\", E, \"J.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Aritmetikk\n",
+ "Vi kan bruke Python som en enkel kalkulator. Vi har blant annet følgende operatorer:\n",
+ "\n",
+ "|Operator | Forklaring |\n",
+ "|---------|------------|\n",
+ "| + | Addisjon (a + b) |\n",
+ "| - | Subtraksjon (a - b) |\n",
+ "| * |Multiplikasjon (a\\*b) |\n",
+ "| / | Divisjon (a/b) |\n",
+ "| ** | Eksponent (a\\*\\*b) |\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Det finnes også to spesielle operatorer: // og %. Finn ut hva disse operatorene gjør ved å prøve dere fram i koderuta nedenfor. Vi har lagt til fire linjer som du kan bruke som utgangspunkt.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Løsning\n",
+ ":class: tip, dropdown\n",
+ "// utfører heltallsdivisjon, det vil si at operatoren finner det høyeste heltallet divisjonen går opp i. 24 // 5 = 4 fordi 4 * 5 = 20, som er det nærmeste vi kommer 24 i 5-gangen uten å overskride 24. Resten etter denne divisjonen er 4. Det får vi fram ved å bruke «modulusoperatoren» %, som ikke har noe med prosent å gjøre. 24 % 5 er altså 4.\n",
+ "```\n",
+ "\n",
+ "### Biblioteker\n",
+ "De fleste matematiske operatorer og funksjoner finnes ikke i standard Python. For å få tilgang til mer avansert matematikk, må vi importere _biblioteker_ (eller _moduler_) inn i Python-programmet vårt. Et bibliotek er en pakke med ekstra kommandoer og funksjoner som vi kan bruke, som _sqrt_, _cos_, _log_ og så videre. Det finnes ulike måter å importere på. Her er noen måter vi kan importere det svært nyttige _nympy_-biblioteket (**num**erical **py**thon):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Første metode: Importerer kun funksjonene du trenger\n",
+ "from numpy import log10\n",
+ "\n",
+ "pH = -log10(1E-7)\n",
+ "\n",
+ "# Andre metode: Importere hele biblioteket\n",
+ "import numpy\n",
+ "\n",
+ "A = 2 \n",
+ "radius = numpy.sqrt(A/numpy.pi)\n",
+ "\n",
+ "# Tredje metode: Importere hele biblioteket med et alias. Dette er den mest brukte metoden.\n",
+ "import numpy as np\n",
+ "\n",
+ "A = 2\n",
+ "radius = np.sqrt(A/np.pi)\n",
+ "\n",
+ "# Fjerde metode: Importere alt fra biblioteket uten å spesifisere hvor funksjonene kommer fra\n",
+ "from numpy import *\n",
+ "\n",
+ "vinkel = arccos(0.5) # Invers cosinus av 0.5\n",
+ "pH = -log10(1E-7) # pH = -log([H3O+]), log10 er tierlogaritmen"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program som regner ut radius til en sirkel med arealet 4 ved å importere sqrt og pi fra numpy-biblioteket. Kunne du gjort beregningene uten disse funksjonene?\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from numpy import pi, sqrt\n",
+ "\n",
+ "A = 4\n",
+ "r = sqrt(A/pi) # Vi kunne også skrevet (A/pi)**0.5\n",
+ " \n",
+ "print(\"Radius til sirkelen er:\", r)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ " ## Brukerinput\n",
+ "Vi kan også få programmet vårt til å spørre brukeren av programmet om å taste inn enkelte variabler selv. Dette gjøres i samme ruta som du får _output_ i editoren din. For å få brukerinput, bruker vi funksjonen _input_. Kjør programmet nedenfor og beskriv hvordan det fungerer. Prøv å bytte ut ulike kodelinjer og se hva slags output du får. Du må skrive inn input-verdiene i konsollen til høyre i koderuta.\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Input er ikke nødvendig for annet enn å lage et mer interaktivt program. Men hvis du lager et program med input, bør du legge til input helt til slutt. Start med å gi variablene verdier, og test at programmet fungerer. Deretter kan du bruke input på de variablene du ønsker. Dette er for å unngå å måtte taste inn input-verdier hver gang du kjører programmet ditt, spesielt hvis det inneholder feil du må rette opp!\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Modifiser programmet fra forrige underveisoppgave slik at det tar arealet som input fra brukeren.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from numpy import pi, sqrt\n",
+ "\n",
+ "A = input(\"Skriv arealet til sirkelen: \")\n",
+ "A = float(A)\n",
+ "r = sqrt(A/pi) # Vi kunne også skrevet (A/pi)**0.5\n",
+ " \n",
+ "print(\"Radius til sirkelen er:\", r)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Variabeltyper\n",
+ "I matematikk har vi ulike tallmengder, som _reelle tall_, _irrasjonale tall_, _rasjonale tall_, _naturlige tall_, _hele tall_ og _komplekse tall_. Disse tallmengdene er uendelig store, som betyr at de ikke kan eksistere på en datamaskin. Vi har derfor en del andre tallmengder og variabeltyper. For eksempel heter desimaltall _float_ fordi ikke alle desimaltall er representert på en datamaskin. Det er altså en annen tallmengde. De viktigste variabeltypene ser du her:\n",
+ "\n",
+ "| Datatype | Forklaring |Eksempel |\n",
+ "|--------|----------------------|-------------|\n",
+ "| Heltall (int) | Hele tall | 42 |\n",
+ "| Flyttall (float) | Desimaltall | 3.1415 |\n",
+ "| Streng (str) | Tekst | \"Hei!\"|\n",
+ "| Boolsk | Sannhet |True eller False |\n",
+ "\n",
+ "Når vi ønsker input fra en bruker av et program, må vi spesifisere hvilken variabeltype vi ønsker at inputen skal bli tolket som. Standard er tekst, men hvis vi for eksempel \"adderer\" teksten \"4\" med \"2\", får vi \"42\", mens tallet 4 + tallet 2 gir tallet 6. Eksempelet nedenfor illustrerer dette."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Skriv et tall: 4\n",
+ "Skriv et tall til: 2\n",
+ "Summen av teksten er: 42 og summen av tallene er: 6.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "tekst1 = input(\"Skriv et tall: \")\n",
+ "tekst2 = input(\"Skriv et tall til: \")\n",
+ "\n",
+ "tall1 = float(tekst1)\n",
+ "tall2 = float(tekst2)\n",
+ "\n",
+ "tullsvar = tekst1 + tekst2\n",
+ "tallsvar = tall1 + tall2\n",
+ "\n",
+ "print(\"Summen av teksten er:\", tullsvar, \"og summen av tallene er:\", tallsvar)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program som skriver \"Hei, _navn_!\" til skjermen. Brukeren skal bes om å taste inn navnet sitt. Dette navnet skal lagres i en variabel, og så skrives ut som i setningen ovenfor.\n",
+ "\n",
+ "Utvid programmet til å spørre om alderen din. La programmet skrive ut en kommentar til alderen din til slutt, for eksempel \"_din alder_ er jammen gammelt!\"\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "navn = input(\"Hva heter du? \")\n",
+ "print(\"Hei,\", navn, \"!\") # Du kan eventuelt bruke + istedenfor komma mellom strenger for å unngå mellomrom\n",
+ "\n",
+ "alder = input(\"Hvor gammel er du? \")\n",
+ "print(alder, \"år er jammen gammelt!\")\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Datamaskinen krever nøyaktige instrukser\n",
+ "Når du lager sammensatte programmer med Python, må du huske på følgende:\n",
+ "- Programmet leses fra topp til bunn og fra venstre til høyre.\n",
+ "- Små bokstaver er IKKE lik store bokstaver (p $\\neq$ P).\n",
+ "- Python bryr seg lite om mellomrom, med mindre det er på starten av ei linje. Bruk mellomrom for å gjøre programmet ditt mer lesbart.\n",
+ "- Øv deg på å lese feilmeldinger: Du får beskjed om linja der feilen befinner seg og typen feil.\n",
+ "\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hva som er feil med følgende programmer:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "tall1 = 1\n",
+ "print(tall1 + tall2)\n",
+ "tall2 = 3\n",
+ "```\n",
+ "```{code-block} Python\n",
+ "navn = \"Gunnar\"\n",
+ "print(Navn)\n",
+ "```\n",
+ "```{code-block} Python\n",
+ "a = 2\n",
+ "b = 3\n",
+ "\n",
+ "print(\"Differansen mellom\" a \"og\" b \"=\" a + b)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "1. Programmet leser fra topp til bunn. Derfor må vi definere tall2 før vi bruker det til addisjon. Linje 2 og 3 må derfor bytte plass.\n",
+ "\n",
+ "2. Variabelen _navn_ har liten _n_. Variabelen _Navn_ finnes ikke.\n",
+ "\n",
+ "3. For det første trenger vi komma mellom alle variabler i print-funksjonen. For det andre må det stå \"summen\", ikke differansen!\n",
+ "\n",
+ "```{code-block} Python\n",
+ "print(\"Summen av\", a, \"og\", b, \"=\", a + b)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{figure} https://live.staticflickr.com/3136/2842497804_f2684b2dcf_c.jpg\n",
+ "---\n",
+ "height: 500px\n",
+ "name: bug\n",
+ "---\n",
+ "En av de første \"bugs\" ble funnet av Grace Hopper, som også lagde den første kompilatoren, en oversetter fra programmeringsspråk til maskinkode. Bugs var altså faktiske insekter som satt seg fast i de mekaniske delene og lagde krøll. Forhåpentligvis får du ingen feilmeldinger om insekter i datamaskinen din.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "```{admonition} Oppgave 1.1\n",
+ ":class: tip\n",
+ "Bruk kodeboksen nedenfor til å lage relevante variabler slik at programmet regner ut arealet av en trekant med grunnlinje 4 og høyde 2. Programmet inneholder litt kode fra før til å hjelpe deg på vei.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "g = 4\n",
+ "h = 2\n",
+ "A = g*h/2\n",
+ " \n",
+ "print(\"Arealet til trekanten er:\", A)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 1.2\n",
+ ":class: tip\n",
+ "Lag et program som regner ut farten i m/s gitt følgende formel:\n",
+ "\n",
+ "$$v = v_0 + at$$\n",
+ "\n",
+ "Utvid programmet slik at startfarten, akselerasjonen og tida blir tatt som input.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "\n",
+ "Løsning uten input:\n",
+ "```{code-block} Python\n",
+ "v0 = 1 # startfart i m/s\n",
+ "a = 10 # akselerasjon i m/s^2\n",
+ "t = 5 # slutt-tid i s\n",
+ "\n",
+ "v = v0 + a*t\n",
+ "\n",
+ "print(\"Sluttfarten blir:\", v, \"m/s\")\n",
+ "```\n",
+ "\n",
+ "Løsning med input:\n",
+ "```{code-block} Python\n",
+ "v0 = float(input(\"startfart i m/s: \"))\n",
+ "a = float(input(\"akselerasjon i m/s^2: \"))\n",
+ "t = float(input(\"slutt-tid i s: \"))\n",
+ "\n",
+ "v = v0 + a*t\n",
+ "\n",
+ "print(\"Sluttfarten blir:\", v, \"m/s\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Ekstra: Oppgave 1.3\n",
+ ":class: tip\n",
+ "Lag et program som bruker en valgfri formel fra matematikken til å regne ut noe. Bruk input-funksjonen til å hente variabelverdier fra brukeren.\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "Her kan du se videoer som introduksjon og/eller repetisjon til fagstoffet:\n",
+ "\n",
+ "````{tab-set} \n",
+ "```{tab-item} Variabler\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{tab-item} Aritmetikk\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{tab-item} Biblioteker og matematiske operasjoner\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{tab-item} Input\n",
+ "\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/tall_variabler_videoer.ipynb b/_sources/docs/tema1_grunnleggende_programmering/tall_variabler_videoer.ipynb
new file mode 100644
index 00000000..189ecfbb
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/tall_variabler_videoer.ipynb
@@ -0,0 +1,255 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Tall og variabler (videoer)\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Kjøre enkle programmer med en programmeringseditor.\n",
+ "2. Definere og gjøre rede for ulike variabeltyper: heltall, flyttall og strenger.\n",
+ "3. Skrive ut output ved å bruke print-funksjonen.\n",
+ "4. Gjøre enkel aritmetikk i Python.\n",
+ "5. Ta input fra brukeren av programmet.\n",
+ "```\n",
+ "\n",
+ "## Variabler og output\n",
+ "I videoen nedenfor forklares hvordan vi oppretter variabler og gir dem verdier. Du lærer også hvordan du håndterer output med print-funksjonen."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/LF4JNPfNGgs? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program der du definerer to variabler *tall1* og *tall2* med hver sitt tall. Regn ut differansen i en egen variabel. Skriv ut \"Differansen mellom *tall1* og *tall2 er *differansen*\".\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Aritmetikk\n",
+ "Her skal vi se på hvordan vi utfører enkel matematikk som addisjon, subtraksjon, divisjon og multiplikasjon i Python."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/BASO7iHDV54? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program der du definerer massen til et legeme i en variabel, regner ut energien ved hjelp av formelen $E = mc^2$ og skriver dette ut.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Matematiske operasjoner\n",
+ "I denne videoen skal vi gjennomgå import av biblioteker og flere matematiske operasjoner som logaritmer, trigonometriske funksjoner og røtter."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/VnFNYt2D2Ng? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program regner ut pH-en i en løsning gitt $[H_3O^+]$.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Input\n",
+ "Her skal vi se hvordan du kan ta input fra brukeren av programmet."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/nwncCwwcV4s? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et program som tar masse og hastighet som input, og som regner ut kinetisk energi vha. formelen $E_k = \\frac{1}{2}mv^2$.\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema1_grunnleggende_programmering/testquiz.ipynb b/_sources/docs/tema1_grunnleggende_programmering/testquiz.ipynb
new file mode 100644
index 00000000..9d6a7385
--- /dev/null
+++ b/_sources/docs/tema1_grunnleggende_programmering/testquiz.ipynb
@@ -0,0 +1,46 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Testquiz (Forms)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema2_kodestrukturering/funksjoner.ipynb b/_sources/docs/tema2_kodestrukturering/funksjoner.ipynb
new file mode 100644
index 00000000..6565f7f9
--- /dev/null
+++ b/_sources/docs/tema2_kodestrukturering/funksjoner.ipynb
@@ -0,0 +1,835 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Funksjoner\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. bruke funksjoner til å strukturere og gjenbruke kode.\n",
+ "2. forklare hva som menes med globale og lokale variabler.\n",
+ "```\n",
+ "\n",
+ "## Definisjon\n",
+ "I tillegg til innebygde funksjoner i Python som _print_ og _input_ kan vi lage funksjoner selv. Dette kan være svært nyttig fordi det kan gjøre programmet mer oversiktlig og håndterbart. I tillegg er det nyttig med funksjoner når vi skal gjøre samme ting flere ganger. Si at vi for eksempel har en vilkårlig matematisk funksjon $f(x) = x^2 + x - 5$. Dersom vi vil regne ut $f(x)$ for alle heltallsverdier av $x$ mellom 1 og 50, kan vi gjøre dette med funksjoner. Først definerer vi funksjonen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def f(x):\n",
+ " return x**2 + x - 5"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi definerer her en funksjon med kodeordet _def_ og gir den et funksjonsnavn, her _f_. Deretter spesifiserer vi hva inn-verdien/variabelen til funksjonen skal hete i parentes. Her kaller vi den _x_. I programmering kaller vi en slik størrelse for en _parameter_. Gitt én verdi av _x_, skal funksjonen _returnere_ (spesifisert ved _return_-kommandoen) en funksjonsverdi. Legg merke til at syntaksen er ganske lik vilkår (if-tester), while- og for-løkker, med et kolon etter funksjonsnavnet og innrykk på alt som tilhører funksjonen. \n",
+ "\n",
+ "Vi får derimot ikke noe output av å definere en funksjon. For å få et output, må vi bruke (vi sier også \"kalle på\") funksjonen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1\n",
+ "1\n"
+ ]
+ }
+ ],
+ "source": [
+ "funksjonsverdi = f(2) # Kaller på funksjonen\n",
+ "print(funksjonsverdi)\n",
+ "\n",
+ "# Eller\n",
+ "print(f(2)) # Kaller på funksjonen inni en print-funksjon"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag en Python-funksjon som representerer den matematiske funksjonen $f(x) = \\frac{-x}{2} + \\sqrt{x}$. Lag ei løkke som skriver ut 100 ulike funksjonsverdier.\n",
+ "```\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "import numpy as np\n",
+ "\n",
+ "def f(x):\n",
+ " return -x/2 + np.sqrt(x)\n",
+ " \n",
+ "for x in range(100):\n",
+ " print(f(x))\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Vi kan også lage funksjoner uten returverdi, for eksempel funksjoner som skriver ut noe:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1\n",
+ "Gratulerer med dagen, Silje\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Definerer to funksjoner\n",
+ "def f(x):\n",
+ " print(x**2 + x - 5)\n",
+ " \n",
+ "def gratulerer(navn):\n",
+ " print(\"Gratulerer med dagen,\", navn)\n",
+ "\n",
+ "# Kaller på funksjonene\n",
+ "f(2)\n",
+ "gratulerer(\"Silje\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Her ser vi at vi ikke trenger å skrive _print_ når vi kaller på funksjonene. Dette ser da enda enklere ut enn å bruke retur-verdier, så hvorfor bruker vi _return_ i det hele tatt?\n",
+ "\n",
+ "Det er faktisk bedre å bruke return enn print, der det er mulig. Hvis vi for eksempel er interessert i å gjøre noe annet med funksjonsverdiene enn å printe dem, må vi ha konkrete verdier å jobbe med. La oss si at vi ønsker å finne differansen mellom to funksjonsverdier. Hvis vi skal regne med funksjonsverdier, må vi ha en returverdi. Det fungerer nemlig ikke å trekke fra hverandre to print-funksjoner. Eksempelet nedenfor illustrerer dette."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "````{panels}\n",
+ ":column: col-6\n",
+ ":card: border-2\n",
+ ":header: bg-success\n",
+ " \n",
+ "Riktig\n",
+ "^^^\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " return x**3 - 1/x\n",
+ " \n",
+ "print(f(3) - f(1))\n",
+ "```\n",
+ "---\n",
+ ":header: bg-danger\n",
+ "Feil\n",
+ "^^^\n",
+ "Følgende kode vil gi feilmelding:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " print(x**3 - 1/x)\n",
+ " \n",
+ "f(3) - f(1)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Vi kan også representere matematiske formler som Python-funksjoner, for eksempel slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "def areal_sirkel(r):\n",
+ " A = np.pi*r**2\n",
+ " return A\n",
+ "\n",
+ "def volum_sylinder(r, h):\n",
+ " V = np.pi*r**2*h\n",
+ " return V"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan også skrive _np.pi\\*r\\*\\*2_ og _np.pi\\*r\\*\\*2\\*h_ direkte etter return i funksjonene ovenfor, istedenfor å gjøre det på to linjer. Dette er litt smak og behag, men ofte kan det være mer oversiktlig å gjøre ting på flere linjer enn på én. Dessuten kan man skrive formelen direkte slik den forekommer i matematikken.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Volumet til ei kule er gitt ved $\\frac{4}{3}\\pi r^3$. Lag en funksjon som beregner dette volumet og finner differansen mellom volumet til ei kule med radius 10 og ei kule med radius 5.\n",
+ "```\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "import numpy as np\n",
+ "\n",
+ "def volum_kule(r):\n",
+ " V = (4/3)*np.pi*r**3\n",
+ " return V\n",
+ " \n",
+ "volumforskjell = volum_kule(10) - volum_kule(5)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Her ser vi også at den siste funksjonen tar to parametre. Det er mulig å bruke så mange parametre i en funksjon som du ønsker. Det går også an å lage funksjoner uten parametre, for eksempel slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Hei på deg!\n"
+ ]
+ }
+ ],
+ "source": [
+ "def hei():\n",
+ " print(\"Hei på deg!\")\n",
+ " \n",
+ "hei()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Parameternavn\n",
+ "La oss se på et eksempel der vi kaller på en funksjon på tre måter."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Farten er 5.0 m/s.\n",
+ "Farten er 5.0 m/s.\n",
+ "Farten er 5.0 m/s.\n"
+ ]
+ }
+ ],
+ "source": [
+ "def fart(s, t):\n",
+ " v = s/t\n",
+ " return v\n",
+ "\n",
+ "# Funksjonskall 1\n",
+ "s = 10 # Strekning i meter\n",
+ "t = 2 # Tid i s\n",
+ "print(\"Farten er\", fart(s, t), \"m/s.\")\n",
+ "\n",
+ "# Funksjonskall 2\n",
+ "strekning = 10\n",
+ "tid = 2\n",
+ "print(\"Farten er\", fart(strekning, tid), \"m/s.\")\n",
+ "\n",
+ "# Funksjonskall 3\n",
+ "print(\"Farten er\", fart(10, 2), \"m/s.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser at vi får samme output for alle funksjonskallene. Vi trenger ikke å definere variabler før vi setter dem inn i funksjonen, så funksjonskall 3 er kanskje det enkleste. Men hvis vi for eksempel skal bruke verdien for tid flere steder, kan det være lurt å ha det som en egen variabel. Denne variabelen kan vi kalle hva vi vil, for den blir uansett overført til variabelen _t_ inni funksjonen. Så om vi kaller variablene for strekning og tid eller s og t, har ingenting å si. Inni funksjonen blir likevel verdien til _strekning_ overført til variabelen _s_ og variabelen _t_ får verdien til _tid_."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Funksjoner med flere returverdier\n",
+ "I motsetning til funksjoner i matematikk kan en funksjon i programmering ha flere retur-verdier. Disse kan vi tilordne til variabler adskilt med komma, som vist nedenfor.\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hvordan programmet ovenfor fungerer. Modifiser programmet slik at det også returnerer renta, og skriv ut \"Det tar {tid} år før du har {penger} kroner i banken med en rente på {renter*100} prosent.\"\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Lokale og globale variabler\n",
+ "\n",
+ "Hva skjer hvis vi ikke returnerer verdier i funksjonen ovenfor? Vil vi uansett kunne printe renta og antallet år? La oss undersøke dette."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'år' is not defined",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_39764/3569527658.py\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[0mpenger\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpenger_i_banken\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m3000\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0.01\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 10\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Det tar\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mår\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"år før du har\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mround\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpenger\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m2\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"kroner med en rente på\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrenter\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"prosent\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[1;31mNameError\u001b[0m: name 'år' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "def penger_i_banken(startkapital, sluttkapital, renter):\n",
+ " kapital = startkapital\n",
+ " år = 0\n",
+ " while kapital <= sluttkapital:\n",
+ " kapital = kapital + kapital*renter\n",
+ " år = år + 1\n",
+ " return kapital\n",
+ "\n",
+ "penger = penger_i_banken(1000, 3000, 0.01)\n",
+ "print(\"Det tar\", år, \"år før du har\", round(penger,2), \"kroner med en rente på\", renter*100, \"prosent\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Her får vi visst en feilmelding, selv om vi klart kan se at \"år\" er definert som en variabel inni funksjonen. Dette handler om at alle variabler som defineres i en funksjon, kun er tilgjengelig inni denne funksjonen. De kalles derfor _lokale_ variabler. Variabler som er definert utenfor funksjoner, kaller vi da for _globale_ variabler. Disse er tilgjengelig både inni og utenfor en funksjon. Her er to eksempler som viser dette:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Her er jeg!\n",
+ "Her er jeg!\n"
+ ]
+ }
+ ],
+ "source": [
+ "def funksjon():\n",
+ " print(a)\n",
+ "\n",
+ "a = \"Her er jeg!\"\n",
+ "\n",
+ "funksjon()\n",
+ "print(a) # Skriver ut den globale variabelen a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Her er jeg!\n"
+ ]
+ },
+ {
+ "ename": "NameError",
+ "evalue": "name 'b' is not defined",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mfunksjon\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# Prøver å skrive ut den lokale variabelen. Vi får dermed en feilmelding\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[1;31mNameError\u001b[0m: name 'b' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "def funksjon():\n",
+ " b = \"Her er jeg!\" # b defineres lokalt inni funksjonen\n",
+ " print(b)\n",
+ "\n",
+ "funksjon()\n",
+ "print(b) # Prøver å skrive ut den lokale variabelen. Vi får dermed en feilmelding"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan gjøre en lokal variabel til en global variabel, dersom vi trenger det. Dette er ikke vanlig så vanlig å gjøre, men vi kan gjøre det slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Energien til legemet er: 9e+16 joule.\n",
+ "Lysets hastighet i vakuum: 300000000.0 m/s.\n"
+ ]
+ }
+ ],
+ "source": [
+ "def masseenergi(m):\n",
+ " global c\n",
+ " c = 3E8 # lyshastigheten i m/s\n",
+ " E = m*c**2\n",
+ " return E\n",
+ "\n",
+ "print(\"Energien til legemet er:\", masseenergi(1), \"joule.\")\n",
+ "print(\"Lysets hastighet i vakuum:\", c, \"m/s.\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "\n",
+ "````{admonition} Oppgave 5.1\n",
+ ":class: tip\n",
+ "Forklar hvordan programmet nedenfor fungerer.\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " return x + 1\n",
+ "\n",
+ "addisjon = f(1) + f(3)\n",
+ "subtraksjon = f(1) - f(3)\n",
+ "\n",
+ "print(addisjon, subtraksjon)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Vi definerer først en funksjon _f_ som skal returnere funksjonsverdien _x + 1_. Deretter kaller vi på (bruker) funksjonen ved å beregne summen av _f(1)_ og _f(3)_ og differansen mellom de samme funksjonsverdiene. Da henter programmet informasjon fra funksjonen ovenfor, og beregner slik: _addisjon = (1 + 1) + (3 + 1) = 6_ og _subtraksjon = (1 + 1) - (3 + 1) = -1_. Resultatene fra dette skrives så ut.\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 5.2\n",
+ ":class: tip\n",
+ "I programmet nedenfor definerer vi en funksjon som regner ut volumet til en sylinder. Lag en annen funksjon i samme program som regner ut volumet til ei kule.\n",
+ "\n",
+ "($V_{kule} = \\frac{4}{3}\\pi r^3$)\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from numpy import pi\n",
+ "\n",
+ "def volum_kule(r):\n",
+ " V = 4/3*pi*r**3\n",
+ " return V\n",
+ "\n",
+ "# Tester funksjonen\n",
+ "print(volum_kule(2))\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.3\n",
+ ":class: tip\n",
+ "Hvert program i denne oppgava inneholder noen feil. Finn feilene og rett på dem slik at programmene kan kjøres korrekt.\n",
+ "\n",
+ "1. Funksjonen skal regne ut $f(x) = \\frac{1}{2x} + 1$ og returnere svaret. I programmet skal funksjonen kalles på for $x = 4$:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " 1/2*x + 1\n",
+ "\n",
+ "print(\"f(x) = \",f(x))\n",
+ "```\n",
+ "2. Programmet ber brukeren om å skrive en verdi for _x_ og regner ut $f(x) = 3x + \\cos(x)$:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ "return 3x + cos(x)\n",
+ "\n",
+ "y = input(\"Skriv inn verdi for x i radianer: \")\n",
+ "print(\"f(x) =\",f(y))\n",
+ "```\n",
+ "\n",
+ "3. Programmet skal skrive ut funksjonsverdien _G(1)_.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "def G(t):\n",
+ " a = t**2 - 2\n",
+ " return a\n",
+ "\n",
+ "t = 1\n",
+ "print(a)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "1. Uttrykket $1/2*x + 1$ regner ut $f(x) = x + 1$, og ikke den ønskede funksjonen. For at programmet skal regne ut hva _x_ blir i den ønskede funksjonen, må parentes brukes i uttrykket for nevneren. Variabelen _x_ er heller ikke definert. Variabelen kan settes til å være lik 4. Vi kan også kalle funksjonen direkte med f(4).\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " return 1/(2* x) + 1\n",
+ "print(\"f(x) = \",f(4))\n",
+ "```\n",
+ "\n",
+ "2. Her må cosinus importeres fra et passende bibliotek. Vi må også ha et innrykk på _return_ i $f(x)$, fordi _return_ tilhører funksjonen. Leddet $3x$ må omskrives til $3*x$. Til slutt må variabelen $y$ omgjøres til float for at programmet skal kunne gjøre flytallsoperasjoner på den gitte verdien fra brukeren.\n",
+ "```{code-block} Python\n",
+ "from numpy import cos\n",
+ "def f(x):\n",
+ " return 3*x + cos (x)\n",
+ "y = float(input(\" Skriv inn verdi for x i radianer: \"))\n",
+ "print(\"f(x) =\",f(y))\n",
+ "```\n",
+ "\n",
+ "3. For å finne hva funksjonsverdien til _G_, må vi huske å _kalle på_ funksjonen:\n",
+ "```{code-block} Python\n",
+ "def G(t):\n",
+ " a = t**2 - 1\n",
+ " return a\n",
+ "t = 1\n",
+ "print(G(t))\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.4\n",
+ ":class: tip\n",
+ "Lag et program eller flere programmer som bruker funksjoner til å regne ut:\n",
+ "1. Arealet til en sirkel.\n",
+ "2. Radius til en sirkel gitt arealet.\n",
+ "3. Omkretsen til en sirkel.\n",
+ "4. Volumet til ei kule.\n",
+ "5. Overflatearealet til ei kule.\n",
+ "\n",
+ "Du kan lage en enkel versjon først uten funksjoner. Lag så en versjon som inneholder funksjoner av hver av formlene. Ikke ta input fra brukeren, men sett verdiene direkte inn i funksjonskallene.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from numpy import pi\n",
+ "\n",
+ "# 1\n",
+ "def sirkel_areal(r):\n",
+ " return pi*r**2\n",
+ "# 2\n",
+ "def sirkel_radius(A):\n",
+ " return (A/pi)**0.5 # Opphøyer i 0.5 eller kan bruke sqrt fra numpy\n",
+ "# 3\n",
+ "def sirkel_omkrets(r):\n",
+ " return 2*pi*r\n",
+ "# 4\n",
+ "def kule_volum (r):\n",
+ " return 4/3*pi*r**3\n",
+ "# 5\n",
+ "def kule_overflate (r):\n",
+ " return 4*pi*r**2\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.5\n",
+ ":class: tip\n",
+ "Forklar hvorfor programmet under gir _None_ som output.\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " x = 2*x\n",
+ "x = 12\n",
+ "x = x + 12\n",
+ "x = f(x)\n",
+ "print(x)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Verdien til _x_ blir _None_ fordi funksjonen _f_ ikke returner en verdi. For å sørge for at _x_ får en tallverdi etter å ha kalt på _f_, må _f_ returnere noe – i dette tilfellet et tall.\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " return 2*x\n",
+ "x = 12\n",
+ "x = x + 12\n",
+ "x = f(x)\n",
+ "print(x)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.6\n",
+ ":class: tip\n",
+ "_Karvonens formel_ kan brukes til å finne pulsen til en person gitt hvilepuls $H_{hvile}$ og treningsintensitet $p$ (i prosent):\n",
+ "\n",
+ "$hjerteslag \\ per \\ minutt = \\left(H_{maks} - H_{hvile}\\right)\\cdot\\frac{p}{100} + H_{hvile}$\n",
+ "\n",
+ "der $H_{maks}$ er maks antall hjerteslag personen kan ha. Den maksimale pulsen kan en finne ved $H_{maks} = 220 - \\textit{alder til person}$. Lag et program som regner ut pulsen til en 20 år gammel person som trener med 60 \\% intensitet og hvilepuls på $70$ slag per minutt. Lag Karvonens formel som en funksjon.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def karvonen(hvilepuls, intensitet, alder):\n",
+ " p = intensitet\n",
+ " maks = 220 - alder\n",
+ " puls = (maks - hvilepuls)*p/100 + hvilepuls\n",
+ " return puls\n",
+ "\n",
+ "puls = karvonen(70, 60, 20)\n",
+ "print(\" Personen vil ha en puls på\",puls )\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.7 (kjemi)\n",
+ ":class: tip\n",
+ "I kjemi har vi ofte bruk for molregning. Lag et enkelt program som regner ut antall mol dersom brukeren taster inn molmasse og masse av et bestemt stoff. Du kan også be brukeren taste inn stoffet det gjelder, slik at du får dette som output også. Lag formelen som en funksjon.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def antall_mol (masse , molmasse ):\n",
+ " return masse/molmasse\n",
+ "stoff = input(\" Hvilket stoff vil du finne antall mol til ?: \")\n",
+ "masse = float(input(\" Skriv inn massen ( gram ): \"))\n",
+ "molmasse = float(input(\" Skriv inn molmassen ( gram /mol): \"))\n",
+ "mol = antall_mol (masse , molmasse )\n",
+ "print(\"Stoffet\", stoff, \"består av\", mol ,\"mol.\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.8 (kjemi)\n",
+ ":class: tip\n",
+ "Lag et program som regner ut pH fra $[H_3O^+]$ ved hjelp av en funksjon.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from numpy import log10\n",
+ "def ph_H3O(konsentrasjon):\n",
+ " return -log10 (konsentrasjon)\n",
+ "\n",
+ "ph = ph_H3O(1E-5)\n",
+ "print(\"pH av den gitte konsentrasjonen er:\", ph)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.9 (fysikk)\n",
+ ":class: tip\n",
+ "Programmer én av bevegelsesformlene (kinematikklikningene) som en funksjon. Du kan selv velge hva programmet skal regne ut.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def posisjon(v0 , a, t):\n",
+ " return v0 + a*t\n",
+ "\n",
+ "v = posisjon(2, 10, 5) # Tester funksjonen med v0 = 2, a = 10 og t = 5.\n",
+ "print(\"Farten til legemet er:\", v, \"m/s.\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.10 (fysikk)\n",
+ ":class: tip\n",
+ "Bruk Bohrs formel for spektrene til hydrogenatomet:\n",
+ "$f =\\frac{B}{h}\\cdot \\left( \\frac{1}{m^2} - \\frac{1}{n^2} \\right)$\n",
+ "\n",
+ "Lag et program som regner ut bølgelengden til fotonet som emitteres når et elektron deeksiterer fra skall _m_ til _n_. Bruk en funksjon.\n",
+ "\n",
+ "Husk at vi har følgende sammenheng mellom frekvens og bølgelengde ($\\lambda$):\n",
+ "\n",
+ "$\\lambda = \\frac{c}{f}$\n",
+ "\n",
+ "$B = 2.18\\cdot10^{-18}$, $c = 3.00\\cdot10^8$ m/s og $h = 6.63\\cdot10^{-34}$.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "# Konstanter\n",
+ "B = 2.18E-18\n",
+ "h = 6.636E-34\n",
+ "c = 3e8\n",
+ "\n",
+ "#Bohrs formel\n",
+ "def Bohr(n,m):\n",
+ " f = B/h *(1/ m**2 - 1/n **2)\n",
+ " bl = c/f # bølgelengde i meter\n",
+ " bl_nm = bl*1E9 # bølgelengde i nanometer\n",
+ " return bl_nm\n",
+ "\n",
+ "#Energinivåer\n",
+ "n = int(input(\"Skriv inn en verdi for n:\")) #skallet det eksiteres fra\n",
+ "m = int(input(\"Skriv inn en verdi for m:\")) #skallet det eksiteres til\n",
+ "\n",
+ "print(\"Bølgelengden til lyset fra n =\",n ,\"til m =\", m, \n",
+ " \"er:\", round(Bohr(n,m)),\"nm\")\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.11 (matematikk)\n",
+ ":class: tip\n",
+ "Lag en funksjon som tar tre variabler _a_, _b_ og _c_, tilsvarende koeffisientene i andregradsfunksjoner av typen $f(x) = ax^2 + bx + c$. La funksjonen løse andregradslikninger av typen $f(x) = 0$ ved hjelp av andregradsformelen.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def andregradsformelen(a, b, c):\n",
+ " rotuttrykk = b**2 - 4*a*c\n",
+ " if rotuttrykk > 0:\n",
+ " x1 = (-b + rotuttrykk**0.5)/(2*a)\n",
+ " x2 = (-b - rotuttrykk**0.5)/(2*a)\n",
+ " return x1, x2\n",
+ " elif rotuttrykk < 0:\n",
+ " return \"Likningen har ingen reelle løsninger.\"\n",
+ " elif rotuttrykk == 0:\n",
+ " x = -b/(2*a)\n",
+ " return x\n",
+ "\n",
+ "print(andregradsformelen(1, 2, 3))\n",
+ "print(andregradsformelen(1, -2, 1))\n",
+ "print(andregradsformelen(1, -4, 3))\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.12\n",
+ ":class: tip\n",
+ "Hvorfor har _x_ samme verdi før og etter funksjonen _f_ har blitt kalt på i programmet under?\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " x = x + 3\n",
+ " return 9*x\n",
+ "x = 3\n",
+ "print(x) # Skriver ut 3\n",
+ "y = f(x)\n",
+ "print(x) # Skriver ut 3\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "$_x_$ er en global variabel utenfor funksjonen. Den får verdien 3. I tillegg finnes det en lokal variabel med samme navn inni funksjonen. Denne variabelen får verdien $_x = x + 3 = 3 + 3 = 6_$, men denne variabelen er ikke tilgjengelig utenfor funksjonen. \n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.13\n",
+ ":class: tip\n",
+ "De fleste gasser kan modelleres med _tilstandslikninga for idelle gasser_:\n",
+ "\n",
+ "$PV = nRT$\n",
+ "\n",
+ "der _P_ er trykket i pascal, _V_ er volumet i kubikkmeter, _n_ er stoffmengden i mol, $R = 8.3144598 J/(mol\\cdot K)$ er gasskonstanten og _T_ er temperaturen i Kelvin. \n",
+ "\n",
+ "Lag et program der du bruker denne likninga til å lage en funksjon for P og en annen for T. Test funksjonene.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def trykk(V, n, T):\n",
+ " R = 8.3144598 # J/(mol*K)\n",
+ " P = n*R*T/V\n",
+ " return P\n",
+ "\n",
+ "def temperatur(P, V, n):\n",
+ " R = 8.3144598 # J/(mol*K)\n",
+ " T = P*V/(n*R)\n",
+ " return T\n",
+ "\n",
+ "print(trykk(100, 1, 300))\n",
+ "print(temperatur(100, 1, 1))\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5.14*\n",
+ ":class: tip\n",
+ "Studer programmet nedenfor. Hvilke variabler er lokale, og hvilke er globale? Hva skrives ut?\n",
+ "\n",
+ "```{code-block} Python\n",
+ "def f(x,y):\n",
+ " global e\n",
+ " e = x + y + e\n",
+ " return e\n",
+ "\n",
+ "c = 1\n",
+ "d = 2\n",
+ "e = 3\n",
+ "\n",
+ "print(f(c, d) + e)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Variablene c_, _d_ og _e_ er globale variabler, mens _x_ og _y_ er lokale variabler som kun eksisterer inni funksjonen. Når vi printer _f(c, d) + e_, overføres verdien av _c_ og _d_ til de lokale variablene _x_ og _y_ i funksjonen. Deretter beregnes _e_ ved hjelp av _x_, _y_ og den globale _e_, som har verdien 3. Variabelen _e_ fra funksjonen (nå med verdien 6) defineres som global, og overskriver dermed den tidligere _e_ (med verdien 3). Det er denne _e_-en som legges til _f(c, d)_ i print-kommandoen til slutt.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Filmer\n",
+ "I videoen nedenfor kan du få en innføring eller repetisjon i den grunnleggende teorien bak funksjoner.\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema2_kodestrukturering/funksjoner_filmer.ipynb b/_sources/docs/tema2_kodestrukturering/funksjoner_filmer.ipynb
new file mode 100644
index 00000000..6400086f
--- /dev/null
+++ b/_sources/docs/tema2_kodestrukturering/funksjoner_filmer.ipynb
@@ -0,0 +1,92 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Funksjoner (teori)\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Bruke funksjoner til å strukturere og gjenbruke kode.\n",
+ "2. Forklare hva som menes med globale og lokale variabler.\n",
+ "```\n",
+ "\n",
+ "## Funksjoner"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/PTsF6AIKIjg? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag en funksjon som benytter arealsetningen til å regne ut arealet av en trekant.\n",
+ "```\n",
+ "\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema2_kodestrukturering/klasser_objekter.ipynb b/_sources/docs/tema2_kodestrukturering/klasser_objekter.ipynb
new file mode 100644
index 00000000..07612a98
--- /dev/null
+++ b/_sources/docs/tema2_kodestrukturering/klasser_objekter.ipynb
@@ -0,0 +1,443 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Klasser og objekter\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. gjøre rede for hva som menes med objektorientert programmering\n",
+ "2. konstruere enkle klasser og objekter\n",
+ "```\n",
+ "\n",
+ "Objektorientert programmering er en måte å organisere og gjenbruke kode på som er enda litt mer abstrakt og enda litt nyttigere enn funksjoner. Python er et objektorientert språk, så du har brukt objekter allerede uten å nødvendigvis vite om det. Det første objektorienterte programmeringsspråket i verden var _Simula_, som var utviklet av nordmennene Ole-Johan Dahl og Kristen Nygaard. I populære programmeringsspråk som Java og C++ er objektorientering så grunnleggende at vi ikke kan programmere i disse språkene uten å bruke det. I Python kan vi derimot velge om vi ønsker å bruke objektorientert kode eller ikke.\n",
+ "\n",
+ "Det er ikke sikkert du forstår meningen med objekter med det første. Koden blir ofte mer komplisert og teknisk, og det realfaglige innholdet kan noen ganger drukne litt i koden. Det viktigste er derimot at du får litt kjennskap til hva det er og hvordan det kan brukes, slik at du forstår når du faktisk bruker objekter og hvordan de fungerer. Om du vil bruke objektorientert programmering for å strukturere din egen kode eller ikke, kan du velge helt selv.\n",
+ "\n",
+ "Objektorientert programmering tar utgangspunkt i _klasser_, som er oppskrifter på _objekter_. Disse objektene har egenskaper gitt av denne klassen, og vi kan endre på objektene og gi dem nye egenskaper med funksjoner som vi kaller _metoder_.\n",
+ "\n",
+ "```{admonition} Definisjoner\n",
+ ":class: caution\n",
+ "En _klasse_ er en oppskrift på _objekter_. Et objekt er en _instans_ (utgave) av en klasse. Objekter er størrelser som er definert via et sett med data (_attributter_), det vil si egenskaper ved objektene. Objektene kan vi endre og manipulere ved å bruke klassens _metoder_. Metoder er funksjoner som virker på objektene.\n",
+ "```\n",
+ "\n",
+ "Et enkelt eksempel på et objekt, er heltallsobjekter. For eksempel er tallet 42 et objekt som tilhører klassen \"int\" (integer = heltall). Metodene du kan bruke på disse objektene, er blant annet addisjon og multiplikasjon.\n",
+ "\n",
+ "__Eksempel:__\n",
+ "\n",
+ "klasse = int\n",
+ "\n",
+ "objekt = 42\n",
+ "\n",
+ "metoder = +, -, *, /\n",
+ "\n",
+ "Vi kan se at 42 tilhører klassen _int_ ved å skrive ut typen til objektet:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(type(42))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Skilpaddeobjekter\n",
+ "Vi har allerede også håndtert objekter gjennom skilpaddegrafikk (turtle). Når vi lager en skilpadde som skal tegne noe, lager vi en instans (et objekt) av klassen \"Turtle\". Tidligere skreiv vi bare kommandoene \"forward\", \"left\" og så videre, så da er det kanskje ikke åpenbart at vi bruker metoder _på_ dette objektet. Det blir dermed litt enklere å se dersom vi faktisk kaller objektet noe. La oss returnere til en skilpadde som heter Rafael. Istedenfor å bare skrive kommandoene, lager vi nå et skilpaddeobjekt helt eksplisitt:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Her ser vi at vi bruker metodene på objektet ved å skrive \"objektnavn.metodenavn()\". Dette gjør også at vi kan lage flere skilpadder i samme kodevindu!\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag en ny skilpadde som heter Leonardo. Skilpadden skal være blå, og den skal lage gå slik at den danner et rektangel (200 x 100) sammen med figuren som Rafael har tegna.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "leonardo = Turtle()\n",
+ "leonardo.shape(\"turtle\")\n",
+ "leonardo.color(\"blue\")\n",
+ "\n",
+ "leonardo.backward(100)\n",
+ "leonardo.left(90)\n",
+ "leonardo.forward(100)\n",
+ "leonardo.right(90)\n",
+ "leonardo.forward(100)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Klasser\n",
+ "La oss prøve å lage vår egen klasse med ulike egenskaper. Vi vil definere en klasse som lager objekter med egenskapene til et glass. Det er god skikk å lage klassenavnet med stor forbokstav, og det gjør vi slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-output"
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "class Glass:\n",
+ " def __init__(self):\n",
+ " self.innhold = 0"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå har vi definert klassen \"Glass\" og gitt det en egenskap (attributt) som heter \"innhold\", en vanlig egenskap ved de fleste glass. Metodene i en klasse defineres på samme måte som funksjoner. Den metoden vi har lagd her, \\_\\_init\\_\\_ (som står for \"initiering\"), er en spesiell metode som inneholder alle egenskaper som objekter av klassen Glass alltid får. Parameteren i denne funksjonen/metoden er \"self\". Dette er en litt merkelig konstruksjon. \"self\" brukes nemlig for å henvis til at dette er en egenskap ved objektet selv. Det tar litt tid å bli vant til at vi må henvise til objektet selv inni klassen som er oppskriften på objektene. Men når du har sett nok eksempler på hvordan klasser blir konstruert, får du antakelig en forståelse av det. La oss legge til en metode til, som sjekker innholdet i glasset:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "class Glass:\n",
+ " def __init__(self):\n",
+ " self.innhold = 0 \n",
+ " def sjekkInnhold(self):\n",
+ " return self.innhold"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "La oss nå lage et glass-objekt og sjekke innholdet:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0\n"
+ ]
+ }
+ ],
+ "source": [
+ "vannglass = Glass() # laget et vannglass av typen \"Glass\"\n",
+ "print(vannglass.sjekkInnhold()) # skriver ut innholdet i glasset"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag en metode \"fyll\" som legger til innhold i glasset. Test metoden ved å legge til 5 (dl) og sjekke innholdet.\n",
+ "```\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "class Glass:\n",
+ " def __init__(self):\n",
+ " self.innhold = 0\n",
+ " \n",
+ " def fyll(self, mengde):\n",
+ " self.mengde = mengde\n",
+ " self.innhold += self.mengde\n",
+ " \n",
+ " def sjekkInnhold(self):\n",
+ " return self.innhold\n",
+ " \n",
+ "vannglass = Glass()\n",
+ "vannglass.fyll(5)\n",
+ "print(vannglass.sjekkInnhold())\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": [
+ "hide-input",
+ "remove-output"
+ ]
+ },
+ "source": [
+ "Når du har gjort oppgaven ovenfor, kan vi legge til enda en metode som tømmer glasset:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Men hva skjer hvis glasset er fullt eller tomt? Prøv å løse dette problemet i oppgaven nedenfor:\n",
+ "\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Legg inn en ny egenskap ved glasset som du kaller \"kapasitet\". Denne egenskapen skal si noe om hvor mye volum glasset rommer. Fyll også ut det som mangler i metodene \"fyll\" og \"tøm\" nedenfor. Metodene skal si fra om glasset er fullt eller tomt. Dersom glasset er tomt, skal innholdet settes til 0, og dersom glasset er fullt, skal innholdet settes til kapasiteten til glasset. Skriv gjerne også ut en melding om at glasset er fullt eller tomt.\n",
+ "\n",
+ "```{code-block} Python\n",
+ " def fyll(self, mengde):\n",
+ " self.mengde = mengde\n",
+ " self.innhold += self.mengde\n",
+ " if #...\n",
+ " \n",
+ " def tøm(self, mengde):\n",
+ " self.mengde = mengde\n",
+ " self.innhold -= self.mengde\n",
+ " if # ...\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "class Glass:\n",
+ " def __init__(self, kapasitet):\n",
+ " self.kapasitet = kapasitet\n",
+ " self.innhold = 0\n",
+ " \n",
+ " def fyll(self, mengde):\n",
+ " self.mengde = mengde\n",
+ " self.innhold += self.mengde\n",
+ " if self.innhold >= self.kapasitet:\n",
+ " print(\"Glasset er fullt!\")\n",
+ " self.innhold = self.kapasitet\n",
+ " \n",
+ " def tøm(self, mengde):\n",
+ " self.mengde = mengde\n",
+ " self.innhold -= self.mengde\n",
+ " if self.innhold <= 0:\n",
+ " print(\"Glasset er tomt!\")\n",
+ " self.innhold = 0\n",
+ " \n",
+ " def sjekkInnhold(self):\n",
+ " return self.innhold\n",
+ " \n",
+ "mittGlass = Glass(5)\n",
+ "mittGlass.fyll(6)\n",
+ "mittGlass.tøm(1)\n",
+ "mittGlass.sjekkInnhold()\n",
+ "print(\"Glasset inneholder:\", mittGlass.sjekkInnhold(), \"dl.\")\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Eksempel: Objekter i spill\n",
+ "Moderne spill lages med objektorientert kode. En av årsakene er at vi lettere kan gjenbruke kode. Ta for eksempel skilpaddene i Mario. De har noen felles egenskaper, og det er derfor nyttig å kunne plassere dem rundt omkring ved å lage nye objekter fra en klasse istedenfor å gjenta masse kode. Vi kan også ta hensyn til små variasjoner, som farge på skallet, evnen til å gjøre skade eller helsepoeng (HP).\n",
+ "\n",
+ "```{image} http://oyster.ignimgs.com/mediawiki/apis.ign.com/new-super-mario-bros-u/a/a5/New-Super-Mario-Bros.-Game-Character-Official-Artwork-Koopa-Troopa.jpeg\n",
+ ":alt: koopa\n",
+ ":class: bg-primary mb-1\n",
+ ":width: 200px\n",
+ ":align: center\n",
+ "```\n",
+ "\n",
+ "I programmet nedenfor lager vi en skilpaddeklasse med noen egenskaper og to metoder, \"harm\" og \"heal\". Gå gjennom linje for linje og prøv å forstå hvordan programmet fungerer.\n",
+ "\n",
+ "\n",
+ "\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Legg inn et vilkår i programmet ovenfor som skriver ut at skilpadden er død hvis den går under 0 i hp. Lag også en attributt/egenskap som sier noe om skilpadden lever eller ikke.\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "class Skilpadde:\n",
+ " def __init__(self):\n",
+ " self.artsnavn = \"Chelonia mydas\"\n",
+ " self.farge = \"green\"\n",
+ " self.levende = True\n",
+ " if self.farge == \"green\":\n",
+ " self.hp = 15\n",
+ " elif self.farge == \"red\":\n",
+ " self.hp = 20\n",
+ " def harm(self, skade):\n",
+ " self.hp -= skade\n",
+ " if self.hp <= 0:\n",
+ " self.levende = False\n",
+ " self.hp = 0\n",
+ " print(\"Skilpadden døde.\")\n",
+ " def heal(self):\n",
+ " self.hp += 5\n",
+ "\n",
+ "skilpadde1 = Skilpadde()\n",
+ "skilpadde1.farge = \"green\"\n",
+ "\n",
+ "print(\"HP:\", skilpadde1.hp)\n",
+ "skilpadde1.harm(13)\n",
+ "print(\"HP:\", skilpadde1.hp)\n",
+ "skilpadde1.harm(16)\n",
+ "print(\"HP:\", skilpadde1.hp)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Eksempel: Vektorobjekt\n",
+ "Her skal vi se på en klasse som lager et objekt med egenskapene til en matematisk vektor med tre komponenter: $\\vec{v} = [x, y, z]$. Vi ønsker at vi skal kunne regne ut lengden til denne vektoren, og at vi skal kunne addere vektoren med en annen vektor. Lengden av en vektor kalles også for _normen_ til vektoren, og er definert slik:\n",
+ "\n",
+ "$|\\vec{v}| = \\sqrt{x^2 + y^2 + z^2}$\n",
+ "\n",
+ "En vektorklasse med en metode for addisjon kan se slik ut:\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Legg en metode i vektorklassen ovenfor som returnerer lengden/normen til vektoren. Test ut ved å sjekke at normen til vektoren $\\vec{u} = [1, 2, 2]$ er 3.\n",
+ "```\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "class Vektor:\n",
+ " def __init__(self,x,y,z):\n",
+ " self.x = x\n",
+ " self.y = y\n",
+ " self.z = z\n",
+ " \n",
+ " def norm(self):\n",
+ " lengde = (self.x**2 + self.y**2 + self.z**2)**0.5\n",
+ " return lengde\n",
+ " \n",
+ " def add(self, vektor):\n",
+ " x = self.x + vektor.x\n",
+ " y = self.y + vektor.y\n",
+ " z = self.z + vektor.z\n",
+ " return [x, y, z]\n",
+ " \n",
+ "u = Vektor(1,2,2)\n",
+ "v = Vektor(4,4,4)\n",
+ "print(u.norm())\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Arv\n",
+ "Hvis vi ønsker å lage en klasse som har alle egenskaper til en annen klasse, i tillegg til noen ekstra egenskaper, kan vi la klassen _arve_ egenskaper fra den andre klassen. La oss lage en termosklasse som arver fra glassklassen (kalt _superklasse_). Klassen som arver, kaller vi en _subklasse_."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Glasset er fullt!\n",
+ "62.0\n",
+ "54.0\n",
+ "46.0\n",
+ "38.0\n",
+ "30.0\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "5"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "class Termos(Glass):\n",
+ " def __init__(self, kapasitet, isolasjonsverdi, temperatur):\n",
+ " super().__init__(kapasitet) # Her arver termosen kapasitet fra klassen Glass (superklassen)\n",
+ " self.isolasjonsverdi = isolasjonsverdi\n",
+ " self.temperatur = temperatur\n",
+ " def økTemperatur(self):\n",
+ " self.temperatur += 5/self.isolasjonsverdi\n",
+ " def senkTemperatur(self):\n",
+ " self.temperatur -= 10/self.isolasjonsverdi\n",
+ " def hentTemperatur(self):\n",
+ " print(self.temperatur)\n",
+ "\n",
+ "termos = Termos(10, 1.25, 70)\n",
+ "termos.fyll(10)\n",
+ "\n",
+ "for timer in range(5):\n",
+ " termos.senkTemperatur()\n",
+ " termos.tøm(1)\n",
+ " termos.hentTemperatur()\n",
+ "termos.sjekkInnhold()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hvordan programmet ovenfor fungerer.\n",
+ "```"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema3_datahandtering/datasamlinger.ipynb b/_sources/docs/tema3_datahandtering/datasamlinger.ipynb
new file mode 100644
index 00000000..6f921322
--- /dev/null
+++ b/_sources/docs/tema3_datahandtering/datasamlinger.ipynb
@@ -0,0 +1,422 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "9a05ddbb",
+ "metadata": {},
+ "source": [
+ "# Datasamlinger\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. opprette ulike arrayer\n",
+ "2. gjøre vektoroperasjoner med arrayer\n",
+ "3. gjøre rede for hva tupler er\n",
+ "4. opprette og bruke dictionarier\n",
+ "```\n",
+ "\n",
+ "Vi har flere måter å organisere data på i Python. Her er en kort oversikt over de viktigste datasamlingene:\n",
+ "1. Lister (fleksible samlinger av like eller ulike data)\n",
+ "2. Arrayer (samlinger av tall som kan opereres på som vektorer).\n",
+ "3. Tupler (statiske lister som ikke kan endres)\n",
+ "4. Dictionarier (lister med strenger, ikke tall, som nøkler)\n",
+ "\n",
+ "Vi har allerede sett hvordan lister fungerer. La oss se på de tre andre datatypene.\n",
+ "\n",
+ "## Arrayer\n",
+ "Vi begynner med et eksempel som illustrerer forskjellen mellom lister og arrayer. For å kunne bruke arrayer, må vi først importere _numpy_ eller _pylab_."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "fb736924",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "listesum: [1, 2, 3, 2, 3, 1]\n",
+ "arraysum: [3 5 4]\n"
+ ]
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "liste1 = [1, 2, 3]\n",
+ "liste2 = [2, 3, 1]\n",
+ "\n",
+ "print(\"listesum:\", liste1 + liste2)\n",
+ "\n",
+ "array1 = np.array(liste1)\n",
+ "array2 = np.array(liste2)\n",
+ "\n",
+ "print(\"arraysum:\", array1 + array2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "af0b8ed0",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk koden ovenfor til å forklare forskjellen mellom listeaddisjon og arrayaddisjon.\n",
+ "```\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Når to lister adderes, legges den ene lista til slutten på den andre. Når to arrayer adderes, får vi komponentvis addisjon av elementene: [1+2, 2+3, 3+1]. Dette er det samme som vektoraddisjon.\n",
+ "```\n",
+ "\n",
+ "### Opprette arrayer\n",
+ "Vi kan opprette arrayer på flere måter:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar de ulike måtene å opprette arrayer på ved å endre på forskjellige parametre i programmet ovenfor.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Vi kan oppsummere måter å opprette arrayer på slik:\n",
+ "| Operasjon | Forklaring |\n",
+ "| --------- | ---------- |\n",
+ "| array([x1,x2,x3,...]) | gjør om en liste med tall til en array |\n",
+ "| arange(a,b,c) | lager en array med tallene a til, men ikke med, b, der c er steglengden |\n",
+ "| linspace(a,b,c) | lager en array med c elementer fra a til og med b |\n",
+ "| zeros(n) | lager en array med _n_ nuller |\n",
+ "| ones(n) | lager en array med _n_ enere |\n",
+ "```\n",
+ "\n",
+ "### Behandle arraydata\n",
+ "I motsetning til med lister, kan vi ikke bruke listeoperasjoner som _append_, _remove_ og liknende når vi opererer med arrayer. Vi kan derimot få tilgang til elementene ved å bruke indekser, akkurat som med lister.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Hva tror du koden nedenfor skriver ut? Bruk det du husker om listeindeksering.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "Vi kan også lage flerdimensjonale arrayer, ved å sette inn arrayer i arrayer. Dette kan i noen tilfeller ses på som tabeller med kolonner og rader, slik som nedenfor.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "1. Prøv å forklare/forutse hva koden nedenfor gjør.\n",
+ "2. Kjør koden og se om det stemmer med slik du hadde tenkt. Hvis ikke, hva er forskjellen?\n",
+ "3. Undersøk hva du får som output når du endrer på tallene i print-kommandoene. Beskriv hva som skjer.\n",
+ "4. Modifiser programmet slik at det kun skriver ut de fire første elementene i kolonne 2.\n",
+ "5. Lag et program med en array som representerer dataene i tabellen nedenfor.\n",
+ "Skriv så ut alt i kolonne nummer 3 (hvis vi teller fra 1) og elementet 6.7.\n",
+ "```\n",
+ "\n",
+ "| Kolonne 1 | Kolonne 2 | Kolonne 3 | Kolonne 4 |\n",
+ "|-----|-----|-----|-----|\n",
+ "| 0 | 1 | 2 | 3 |\n",
+ "| 2 | 9.1 | 2.2 | 4 |\n",
+ "| 3.5 | 9.1 | 6.7 | 5.5 |\n",
+ "| 1.1 | 0.2 | 8.9 | 7.8 |\n",
+ "\n",
+ "\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ "Vi har en array med to arrayer i, som vi kaller _data_. Vi kan plukke ut elementer fra denne arrayen slik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "print(data[1,2]) # Printer element 2 (det tredje elementet) fra array 1 (den andre arrayen i arrayen)\n",
+ "print(data[1,:]) # Printer alle elementer fra array 1 (den andre arrayen i arrayen)\n",
+ "print(data[:,0]) # Printer element 0 (det første elementet) fra alle (begge) arrayene\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "f2a249ad",
+ "metadata": {},
+ "source": [
+ "### Matematikk med arrayer\n",
+ "Noe som er praktisk med arrayer, er at de kan opppføre seg matematisk som vektorer eller matriser. Eksempler på en matematiske vektor og en matrise er:\n",
+ "\n",
+ "$\\vec{v} = [1, 4, 5]$\n",
+ "\n",
+ "$M = \\begin{bmatrix}1\\ 2\\ 2\\\\0\\ 4\\ 5\\\\ 6\\ 1\\ 1\\end{bmatrix} = \\begin{bmatrix}\\vec{v} \\\\\\vec{u} \\\\ \\vec{w}\\end{bmatrix} $\n",
+ "\n",
+ "Vi skal ikke se så mye på matriser her, men det er nyttig å vite at det finnes matematiske størrelser som kan representeres som flerdimensjonale arrayer. Matriser kan også ses på som en samling vektorer.\n",
+ "\n",
+ "La oss se på de vanligste vektoroperasjonene gjennom et eksempelprogram:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Test programmet ovenfor og beskriv hvordan de ulike operasjonene fungerer.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6137ab00",
+ "metadata": {},
+ "source": [
+ "### Vektorisering\n",
+ "En annen ting som er svært nyttig med arrayer, er at de er svært raske å behandle. Vektorisering betyr å bruke arrayer istedenfor å bruke løkker til å repetere operasjoner. Arrayaddisjon er et eksempel på vektorisering. Vi kunne jo ha addert komponentene trinnvis i en løkke. Nedenfor ser du et eksempel på både ikke-vektorisert og vektorisert kode. For å illustrere forskjellen i tida det tar å gjøre de to ulike kodene har vi importert _time_-biblioteket. Det lar oss registrere start- og slutt-tida i programmet, og vi kan derfor beregne tida det tar å kjøre koden ved å ta differansen mellom disse.\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hva som foregår i programmet ovenfor. Test programmet ovenfor og beskriv hvordan de ulike operasjonene fungerer. Sjekk også forskjellen i tid mellom komponentvis multiplikasjon av arrayer i en løkke og vektorisert multiplikasjon.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d92839fa",
+ "metadata": {},
+ "source": [
+ "## Tupler\n",
+ "Tupler blir brukt til å lagre statisk innhold som ikke skal endres. Et typisk eksempel er når vi skal spesifisere en fargekode i RGB (rød, grønn, blå). Da angis intensiteten til rød, grønn og blå som et tall mellom 0 og 255. Dette kan vi beskrive i en liste, men lister kan endres og er derfor ikke så robuste som tupler. Vi bruker derfor tupler til å lagre slike data. Istedenfor klammeparenteser bruker vi runde parenteser når vi lager tupler:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "213479d7",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(255, 0, 255)\n"
+ ]
+ }
+ ],
+ "source": [
+ "svart = (0, 0, 0)\n",
+ "hvit = (255, 255, 255)\n",
+ "rød = (255, 0, 0)\n",
+ "magenta = (255, 0, 255)\n",
+ "\n",
+ "print(magenta)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6740d721",
+ "metadata": {},
+ "source": [
+ "## Dictionarier\n",
+ "\n",
+ "Dictionarier er en samling av data som indekseres med strenger istedenfor tall. Istedenfor klammeparenteser bruker vi krøllparenteser når vi lager dictionarier. Vi kaller indeksene i en dictionary for _nøkler_, og hver nøkkel har en _verdi_.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "dictionary = {\"nøkkel1\": verdi1, \"nøkkel2\": verdi2, \"nøkkel3\": verdi3, ...}\n",
+ "```\n",
+ "\n",
+ "Dictionarier er spesielt nyttig når vi skal lagre informasjon om bestemte kategorier, som ulike arter, grunnstoffer eller radioaktive nuklider. Programsnutten nedenfor viser hvordan vi bruker en dictionary der vi oppgir atommassen til ulike grunnstoffer."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "b678d981",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "6.94\n"
+ ]
+ }
+ ],
+ "source": [
+ "atommasse = {\"H\": 1.01, \"He\": 4.00, \"Li\": 6.94, \"Be\": 9.01}\n",
+ "\n",
+ "print(atommasse[\"Li\"]) # Skriver ut atommassen til litium"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1167d578",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar forskjellen mellom hvordan vi får ut elementer fra en liste sammenliknet med en dictionary.\n",
+ "```\n",
+ "\n",
+ "Dictionarier blir ekstra nyttige når vi forstår hvordan vi kan lagre dictionarier i dictionarier. Da kan vi for eksempel lagre høyde, bredde og vekt til en bestemt art, eller ulike egenskaper ved grunnstoffene. Programmet nedenfor viser hvordan du kan gjøre dette. Vi ser også at vi enkelt kan skrive ut alle nøkler og verdier i en dictionary\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Legg inn et ekstra valgfritt grunnstoff i programmet ovenfor i tillegg til hydrogen og vanadium. Legg også til kokepunkt for alle grunnstoffene. Skriv ut kokepunktet til det nye grunnstoffet.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "10eb8b21",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "\n",
+ "```{admonition} Oppgave 6.1\n",
+ ":class: tip\n",
+ "Lag to arrayer. Fyll den ene med oddetall fra 1 til 101 og den andre med partall fra 0 til og med 100. Legg sammen arrayene.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 6.2\n",
+ ":class: tip\n",
+ "Et program skal regne ut $c = a + b$. Forklar hva $c$ vil bli dersom\n",
+ "1. $a = [1,2,3,4]$ og $b = [1,2,3,4]$\n",
+ "2. $a = [1,2,3,4]$ og $b = 1$\n",
+ "3. $a = array([1,2,3,4])$ og $b = 1$\n",
+ "4. $a = array([1,2,3,4])$ og $b = array([1,2,3,4])$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 6.3\n",
+ ":class: tip\n",
+ "Et program skal regne ut $c = a * b$. Forklar hva $c$ vil bli dersom\n",
+ "1. $a = [1,2,3,4]$ og $b = [1,2,3,4]$\n",
+ "2. $a = [1,2,3,4]$ og $b = 4$\n",
+ "3. $a = array([1,2,3,4])$ og $b = array([1,2,3,4])$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 6.4\n",
+ ":class: tip\n",
+ "Lag en array med alle tall i 9-gangen opp til 1000. Skriv ut tallene til slutt\n",
+ "```\n",
+ "\n",
+ "````{admonition} Oppgave 6.5 (kjemi)\n",
+ ":class: tip\n",
+ "Følgende kode regner ut pH i en løsning gitt ulike verdier av konsentrasjonen av oksoniumioner. Vektoriser koden.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "import numpy as np\n",
+ "\n",
+ "H3O = [1E-10, 2.4E-9, 1E-8, 3.5E-7, 7E-6, 1.2E-5, 1E-4, 1E-2, 1.2]\n",
+ "\n",
+ "def surhet(oksonium):\n",
+ " pH = -np.log10(oksonium)\n",
+ " return pH\n",
+ " \n",
+ "pH = []\n",
+ "\n",
+ "for kons in H3O:\n",
+ " pH.append(surhet(kons))\n",
+ " \n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 6.6 (matematikk)\n",
+ ":class: tip\n",
+ "Vi har vektorene $\\vec{v} = [2, 2]$ og $\\vec{w} = [1, -3]$. Avgjør om vektorene er ortogonale ($\\vec{v}\\cdot \\vec{w} = 0$). Kontroller ved å regne ut for hånd.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 6.7\n",
+ ":class: tip\n",
+ "Lise prøver å lage tre arrayer: én med alle partall fra og med 0 til og med 10, én med 1000 jevnt fordelte tall fra og med 0 til og med 10 og én med alle heltall fra og med 100 til og med 1 i synkende rekkefølge. Men programmet hennes gir feil output. Hva er feil? Rett opp programmet slik at Lise får gjort det hun ønsker.\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "import numpy as np\n",
+ "\n",
+ "partall = np.arange(0, 11, 2)\n",
+ "mange_tall = np.linspace(0, 10, 1000)\n",
+ "heltall_synkende = np.arange(100, 0, -1)\n",
+ "\n",
+ "print(\"Første array:\", partall)\n",
+ "print(\"Andre array:\", mange_tall)\n",
+ "print(\"Tredje array:\", heltall_synkende)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 6.8\n",
+ ":class: tip\n",
+ "Programmet nedenfor tegner fire sirkler, men sirklene trenger farge. Lag fire tupler som inneholder RGB-verdiene til fire valgfrie farger.\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 6.9\n",
+ ":class: tip\n",
+ "Lag en dictionary med farger som nøkler og RGB-verdier som verdier (som tupler). Lag minst fem farger og skriv ut \"RGB-koden for FARGE er: (R, G, B)\" for hver farge i dictionarien.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Oppgave 6.10\n",
+ ":class: tip\n",
+ "Følgende program har noen variabler som inneholder informasjon om noen elever som har en bestemt lærer. Legg dem inn i en dictionary isteden. Hva er fordelen med å bruke dictionarier her?\n",
+ "```{code-block} Python\n",
+ "elever = [\"Gunnar\", \"Marius\", \"Kristian\"]\n",
+ "lærer = [\"Andreas\"]\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 6.11 (biologi)\n",
+ ":class: tip\n",
+ "Lag en dictionary med ulike arter og forskjellige egenskaper til disse artene. Det bør være minst 3 ulike arter med 3 egenskaper hver.\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "42228742",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "I videoene nedenfor kan du få en innføring eller repetisjon i den grunnleggende teorien bak arrayer og dictionarier:\n",
+ "\n",
+ "````{tab-set}\n",
+ "```{tab-item} Arrayer og tupler\n",
+ "\n",
+ "```\n",
+ "```{tab-item} Dictionarier\n",
+ "\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "52f533e8",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/tema3_datahandtering/lese_filer.ipynb b/_sources/docs/tema3_datahandtering/lese_filer.ipynb
new file mode 100644
index 00000000..61e872cf
--- /dev/null
+++ b/_sources/docs/tema3_datahandtering/lese_filer.ipynb
@@ -0,0 +1,820 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datahåndering II: Håndtere og visualisere data\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. lese data fra fil\n",
+ "2. rydde og sortere data\n",
+ "3. visualisere fildata\n",
+ "```\n",
+ "\n",
+ "```{epigraph}\n",
+ "In God we trust; all others must bring data.\n",
+ "\n",
+ "-- Statistiker W. Edwards Deming (1900–1993)\n",
+ "```\n",
+ "\n",
+ "Data er over alt. Til daglig prosesserer vi store mengder med data i hjernen vår, og vi lærer og konstruerer nye oppfatninger og sammenhenger basert på disse inntrykkene. Dersom vi snubler i en høy dørterskel tilstrekkelig mange ganger, lærer vi etter hvert å ta høyere skritt over akkurat denne terskelen. Vi klarer også stort sett å kjenne igjen dyr som hunder, katter og aper, og vi klarer å skille dem fra hverandre. Det er fordi vi har samlet masse data i løpet av livet som gjør oss egnet til å trekke slutninger og gjøre (som regel?) gode valg. Samfunnet og internett samler også data om oss, blant annet for å tilpasse seeropplevelser på Netflix eller annonser på Google. Heldigvis er datainnsamling ganske regulert gjennom lover og regler (GDPR = General Data Protection Regulation).\n",
+ "\n",
+ "Vi kan også bruke data til å illustrere sammenhenger i natur og samfunn, og som utgangspunkt for modellering. Vi skal derfor her se på hvordan vi kan lese, bearbeide og visualisere data på en god måte."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Datafiler\n",
+ "Vi ønsker ofte å oppbevare og overføre data i _råtekstformat_ fordi de er robuste og kan leses av alle. Det betyr at dataene ikke har noen formatering eller annen informasjon enn de faktiske dataene. En Word-fil er for eksempel ikke råtekst, fordi den inneholder formatering av tekst som farger, kursivering og tekststørrelse. Eksempler på råtekstfiler er .txt-filer og .csv-filer. Råtekstdata kan vi lage manuelt, eller vi kan få dem fra sensorer eller laste dem ned fra internett. De fleste store datafiler lagres i råtekst.\n",
+ "\n",
+ "Vi kan bruke Python til å lese slike data på mange ulike måter. Vi skal se på tre ulike metoder å gjøre det på, slik at du kan benytte det som er best i en gitt situasjon. Alle metodene har fordeler og ulemper, som vi også skal adressere. Vi kommer derimot til å bruke metoden fra det mye brukte _Pandas_-biblioteket som standard seinere, så det kan være en fordel at du lærer deg denne metoden best. Det er også den enkleste måten å lese filer på.\n",
+ "\n",
+ "Vi tar utgangspunkt i en liten fil med få datapunkter, slik at det er enkelt å se hva som skjer når vi leser fila. Fila beskriver temperaturen i en kaffekopp (i $^oC$) med tida (i minutter), og ser slik ut:\n",
+ "\n",
+ "```{code-block} text\n",
+ "tid (min), temperatur (grader celsius)\n",
+ "0,90\n",
+ "1,80\n",
+ "2,72\n",
+ "3,64\n",
+ "4,59\n",
+ "5,51\n",
+ "6,45\n",
+ "7,42\n",
+ "8,39\n",
+ "9,37\n",
+ "10,36\n",
+ "```\n",
+ "\n",
+ "Vi ser at fila skiller datapunktene med komma, og at første linje som fungerer som overskrift. Dette er viktig informasjon når vi skal lese fila. For å lese en datafil, må den enten ligge i samme mappe som programmet som leser fila, eller så må du spesifisere hvilken filbane fila har. Det enkleste er å legge den i samme mappe som programmet, eller i en mappe som for eksempel heter \"datafiler\", som ligger i samme mappe som programmet ditt. Alternativt går det an å lese rett fra en nettadresse som peker direkte på en datafil (f.eks. \"https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/temperatur.txt\").\n",
+ "\n",
+ "Nedenfor ser vi tre måter å lese filer på. Vi skal primært bruke Pandas-metoden videre, men vi skal likevel gjennomgå alle metodene slik at du kjenner til litt ulike framgangsmåter."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "``````{tab-set} \n",
+ "`````{tab-item} Standard Python\n",
+ "Vi kan bruke grunnstrukturer i Python til å lese filer uten å bruke biblioteker. Da må vi benytte løkker for å gjenta operasjoner for hver linje i fila:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Her bruke vi kommandoen _open_, med nøkkelordet _\"r\"_ (read). I løkka leser programmet hver linje, og deler dataene ved hvert komma, spesifisert i kommandoen _split_. Dette genererer ei liste med to elementer, siden det er to elementer på hver rad. Disse elementene blir tolket som tekst. Derfor konverterer vi dem til flyttall og legger dem i hver sin liste, som vi plotter til slutt. Vi lukker også fila til slutt.\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Kjør programmet nedenfor i Trinket-vinduet ovenfor. Hva viser programmet deg?\n",
+ "```{code-block} Python\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "fil = open(\"temperatur.txt\", 'r')\n",
+ "fil.readline() \n",
+ "t = []\t\t\t\t\t\t \n",
+ "T = []\t\t\t\t\t \n",
+ "\n",
+ "for rad in fil:\t\t\t\t \n",
+ " print(\"rad:\", rad)\n",
+ " data = rad.split(\",\")\t\t \n",
+ " print(\"splittet rad:\", data)\n",
+ " print(\"radelement 1:\", data[0], \"radelement 2:\", data[1])\n",
+ "fil.close()\n",
+ "```\n",
+ "````\n",
+ "`````\n",
+ "\n",
+ "`````{tab-item} Numpy-biblioteket\n",
+ "Det finnes også en nyttig funksjon som heter _loadtxt_ i _numpy_-biblioteket, som lar deg lese filer på en vektorisert måte uten løkker. Da lages det en array av dataene, med en array for hver kolonne inni denne arrayen. Arrayen er altså todimensjonal, og vi må derfor trekke ut de relevante kolonnene i hver sin endimensjonale array.\n",
+ "\n",
+ "\n",
+ "\n",
+ "Her utfører vi \"array-slicing\", det vil si at vi plukker ut elementer fra en todimensjonal array og lager en ny endimensjonal array av det.\n",
+ "\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Kjør programmet nedenfor i Trinket-vinduet ovenfor. Hva viser programmet deg om array-slicing? Eksperimenter gjerne med å bytte ut verdiene, slik at du forstår hvordan verdiene plukkes ut\n",
+ "\n",
+ "```{code-block} Python\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "data = np.loadtxt(\"temperatur.txt\", skiprows = 1, delimiter = \",\") # Får to arrayer (kolonner) i en array\n",
+ "print(data)\n",
+ "t = data[0:3,0]\n",
+ "T = data[0:3,1] \n",
+ "print(t)\n",
+ "print(T)\n",
+ "\n",
+ "plt.scatter(t, T)\n",
+ "plt.xlabel(\"Tid (s)\")\n",
+ "plt.xlabel(\"Temperatur ($^o$C)\")\n",
+ "plt.show()\n",
+ "```\n",
+ "````\n",
+ "`````\n",
+ "\n",
+ "`````{tab-item} Pandas-biblioteket\n",
+ "Et svært mye brukt bibliotek er Pandas-biblioteket. Det benyttes mye i datahåndtering og maskinlæring, og er kanskje den enkleste måten å lese filer på. Med funksjonen _read\\_csv_ leses filer av typen .txt eller .csv, og vi får en ny datatype som kalles en _dataramme_ (_dataframe_). En slik datatype kan ses på som en slags dictionary, der kolonneoverskriftene fungerer som nøkler. Dermed skriver vi _data[\"temperatur\"]_ for å få tilgang til kolonnen med overskriften \"temperatur\".\n",
+ "\n",
+ "\n",
+ "\n",
+ "Pandas gir penest og ryddigst output dersom du bruker det i Jupyter Notebook. Vi skal bruke Pandas videre her, så da får du en smakebit på hva som er mulig.\n",
+ "`````\n",
+ "``````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Håndtere data med Pandas\n",
+ "\n",
+ "Noen ganger trenger vi å rydde, utforske og omstrukturere datasettene våre før vi visualiserer dem. Dette egner Pandas seg svært godt til. La oss se på et eksempel. Datafila _penguins.txt_ inneholder ulik informasjon om pingviner som er registrert på ulike øyer. Vi kan lese fila slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "\n",
+ "pingvindata = pd.read_csv(\"https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h21/datafiler/penguings.txt\", delimiter = \",\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå kan vi ta en kikk på de første eller siste linjene i datasettet vårt ved å bruke funksjonene _head_ eller _tail_. Dersom vi ikke gir disse funksjonene en parameterverdi, får vi de 5 første eller siste linjene:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
species
\n",
+ "
island
\n",
+ "
bill_length_mm
\n",
+ "
bill_depth_mm
\n",
+ "
flipper_length_mm
\n",
+ "
body_mass_g
\n",
+ "
sex
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
39.1
\n",
+ "
18.7
\n",
+ "
181.0
\n",
+ "
3750.0
\n",
+ "
MALE
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
39.5
\n",
+ "
17.4
\n",
+ "
186.0
\n",
+ "
3800.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
40.3
\n",
+ "
18.0
\n",
+ "
195.0
\n",
+ "
3250.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
36.7
\n",
+ "
19.3
\n",
+ "
193.0
\n",
+ "
3450.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " species island bill_length_mm bill_depth_mm flipper_length_mm \\\n",
+ "0 Adelie Torgersen 39.1 18.7 181.0 \n",
+ "1 Adelie Torgersen 39.5 17.4 186.0 \n",
+ "2 Adelie Torgersen 40.3 18.0 195.0 \n",
+ "3 Adelie Torgersen NaN NaN NaN \n",
+ "4 Adelie Torgersen 36.7 19.3 193.0 \n",
+ "\n",
+ " body_mass_g sex \n",
+ "0 3750.0 MALE \n",
+ "1 3800.0 FEMALE \n",
+ "2 3250.0 FEMALE \n",
+ "3 NaN NaN \n",
+ "4 3450.0 FEMALE "
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pingvindata.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Her ser vi både kolonnenavnene og verdier til de fem første pingvinene. Vi kan også se at vi får en litt merkelig verdi, nemlig NaN. Dette står for \"Not a Number\" og er en vanlig måte å markere at vi mangler data. Det betyr for eksempel at pingvinene er registrert, men at vi ikke fikk undersøkt den. Vi ser for øvrig at _read\\_csv_ fra Pandas kan lese både NaN-verdier, tekst og tall samtidig."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Rydde data\n",
+ "\n",
+ "Mange ganger har vi behov for å utforske og rydde litt i datasettet vårt. Det kan hende vi kun trenger noen utvalgte verdier, eller det kan hende vi ønsker å slette noe. Programmet nedenfor viser deg noen muligheter. Husk at hvis du skal lagre verdier, må du tilordne dem til variabler. For eksempel _finner_ vi kun damepingvinene ved å skrive _pingvindata[pingvindata[\"sex\"] == \"FEMALE\"]_. Hvis vi vil lage en dataframe som kun inneholder damepingvinene, må vi skrive _pingvindata_damer = pingvindata[pingvindata[\"sex\"] == \"FEMALE\"]_. Nedenfor ser du et utvalg muligheter vi har med pandas. Studer eksempelen nøye og test dem gjerne ut selv! En god måte å jobbe med dette på, er å skrive ut _pingvindata.head()_ hver gang du har gjort en endring i datasettet for å se hva som har skjedd."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
species
\n",
+ "
island
\n",
+ "
bill_length_mm
\n",
+ "
bill_depth_mm
\n",
+ "
flipper_length_mm
\n",
+ "
body_mass_g
\n",
+ "
sex
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
39.1
\n",
+ "
18.7
\n",
+ "
181.0
\n",
+ "
3750.0
\n",
+ "
MALE
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
39.5
\n",
+ "
17.4
\n",
+ "
186.0
\n",
+ "
3800.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
40.3
\n",
+ "
18.0
\n",
+ "
195.0
\n",
+ "
3250.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
36.7
\n",
+ "
19.3
\n",
+ "
193.0
\n",
+ "
3450.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " species island bill_length_mm bill_depth_mm flipper_length_mm \\\n",
+ "0 Adelie Torgersen 39.1 18.7 181.0 \n",
+ "1 Adelie Torgersen 39.5 17.4 186.0 \n",
+ "2 Adelie Torgersen 40.3 18.0 195.0 \n",
+ "3 Adelie Torgersen NaN NaN NaN \n",
+ "4 Adelie Torgersen 36.7 19.3 193.0 \n",
+ "\n",
+ " body_mass_g sex \n",
+ "0 3750.0 MALE \n",
+ "1 3800.0 FEMALE \n",
+ "2 3250.0 FEMALE \n",
+ "3 NaN NaN \n",
+ "4 3450.0 FEMALE "
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Sjekke hvilke kolonnekategorier vi har\n",
+ "pingvindata.columns\n",
+ "\n",
+ "# Teller ulike forekomster i kolonnen\n",
+ "pingvindata[\"sex\"].value_counts()\n",
+ "\n",
+ "# Finne en spesifikk kolonne\n",
+ "pingvindata[\"flipper_length_mm\"]\n",
+ "\n",
+ "# Finne et utvalg elementer [fra:til] av en spesifikk kolonne\n",
+ "pingvindata[\"flipper_length_mm\"][0:10]\n",
+ "\n",
+ "# Finne flere kolonner\n",
+ "pingvindata[[\"bill_length_mm\", \"bill_depth_mm\", \"flipper_length_mm\"]]\n",
+ "\n",
+ "# Finne spesifikke elementer\n",
+ "pingvindata.loc[1] # Element 1 (andre element)\n",
+ "pingvindata.loc[100][2] # Element 100, kolonneverdi 2\n",
+ "pingvindata[pingvindata[\"sex\"] == \"FEMALE\"] # Damepingviner\n",
+ "\n",
+ "# Sortere verdier etter stigende (ascending = True) rekkefølge (først nebblengde, så nebbdybde)\n",
+ "pingvindata.sort_values([\"bill_length_mm\", \"bill_depth_mm\"], ascending = True)\n",
+ "\n",
+ "# Velger ut kun de pingvinene med nebblengde under 40 mm\n",
+ "pingvindata_kort_nebb = pingvindata[pingvindata[\"bill_length_mm\"] < 40]\n",
+ "\n",
+ "# Sletter alle pingviner som har mangelfull info (NaN)\n",
+ "pingvindata.dropna()\n",
+ "\n",
+ "# Legger til en ny kolonne\n",
+ "pingvindata[\"total_mm\"] = pingvindata[\"bill_length_mm\"] + pingvindata[\"bill_depth_mm\"] \n",
+ "\n",
+ "# Lagre fila i en ny csv-fil\n",
+ "pingvindata.to_csv(\"ny_pingvinfil.csv\", index = False)\n",
+ "\n",
+ "# Sletter kolonnen har lagt til\n",
+ "pingvindata.pop(\"total_mm\")\n",
+ "pingvindata.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk pingvindatafila (du finner den under datafiler på nettsidene her) og les dataene med Pandas. Finn ut hvor mange hankjønnspingviner det er med kroppsmasse under 3000 g.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "En mulig løsning er å gjøre det slik, eller kun sortere kroppsmasse og så bruke _count\\_values_ til å telle antall av hvert kjønn.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "data1 = pingvindata[pingvindata[\"sex\"] == \"MALE\"]\n",
+ "data1 = data1[data1[\"body_mass_g\"] < 3500]\n",
+ "print(\"Antall hankjønnspinginver:\", len(data1))\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Vi kan beskrive frekvens som antall forekomster av en verdi som tilhører en variabel. Relativ frekvens er antallet forekomster av noe delt på totalt antall verdier innenfor den samme variabelen. Regn ut relativ frekvens av antall pingviner av arten Adelie.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "En mulig løsning er å gjøre det slik, eller kun sortere kroppsmasse og så bruke _count\\_values_ til å telle antall av hvert kjønn.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "arter = pingvindata[\"species\"].value_counts()\n",
+ "print(arter) # ser at Adelie er element 0 i lista over antall arter\n",
+ "adelie = arter[0]\n",
+ "n = len(pingvindata)\n",
+ "print(\"Relativ frekvens:\", round(adelie/n,2))\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualisering\n",
+ "Visualisering av data er viktig. Det gir oss mulighet til å enkelt se sammenhenger og tolke data. En illustrasjon bør være så klar og enkel som mulig, uten unødvendige detaljer. Vær derfor kritisk når du skal lage dine egne figurer. Vi skal bruke et bibliotek som heter _seaborn_ til å lage fine visualiseringer. Seaborn-biblioteket inneholder noen ekstra fine plott som utvidelse til matplotlib, og vi kan bruke vanlige matplotlib-kommandoer som _xlabel_ og _title_ sammen med seaborn-kommandoene. La oss på noen få nyttige plott her. Vi skal se nærmere på andre plott ettersom de blir nyttige.\n",
+ "\n",
+ "Her er et eksempel på et relasjonsplott (\"relplot\"), som viser sammenhengen mellom to variabler. Vi kan lage ulike markører og modifisere størrelsen til markørene. I plottet nedenfor er det kanskje litt i overkant mye informasjon som formidles, men det viser i hvert fall hva som er mulig."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt \n",
+ "import seaborn as sns\n",
+ "\n",
+ "sns.relplot(data=pingvindata, x=\"bill_length_mm\",y=\"bill_depth_mm\", hue=\"species\", size=\"body_mass_g\", style=\"island\")\n",
+ "plt.xlabel(\"Nebblengde (mm)\")\n",
+ "plt.ylabel(\"Nebbdybde (mm)\")\n",
+ "plt.title(\"Sammenheng mellom nebbdybde og nebblengde hos pingviner\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Forklar hva plottet ovenfor formidler. Foreslå eventuelt forbedringer av visualiseringen.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Visualiseringen nedenfor formidler noe av det samme, men med fokus på hvilke verdier som er mest vanlig hos de ulike artene. Vi kaller det for et \"tetthetsplott\" (kde = kernel density estimate), siden det viser fordelingen (tettheten) av de ulike verdiene. En slik visualisering kan leses omtrent som et kart med høydenivåer – den innerste \"ringen\" viser området der det er \"høyest\", altså har flesteparten av pingvinene denne fordelingen."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.barplot(data=pingvindata, x=\"species\", y=\"body_mass_g\", hue=\"sex\", ci=\"sd\") # ci = \"sd\" gir standardavviket som svarte streker"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Søylediagrammer egner seg godt til å illustrere forskjeller mellom ulike kategorier, mens histogrammer viser fordelingen av en bestemt variabel. Vi ser også at søylediagrammene kan vise spredningen i datasettet (de svarte linjene)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Som sagt finnes det mange andre mulige visualiseringer og måter å pynte plottene på, men vi nøyer oss i første omgang med disse."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "```{admonition} Oppgave 1: Visualisere data\n",
+ ":class: tip\n",
+ "Fila `titrering.txt` (som du finner [her](https://realprog.no/docs/datafiler.html)) inneholder en kolonne med tilsatt volum NaOH i mL til en løsning med eddiksyre og en kolonne med pH. \n",
+ "\n",
+ "Les av fila og plott titrerkurven.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 2: Undersøke data\n",
+ "Les inn data fra fila `antall-meldte-covid-19.txt` (som du finner [her](https://www.uio.no/studier/emner/matnat/natfag/NAT3000/h21/datafiler/antall-meldte-covid-19.txt)) ved hjelp av Pandas.\n",
+ "\n",
+ "1. Hva beskriver datasettet?\n",
+ "2. Vis de første 5 radene i datasettet.\n",
+ "3. Finn ut hvor mange rader og kolonner datasettet inneholder.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Den molare massen til et grunnstoff kan beregnes ved å ta summen av den molare massen til hvert av isotopene til grunnstoffet multiplisert med andelen/forekomsten av denne istopen:\n",
+ "\n",
+ "$$\\sum_i m_iw_i$$\n",
+ "\n",
+ "Her er $m_i$ massen til den $i$-te isotopen av grunnstoffet, og $w_i$ er forekomsten av denne istopen (fra 0 til 1, der 1 er 100 prosent forekomst). Fila _tinn.txt_ inneholder forekomsten i \\% av ulike isotoper av tinn, som er grunnstoffet med mest stabile isotoper.\n",
+ "\n",
+ "1. Les av fila.\n",
+ "2. Bruk informasjonen til å regne ut den molare massen til tinn. Print ut massen med fire desimaler og korrekt enhet.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I videoene nedenfor kan du få en innføring eller repetisjon i den grunnleggende teorien bak lesing av filer:\n",
+ "\n",
+ "````{tab-set} \n",
+ "```{tab-item} Lese filer med loadtxt\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{tab-item} Lese filer med pandas\n",
+ "\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema3_datahandtering/maskinlaring.ipynb b/_sources/docs/tema3_datahandtering/maskinlaring.ipynb
new file mode 100644
index 00000000..a548f3b6
--- /dev/null
+++ b/_sources/docs/tema3_datahandtering/maskinlaring.ipynb
@@ -0,0 +1,458 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datahåndtering IV: Maskinlæring\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. gjør rede for hva som menes med maskinlæring\n",
+ "2. lage, teste og evaluere enkle modeller ved hjelp av maskinlæring\n",
+ "```\n",
+ "\n",
+ "Når et barn har sett en hund som har blitt omtalt som en hund, generaliserer det ofte slik at det oppfatter alle dyr som hund. Men ettersom barnet ser flere ulike hunder og andre dyr, klarer det etter hvert å skille hund som en egen kategori. Vi danner oss forestillinger og generaliseringer basert på observasjoner i virkeligheten. Dette kalles _induksjon_. Slutningene vi tar, følger ikke med nødvendighet, men med sannsynlighet. Og ganske ofte kan vi ta feil. Men desto flere uttrykk vi utsettes for, desto større sannsynlighet er det som regel at vi har rett.\n",
+ "\n",
+ "Vi kan bruke induktiv læring på datamaskinen også. Da kaller vi det _maskinlæring_. Med de store mengdene digitale data vi omgir oss med, kan datamaskinen lære og trekke slutninger om verden rundt oss. Så istedenfor å eksplisitt kode alle valg en datamaskin kan ta, lar vi datamaskinen lære fra data og trekke slutninger selv.\n",
+ "\n",
+ "I dette kapitlet skal vi se på hvordan vi kan benytte biblioteket _scikit-learn_ og _keras_, som er en del av _tensorflow_. Disse bibliotekene må installeres først – du kan skrive for eksempel _pip install scikit-learn tensorflow_ i et terminalvindu for å gjøre dette. Bibliotekene fungerer svært godt sammen med Pandas med Jupyter Notebook som programmeringsplattform, så vi kommer til å benytte dette her.\n",
+ "\n",
+ "Vi vender atter tilbake til pingvinene våre. Vi skal her lage en maskinlæringsmodell for å artsbestemme ringpingviner, bøylepingviner og adeliepingviner.\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Steg 1: Les av og utforsk dataene"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
species
\n",
+ "
island
\n",
+ "
bill_length_mm
\n",
+ "
bill_depth_mm
\n",
+ "
flipper_length_mm
\n",
+ "
body_mass_g
\n",
+ "
sex
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
39.1
\n",
+ "
18.7
\n",
+ "
181.0
\n",
+ "
3750.0
\n",
+ "
MALE
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
39.5
\n",
+ "
17.4
\n",
+ "
186.0
\n",
+ "
3800.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
40.3
\n",
+ "
18.0
\n",
+ "
195.0
\n",
+ "
3250.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
Adelie
\n",
+ "
Torgersen
\n",
+ "
36.7
\n",
+ "
19.3
\n",
+ "
193.0
\n",
+ "
3450.0
\n",
+ "
FEMALE
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " species island bill_length_mm bill_depth_mm flipper_length_mm \\\n",
+ "0 Adelie Torgersen 39.1 18.7 181.0 \n",
+ "1 Adelie Torgersen 39.5 17.4 186.0 \n",
+ "2 Adelie Torgersen 40.3 18.0 195.0 \n",
+ "3 Adelie Torgersen NaN NaN NaN \n",
+ "4 Adelie Torgersen 36.7 19.3 193.0 \n",
+ "\n",
+ " body_mass_g sex \n",
+ "0 3750.0 MALE \n",
+ "1 3800.0 FEMALE \n",
+ "2 3250.0 FEMALE \n",
+ "3 NaN NaN \n",
+ "4 3450.0 FEMALE "
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import seaborn as sns\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "pingvindata = pd.read_csv(\"data/penguins.txt\", delimiter = \",\")\n",
+ "pingvindata.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når vi har lest inn fila, kan det være lurt å visualisere ulike sammenhenger i datasettet. Vi skal bestemme oss for hvilke _kriterier_ eller _attributter_ (\"features\") vi ønsker å legge til grunn for å plassere pingvinen i en eller kategori (\"label\"). Vi velger her å lage en modell som skal forutsi hvilken pingvinart vi har med å gjøre gitt bestemte verdier av et utvalg variabler. Her er det nyttig å visualisere sammenhenger slik at du har en formening om hvilke kategorier som er mest egnet til en bestemmelsesnøkkel.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk pairplot-funksjonen til seaborn-biblioteket til å lage noen hypoteser på hvilke kriterier som er mest avgjørende for å bestemme hva slags art vi har med å gjøre.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Siden det mangler noen verdier (NaN), må vi gjøre noe med dem. Enten kan vi bytte dem ut med for eksempel medianverdien eller gjennomsnittet, eller så kan vi fjerne alle pingvinene med NaN-verdier. Sistnevnte er ganske drastisk, men går ofte greit dersom datasettet er stort. Vi gjør det slik for enkelhets skyld:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "pingvindata.dropna(inplace=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Steg 2: Velge treningssett og testsett\n",
+ "For å lage en modell som skal forutsi pingvinarten, må vi først importere noen nyttige funksjoner fra scikit-learn-biblioteket. Vi skal gradvis se hva disse funksjonene gjør."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split, cross_val_score\n",
+ "from sklearn import tree\n",
+ "from sklearn.metrics import accuracy_score, confusion_matrix"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå er vi klare for litt maskinlæring. Grunnprinsippene er som følger:\n",
+ "1. Bestem hvilke kriterier som skal ligge til grunn for kategorien vi ønskerat maskinlæringsalgoritmen skal sortere etter.\n",
+ "2. Velg ut en del av datasettet som datamaskinen skaltrenepå og en avdatasettet vi skaltestemed til slutt. Datamaskinen ser på kriteriene ogde tilhørende kategoriene, og bestemmer en sannsynlighet for sammen-hengen mellom ulike kriterier og kategorier.\n",
+ "3. Lag en modell. Dette gjør vi ved å bruke ferdige algoritmer fra et ma-skinlæringsbibliotek.\n",
+ "4. Tren modellen med treningssettet. Nå har du lagd en modell som ertilpasset det vi ønsket.\n",
+ "5. Valider modellen ved å bruke testsettet.\n",
+ "6. Analyser modellen og gjør eventuelle endringer slik at forutsigelsene mo-dellen gjør, blir så gode som mulig"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Først velger vi altså ut kriterier og bestemmer kategorier. La oss bare begynne med to kriterier: nebblengde og nebbdybde."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "kriterier = pingvindata[['bill_length_mm', 'bill_depth_mm']] # features\n",
+ "kategorier = pingvindata['species'] # labels"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Legg merke til at det er dobbel klammeparentes i første linje. Dette gir et objekt med to kolonner. Maskinlæringsalgoritmene krever et objekt (en array eller dataramme) som består av både kolonner og rader, derfor er disse doble klammeparentesene alltid nødvendig.\n",
+ "\n",
+ "La oss nå velge ut hvor stor andel av datasettet vi skal trene med. Det er ofte lurt å trene med 70–80 \\% av datasettet, og bruke resten til å teste med. Det finnes en funksjon som gjør dette automatisk, nemlig _train\\_test\\_split_:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Velge ut data til trening og testing\n",
+ "treningsandel = 0.8 # Velger 80 prosent av datasettet til trening\n",
+ "ml_data = train_test_split(kriterier, kategorier, train_size=treningsandel, random_state=42)\n",
+ "\n",
+ "treningskriterier = ml_data[0]\n",
+ "testkriterier = ml_data[1]\n",
+ "treningskategorier = ml_data[2]\n",
+ "testkategorier = ml_data[3]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det funksjonen ovenfor gjør, er å velge ut 80 \\% av dataene fra tilfeldige steder i datasettet til trening og 20 \\% til testing. Vi lagrer kriterier (lengden og dypbden til pingvinnebbet) og tilsvarende kategori (art) i variabelen _ml\\_data_. Denne består nå av fire separate elementer, som vi sorterer i linjene nederst i fire ulike variabler: kategorielementene (altså verdien til nebbdybde og nebblengde) og de tilsvarende kategoriene (hvilken art det tilsvarer) som ble valgt ut til trening, og tilsvarende for testing.\n",
+ "\n",
+ "En litt merkelig parameter er _random\\_state_. Den er ikke nødvendig for å dele opp datasettet, men den er nyttig. Hvis vi velger et tilfeldig tall her, låser vi algoritmen slik at den plukker ut de samme tallene hver gang vi kjører programmet. Det kan være en fordel dersom vi ønsker å teste og tilpasse modellen, men ønsker å ha det samme utvalget av datasettet hver gang. Hvis vi ikke velger et fast utvalg, vil modellen gi ulike resultater hver gang vi kjører programmet.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ "Skriv ut de ulike kategoriene og kriteriene for å se hva programmet har generert så langt. Prøv å bytte ut eller fjerne random\\_state-parameteren og kjør programmet flere ganger. Observer hva som skjer.\n",
+ "\n",
+ "\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Steg 3: Lag modellen\n",
+ "Nå kan vi velge en algoritme som grunnlag for modellen vår. Det finnes mange ulike algoritmer, og de benytter statistikk og lineær algebra til å optimere ulike parametre. Vi skal ikke se på algoritmene her, men heller fokusere på å forstå hvordan de fungerer. Derfor starter vi med en enkel beslutningstrealgoritme. Denne fungerer som et slags valgtre, der hvert valg utføres fra et gitt kriterium (for eksempel nebblengde mindre enn 40 mm), og som brukes til å sannsynliggjøre hvilken art vi har med å gjøre.\n",
+ "\n",
+ "Vi lager og trener modellen slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier()"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modell = tree.DecisionTreeClassifier() # Lager modellen\n",
+ "modell.fit(treningskriterier, treningskategorier) # Trener modellen"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå har vi (eller datamaskinen) faktisk lagd modellen vår, og vi har brukt treningsdataene til å trene modellen slik at den best mulig kan forutsi kategorier basert på gitte kriterier."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Steg 4: Test og evaluer modellen\n",
+ "Vi skal nå teste og evaluere modellen vår:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9402985074626866"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "forutsigelser = modell.predict(testkriterier)\n",
+ "accuracy_score(testkategorier, forutsigelser)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Her bruker vi altså testkriteriene og lar modellen forutsi hvilke kategorier dette tilsvarer (forutsigelser). Så sammenlikner vi dette med de faktiske kategoriene (testkategorier) med funksjonen \\texttt{accuracy\\_score}. I dette tilfellet får vi en treffsikkerhet på ca. 94 \\%. Det betyr at modellen vår gir riktig pingvinart 94 \\% av gangene. Det er ikke verst!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan også bruke modellen til å forutsi en art gitt helt nye data, for eksempel slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['Adelie'], dtype=object)"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "nebblengde = 35\n",
+ "nebbdybde = 15\n",
+ "modell.predict([[nebblengde, nebbdybde]]) # Husk to klammer her!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Dette betyr at en pingvin med nebblengde 35 mm og nebbdybde 15 mm mest sannsynlig er en Adelie-pingvin."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Steg 5: Videre analyse\n",
+ "Noen ganger blir modellen ganske dårlig, og da kan det hende du bør gå tilbake og velge andre, eller flere attributter (kriterier) for modellen. For å analysere videre hva modellen feiler på, kan det være fint å lage en forvirringsmatrise(også kalt feilmatrise). Tallene for forvirringsmatrisen kan vi lage med en funksjon som heter _confusion\\_matrix_, og selve matrisen kan vi lage med heatmap-funksjonen til seaborn-biblioteket:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "cm = confusion_matrix(forutsigelser, testkategorier)\n",
+ "sns.heatmap(cm, annot=True, cmap=\"viridis\",\n",
+ " xticklabels=[\"Adelie\", \"Chinstrap\", \"Gentoo\"], yticklabels=[\"Adelie\", \"Chinstrap\", \"Gentoo\"])\n",
+ "plt.xlabel(\"Predikerte verdier\")\n",
+ "plt.ylabel(\"Sanne verdier\")\n",
+ "plt.savefig(\"forvirringsmatrise.pdf\", dpi = 600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Hvis vi ikke benytter _ticklabels_, får vi verdiene 0, 1 og 2, som vi selv må tolke som de ulike artskategoriene etter rekkefølgen de har i datasettet. \n",
+ "\n",
+ "Totalt har vi brukt 20 \\% av datasettets 333 datapunkter til testing, det vil si 67 datapunkter. Matrisen sammenlikner de predikerte kategoriene og de sanne testkategoriene. Vi kan se at den for eksempel forutså at arten tilhørte Adelie 29 riktige ganger, men forutså Chinstrap (ringpingvin) én gang der arten skulle vært Gentoo (bøylepingvin)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Maskinlæring kan brukes til ufattelig mye rart, og det finnes mange ulike modeller som man kan prøve ut. Her var hovedpoenget å bli litt kjent med hva maskinlæring er og hvor enkelt det er å utføre enkel maskinlæring med dagens verktøy."
+ ]
+ }
+ ],
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema3_datahandtering/plotting.ipynb b/_sources/docs/tema3_datahandtering/plotting.ipynb
new file mode 100644
index 00000000..5ec9c036
--- /dev/null
+++ b/_sources/docs/tema3_datahandtering/plotting.ipynb
@@ -0,0 +1,448 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datahåndtering I: Visualisering\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. bruke matplotlib-biblioteket til visualisering\n",
+ "2. plotte datapunkter og funksjoner\n",
+ "3. lage og tolke ulike visualiseringer\n",
+ "```\n",
+ "Håndtering av data blir stadig viktigere i dagens samfunn. En viktig del av datahåndtering er å kunne generere fine og informative figurer som beskriver dataene på en god måte. Det blir stadig vanligere å bruke programmering til dette. Det finnes flere typer biblioteker som kan gi oss fine og profesjonelle figurer. Vi begynner med et mye brukt bibliotek som heter _matplotlib_. Hvis du foretrekker å importere _pylab_ istedenfor, kan du godt gjøre det. Pylab-biblioteket inneholder også alle de samme plotteverktøyene.\n",
+ "\n",
+ "## Plotting av lister\n",
+ "Hvis vi har få datapunkter, kan vi skrive dem inn i lister direkte i programmet vårt og plotte dem. La oss si at vi har samlet data for hvor raskt en hurtigvoksende plante vokser annenhver dag. Vi registerer dagene og høyden til planten i cm, og legger disse verdiene inn i lister."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt # importerer relevante plotteverktøy\n",
+ "\n",
+ "tid = [0, 2, 4, 6, 8, 10, 12, 14] # tid i dager\n",
+ "plantehøyde = [0, 1, 4.2, 7.9, 12.5, 13, 13.7, 13.9] # høyde i cm\n",
+ "\n",
+ "plt.plot(tid, plantehøyde) # plotter plantehøyde mot tid\n",
+ "plt.show() # viser plottet"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Hvis vi har lyst til å modifisere og pynte på plottet, har vi mange muligheter til det. Her er noen forslag til en del nyttige endringer av plottet ovenfor:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.plot(tid, plantehøyde, color = 'limegreen', marker = 'o', linestyle = '--')\n",
+ "plt.title(\"Forsøk: Plantevekst\") # tittel\n",
+ "plt.xlabel(\"Tid (dager)\") # x-aksetittel\n",
+ "plt.ylabel(\"Plantens høyde (cm)\") # y-aksetittel\n",
+ "plt.xlim(0,15) # definisjonsmengde\n",
+ "plt.ylim(0,20) # verdimengde\n",
+ "plt.grid() # tegner rutenett\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det finnes utrolig mange måter å modifisere et plott på. Tabellene nedenfor viser en oversikt over nyttige plottekommandoer, linjestiler, markører og farger, som du kan bruke for å lage akkurat den figuren du ønsker. Du bør også søke litt rundt på nettet for å finne andre muligheter, for eksempel ved å søke på «python plotting colors» og liknende. Du må bruke internett flittig når du lurer på noe i programmering!\n",
+ "\n",
+ "En veldig nyttig kommando når vi skal representere flere grafer i samme koordinatsystem, er _legend_. Denne kommandoen viser merkelappene (\"labels\") til de ulike plottene. Programmet nedenfor gir et eksempel på dette.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Programmet nedenfor plotter miljøgifter i ulike organismer i to innsjøer. Studer programmet og eksperimenter med ulike verdier fra tabellen nedenfor.\n",
+ "```\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "````{tabbed} Nyttige plottekommandoer\n",
+ "```{code-block} Python\n",
+ "plot(x,y) # plotter x mot y og trekker rette linjer mellom\n",
+ "scatter(x,y) # plotter kun punkter\n",
+ "show() # viser plottet\n",
+ "\n",
+ "title(\"tittel\") # tittel på plottet\n",
+ "xlabel(\"tekst\") # x-aksetittel\n",
+ "ylabel(\"tekst\") # y-aksetittel\n",
+ "xlim(fra, til) # definisjonsmengde\n",
+ "ylim(fra, til) # verdimengde\n",
+ "grid() # rutenett på\n",
+ "\n",
+ "axhline(y=0, color='black') # x-akse\n",
+ "axvline(x=0, color='black') # y-akse\n",
+ "\n",
+ "savefig(\"filnavn.png\") # lagrer bildet med god oppløsning\n",
+ "```\n",
+ "Inni plottekommandoen kan vi også legge til farger, linjestiler, markører, merkelapper og liknende:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "plot(x,y,color=\"\",marker=\"\",linestyle=\"\",label=\"\")\n",
+ "```\n",
+ "```` \n",
+ "\n",
+ "````{tabbed} Markører\n",
+ "| Markør | Forklaring |\n",
+ "| ----- | ---------- |\n",
+ "| \".\" | punkt |\n",
+ "| \"o\" | sirkel |\n",
+ "| \" \" (mellomrom) | ingen markør |\n",
+ "| \"^\" | triangel opp |\n",
+ "| \"v\" | triangel ned |\n",
+ "| \"s\" | firkant |\n",
+ "| \"p\" | femkant |\n",
+ "```` \n",
+ "\n",
+ "````{tabbed} Linjestiler\n",
+ "| Linjestil | Forklaring |\n",
+ "| ----- | ---------- |\n",
+ "| \"-\" | heltrukket linje |\n",
+ "| \"--\" | stipla linje (lange) |\n",
+ "| \";\" | stipla linje (korte) |\n",
+ "| \"-.\" | stilpa linje (annenhver kort/lang) |\n",
+ "| \" \" (mellomrom) | ingen linje |\n",
+ "```` \n",
+ "\n",
+ "````{tabbed} Farger\n",
+ "![farger](https://matplotlib.org/2.0.2/_images/named_colors.png)\n",
+ "```` "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Plotting av funksjoner\n",
+ "En datamaskin kan bare håndtere _diskrete_ verdier, altså ikke-uendelige tallmengder. En matematisk funksjon kan derimot være kontinuerlig og ha uendelig mange funksjonsverdier. På en datamaskin må vi tilnærme denne uendelige mengden med et ganske stort antall. Dette kan vi gjøre med for eksempel _linspace_-kommandoen. Programmet nedenfor plotter funksjonen $f(x) = 2x^2 - 2x + 1$ for $x\\in[-2, 3]$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "x = np.linspace(-2, 3, 1000) # lager 1000 x-verdier mellom -2 og 3\n",
+ "y = 2*x**2 - 2*x + 1 # lager 1000 tilsvarende y-verdier til en funksjon\n",
+ "\n",
+ "plt.plot(x,y)\n",
+ "plt.xlabel('x')\n",
+ "plt.ylabel('y')\n",
+ "plt.grid()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det Python egentlig gjør når den plotter funksjoner, er å plotte et bestemt antall punkter og \"tegne\" rette linjer mellom disse punktene. Dette kalles \"lineær interpolasjon\". Det blir tydelig dersom vi kun velger ut fem punkter å plotte funksjonen i."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAArtElEQVR4nO3dd3xUVf7/8ddJrxBaAiRAII2OmKh0CBBAZZHFrutaFxtLXVdZ/e5397ddpSk2VCxryVoQFQsECFWQ3iENAiHUACGklzm/Pwh+XQiQNnNm5n6ej0ceMncyue9jwpuTO/eeq7TWCCGEsA4P0wGEEEI4lhS/EEJYjBS/EEJYjBS/EEJYjBS/EEJYjJfpALXRsmVLHRkZWa/XFhUVERgY2LiBnJyM2RpkzNbQkDFv3rw5T2vd6uLtLlH8kZGRbNq0qV6vXbFiBUOGDGncQE5OxmwNMmZraMiYlVIHa9ouh3qEEMJipPiFEMJipPiFEMJipPiFEMJipPiFEMJiXOKsnvpYuDWXFxankZtfQvj65Tw1Mo6xvcNNxxJCiFqxZ4e5ZfEv3JrL9AU7KamoAiA3v4TpC3YCSPkLIZyevTvMLQ/1vLA47af/YReUVFTxwuI0Q4mEEKL27N1hbln8R/JL6rRdCCGcib07zC2Lv22If522CyGEM2nd1K/G7Y3VYW5Z/E+NjMPf2/O/tvl6efDUyDhDiYQQovaubR9yyTZ/b89G6zC3fHP3wpsfF94RV0BsWJC8sSuEcHoFpRWsyTxF1zbBnC2pPH9WT4i/nNVTG2N7hzO2dzgrVqxge2U4s5ams/PwWXpENDUdTQghLuvt1Qc4W1LBh4/cQPfwpnZZmM4tD/Vc7KEBkYQEeDMzRc7qEUI4r/zicuavOcCobq3pHm6/Saolij/Yz5tHB0WRmnaSzQfPmI4jhBA1mrdqP4XllUxJirXrfixR/AD39+tAyyAfmfULIZxSXmEZ76zNZnTPtsS1DrbrvixT/AE+Xjw+JJq1madYl3XKdBwhhPgvr6/IoqyyisnDY+y+L8sUP8C9N7QnrIkvM1PS0FqbjiOEEAAcLyjl3+sP8sveEUS1CrL7/ixV/H7enkwYGsPG7DOszsgzHUcIIQB4JTWTKptm0jD7z/bBYsUPcGdCO8JD/JmRki6zfiGEcYfPFPPxhkPcntCO9i0CHLJPyxW/j5cHE4dFsz0nn2V7T5iOI4SwuLnLM1Eofjs02mH7tFvxK6XmK6VOKKV2/WzbC0qpfUqpHUqpL5RSIfba/5WMuzaCyBYBzExJx2aTWb8QwozsvCI+3XyYe25o79C1xOw5438XGHXRthSgu9a6J5AOTLfj/i/L29ODScNj2HO0gO93HzMRQQgheGlZBl4eiieGRDl0v3Yrfq31KuD0RduWaK0rqx+uByLstf+rGdMrnOjQIGalpFMls34hhINlnihk4bZc7u8XSWiTmlfjtBdlzzc4lVKRwCKtdfcanvsa+I/W+oPLvHY8MB4gLCwsPjk5uV4ZCgsLCQqq+fSoDccqeXVbGY/29KVvW/dZtuhKY3ZXMmZrcKcxv7qtlO0nq3hhcABNfNRlP68hY05MTNystU645Amttd0+gEhgVw3bnwW+oPofnqt9xMfH6/pKTU297HNVVTY9ctZKPeSFVF1RWVXvfTibK43ZXcmYrcFdxrznyFnd4elF+vnv9171cxsyZmCTrqFTHX5Wj1LqAWA0cG91MGM8PBTTRsRxIK+IBVtzTUYRQljIrJR0gv28GD/Qscf2L3Bo8SulRgG/B8ZorYsdue/LGd4llF4RTZmzNIPySpvpOEIIN7fjcD5L9hznkQGdaBrgbSSDPU/n/BhYB8QppQ4rpR4G5gLBQIpSaptS6nV77b+2lFJMSYolN7+ETzblmI4jhHBzM1PSCQnw5qEBkcYy2O0dTa313TVsftte+2uIwbGtSOjQjLnLM7ktPgK/i27bKIQQjWHzwdOsSDvJ06M6E+xnZrYPFrxytyZKKaaOiOVYQSkf/XjIdBwhhJuasSSdlkE+3N+vg9EcUvzV+kW1pF9UC15dkUVxeeXVXyCEEHXwQ1YeP2Sd4vEh0QT4mD19XIr/Z6aNiCWvsIz31x00HUUI4Ua01sxckk5YE1/uvaG96ThS/D8X36E5g2Nb8cbKLArLZNYvhGgcqzLy2HTwDBMSo53iPUQp/otMGxHLmeIK3llzwHQUIYQbOD/bTyM8xJ87rmtnOg4gxX+JnhEhJHUNY97q/ZwtrjAdRwjh4pbuPcH2w2eZOCwaXy/zs32Q4q/R1KRYzpVW8taa/aajCCFcmM2mmZmSTmSLAMZda2xNyktI8degS5sm3NyzDfPXHOB0UbnpOEIIF/XdrmPsPVrApOExeHs6T906TxInM2V4DCUVVbyxMst0FCGEC6qyaWYtTSc6NIgxvcJNx/kvUvyXER0azNhrwnlvXTYnzpWajiOEcDFfbz9C5olCpgyPxdPj8ssumyDFfwUTh8VQUaV5NVVm/UKI2qussjF7aTqdWwdzY/fWpuNcQor/CiJbBnJ7fAQf/XiII/klpuMIIVzEgi25ZJ8qZtqIODycbLYPUvxXNWFoNBrN3NRM01GEEC6gvNLGnGUZ9IpoyvAuoabj1EiK/yoimgVw13Xt+WRjDjmnneIWAkIIJ/afTTnk5pcwJSkWpZxvtg9S/LUyYWg0nh6Kl5ZlmI4ihHBipRVVzF2eQUKHZgyObWU6zmVJ8ddCWBM/ftWnA59vOcz+k4Wm4wghnNSHPx7ieEEZU0c472wfpPhr7fEhUfh6eTJHZv1CiBoUl1fy2opM+kW1oF9US9NxrkiKv5ZaBvnyQP9Ivtp+hLRj50zHEUI4mfd+OEheYTnTRsSajnJVUvx1MH5gJwJ9vJi9NN10FCGEEzlXWsEbq7IYHNuK+A7NTce5Kin+OmgW6MPDAzry3a5j7Mo9azqOEMJJvLM2m/ziCpeY7YMUf509PLAjTf29mZUis34hBJwtruDN1ftJ6hpGz4gQ03FqRYq/jpr4eTN+UCeW7TvB1kNnTMcRQhj25ur9nCutZGqSa8z2QYq/Xh7oF0nzQB9myqxfCEs7VVjGO2sPcHPPNnRp08R0nFqzW/ErpeYrpU4opXb9bFtzpVSKUiqj+r/N7LV/ewr09eLxwVGszshjw4HTpuMIIQx5Y9V+SiqqmDI8xnSUOrHnjP9dYNRF254BlmmtY4Bl1Y9d0q/6dCA02JcXl6ShtTYdRwjhYCcKSnl/XTZjrwknOjTYdJw6sVvxa61XARdPh28B3qv+83vAWHvt3978fTx5MjGaDQdOszbzlOk4QggHe3VFFhVVmonDXGu2D6DsOVtVSkUCi7TW3asf52utQ6r/rIAzFx7X8NrxwHiAsLCw+OTk5HplKCwsJCgoqF6vvZoKm+bpVSU081U818fPaS7RtueYnZWM2RqcZcynSmw8vaqEfuFePNTd1677asiYExMTN2utEy7e7tXgVPWktdZKqcv+q6O1ngfMA0hISNBDhgyp135WrFhBfV9bG3lBh5i+YCe06caQzs6xBKu9x+yMZMzW4Cxj/sMXO1EeOfz93oFENAuw677sMWZHn9VzXCnVBqD6vyccvP9Gd1t8BO2bBzAjRY71C2EFh04V88nGHO66rr3dS99eHF38XwH3V//5fuBLB++/0Xl7ejBpWAy7cgtYvPu46ThCCDt7aXkGnh6KCUOjTUepN3uezvkxsA6IU0odVko9DPwTSFJKZQDDqx+7vLG9w+nUKpBZKenYbDLrF8JdZZ0sZMGWw/yqTwfCmviZjlNvdjvGr7W++zJPDbPXPk3x9FBMHh7LxI+3smjnUcb0ams6khDCDuYszcDXy5PHh0SZjtIgcuVuIxndow1xYcHMXppOZZXNdBwhRCNLO3aOr3cc4YH+kbQMsu+ZPPYmxd9IPDwUU5Ji2X+yiIXbjpiOI4RoZLNS0gn08WL8wE6mozSYFH8jGtktjO7hTZizLJ0KmfUL4TZ25Z7l+93HeHhAR5oF+piO02BS/I1IKcW0pDhyTpfw6abDpuMIIRrJzJR0mvp78/DAjqajNAop/kY2JK4VvduHMHd5BmWVVabjCCEaaMuhMyzfd4LxgzrRxM/bdJxGIcXfyJRS/G5EHEfOlpK8Icd0HCFEA81KSad5oA8P9Is0HaXRSPHbQb+oFtzQsTlzUzMpKZdZvxCu6sf9p1idkcfjg6MI9DW2wk2jk+K3A6UU00bEcfJcGR+sP2g6jhCiHrTWzFiSTmiwL7/q08F0nEYlxW8n13dszsCYlry2MovCskrTcYQQdbQmM48N2ad5MjEafx9P03EalRS/HU0bEcfponLe+yHbdBQhRB1cmO23berHXde3Mx2n0Unx29E17UIY3iWUN1ZmcbakwnQcIUQtpaadYFtOPr8dFoOvl3vN9kGK3+6mJMVSUFrJ22sOmI4ihKiFC7P99s0DuC0+wnQcu5Dit7NubZtyY/fWzF9zgDNF5abjCCGuYvHuY+w+UsDEYTF4e7pnRbrnqJzMlKRYisoreWPVftNRhBBXUGXTzExJp1OrQMZe476r7ErxO0BsWDBjerXlvR+yOXmuzHQcIcRlLNpxhPTjhUweHouXm872QYrfYSYNi6G8ysbrK7NMRxFC1KCyysacpRnEhQUzukcb03HsSorfQTq1CmJc73D+vf4gx86Wmo4jhLjIF1tz2Z9XxJSkWDw8lOk4diXF70ATh8Vgs2leSc00HUUI8TPllTZeWp5B9/AmjOwWZjqO3UnxO1C75gHceV07kjce4vCZYtNxhBDVPt2cQ87pEqYlxaGUe8/2QYrf4SYMjUYpxcvLZNYvhDMorahi7vJMercPYUhcK9NxHEKK38HaNPXn3hva89mWw2TnFZmOI4TlJW84xNGzpfxuhDVm+yDFb8TjQ6Lw9lTMWZZhOooQllZSXsXc1Cxu6NicflEtTMdxGCPFr5SaopTarZTapZT6WCnlZyKHKaHBftzfN5KF23LJOH7OdBwhLOvf67PJKyxjmoVm+2Cg+JVS4cBEIEFr3R3wBO5ydA7THh0cRYC3J7OXyqxfCBMKyyp5bUUWA2Nacn3H5qbjOJSpQz1egL9SygsIAI4YymFM80AfHhrQkW92HmXPkQLTcYSwnHfXHuBMcQXTRsSZjuJwSmvt+J0qNQn4G1ACLNFa31vD54wHxgOEhYXFJycn12tfhYWFBAUFNSCt/RRVaJ5aWUxcc08mXdt4R7ucecz2ImO2hsYa84W/e7HNPJkc79xHmhsy5sTExM1a64RLntBaO/QDaAYsB1oB3sBC4FdXek18fLyur9TU1Hq/1hFeWpquOzy9SG87dKbRvqazj9keZMzW0FhjnrF4n+7w9CK9Kze/Ub6ePTVkzMAmXUOnmjjUMxw4oLU+qbWuABYA/QzkcAoPDuhIswBvZqakm44ihCWcLipn/tpsbuzemm5tm5qOY4SJ4j8E9FFKBajzb6MPA/YayOEUgny9eGxwFCvTT7Ip+7TpOEK4vTdWZVFUXsmUpFjTUYxxePFrrX8EPgO2ADurM8xzdA5n8uu+kbQM8mXGEpn1C2FPJ8+V8f4PBxnTqy2xYcGm4xhj5KwerfX/aq07a627a63v01pbepF6fx9PnkyMYt3+U/yQmWc6jhBu67UVWZRX2Zg0LMZ0FKPkyl0ncff17WnT1I8ZKekX3gQXQjSio2dL+ODHg4zrHU6nVtY6G+piUvxOws/bkycTo9l88Awr00+ajiOE23klNRObTTPR4rN9kOJ3KncktCOimT8zZdYvRKPKOV3MfzbmcOd17WjXPMB0HOOk+J2Ij5cHE4fFsOPwWVL2HDcdRwi38fLyDJRSTBgabTqKU5DidzLjeofTsWUgM1PSsdlk1i9EQx3IK+LzLbncc3172jT1Nx3HKUjxOxkvTw8mD49h37FzfLvrqOk4Qri8OUvT8fZUPJEYZTqK05Did0Kje7YlJjSI2UszqJJZvxD1lnH8HF9uP8L9fSMJDXbuNXkcSYrfCXl6KKYmxZJ5opCvtueajiOEy5q9NIMAb08eHSyz/Z+T4ndSI7u1pmubJsxemkFFlc10HCFczu4jZ/lm51EeGtCR5oE+puM4FSl+J+VRPes/eKqYBVsOm44jhMuZlZJBsJ8XjwzoZDqK05Hid2LDuoTSq10ILy3LpKyyynQcIVzGtpx8lu49zviBnWga4G06jtOR4ndiSimmJcWSm1/CJxtzTMcRwmXMTEmnWYA3Dw7oaDqKU5Lid3IDY1pyfWRz5qZmUlohs34hrmZj9mlWpZ/kscFRBPl6mY7jlK5a/Eqp3yqlmjkijLiUUoqpI2I5XlDGB+sPmo4jhNObsSSNlkG+/LpvpOkoTqs2M/4wYKNS6hOl1Kjqm6cIB+rTqQX9o1vw+sosisoqTccRwmn9kJnH+v2neWJIFP4+nqbjOK2rFr/W+jkgBngbeADIUEr9XSklJ8Y60NSkOPIKy3lvXbbpKEI4Ja01Ly5Jo3UTP+65ob3pOE6tVsf4q2/ae6z6o5LzN0z/TCn1vB2ziZ+J79CMxLhWzFu1n3OlFabjCOF0VqSfZMuhfCYMjcbPW2b7V1KbY/yTlFKbgeeBtUAPrfXjQDxwq53ziZ+ZmhRHfnEF89dkm44ihFPRWjNzSToRzfy5I6Gd6ThOrzYz/ubAOK31SK31p1rrCgCttQ0Ybdd04r/0iGjKyG5hvLV6P/nF5abjCOE0luw5zs7cs0wcFoOPl5yseDW1Ocb/v1rrGk8n0VrvbfxI4kqmJMVSWF7Jm6v3m44ihFOw2TSzUtLp2DKQcb3DTcdxCfJPo4vp3LoJo3u25Z212ZwqtPQ96oUA4JudR9l37ByTh8fg5SmVVhvyf8kFTR4eQ2lFFa+vzDIdRQijqmya2UvTiQkNYnTPtqbjuAwpfhcU1SqIX/aO4P11BzlRUGo6jhDGfLktl6yTRUxNisXTQy4xqi0jxa+UClFKfaaU2qeU2quU6msihyubNCyGKpvmldRM01GEMKKiysbspRl0bdOEkd1am47jUkzN+OcA32utOwO9AHmTuI7atwjg9oQIPt6QQ25+iek4Qjjc55sPc+h0MVOTYvGQ2X6dOLz4lVJNgUGcvxIYrXW51jrf0TncwYShMQDMXZ5hOIkQjlVWWcVLyzLo1S6EYV1CTcdxOer8RbkO3KFS1wDzgD2cn+1vBiZprYsu+rzxwHiAsLCw+OTk5Hrtr7CwkKCgoIZEdmr/3lPGipxK/jHQn9CA8/+Ou/uYayJjtoYLY156sIIP9pbzuwRfurd07xU4G/J9TkxM3Ky1TrjkCa21Qz+ABM4v+3BD9eM5wF+u9Jr4+HhdX6mpqfV+rSs4frZExz77rZ76n20/bXP3MddExmwNqampuqS8Ul/31xR922trtc1mMx3J7hryfQY26Ro61cQx/sPAYa31j9WPPwOuNZDDLYQ28ePXfTvwxdbDZJ4oNB1HCLv7YP1BTpwrY9qIOGSx4PpxePFrrY8BOUqpuOpNwzh/2EfU02ODo/Dz9mTOMjnWL9xbaaXmtRVZ9I9uQZ9OLUzHcVmmzur5LfChUmoHcA3wd0M53EKLIF8e7B/J19uPsO9Ygek4QtjN0oMVnCoqZ2pS3NU/WVyWkeLXWm/TWidorXtqrcdqrc+YyOFOfjOwE8G+XsxKSTcdRQi7KCit4LvsChLjWhHfQW4K2BBy5a6bCAnw4eGBHVm8+zjZZ+XevML9zF9zgKIKZLbfCKT43chDAzoSEuDNgky5UYtwL/nF5by9+gDxYZ70iGhqOo7Lk+J3I038vBk/qBM7Tlax+aAcPRPuY96q/RSWVzI22sd0FLcgxe9mHugXSRMfmJmSZjqKEI0ir7CMd9ZmM7pnW9oFS2U1Bvm/6GYCfLy4uZMPazNPsX7/KdNxhGiw11dkUVZZxeThMaajuA0pfjeU2M6LsCa+zFySfuFqaSFc0vGCUv69/iBje4cT1cpay1PYkxS/G/LxVExIjGZD9mlWZ+SZjiNEvb2SmkmVTTNpmMz2G5MUv5u647p2hIf4MyNFZv3CNeXml5C8IYfbEyLo0CLQdBy3IsXvpny9PJk4LJrtOfks33fCdBwh6uzCcuMXlh8XjUeK342NuzaCDi0CmLEkHZtNZv3CdRw8VcQnmw5z9/Xnf3MVjUuK3415e3owaVgMe44WsHj3MdNxhKi1Ocsy8PJQPJkYbTqKW5Lid3O3XBNOVKtAZqakUyWzfuECMk8UsnBrLr/u24HQJn6m47glKX435+mhmJIUS8aJQhbtOGI6jhBXNXtpOn7enjw2OMp0FLclxW8BN3VvQ+fWwcxemkFllc10HCEua+/RAhbtOMqD/SNpEeRrOo7bkuK3AA8PxdSkWA7kFbFga67pOEJc1qyUdIJ9vfjNwE6mo7g1KX6LSOoaRs+Ipry0LIPySpn1C+ez8/BZluw5zsMDOxISIIux2ZMUv0UodX7Wf/hMCZ9syjEdR4hLzEhJIyTAm4cGdDQdxe1J8VvI4Njzdy6auzyT0gq5WYtwHpsPnmFF2knGD+pEEz9v03HcnhS/hSilmJYUy7GCUj7ecMh0HCF+MjMljRaBPtzfN9J0FEuQ4reYftEt6dupBa+kZlFSLrN+Yd66rFOszTzF40OiCPT1Mh3HEqT4LWjaiFjyCst4f1226SjC4rTWzExJI6yJL7/q08F0HMuQ4reghMjmDI5txesrsygsqzQdR1jYqow8NmafYUJiNH7enqbjWIax4ldKeSqltiqlFpnKYGVTk2I5U1zBO2sOmI4iLEprzcwlaYSH+HPHde1Mx7EUkzP+ScBeg/u3tF7tQhjeJYx5q/dztrjCdBxhQcv2nmD74bP8dmg0vl4y23ckI8WvlIoAbgbeMrF/cd7UpFjOlVby1pr9pqMIi7HZNDNS0unQIoBb4yNMx7EcUzP+2cDvAbmE1KCubZtwc482zF9zgNNF5abjCAv5fvcx9h4tYNKwGLw95a1GR1OOvi2fUmo0cJPW+gml1BDgd1rr0TV83nhgPEBYWFh8cnJyvfZXWFhIUJC1btJclzEfKbTx7JoSRnX05s44171MXr7PrsOmNc+tKUEDfxvgj4dStX6tq465IRoy5sTExM1a64RLntBaO/QD+AdwGMgGjgHFwAdXek18fLyur9TU1Hq/1lXVdcyTk7fquOe+1ccLSuwTyAHk++w6vthyWHd4epH+entunV/rqmNuiIaMGdika+hUh18tobWeDkwH+NmM/1eOziH+z6RhMSzcmkviiysoLquibYg/T42MY2zvcNPRhJtYuDWXFxancSS/BA8PRZsmvtzUvY3pWJYlB9cE23Ly8fBQFJVVoYHc/BKmL9jJQlnCWTSChVtzmb5gJ7n55w/vVNk0p4rK+Wq73BjIFKPFr7VeoWs4vi8c64XFaZfclrGkoooXFqcZSiTcyQuL0yi5aFHA8iotP18GyYxfcCS/pE7bhagL+flyPlL8grYh/jVubx7oumf5COdQXmkjyK/mtxIv93Mn7E+KX/DUyDj8L1onRQGnisqZlLyVU4VlZoIJl7Y9J58xc9dwrrQSz4tO2fT39uSpkXGGkglZA1X8dPbOhbMu2ob4M2V4DDlnSnh1RSarM/L405hu/KJnG1QdzrkW1lRSXsWspem8tXo/rYJ9efPXCRSVVf7Xz5ecNWaWFL8Azpd/TX8Rb+zRmqc/28HEj7fy1bZc/jK2O22ayq/oombrsk4xfcEOsk8Vc/f17Zh+U5ef7qglRe885FCPuKLOrZuw4In+PHdzF9Zk5jFi5io++vEQNptjr/gWzq2gtII/fLGTu99cj03DR4/cwD/G9ZTbKDopmfGLq/L0UDwysBNJXcN45vOd/OGLnXy1PZd/jutJZMtA0/GEYcv2HufZL3Zx4lwpvxnYkalJcfj7yGqbzkxm/KLWOrQI5KPf3MA/xvVgd24Bo+as4s1V+y+5BkBYw6nCMiZ+vJWH39tEU39vFjzRn2dv7iql7wJkxi/qRCnF3de3JzEulOcW7uRv3+5l0Y4jPH9bL+JaB5uOJxxAa81X24/w56/3cK60gsnDY3hiSDQ+XjKPdBXynRL10rqpH2/+OoGX7u5NzpkSRr+8mlkp6ZRXykrb7uzo2RIeeW8Tk5K30a55AIt+O5DJw2Ol9F2MzPhFvSmlGNOrLQOiW/Lnr3czZ1kG3+06yvO39eKadiGm44lGZLNpkjfm8I9v91Jhs/HczV14sH9HPD3k9F5XJP9MiwZrHujDnLt68/b9CRSUVDLu1bX8ddEeisvlRu7uIDuviHveWs8fvthJ9/CmLJ48iEcGdpLSd2Ey4xeNZliXMK7v2Jx/frePt9YcYMme4/xzXA/6Rbc0HU3UQ5VNM3/NAWakpOHt4cE/x/XgzuvayUV8bkBm/KJRBft587df9iB5fB88FNzz1o888/kOzpbIDd1dyb5jBYx7dS1/+3YvA6JbkjJ1MHdd315K303IjF/YRZ9OLfhu0iBmL03nzdX7SU07wV/H9iCpa5jpaOIKyiqreCU1i1dTM2nq783Ld/dmtCzV4XZkxi/sxt/Hk+k3dWHhk/1pFuDDb97fxISPtpAni745pa2HzvCLl9fw0rIMRvdsQ8rUwfyiV1spfTckM35hdz0jQvhqwgBeX5nFy8szWJuZx//+ohu3XCOl4gyKyyuZsSSd+WsP0LqJH/MfSGBoZ/nNzJ1J8QuH8PHyYOKwGEZ1b83Tn+9g8n+28eW2XP72yx6yLrtBP2Tm8cyCnRw6Xcy9N7TnmRs7Eyzr67g9OdQjHCo2LJjPHuvHH0d3Zf3+04yYtYp/rz8oi7452NmSCp75fAf3vPUjHgqSx/fhb7/sIaVvETLjFw7n6aF4aEBHhncJY/oXO/ifhbv4evsR/nVrTzrKom92l7LnOM8t3MnJc2U8OrgTU4bH4uct6+tYicz4hTHtWwTwwcM38PytPdl7tIBRs1fx+sosKqtk2Qd7yCssY8JHW/jN+5toFuDDwif7M/3GLlL6FiQzfmGUUoo7rmvH4LhWPLdwF//8bh/f7DjKv27tSde2TUzHcwtaaxZuy+XPX++huKyKaUmxPDo4StbXsTD5zgunENbEj3n3xfPKPddy9GwJY+auYcaSNMoqq0xHc2lH8kt46N2NTPnPdjq2DOSbiQP47bAYKX2Lc/iMXynVDngfCAM0ME9rPcfROYTzUUpxc8829ItqwV8W7eHl5Zl8t+sY/7q1J/EdmpmO51JsNs2HGw7xr+/2UWXT/HF0V+7vFynr6wjAzIy/Epimte4K9AGeVEp1NZBDOKlmgT7MvPMa3nnwOorLKrnt9R/489e7KSqTRd9q40BeEXe9uZ7/WbiLa9qFsGTKIB4aICtpiv/j8Bm/1voocLT6z+eUUnuBcGCPo7MI55YYF8qSqYN5/vt9vLM2m5Q9x/nHuB4MjGllOppTqqyy8daaA8xKScfHy4Pnb+3J7QkRcpGcuITS2tz500qpSGAV0F1rXXDRc+OB8QBhYWHxycnJ9dpHYWEhQUFBDUzqWtxxzGmnq5i/q4zjxZqB4V7c1dmHQO//KzR3HPPV/HzMhwqqmL+rnOwCG9eGenJfVx+a+bnfcXyrf5/rKjExcbPWOuGSJ7TWRj6AIGAzMO5qnxsfH6/rKzU1td6vdVXuOuaS8kr9z+/26k7Tv9EJf03R3+08+tNz7jrmK0lNTdWlFZX6xcX7dNT0b3T8X5boRduPaJvNZjqa3Vj1+1xfwCZdQ6camRIopbyBz4EPtdYLTGQQrsfP25OnR3Vm4RP9aRnky2MfbObJD7dw8pw1F33LPFPFzS+t4eXlmYy5pi0pUwZzs6ykKWrBxFk9Cngb2Ku1nuno/QvX1yOiKV9N6M+8VfuZszSDNZl53BGtGKy1JUqvqKySF5ek8e6PpbQN8efdB69jSFyo6VjChZiY8fcH7gOGKqW2VX/cZCCHcGHenh48mRjNt5MGEh0axJs7y3ngnY3k5peYjmZXqzNOMnL2Kt5Zm83Q9l4snjJISl/UmcOLX2u9RmuttNY9tdbXVH986+gcwj1Ehwbx6aN9ubeLDxuzTzNi5kreX5ftdou+nS2u4Pefbee+tzfg4+nBJ4/25b6uvgT5ysX3ou7c721/YTkeHoqkDt4snjyIazs0449f7ubOeevIOlloOlqj+H7XMYbPWsnnW3J5fEgU304ayPUdm5uOJVyYFL9wG+2aB/D+Q9fzwm09STt2jhvnrObVFZlUuOiibyfPlfHkh1t47IPNtAry5csn+/P0qM6yqJpoMPk9UbgVpRS3J5xf9O2PC3fz/PdpPy361j28qel4taK1ZsGWXP7foj2UlFfx1Mg4xg/qhLenzNNE45CfJOGWQoP9eP2+eF6791qOF5RxyytreWHxPkornHvRt8NninngnY1M+3Q70aFBfDtpIE8mRkvpi0YlM37h1m7s0Ya+US346zd7eSU1i+92HeP5W3uSEOlcx8htNs0HPx7kX9/tQwN/HtON+/p0wEPW1xF2INMI4fZCAnx48fZevP/Q9ZRV2Lj9jXX86SvnWfQt62Qhd85bxx+/3M21HZqxePIg7u8XKaUv7EZm/MIyBsW2YsmUQbywOI331p1f9O3v43owONbMom8VVTbeXL2f2Usz8Pf25MXbe3HrteGWuAhNmCUzfmEpgb5e/GlMNz59tC++3h7cP38D0z7ZTn5xuUNz7Mo9y9hX1vL892kM6xxKytRB3BYvK2kKx5AZv7CkhMjmfDtxIC8vz+D1lftZmX6Sv9zSjRt7tLHrfksrqn7aZ7MAH16791q771OIi0nxC8vy8/bkqZGdualHG37/2Q4e/3ALo7q15v/d0o3QJn6Nvr9N2af5/ec72H+yiNvjI3j25i6EBPg0+n6EuBo51CMsr1vbpj9dHLU87QTDZ67k0005F5YPb7Ciskr+9NVubn9jHWUVtvMXmd3eS0pfGCMzfiEAL08PHh8SxYhuYTzz+Q6e+mwHX20/wt9/2YN2zQPq/XVXpp/kDwt2cuRsCff3jeSpkXEEyvo6wjCZ8QvxM1GtgvjP+L785ZZubDl4hpGzV/Hu2gNU1XHRt/zicqZ9sp3752/Az9uDTx/ty5/GdJPSF05BfgqFuIiHh+K+vpEkdg7l2S928aev9/D1jqP869YeRIcGX/X13+08yv98uZszxeVMSIxmwtBoWV9HOBWZ8QtxGRHNAnj3weuYeUcvsk4WctOcNcxdnnHZRd9OFJTy2L838/iHWwhr4stXE/rzu5FxUvrC6ciMX4grUEox7toIBsa04k9f7+bFJel8s/MYN/VoTfKGHI7kl9A2xI9Bsa34ZsdRSittPD2qM78Z2BEvWV9HOCkpfiFqoVWwL6/ccy1jeh3jd59sY8aS9J+ey80v5eMNOXRqGchb9yfQqVWQwaRCXJ1MSYSog5HdWhPk513jc6WVVVL6wiVI8QtRR8fOlta4/Wh+zduFcDZS/ELUUdsQ/zptF8LZSPELUUdPjYzD/6Izdfy9PXlqZJyhRELUjby5K0Qdje0dDsALi9Oqz+rx56mRcT9tF8LZSfELUQ9je4dL0QuXZeRQj1JqlFIqTSmVqZR6xkQGIYSwKocXv1LKE3gFuBHoCtytlOrq6BxCCGFVJmb81wOZWuv9WutyIBm4xUAOIYSwJNVYa47XeodK3QaM0lo/Uv34PuAGrfWEiz5vPDAeICwsLD45Oble+yssLCQoyFoX1ciYrUHGbA0NGXNiYuJmrXXCxdud9s1drfU8YB5AQkKCHjJkSL2+zooVK6jva12VjNkaZMzWYI8xmyj+XKDdzx5HVG+7rM2bN+cppQ7Wc38tgbx6vtZVyZitQcZsDQ0Zc4eaNpo41OMFpAPDOF/4G4F7tNa77bS/TTX9quPOZMzWIGO2BnuM2eEzfq11pVJqArAY8ATm26v0hRBCXMrIMX6t9bfAtyb2LYQQVmeFtXrmmQ5ggIzZGmTM1tDoY3b4MX4hhBBmWWHGL4QQ4mek+IUQwmIsUfxKqReUUvuUUjuUUl8opUJMZ7I3pdTtSqndSimbUsptT3+z4oJ/Sqn5SqkTSqldprM4glKqnVIqVSm1p/pnepLpTPamlPJTSm1QSm2vHvOfG/PrW6L4gRSgu9a6J+evIZhuOI8j7ALGAatMB7EXCy/49y4wynQIB6oEpmmtuwJ9gCct8H0uA4ZqrXsB1wCjlFJ9GuuLW6L4tdZLtNaV1Q/Xc/5qYbemtd6rtU4zncPOLLngn9Z6FXDadA5H0Vof1Vpvqf7zOWAv4NY3Q9DnFVY/9K7+aLQzcSxR/Bd5CPjOdAjRKMKBnJ89PoybF4LVKaUigd7Aj4aj2J1SylMptQ04AaRorRttzE67SFtdKaWWAq1reOpZrfWX1Z/zLOd/bfzQkdnspTZjFsJdKKWCgM+ByVrrAtN57E1rXQVcU/2e5BdKqe5a60Z5X8dtil9rPfxKzyulHgBGA8O0m1y8cLUxW0CdF/wTrkkp5c350v9Qa73AdB5H0lrnK6VSOf++TqMUvyUO9SilRgG/B8ZorYtN5xGNZiMQo5TqqJTyAe4CvjKcSTQypZQC3gb2aq1nms7jCEqpVhfOPlRK+QNJwL7G+vqWKH5gLhAMpCiltimlXjcdyN6UUr9USh0G+gLfKKUWm87U2KrfsL+w4N9e4BMrLPinlPoYWAfEKaUOK6UeNp3JzvoD9wFDq//+blNK3WQ6lJ21AVKVUjs4P8FJ0VovaqwvLks2CCGExVhlxi+EEKKaFL8QQliMFL8QQliMFL8QQliMFL8QQliMFL8QQliMFL8QQliMFL8Q9aCUuq76/g5+SqnA6jXTu5vOJURtyAVcQtSTUuqvgB/gDxzWWv/DcCQhakWKX4h6ql4faCNQCvSrXk1RCKcnh3qEqL8WQBDn14HyM5xFiFqTGb8Q9aSU+orzd/3qCLTRWk8wHEmIWnGb9fiFcCSl1K+BCq31R9X3/v1BKTVUa73cdDYhrkZm/EIIYTFyjF8IISxGil8IISxGil8IISxGil8IISxGil8IISxGil8IISxGil8IISzm/wNFxm5rCxj1ygAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "x = np.linspace(-2, 3, 5) # lager 5 x-verdier mellom -2 og 3\n",
+ "y = 2*x**2 - 2*x + 1 # lager 5 tilsvarende y-verdier til en funksjon\n",
+ "\n",
+ "plt.plot(x,y,marker='o')\n",
+ "plt.xlabel('x')\n",
+ "plt.ylabel('y')\n",
+ "plt.grid()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Dersom vi definerer en Python-funksjon, kan vi også bruke denne til å generere _y_-verdier: "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def f(x):\n",
+ " return 2*x**2 - 2*x + 1 \n",
+ "\n",
+ "x = np.linspace(-2, 3, 1000) # lager 5 x-verdier mellom -2 og 3\n",
+ "y = f(x) # lager 1000 tilsvarende y-verdier til en funksjon\n",
+ "\n",
+ "plt.plot(x,y,)\n",
+ "plt.xlabel('x')\n",
+ "plt.ylabel('y')\n",
+ "plt.grid()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Plott tre funksjoner i samme koordinatsystem. Eksperimenter med farger, linjestiler og annet. Husk aksetitler!\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Flere plott i samme figur\n",
+ "Dersom vi ønsker å lage flere plott i samme figur, kan vi bruke kommandoen _subplot(antall rader, antall kolonner, figurnummer)_ for å plotte flere grafer samtidig. Her er et eksempel:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "x = np.linspace(0, 10, 50)\n",
+ "y = np.sin(x)\n",
+ " \n",
+ "plt.subplot(2, 1, 1) # To rader, én kolonne, figur 1\n",
+ "plt.plot(x, y, color = \"green\", linestyle = \"--\")\n",
+ "plt.title(\"Grønn stiplekurve\")\n",
+ "\n",
+ "plt.subplot(2, 1, 2) # To rader, én kolonne, figur 2\n",
+ "plt.plot(x, y, color = \"red\", linestyle = \" \", marker = \"o\")\n",
+ "plt.title(\"Rød prikkekurve\")\n",
+ "plt.tight_layout() # Fikser slik at det ikke blir overlapp mellom f.eks. aksetitler\n",
+ "\n",
+ "plt.show()\n",
+ "#plt.savefig(\"kulfigur.png\") # Lagrer figuren på datamaskinen din"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan også lage flere funksjoner i samme koordinatsystem. Da bruker vi _labels_ (merkelapper) for å skille mellom de ulike grafene, og _legend_ for å vise merkelappene i koordinatsystemet."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "x = np.linspace(-2, 3, 10)\n",
+ "\n",
+ "def f(x):\n",
+ " return x**2 - 2*x\n",
+ "\n",
+ "def g(x):\n",
+ " return np.sin(x)\n",
+ "\n",
+ "def h(x):\n",
+ " return - x + 6\n",
+ "\n",
+ "y1 = f(x)\n",
+ "y2 = g(x)\n",
+ "y3 = h(x)\n",
+ "\n",
+ "plt.plot(x,y1,color='lawngreen',label='f(x)', marker='^') # Bruker merkelapp (label) for å skille mellom kurvene\n",
+ "plt.plot(x,y2,color='maroon',label='g(x)', marker='o')\n",
+ "plt.plot(x,y3,color='deepskyblue',label='h(x)', marker='s')\n",
+ "plt.legend() # Viser merkelappene\n",
+ "plt.xlabel('x')\n",
+ "plt.ylabel('y')\n",
+ "plt.axhline(y=0,color='black') # Tegner x-akse\n",
+ "plt.axvline(x=0,color='black') # Tegner y-akse\n",
+ "plt.grid()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Plott tre av dine favorittfunksjoner i samme koordinatsystem. Tilpass akser og tittel og pynt på plottet.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Modifiser figuren ovenfor slik at plottene vises ved siden av hverandre i samme figur istedenfor under hverandre.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Spesifiser subplottene som _subplot(1, 2, 1)_ og _subplot(1, 2, 2)_. Da blir det to kolonner istedenfor to rader. \n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "I videoen nedenfor kan du få en innføring eller repetisjon i hvordan du plotter i Python.\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema3_datahandtering/statistikk.ipynb b/_sources/docs/tema3_datahandtering/statistikk.ipynb
new file mode 100644
index 00000000..3bffac51
--- /dev/null
+++ b/_sources/docs/tema3_datahandtering/statistikk.ipynb
@@ -0,0 +1,951 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Datahåndering III: Statistikk\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. bruke deskriptiv statistikk til å beskrive data med tall og visualiseringer\n",
+ "2. utføre regresjonsanalyse og tolke resultatene\n",
+ "```\n",
+ "\n",
+ "```{epigraph}\n",
+ "If your experiment needs a statistician, you need a better experiment.\n",
+ "\n",
+ "-- Fysikeren Ernest Rutherford (1871–1937)\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Deskriptiv statistikk\n",
+ "Vi kan bruke statistikk til å oppsummere, beskrive og tolke data. Vi skiller mellom to typer statistikk:\n",
+ "1. Deskriptiv statistikk: oppsummere og beskrive data\n",
+ "2. Statistisk interferens: trekke slutninger fra data\n",
+ "\n",
+ "Vi skal mest se på deskriptiv statistikk her. La oss vende tilbake til pingvindataene våre. Vi kan få en enkel statistisk oversikt over datasettet vårt ved å bruke funksjonen _describe_."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
bill_length_mm
\n",
+ "
bill_depth_mm
\n",
+ "
flipper_length_mm
\n",
+ "
body_mass_g
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
count
\n",
+ "
342.000000
\n",
+ "
342.000000
\n",
+ "
342.000000
\n",
+ "
342.000000
\n",
+ "
\n",
+ "
\n",
+ "
mean
\n",
+ "
43.921930
\n",
+ "
17.151170
\n",
+ "
200.915205
\n",
+ "
4201.754386
\n",
+ "
\n",
+ "
\n",
+ "
std
\n",
+ "
5.459584
\n",
+ "
1.974793
\n",
+ "
14.061714
\n",
+ "
801.954536
\n",
+ "
\n",
+ "
\n",
+ "
min
\n",
+ "
32.100000
\n",
+ "
13.100000
\n",
+ "
172.000000
\n",
+ "
2700.000000
\n",
+ "
\n",
+ "
\n",
+ "
25%
\n",
+ "
39.225000
\n",
+ "
15.600000
\n",
+ "
190.000000
\n",
+ "
3550.000000
\n",
+ "
\n",
+ "
\n",
+ "
50%
\n",
+ "
44.450000
\n",
+ "
17.300000
\n",
+ "
197.000000
\n",
+ "
4050.000000
\n",
+ "
\n",
+ "
\n",
+ "
75%
\n",
+ "
48.500000
\n",
+ "
18.700000
\n",
+ "
213.000000
\n",
+ "
4750.000000
\n",
+ "
\n",
+ "
\n",
+ "
max
\n",
+ "
59.600000
\n",
+ "
21.500000
\n",
+ "
231.000000
\n",
+ "
6300.000000
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " bill_length_mm bill_depth_mm flipper_length_mm body_mass_g\n",
+ "count 342.000000 342.000000 342.000000 342.000000\n",
+ "mean 43.921930 17.151170 200.915205 4201.754386\n",
+ "std 5.459584 1.974793 14.061714 801.954536\n",
+ "min 32.100000 13.100000 172.000000 2700.000000\n",
+ "25% 39.225000 15.600000 190.000000 3550.000000\n",
+ "50% 44.450000 17.300000 197.000000 4050.000000\n",
+ "75% 48.500000 18.700000 213.000000 4750.000000\n",
+ "max 59.600000 21.500000 231.000000 6300.000000"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "\n",
+ "pingvindata = pd.read_csv(\"data/penguins.txt\", delimiter = \",\")\n",
+ "pingvindata.describe()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan forklare disse størrelsene slik:\n",
+ "- count = antall registrerte tilfeller\n",
+ "- mean = gjennomsnittet for alle individer\n",
+ "- std = standardavviket (dette skal vi se nærmere på seinere)\n",
+ "- min = minste registrerte verdi\n",
+ "- 25 % = \"nedre kvartil\". Her har 25 % av pingvinene for eksempel en kroppsmasse mellom 3550 og minste verdi (2700).\n",
+ "- 50 % = \"midtre kvartil\". Her har 50 % av pingvinene for eksempel en kroppsmasse mellom 3550 og 4050.\n",
+ "- 75 % = \"øvre kvartil\". Her har 75 % av pingvinene for eksempel en kroppsmasse på 4750 eller under. Det betyr også at 25 % har en kroppsmasse på 4750 til maksverdien 6300.\n",
+ "- max = høyeste registrerte verdi\n",
+ "\n",
+ "Vi kan også finne mange av disse størrelsene ved å bruke ulike funksjoner:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Prøv ut programmet ovenfor og utforsk de ulike variablene slik at du forstår hva alle de statistiske størrelsene betyr. Forklar begrepet kvartil.\n",
+ "```\n",
+ "\n",
+ "### Mål på spredning\n",
+ "Det finnes mange måter å beskrive spredningen i en variabel på. Vi skal se på følgende måter:\n",
+ "- Variasjonsbredde\n",
+ "- Interkvartilbredde\n",
+ "- Varians og standardavvik\n",
+ "\n",
+ "Variasjonsbredde er et enkelt mål på spredning, nemlig differansen mellom største og minste verdi ($x_{maks} - x_{min})$. De to andre målene må vi se litt nøyere på.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Regn ut variasjonsbredden i nebbdybde hos pingvinene.\n",
+ "```\n",
+ "\n",
+ "#### Interkvartilbredde\n",
+ "Vi har sett hvordan vi kan regne ut kvartiler.\n",
+ "\n",
+ "```{admonition} Kvartiler og persentiler\n",
+ "Kvartiler er fjerdedeler av et utvalg. For eksempel er nedre kvartil ($Q_1$) den høyeste verdien av en variabel som tilhører de 25 \\% minste verdiene innenfor en variabel. Midtre kvartil ($Q_2$) er verdien midt i datasettet, det vil si at 50 \\% av dataene ligger over og under dette punktet. Den midtre kvartilen kalles også for _medianen_. Tredje kvartil ($Q_3$) markerer verdien som 75 \\% av dataene ligger under (og de resterende 25 \\% av dataene ligger over).\n",
+ "\n",
+ "Dersom vi bruker en vilkårlig prosent som ikke representerer en fjerdedel, kaller vi det en _persentil_.\n",
+ "```\n",
+ "\n",
+ "Differansen mellom første og tredje kvartil er et godt mål på spredning. Dette er et mål på spredningen til de 50 \\% midtre dataene, og påvirkes derfor ikke av data som ligger langt unna de andre dataene (såkalte \"uteliggere\"). Dette målet kalles _interkvartilbredde_ (_IQR_) eller bare _kvartilbredde_:\n",
+ "\n",
+ "$IQR = Q_3 - Q_1$\n",
+ "\n",
+ "Kvartiler kan visualiseres enkelt med et _boksplott_:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import seaborn as sns\n",
+ "\n",
+ "sns.boxplot(data = pingvindata, x = \"species\", y = \"bill_depth_mm\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan forklare dette plottet slik:\n",
+ "\n",
+ "- Den svarte linja midt i boksene er medianen.\n",
+ "- 50 \\% av verdiene ligger innenfor boksene. Boksene markerer altså interkvartilområdet, fra $Q_1$ til $Q_3$.\n",
+ "- Vi har to utstikkere på hver side av boksen. De viser $IQR\\cdot1.5 = 1.5(Q_3 - Q_1)$ i begge retninger.\n",
+ "- Verdier som ligger utenfor disse utstikkerne, kalles _uteliggere_. Dette er unormalt store eller små verdier. Dette kan si oss noe om vi har mange unormale verdier eller om vi har noen få som vi kanskje kan fjerne ved nærmere statistisk analyse. Vi ser kun én uteligger hos Adelie-pingvinene, med unormalt dypt nebb.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et boksplott over kroppsmasse som funksjon av øya pingvinene er funnet på. Identifiser eventuelle uteliggere.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "sns.boxplot(data = pingvindata, x = \"island\", y = \"body_mass_g\")\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Et alternativ til boksplott er fiolinplott. Prinsippet er ganske likt som med boksplott, men det viser i tillegg fordelingen av de ulike verdiene ved å angi \"tynne\" og \"tykke\" områder. Medianen markeres med en hvit prikk, og IQR med en tykk, svart linje. Uteliggere markeres ofte ikke i fiolinplott."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.violinplot(data=pingvindata, x='species', y='bill_depth_mm')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Varians og standardavvik\n",
+ "\n",
+ "I motsetning til IQR, som tar utgangspunkt i medianen, tar varians og standardavvik utgangspunkt i gjennomsnittet. Varians ($\\sigma^2$) er et mål på variasjonen i et datasett og skrives ofte som $\\sigma^2$. Det er definert som den gjennomsnittlige kvadrerte avstanden til gjennomsnittet av variabelen:\n",
+ "\n",
+ "$\\sigma^2 = \\frac{1}{n-1}\\sum_{i=1}^n(x_i-\\bar{x})^2$\n",
+ "\n",
+ "Her er _n_ totalt antall målinger, $x_i$ er hver måleverdi og $\\bar{x}$ er gjennomsnittet av alle måleverdier. Egentlig bør vi jo dele på $n$ når vi skal finne gjennomsnittet av denne differansen. Men vi deler på $n - 1$ istedenfor $n$ fordi datasettet vårt inneholder et utvalg måledata fra en tenkt fullstendig populasjon. Når vi deler på $n - 1$ får vi en større varians enn når vi deler på $n$. En forklaring på dette er at dersom vi hadde samlet inn data fra hele populasjonen, eller gjort tusenvis av målinger av den samme parameteren, ville spredningen (variansen) av målingene vært litt mindre sammenliknet med når vi har færre datapunkter. Vi kaller derfor variansen som er definert ovenfor, for _empirisk varians_.\n",
+ "\n",
+ "Kort oppsummert gjør vi følgende for å regne ut varians:\n",
+ "1. Finner differansen mellom hver måleverdi/hvert datapunkt og trekker fra gjennomsnittet. Dette gir avstanden mellom et målepukt og den gjennomsnittlige verdien.\n",
+ "2. Kvadrerer differansen for å kun få positive verdier. Om vi ikke hadde gjort dette, ville mange negative og positive verdier utlignet hverandre, slik at for eksempel to ekstreme verdier på hver sin side av gjennomsnittet ville gitt 0 i varians.\n",
+ "3. Summerer alle de kvadrerte differansene og deler på antallet målinger (her antallet målinger minus 1). Dette gir den gjennomsnittlige variansen for hele variabelen.\n",
+ "\n",
+ "Siden vi kvadrerer avstanden mellom verdier og gjennomsnittet når vi regner ut varians, blir ofte variansen svært stor dersom det finnes noen verdier som ligger et stykke unna gjennomsnittet. I tillegg får den kvadrerte enheter (som $g^2$ og $mm^2$, og det er vanskelig å sammenlikne den med måledataene. Derfor er det vanligere å bruke _standardavvik_ som et mål på spredning. Det er definert som den posive kvadratrota av variansen:\n",
+ "\n",
+ "$\\sigma = \\sqrt{\\frac{1}{n-1}\\sum_{i=1}^n(x_i-\\bar{x})^2}$\n",
+ "\n",
+ "Vi kan enkelt finne variansen og standardavviket med Pandas. Pandas deler på $n-1$, og ikke $n$, slik som vi også har gjort."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "varians = pingvindata[\"bill_depth_mm\"].var()\n",
+ "standardavvik = pingvindata[\"bill_depth_mm\"].std()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ "Forklar hva varians og standardavvik er. Lag to Python-funksjoner som regner ut henholdsvis gjennomsnitt og standardavvik. Funksjonene skal gi samme svar som _std_- og _mean_-funksjonen i Pandas.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualisering av feil\n",
+ "En enkel visualisering av standardavviket når vi gjør flere ulike målinger, er ved hjelp av usikkerhetsstolper. Usikkerhetsstolper kan vi bruke når vi har gjort flere målinger på samme variabel. Vi kan ta som eksempel et eksperiment der vi skal konstruere en standardkurve for magnesiumkonsentrasjonen i en vannprøve. Vi bruker en serie på 0.2, 0.3, 0.4, 0.5 og 0.6 $\\mu$g/mL Mg$^{2+}$ som vi analyserer tre ganger hver med et flammeatomabsorpsjonsspektrofotometer (for øvrig et nydelig ord!). Da har vi tre målinger for absorpsjon per konsentrasjon. Nedenfor ser du en måte å gjøre dette på. Vi bruker funksjonen _errorbar_ som tar $x$-verdier, gjennomsnittet og standardavviket som parametre. I tillegg kan vi sette streker på toppen av feilen med _capsize_ i en ønsket størrelse. Hvis vi ikke ønsker strekene mellom datapunktene i plottet ovenfor, kan vi legge inn argumentet _fmt='none'_."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 92,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "konsentrasjon = [0.2, 0.3, 0.4, 0.5, 0.6]\n",
+ "absorbans = [[0.21, 0.22, 0.19], [0.26, 0.29, 0.24], [0.33, 0.33, 0.34], [0.41, 0.42, 0.45], [0.56, 0.61, 0.58]]\n",
+ "\n",
+ "standardavvik = []\n",
+ "snitt = []\n",
+ "\n",
+ "for element in absorbans:\n",
+ " snitt.append(np.mean(element))\n",
+ " standardavvik.append(np.std(element, ddof = 1)) # ddof = 1 betyr at vi deler på n - 1.\n",
+ "\n",
+ "plt.errorbar(konsentrasjon, snitt, yerr = standardavvik, capsize=5)\n",
+ "plt.errorbar\n",
+ "plt.xlabel('Konsentrasjon ($\\mu g/mL$)')\n",
+ "plt.ylabel('Absorbans')\n",
+ "plt.title('Magnesiuminnhold i vann')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det finnes også tilsvarende plott i seaborn-biblioteket, som er enklere å bruke dersom vi har dataene som en data frame:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 97,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 97,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEGCAYAAABhMDI9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAApyUlEQVR4nO3deXxV5bX/8c8KhHmWMCSAoAIKCAFStXWoU2ur1lCrxQHbvvTW69CqVXtvbbWDt97bwdY6D79qawW1tirgUBUVHKqiBIJMogwyJMxjmEKG9ftj7yQn8wFyppzv+/U6r+zz7OGskwNZZ+/9rOcxd0dERKRKRqIDEBGR5KLEICIitSgxiIhILUoMIiJSixKDiIjU0jbRARyq3r17++DBgxMdhohISikoKNjs7lkNrUv5xDB48GDmzJmT6DBERFKKma1qbJ0uJYmISC1KDCIiUosSg4iI1KLEICIitSgxiIhILUoMIiJSixKDiIjUkvJ1DCIih+KyR2ezdtveWm3rd+ylrMLJbGP0696x3j4DenbkiSuOj1eIcafEICJpbe22vazcvLvBdeWV3ui61kyJQUTS2oCe9c8I1mzdQ3ml0zbDGNirU1T7tCZKDCKS1hq6JHTanbNYuXk3A3t1YubNp8Y/qATTzWcRkToqK4Mpj9N16mMlBhGR0MKiHXznsQ9ZtXUPAGu27eXBWcupqEyvBKFLSSIiwMdrtzPx4Q/YW1ZR3VZR6fz2lU9YvmkXd144JoHRxZfOGEREgP99eUmtpBDpnwVrmb9me3wDSiAlBhFJe5tKSvlgxdYmt3lhfnGcokk8JQYRSXs795U1u03JvvI4RJIclBhEJO3l9OhI1w5N33I9un/XOEWTeEoMIpL2OmS24fThfRpd37VDW84fOyCOESWWEoOIpL2NJft4b8WWBtd1ad+WRy7Lo3unzDhHlThKDCKS1sorKvnhk/PYVFIKwPFDetGlfXBZqWenTN768al88cjDEhli3CkxiEha+92rS5m9MuiRdFSfLjz2vS+Q1bU9AD06teOwLu0TGV5CKDGISNr614J1PPL2CgA6t2vDQ5PG07m96n71GxCRtLR80y5+/M+Pq593bt+W7/9tDhCMrlr187Q7Z9XbV/MxiIi0MrtLy7nqiQJ2ldbUJmwsKYXwPkMVzccgIpIG3J2fPLeAzzbuAqBbh7b06twOM6veJpoZ3FozJQYRSSt/fe/z6uEtsrq256UfnkSfbh0SHFVy0c1nEUkbcz7fyh0vLQGgTYZx/yXjlBQaENPEYGYDzWymmS02s0Vmdn3YfmH4vNLM8iK2H2xme82sMHw8FMv4RCR9bCop5don51Iezq1wy9eP5rghvRIcVXKK9aWkcuAmd59rZl2BAjObASwEzgcebmCf5e6eG+O4RCSNlFdU8sOn5rJhZ3Bz+ZzR/bnipCEJjip5xTQxuPs6YF24XGJmS4Acd58B1LrZIyISK79/dWn1sNpHZnXmt98arb8/TYjbPQYzGwyMBWY3s+kQM5tnZm+Z2cmNHOtKM5tjZnM2bdrU0qGKSCvyysJ1PBxRxPbwZeOrh7yQhsUlMZhZF+BZ4AZ339nEpuuAQe4+FrgReNLMutXdyN0fcfc8d8/LysqKTdAikvJWbNrFzf+oKWL73QVjOKpP+gyffbBinhjMLJMgKUxx9+ea2tbdS919S7hcACwHhsU6RhFpffbsL+fqyXOri9iuOGkI54zun+CoUkOseyUZ8CiwxN3/GMX2WWbWJlw+AhgKrIhljCLS+rg7tzy3gKUbSgD4wuCe/OTrRyc4qtQR6wttJwKXAQvMrDBs+ynQHrgXyAJeMrNCdz8LOAW43czKgErgKndveiJWEZE6/vb+KqYV1hSx3X/JODLbqGwrWrHulfQu0Nit/+cb2P5ZgstOIiIHpWDVNn790mJARWwHSylURFqNzbtKuXbKXMoqVMR2KJQYRKRVqJqJbf3OfQCcfWw/FbEdJCUGEWkV7nztU94P520+Mqszv7tgjIrYDpISg4ikvFcXreeht5YD0ElFbIdMiUFEUtrKzbu5+Zn51c9/d8FoFbEdIiUGEUlZe/YHM7GVhEVsl584hHNHZyc4qtSnxCAiKcnd+WmdIrZbzlYRW0tQYhCRlPTEB6uYGhax9e7SnvtUxNZi9FsUkZQzd/U2/ufFmiK2+y4ZS18VsbUYJQYRSSmbd5VyzeSaIrb//tpwTjjisARH1booMYhIyiivqOS6p2qK2L4+qh/fP/mIBEfV+igxiEjK+MOMT3lveVDEdkRWZ353gWZiiwUlBhFJCa8tWs+Ds4Iito6ZbXho0ni6dshMcFStkxKDiCS9lZt3c1NEEdtvLxjNsL4qYosVJQYRSWrBTGw1RWzf+9JgzhujIrZYUmIQkaTl7vzs+YV8sj4oYht/eE9+evYxCY6q9VNiEJGkNXn2ap6fVwRA7y7tuP+ScbRrqz9bsabfsIgkpXmrt3H7C4uAoIjt3ovH0a+7itjiQYlBRJLOll2lXBMxE9t/nTWcLx6pIrZ4UWIQkaRSUelc/3Qh63YERWxfG9mPK09REVs8KTGISFL544ylvLtsMwBH9O7M7y9UEVu8KTGISNKYsXgD98+MKGK7TEVsiaDEICJJ4fPNu7nxmcLq57/51rEqYksQJQYRSbi9+yu4anIBJftqitjyc3MSHFX6imliMLOBZjbTzBab2SIzuz5svzB8XmlmeXX2ucXMlpnZUjM7K5bxiUjiuTs/m7qguoht3KAeKmJLsLYxPn45cJO7zzWzrkCBmc0AFgLnAw9HbmxmI4CLgJFANvC6mQ1z94oYxykiCTJl9mqem1tTxPbApeNVxJZgMf3tu/s6d58bLpcAS4Acd1/i7ksb2CUfeNrdS919JbAMOC6WMYpI4hSu2c7tLwQzsWUY3HPxWBWxJYGozhjMrAfwHWBw5D7ufl20L2Rmg4GxwOwmNssBPoh4vjZsE5FWZuvu/VwzuYD9FZUA/NfXjuZLR/ZOcFQC0V9KepngD/YCoPJAX8TMugDPAje4+84D3b+B410JXAkwaNCgQz2ciMRZRaVz3VPzKA6L2M4a2Zf/VBFb0og2MXRw9xsP5gXMLJMgKUxx9+ea2bwIGBjxfEDYVou7PwI8ApCXl+cHE5eIJM5dMz6tLmIb0rszv79wjIrYkki09xieMLPvm1l/M+tV9WhuJws+6UeBJe7+xyheZzpwkZm1N7MhwFDgwyhjFJEU8PriDdw3cxlQMxNbNxWxJZVozxj2A78HfgZUfUN3oLlzvxOBy4AFZlYYtv0UaA/cC2QBL5lZobuf5e6LzOwZYDFBj6Zr1SNJpPVYtWU3P4ooYvu/849leD8VsSWbaBPDTcBR7r75QA7u7u8CjZ0fPt/IPncAdxzI64hI8guK2OZWF7F954uHM2Gs+pYko2gvJS0D9sQyEBFpvdydW6cuZMm6oO/J2EE9uPWcEQmOShoT7RnDbqDQzGYCpVWNB9JdVUTS15MfrubZuWsBOKxzOx64VDOxJbNoE8PU8CEickDmr9nOr6bXFLHde/FY+nfvmOCopClRJQZ3fzzWgYhI67N1936umTK3uojt5rOG86WjVMSW7KI6lzOzc81snpltNbOdZlZiZodcqCYirVcwE9s8irbvBeArI/py9ZePTHBUEo1oLyX9iWDQuwXuroIyEWnW3a9/yjufBR0ZBx/WiT98W0VsqSLauz9rgIVKCiISjTc/2cA9bwZFbB0yM3hQRWwpJdozhv8CXjazt6jdKymaamYRSSOrt+zhhqcLq5//3/nHckz/bokLSA5YtInhDmAX0AFoF7twRCSV7SsLZmLbGRaxXXbC4Xxz7IAERyUHKtrEkO3uo2IaiYikNHfntqkLWRwWseUO7MGt52omtlQU7T2Gl83sqzGNRERS2tMfreEfBUERW6+wiK192zYJjkoORrSJ4WrgFTPbq+6qIlLXx2u384tpi4CaIrbsHipiS1XRFrg1OfyhmY1090UtE5KIpJJtu/dz9eSaIrabvjqcE1XEltJaarCSJ1roOCKSQioqnev/XlhdxHbmMSpiaw1aKjGoakUkDd39xme8/ekmAA4Pi9gyMvTnINW1VGJQ4ZtImpn5yUbueeMzIChie2jSeLp3VBFba6Bxb0XkgK3Zuocb/l5Y/fx/v6kittakpRLD/hY6jogkuaoith17ywCYdMIgzh+nIrbWJNoCN8wsBzg8ch93fzv8eULLhyYiyejn0xayqDjorT5mYA9uO1czsbU2USUGM/stMBFYDFSEzQ68HaO4RCQJPf3hap6ZU1PE9qCK2FqlaM8YJgDD3b20uQ1FpHVasHYHP59eU8R2z0UqYmutor3HsAJQdwORNLVt936umlzA/vKaIraThqqIrbVq8ozBzO4luGS0Byg0szeoPez2dbENT0QSraLSuaFWEVsfFbG1cs1dSpoT/iwAptdZp9oFkTRw75uf8VZYxDaoVyf+8O1cFbG1ck0mBnd/HMDMrnf3uyPXmdn1sQxMRBJv1tKN3B0WsbVvm8GDk8apiC0NRHuP4bsNtH2vuZ3MbKCZzTSzxWa2qCqZmFkvM5thZp+FP3uG7aea2Q4zKwwfP4/6nYhIi1qzdQ/XP11I1YS+d3zzWEZmd09sUBIXzd1juBi4BBhiZpGXkroCW6M4fjlwk7vPNbOuQIGZzSBIKm+4+2/M7CfAT4D/Dvd5x93PPcD3ISItaF9ZBddMmVtdxHbJ8YO4YLyK2NJFc/cY3gPWAb2BP0S0lwAfN3dwd18X7o+7l5jZEiAHyAdODTd7HJhFTWIQkQT75fRFLCjaAcCYAd35xTdUxJZOmrvHsApYBXzxUF/IzAYDY4HZQN8waQCsB/pGbPpFM5sPFAM3NzTPg5ldCVwJMGjQoEMNTUQiPPPRGp7+aA0APTtl8sCk8SpiSzNR3WOomrGtzmONmT1vZkdEsX8X4FngBnevNfObuzs1PZzmAoe7+xjgXmBqQ8dz90fcPc/d87KysqJ5CyIShYVFO7h12kIAzODui8aSoyK2tBPtzec/AT8muAw0ALgZeBJ4GnisqR3NLJMgKUxx9+fC5g1m1j9c3x/YCODuO919V7j8MpBpZqqiEYmD7XtqF7HdeOYwThmmL17pKNrEcJ67P+zuJeEf70eAs9z970DPxnYyMwMeBZa4+x8jVk2npqfTd4Fp4fb9wn0ws+PC+LYc0DsSkQNWWen86O+FrN0WFLGdcXQfrj3tqARHJYkS7VhJe8zs28A/w+cXAPvC5aYK3U4ELgMWmFlh2PZT4DfAM2Z2BcE9jG9HHPdqMysH9gIXhZeaRCSG7n1zGTOX1hSx/VFFbGkt2sRwKXA38ABBIvgAmGRmHYEfNLaTu79L49N+ntHA9vcB90UZk4i0gFlLN/KnNz4FIorYOqmILZ1FlRjcfQXwjUZWv9ty4YhIPFXNxFZ1Xv7rCaNUxCZRz8eQBXwfGEztiXouj01YIhJrVUVs2/cERWwXHzeIC/MGJjgqSQbRXkqaBrwDvE7NRD0iksJ+9UJNEdtoFbFJhGgTQyd3V2WySCvxzJw1PPVhUMTWo1MmD1w6jg6ZKmKTQLTdVV80s7NjGomIxMXCoh3cNrWmiO2ei8YyoGenBEclySTaxHA9QXLYF1Y9l5jZzmb3EpGksmNPGVdPKaA0LGL7kYrYpAHR9krqGutARCS2KiudG/4+jzVbgyK204/uww9UxCYNiHasJDOzSWZ2W/h8YFiZLCIp4r6ZNUVsA3t15C4VsUkjor2U9ADBCKuXhM93AffHJCIRaXFvfbqJu16PKGK7dLyK2KRR0fZKOt7dx5nZPAB332Zm7WIYl4i0kLXb9nD90/Oqi9j+Z8IoRuWoiE0aF+0ZQ5mZtSEcFykseKuMWVQi0iJKy+sWsQ3k2ypik2ZEmxjuAZ4H+pjZHQTDYPxvzKISkRbxqxcW8/HaoIjt2Jzu/OIbIxMckaSCaHslTTGzAoKB7wyY4O5LYhqZiBySfxas5cnZqwEVscmBaTIxmFmviKcbgaci17n71lgFJiIHb1HxDn72/AIgKGL708RcBvZSEZtEp7kzhgKC+wpVfdqq5kawcLnZaT1FJL527Cnj6slzq4vYrj9jKKcO75PgqCSVNJkY3H1INAcxs5HuvqhlQhKRg1VZ6dz4TCGrt+4B4NThWVx3+tAERyWpJtqbz815ooWOIyKH4IFZy3jjk40ADOjZkT9NVBGbHLiWSgz6lyeSYO98tok/zAiK2Nq1zeChSePp0UnlRnLgWioxaF5mkQQq2r6X656KKGLLH6kiNjloLZUYRCRBSssruGZyAdvCIraJeQOZ+IVBCY5KUlmziSEcQK+5Usn9LRSPiByg219YzPywiG1UTjd+la8iNjk0zSYGd3fg5Wa2OaHFIhKRqD1bsJYpYRFb946ZPHjpeBWxySGL9lLSXDP7QkwjEZEDsrh4Jz+NLGK7SEVs0jKiHl0VuNTMVgG7CQvc3H10zCITkUbt2Ft7JrbrTh/KaSpikxYSbWI4K6ZRiEjUKiudm54pZNWWoIjty8OyuP4MFbFJy4nqUpK7rwIGAqeHy3ui2Tec6W2mmS02s0Vmdn3Y3svMZpjZZ+HPnmG7mdk9ZrbMzD42s3EH/9ZEWqcH31rO60uCIracHipik5YX7dSevwD+G7glbMoEJkexazlwk7uPAE4ArjWzEcBPgDfcfSjwRvgc4OvA0PBxJfBglO9DJC28+9lm/vDaUqCmiK1nZxWxScuK9ubzN4HzCO4v4O7FQNfmdnL3de4+N1wuAZYAOUA+8Hi42ePAhHA5H/ibBz4AephZ/yhjFGnVirfv5bqn51EZFrHdft5Ijh2gIjZpedEmhv1ht9WqGdw6H+gLmdlgYCwwG+jr7uvCVeuBvuFyDrAmYre1YVvdY11pZnPMbM6mTZsONBSRlFNaXsHVU+aydXdQMvTtvAFcdJyK2CQ2ok0Mz5jZwwTf4L8PvA78v2hfxMy6AM8CN7j7zsh1kQknWu7+iLvnuXteVlbWgewqkpL+58XFzF+zHYCR2d24PX9UYgOSVi3aGdzuNLOvADuBYcDP3X1GNPuaWSZBUpji7s+FzRvMrL+7rwsvFW0M24sIbnJXGRC2iaSt5+auZfIHNUVsD01SEZvE1oGMlbQAeAd4O1xulpkZ8CiwxN3/GLFqOvDdcPm7wLSI9u+EvZNOAHZEXHISSTtL1tUpYtNMbBIH0fZK+g/gQ+B84ALgAzO7PIpdTwQuA043s8LwcTbwG+ArZvYZcGb4HIKhN1YAywguVV1zIG9GpDXZsbeMqycXsK8sKGL74elDOe1oFbFJ7EVb4PZjYKy7bwEws8OA94DHmtrJ3d+l8bkazmhgeweujTImkVarstK5+R/z+TwsYjtFRWwSR9FeStoClEQ8LwnbRCQGHnp7OTMWbwCCIra7J+bSRkVsEifRnjEsA2ab2TSCHkT5wMdmdiNAnfsHInII/r1sM3e+GhaxtcngwUnjVMQmcRVtYlgePqpU3SxutshNRKK3bkcwE1tVEdsvzxvJ6AE9EhqTpJ9ou6v+CsDMugVPvaSZXUTkAO0vr+SaKXPZEhaxXTB+ABcf19wcWSItL9peSXlmtgD4GFhgZvPNbHxsQxNJL79+aTHzVm8HYET/bvx6wiiCHt8i8RXtpaTHgGvc/R0AMzsJ+Aug+RhEWsDUeUX87f1VAHTr0FZFbJJQ0fZKqqhKClDdDbU8NiGJpJdP1u/kJ899XP38rom5DDpMRWySONGeMbwVjpX0FEGvpInArKr5EqpGUBWRA7NzXxlXPRFZxHYUZxzTt5m9RGIr2sQwJvz5izrtYwkSxektFpFImnB3bn6mpojt5KG9ueHMYQmOSiT6XkmnxToQkVR12aOzWbttb7329Tv2UlbhZLYx+nXvWGvdgJ4d+dKRvXktsojtorEqYpOk0GRiMLNJ7j65qpCtLhW2icDabXtZuXl3o+vLK73e+r37K/j3ss1AUMT2wKXj6KUiNkkSzZ0xVE3Io0I2kUYM6NmxwfY1W/dQXum0zbBaI6KWV1Syfse+6iK2X5w3gjEDe8QhUpHoNJkY3P3h8Oev4hOOSOp54orjG2w/7c5ZrNy8m4G9OjHz5lOBoIht4iPvsya89PStcQO4RDOxSZJp7lLSPU2td/frWjYckdbtjogitmNUxCZJqrlLSecDPwN6AttiH45I6zV1XhGPh0VsXTu05aFJ4+jYTkVsknyaSww7gRnAv4BTaXxuBRFpwtL1JdzyXM3Eh3+amMvhh3VuYg+RxGkuMTwEvAEcARREtBtB/cIRMYpLpNWorHSumlzA3rIKAH5wmorYJLk1d/P5HuAeM3vQ3a+OU0wiKW1fWQWvLFzPtnCU1I0lpdVJ4eShvfnRV1TEJskt2gI3JQWRKMxesYVrnpzLll37q9uqkkJ29w4qYpOUEO2QGCLSjPU79nH54x+xu7SiwfWXfXGwitgkJUQ7uqqINGPK7FWNJgWAGYvXxzEakYOnxCDSQqqGuGjM3NXbqagqdxZJYrqUJHIIduwp418L1zG1sIi5YeFaY9q1yUC3FyQVKDGIHKB9ZRW8sWQj0wqLmLV0E/srKqPa78wRfVTlLCkhponBzB4DzgU2uvuosG0MQX1EF+Bz4FJ332lmg4ElwNJw9w/c/apYxicSrfKKSt5bvoVphcW8umg9u0rrT2A4blAPVm/dw+aIHklVOmRm8IPThsYjVJFDFuszhr8C9wF/i2j7M3Czu79lZpcDPwZuC9ctd/fcGMckEhV3Z/7aHUydV8SLH69j867SetsM79uV/LHZfGN0NgN7dWJjyT5++txC3liygaq7Ce3aZDDlP45nRHa3+L4BkYMU08Tg7m+HZwKRhgFvh8szgFepSQwiCbd80y6mFRYzvbCoena1SNndO3Bebg4TxmZzdL/af+z7dO3An7+bR/H2vZz/wHus37mP7B4dGH94r3iFL3LIEnGPYRGQD0wFLgQGRqwbYmbzCMZoutXd32noAGZ2JXAlwKBBGrJYDt2Gnft4YX4x0wqLWVC0o976Hp0yOefY/uTn5pB3eE8ymrmLnN2jY/UAebqvIKkmEYnhcoJhNm4DpgNVF2TXAYPcfYuZjQemmtlId99Z9wDu/gjwCEBeXp76/8lB2bmvjFcWrGdqYRHvr9iC1/mX1CEzg6+M6MeE3GxOHppFu7bq3S3pIe6Jwd0/Ab4KYGbDgHPC9lKgNFwuMLPlBJed5sQ7Rmm99pVVMGvpRqbOK+bNpRvZX167R1GbDOPkob3Jz83mqyP60bm9Ou5J+on7v3oz6+PuG80sA7iVoIcSZpYFbHX3CjM7AhgKrIh3fNL6VFQ6H6zYwrTCIv61cD0l+xruUTRhbA5nH9uf3l3aJyBKkeQR6+6qTxHM49DbzNYCvwC6mNm14SbPAX8Jl08BbjezMqASuMrdt8YyPmm93J0FRTuYVljMC/OL2VhSv0fRUX26MCE3m/PG5DDosE4NHEUkPZnXvbCaYvLy8nzOHF1tksDKzbuZVljE9MJiVmzeXW99/+4dOG9MNuflZjOif7cWuTF82aOzWRvO4RxpzdY9lFc6bTOMgb1qJ54BPTs2Ole0SDyYWYG75zW0ThdQJeVtLNnHi/PXMa2wiPlr6/co6tahLeeMDnoUHTe4V7M9ig7U2m17WdlAEqpSXulNrhdJNkoMkpJK9pXxysL1TJ9fzL+Xbabu2HTt22Zw5oi+5I/J5svDs2jfNnZzKw/o2bHB9vU79lJW4WS2Mfp17xjVPiLJQIlBUkZpeQWzlm5iemExry/ZQGmdHkUZBice1Zv83BzOGtmXrh0y4xKXLglJa6PEIEmtstL5YOUWphcW8/KCdexsoEfRmIE9mJCbzTmj+9Ona4cERCnSuigxSNJxdxYV72RaYREvzF/H+p376m1zRO/O5OfmkJ+bzeDenRMQpUjrpcQgSWPVlt1MLyxmamERyzfVv1nbp2t7zhuTTX5uDqNyWqZHkYjUp8QgCbV5Vykvzi9m2vxi5jUw0U3XDm35+qh+TMjN4fgjDqONZroRiTklBom7XaXlvLZoPVMLgx5Fdae7bNc2gzOO7kN+bjanDu9Dh8zY9SgSkfqUGCQu9pdX8vanm5haWMTrSzawr6x2jyIz+NKRh5Gfm8PXRvWjW5x6FIlIfUoMEjOVlc5Hn29latijaMfesnrbjB7QPahEHpNNn27qUSSSDJQYpEW5O0vWlTBtfhEvFBZTvKN+j6LBh3UiPzeH83KzOTKrSwKiFJGmKDFIi1izdQ/T5xczrbCITzfsqre+d5f2fGNMfybk5jB6QHf1KBJJYkoMctC27Crl5QXrmFpYTMGqbfXWd2nflq+N6kd+bjZfPOIw2rbRRDciqUCJQQ7I7tJyZizewLTCIt75bDPldXsUtcng1OFZTBibw+lHq0eRSCpSYpBmlVVU8s5nm5g6r5gZizewt6yi1nozOGHIYeTnZvP1Uf3p3kk9ikRSmRKDNKiy0ilYvY1phUW89PE6tu2p36NoZHY3JuTmcO6Y/vTvrtFCRVoLJQapZen6EqaGE90Uba8/+cygXp3Iz80mPzebo/p0TUCEIhJrSgxC0fa9TC8MehR9sr6k3vreXdpx7uhg1rOxA3uoR5FIK6fEkKa27d7PSwvWMb2wmA8/rz+1dud2bThrZD/yx+Zw4pHqUSSSTpQY0sje/RXMWLKBafOKeOvTTfV6FGW2Mb48LBij6Mxj+tKxnXoUiaQjJYZWrqyikneXbWZ6YTGvLlrPnv0V9bY5bkgvJuTm8PVR/ejZuV0CohSRZKLEkAQue3Q2a7fVv9Hb1JzBEMwb3NC0ku7O3NXbq3sUbdm9v942x/TvRn5uMEZRdg/1KBKRGkoMSWDttr2s3Fx/Ypoq5ZXe5Poqn20oYVphMdPmF7Fma/1EM6Bnx7BHUQ7D+qpHkYg0TIkhCQzo2fA39jVb91Be6bTNMAb26tTgfut2VPUoKmbxup31tunVuR3nHNufCWOzGTeop3oUiUizlBiSQN3LQf9etpl73vis+iyhTYZx6znHcMYxfQHYvmc//1q4nqnzivjSb97Ea99DpmNmG746si8TcnM4aWhvMtWjSEQOQEwTg5k9BpwLbHT3UWHbGOAhoAvwOXCpu+8M190CXAFUANe5+6uxjC8ZvbxgHT94ci6RHYZKyyu54vE5XHr8IDaWlDJr6UbKKmpng7YZxinDssjPzeYrI/rSqZ1yvogcnFj/9fgrcB/wt4i2PwM3u/tbZnY58GPgNjMbAVwEjASygdfNbJi71+9G00rtL6/k59MWUacXabUps1fXa8s7vCf5Y3M459j+9FKPIhFpATFNDO7+tpkNrtM8DHg7XJ4BvArcBuQDT7t7KbDSzJYBxwHvxzLGZPL+ii1s3lXa7HbD+3Ylf2w23xid3eC9BxGRQ5GI6w2LCJLAVOBCYGDYngN8ELHd2rCtHjO7ErgSYNCgQbGKM+6276nfrbSua087kh+fdXQcohGRdJWIu5KXA9eYWQHQFWj+r2Ed7v6Iu+e5e15WVlaLB5goQ6MYlO7koa3n/YpIcop7YnD3T9z9q+4+HngKWB6uKqLm7AFgQNiWNkZkdyPv8J6Nrh/etyvHD+kVx4hEJB3FPTGYWZ/wZwZwK0EPJYDpwEVm1t7MhgBDgQ/jHV+i3TUxl0EN3Dfo160D9186TnUIIhJzMU0MZvYUwc3j4Wa21syuAC42s0+BT4Bi4C8A7r4IeAZYDLwCXJtOPZKqDOzViX9dfzK/njCKTuEgdr06t+O1G0/hqD5dEhydiKSDWPdKuriRVXc3sv0dwB2xiyg1dG7flkknHM6j765k5ebddO+YSbcOmi5TROJDVVBJoLFB9NZs3VP987Q7Z9Vb39ggeiIih0KJIQm01CB6IiItQYkhCTQ2iF40w26LiLQ0JYYkoMtBIpJMNOymiIjUosQgIiK1KDGIiEgtSgwiIlKLEoOIiNSixCAiIrUoMYiISC3mdWeSTzFmtglYleg4Yqg3sDnRQchB0+eXulr7Z3e4uzc4wUvKJ4bWzszmuHteouOQg6PPL3Wl82enS0kiIlKLEoOIiNSixJD8Hkl0AHJI9PmlrrT97HSPQUREatEZg4iI1KLEICIitSgxxJGZTTAzN7OjG1k/y8ya7B4XuY2ZvWxmPWIQaloxs35m9rSZLTezgvD3eqWZvdjI9n82sxEH8Tq5Znb2oUcs0TCzvmb2pJmtCD/X983smwd5rBvMrFNLx5islBji62Lg3fDnIXP3s919e0scK12ZmQHPA7Pc/Uh3Hw/cAvRtbB93/w93X3wQL5cLNJgYzEyTZrWg8HOdCrzt7keEn+tFwICDPOQNgBKDtCwz6wKcBFxB8A8UM+sYflNdYmbPAx0jtv9q+A1nrpn9I9y/7jE/N7Pe4fIkM/vQzArN7GEzaxOfd5byTgPK3P2hqgZ3nw+8A3Qxs3+a2SdmNiX8Y1P3rG2Xmd1hZvPN7AMz6xu2X2hmC8P2t82sHXA7MDH8jCaa2S/N7Akz+zfwhJkNNrN3ws98rpl9KTzWqeExXjKzpWb2kJnp/27TTgf21/lcV7n7vWbWxsx+b2YfmdnHZvafUP17nlX3Mzez64BsYKaZzQy3vdjMFoSf8W+rXqOx9pTj7nrE4QFcCjwaLr8HjAduBB4L20YD5UAeQSn+20DncN1/Az8Pl2cBeeHy5+G2xwAvAJlh+wPAdxL9nlPhAVwH3NVA+6nADoJvmBnA+8BJDXwGDnwjXP4dcGu4vADICZd7hD+/B9wX8Rq/BAqAjuHzTkCHcHkoMCciln3AEUAbYAZwQaJ/d8n8aOxzDdddGfE5tQfmAEOa+cw/B3qHy9nAaiCLYHrkN4EJjbUn+ndxMA+dvsbPxcDd4fLT4fOjgHsA3P1jM/s4XH8CMAL4d/gltR3BP9LGnEGQaD4Kt+8IbGzh+NPRh+6+FsDMCoHBBJcCI+0Hqu5FFABfCZf/DfzVzJ4BnmviNaa7+95wORO4z8xygQpgWJ1YVoSxPEVw9vnPA39L6cnM7if4ne0nGFtttJldEK7uTpCI9xPdZ/4FgkuPm8LtpgCnEHxJaKh9aqzeV6woMcSBmfUiOLU91syc4FufA/Ma2wWY4e7R3osw4HF3v+WQg00/i4ALGllXGrFcQcP/X8o8/BoZuY27X2VmxwPnAAVmNr6R19gdsfwjYAMwhuAb676IdXULjlSA1LRFwLeqnrj7teFl1zkE3+p/6O6vRu5gZqcS3Wfe6uk6ZXxcADzh7oe7+2B3HwisJPiGeQmAmY0iuJwE8AFwopkdFa7rbGbDGjhulTeAC8ysT7h9LzM7PEbvpbV5E2hvZldWNZjZaODkQzmomR3p7rPd/efAJmAgUAJ0bWK37sA6d68ELiP4AlHlODMbEt5bmEj9b7FS25tABzO7OqKt6ubxq8DVZpYJYGbDzKxzM8eL/Ow+BL5sZr3De3kXA2810Z5ylBji42KCni+RniW4rtnFzJYQ3JgsAAhPRb8HPBVeXnofaLCLa7j9YuBW4LVw+xlA/xZ+D61S+G3/m8CZFnRXXQT8H7D+EA/9+6qbkAT3lOYDM4ERVTefG9jnAeC7Zjaf4POOPJv4CLgPWELwpaLuvyeJEH6uEwj+UK80sw+Bxwnu1/0ZWAzMDT+fh2n+zOAR4BUzm+nu64CfEHye84ECd5/WWHvLv7vY05AYIkkuvMRxs7ufm+BQJE3ojEFERGrRGYOIiNSiMwYREalFiUFERGpRYhARkVqUGETizDQqriQ53XwWEZFadMYg0oCw2vylcHTUheFoqJ+b2e/CwrUPIyrTs8zs2XC0zo/M7MSwvYuZ/SXc/mMz+1bY3uSouOHjr+HrLjCzHyXuNyHpKC3HARGJwteAYnc/B8DMugO/BXa4+7Fm9h3gT8C5BIMj3uXu75rZIIIhF44BbqvaPjxGz8gXMLNjCIa3ONHdy8zsAYJReBcRjMw6KtyuR6zfrEgkJQaRhi0A/hCOqf+iu78Tjlz7VLj+KeCucPlMgqEuqvbtZsH8GWcSzr0B4O7b6rxGY6PivgAcYWb3Ai8Br7XsWxNpmhKDSAPc/VMzG0cw49qvzeyNqlWRm4U/M4AT3D1yNFQiEkVjGh0V18zGAGcBVwHfBi4/4DchcpB0j0GkAWaWDexx98nA74Fx4aqJET+r5sh4DfhhxL654eIM4NqI9lqXkmhkVNzw/kOGuz9LMDjiOETiSGcMIg07lmCE1EqgDLiaYGKcnuEItqXUzN19HXB/2N6WYPa9q4Bfh+0LCcb2/xURk/a4+2IzqxoVNyN8nWuBvcBfrGb6Ts2zIXGl7qoiUTKzzwmm9Nyc6FhEYkmXkkREpBadMYiISC06YxARkVqUGEREpBYlBhERqUWJQUREalFiEBGRWv4/7axPVmmK55sAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.pointplot(data=pingvindata,x=\"species\", y=\"flipper_length_mm\", capsize=.1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Regresjon\n",
+ "Alle måledata er _diskrete verdier_. Det betyr at de er ikke-kontinuerlige, altså at det ikke finnes uendelig mange verdier mellom punktene vi har. Vi representerer diskrete data som punkter dersom vi plotter det, mens kontinuerlige data/funksjoner plotter vi som linjer og kurver. Noen ganger kan vi derimot lage kontinuerlige modeller som representerer de diskrete dataene våre. En slik modell kan beskrive både verdier imellom datapunktene, men også utenfor datasettet vi har samlet. En enkel form for modellering er _regresjon_.\n",
+ "\n",
+ "```{admonition} Regresjon\n",
+ "Regresjon er en prosess der vi tilnærmer diskrete data med en kontinuerlig funksjonsmodell. \n",
+ "```\n",
+ "\n",
+ "La oss ta et eksempel der vi har brukt et spektrometer til å måle absorbansen til ulike standardløsninger med permanganationer $MnO_4^{-}$. Vi har gjort dette fordi vi har en løsning med ukjent innhold av permanganationer. Da trenger vi å gjøre en lineær regresjon for å kunne avgjøre hvilken konsentrasjon absorbansen til den ukjente prøva tilsvarer. Programmet nedenfor lager en standardkurve/kalibreringskurve med funksjonen _polyfit_ fra numpy-biblioteket. Denne funksjonen bruker _minste kvadraters metode_ til å tilpasse funksjonsverdier til datapunktene på en måte som gir minst mulig varians."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "permanganat = [4.0, 8.0, 12.0, 16.0, 20.0] # konsentrasjon i ppm\n",
+ "absorbans = [0.18, 0.32, 0.51, 0.68, 0.85]\n",
+ "\n",
+ "reg = np.polyfit(permanganat, absorbans, 1) # får koeffisientene a og b i en lineær regresjon (grad 1)\n",
+ "x = np.linspace(0, 25, 1000) # nye x-verdier for regresjonslinja\n",
+ "y = np.polyval(reg, x) # gir et uttrykk på formen y = ax + b, der x = permanganatkonsentrasjonen\n",
+ "\n",
+ "plt.scatter(permanganat,absorbans,label='Datapunkter')\n",
+ "plt.plot(x, y, color = 'red',label='Tilpasset kurve')\n",
+ "plt.legend()\n",
+ "plt.title('Standardkurve')\n",
+ "plt.xlabel('Konsentrasjon av MnO$_4^-$ (ppm)')\n",
+ "plt.ylabel('Absorbans')\n",
+ "plt.grid()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Funksjonen _polyfit_ utfører polynomregresjon på dataene våre, og tar som argument $x$- og $y$-verdiene i datasettet, og deretter graden av polynomet. Her har vi brukt grad 1 for lineær regresjon. Dette gir en array med koeffisientene _a_ og _b_ for uttrykket $y = ax + b$. Tilsvarende vil en andregradsregresjon gi koeffisientene _a_, _b_ og _c_ for $ax^2 + bx + c$ og så videre. Vi kan dermed bruke disse koeffisientene videre til å lage nye $y$-verdier basert på de opprinnelige $x$-verdiene. Til det kan vi bruke funksjonen _polyval_, som tar to parametre: koeffisientene som er gitt av polyfit-funksjonen og de nye _x_-verdiene som vi skal regne ut funksjonsverdier til.\n",
+ "\n",
+ "La oss si at den ukjente prøva med permanganationer ga en absorbans på 0.40. Vi kan bruke regresjonskurven vår til å finne hva slags konsentrasjon dette tilsvarer på følgende måte:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Konsentrasjonen til permanganat = 9.5 ppm.\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "permanganat = [4.0, 8.0, 12.0, 16.0, 20.0] # konsentrasjon i ppm\n",
+ "absorbans = [0.18, 0.32, 0.51, 0.68, 0.85]\n",
+ "ukjent_abs = 0.40\n",
+ "\n",
+ "# Gjør regresjonen\n",
+ "reg = np.polyfit(permanganat, absorbans, 1) # får koeffisientene a og b i en lineær regresjon (grad 1)\n",
+ "x = np.linspace(0, 25, 1000) # nye x-verdier for regresjonslinja\n",
+ "y = np.polyval(reg, x) # gir et uttrykk på formen y = ax + b, der x = permanganatkonsentrasjonen\n",
+ "\n",
+ "# Regner ut den ukjente konsentrasjonen\n",
+ "ukjent_kons = (ukjent_abs - reg[1])/reg[0]\n",
+ "print(\"Konsentrasjonen til permanganat =\", round(ukjent_kons,1), \"ppm.\")\n",
+ "\n",
+ "plt.scatter(permanganat,absorbans,label='Datapunkter')\n",
+ "plt.plot(x, y, color = 'red',label='Tilpasset kurve')\n",
+ "plt.plot(ukjent_kons, ukjent_abs, linestyle = \" \", marker = \"o\", color = 'seagreen', label = \"Ukjent løsning\")\n",
+ "plt.legend()\n",
+ "plt.title('Standardkurve')\n",
+ "plt.xlabel('Konsentrasjon av MnO$_4^-$ (ppm)')\n",
+ "plt.ylabel('Absorbans')\n",
+ "plt.grid()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Fritt klor ($Cl_2$) finnes i en del drikkevann fordi klorforbindelser blir tilsatt klorforbindelser for å desinfisere vannet. I programmet nedenfor har vi lagt inn en serie målinger som er gjort på standardløsninger av konsentrasjonen av fritt klor i vann gitt i ppm. Gjør en regresjon av dataene og lag en standardkurve. Regn ut konsentrasjonen av fritt klor i en drikkevannsprøve med absorbans 0.656 ppm.\n",
+ "\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ "```{code-block} Python\n",
+ ":class: tip, dropdown\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "klor = [0, 0.50, 1.00, 1.50, 2.00] # konsentrasjon i ppm\n",
+ "absorbans = [0.000, 0.270, 0.543, 0.813, 1.084]\n",
+ "ukjent_abs = 0.656\n",
+ "\n",
+ "# Gjør regresjonen\n",
+ "reg = np.polyfit(klor, absorbans, 1) # får koeffisientene a og b i en lineær regresjon (grad 1)\n",
+ "x = np.linspace(0, 2.2, 1000) # nye x-verdier for regresjonslinja\n",
+ "y = np.polyval(reg, x) # gir et uttrykk på formen y = ax + b, der x = permanganatkonsentrasjonen\n",
+ "\n",
+ "# Regner ut den ukjente konsentrasjonen\n",
+ "ukjent_kons = (ukjent_abs - reg[1])/reg[0]\n",
+ "print(\"Konsentrasjonen til fritt klor =\", round(ukjent_kons,2), \"ppm.\")\n",
+ "\n",
+ "plt.scatter(klor,absorbans,label='Datapunkter')\n",
+ "plt.plot(x, y, color = 'red',label='Tilpasset kurve')\n",
+ "plt.plot(ukjent_kons, ukjent_abs, linestyle = \" \", marker = \"o\", color = 'seagreen', label = \"Ukjent løsning\")\n",
+ "plt.legend()\n",
+ "plt.title('Standardkurve')\n",
+ "plt.xlabel('Konsentrasjon av Cl$_2$ (ppm)')\n",
+ "plt.ylabel('Absorbans')\n",
+ "plt.grid()\n",
+ "plt.show()\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Når vi har utført regresjon, kan vi også forutsi datapunkter som er utenfor datapunktene våre. Dette kaller vi _ekstrapolering_. Ved å ekstrapolere kan vi forutsi hvordan et system _har vært_ eller _kommer til å bli_. En skal derimot være svært forsiktig med å trekke slutninger basert på ekstrapolering! Det kan likevel være en god indikasjon på trender og utviklingen i et system."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan også lage visualiseringer med automatiske regresjonskurver. La oss vende tilbake til pingvinene våre. For å se om det kan være noen sammenhenger som er verdt å lage en modell av, kan vi enkelt visualisere mange ulike variabler mot hverandre ved å bruke et parplott (_pairplot_) fra seaborn-biblioteket:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 35,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import seaborn as sns\n",
+ "\n",
+ "sns.pairplot(data = pingvindata, hue = \"species\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition}\n",
+ ":class: tip\n",
+ "Studer plottet ovenfor. Hva forteller de ulike plottene deg? Hvilke variabler ser det ut som det er en lineær sammenheng mellom?\n",
+ "```\n",
+ "\n",
+ "Vi tar utgangspunkt i kroppsmasse og vingelengde, som ser ut til å være lineært avhengig av hverandre. Et plott med regresjonslinje kan vi lage ved å bruke funksjonen _lmplot_ (eller _regplot_) fra seaborn-biblioteket:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.lmplot(data = pingvindata, x = \"body_mass_g\", y = \"flipper_length_mm\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser at vi får en regresjonslinje med et svakt blått område på hver side av linja. Dette området indikerer usikkerheten i verdiene. Desto større dette området er, desto mer usikkert er det at regresjonslinja er en god modell i dette området. Vi kan gjøre dette tydeligere ved å velge to variabler som ikke varierer så godt lineært:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 59,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.lmplot(data = pingvindata, x = \"bill_depth_mm\", y = \"flipper_length_mm\", hue = \"species\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Korrelasjon\n",
+ "Korrelasjoner kan brukes til å analysere sammenhenger mellom parametre. Korrelasjon beregnes som en verdi mellom -1 og 1. En verdi som brukes ofte som mål på korrelasjon, er _Pearsons korrelasjonskoeffisient_. Positiv korrelasjon betyr at det er en proporsjonal sammenheng mellom parametrene, og en negativ korrelasjon betyr at det er en omvendt proporsjonal sammenheng. Desto større absoluttverdien til korrelasjonen er, desto større sammenheng er det mellom parametrene. Vi kan visualisere korrelasjon gjennom et korrelasjonsplott:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 99,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbkAAAE8CAYAAABdKc9DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAABK9klEQVR4nO3dd3hUZdrH8e8voXcIvSiCoICFJlYUsAEKYl0r9q5rd1372l1XfV3Fgg2wsWtBUVFU7CwoVSk2RKWD0pGazP3+8ZyESRggkGQmGe6P11zOnHnmnHsOk7nnqUdmhnPOOZeOMlIdgHPOOVdSPMk555xLW57knHPOpS1Pcs4559KWJznnnHNpy5Occ865tOVJzjnnXImT9JykRZKmbuZ5Sfq3pBmSvpXUsTiO60nOOedcMgwCem7h+V5Aq+h2AfBEcRzUk5xzzrkSZ2afA0u2UOQYYIgFY4FakhoV9bie5JxzzpUGTYDZcY/nRNuKpFxRd+CSa8MfM30dtsipna5KdQilwuAbdkp1CKWGLVme6hBKjao3DVFR97Fh0U+F/r6p0KD1hYRmxlwDzWxgUWMoKk9yzjnnErNY4YuGhFaUpDYXaBb3uGm0rUi8udI551xisVjhb0U3HOgfjbLcD1huZvOLulOvyTnnnEvItqEmtzWSXgG6AXUlzQFuA8qH49iTwAigNzADWA2cXRzH9STnnHMuseKpoQFgZqds5XkDLi22A0Y8yTnnnEusGGtyqeJJzjnnXGI5G1IdQZF5knPOOZdYMTZXpoonOeeccwkV58CTVPEk55xzLjGvyTnnnEtbXpNzzjmXtmI5qY6gyDzJOeecSywnO9URFJknOeecc4l5c6Vzzrm05QNPnHPOpSsz75NzzjmXrry50jnnXNrygSfOOefSlk8hcM45l7a8udI551za8tGVzjnn0pbX5NyO5OZ7HuLz0V9Tp3Yt3nzxyVSHkxRn334+Hbt3Yt2adQy49hF+mToz3/MVKlXgmif+RoOdGhKLxZjw0Theun9IvjL79tqfa5+8gb8dfQ0zp8xIZvjFYvSvf/DAZ98Tixn99mjKOfvsskmZD35cwJNjf0ZA63rVubfXXgDMX7GGOz6azsKVa0Hw2DEdaVyzcpLfQcnJbLEnFY44HZRB9uTP2DDmnU3LtOlCha7HAkZs4WzWvfVE8gPdXl6TczuSfr0P59Tj+3Ljnf9KdShJ0aF7Jxrt0ojLD7mIVh1ac/5dF3Njv+s2KTd84JtMGzOFcuXLcevLd9C+W0cmfzoRgEpVK9P77D78OPGHZIdfLHJixn2ffMcTx3WiQbVKnPbKWA5pUY+WWdXyyvy29E+eG/cLg07qQo1K5Vmyel3ec7eMnMp5XVqw385ZrF6fjaRUvI2SIVGhZ3/WvvxPbMUSKp3zD7J/moj9MW9jkdoNKH9AH9YMuRPWroYq1VMY8LazNLhoakYyDiKpuaSpCbY/I6ltdP9XSXWj+6u2dV/FEGM3SQfEPR4k6YTiPk5Z1rn9ntSsUbb+SItin8O78NnrnwDw06QfqVqjKrXq185XZv3a9UwbMwWA7A3Z/DJ1JlkNs/KeP/maU3nrydfZsG598gIvRlMXLKdZzSo0rVmF8pkZHNm6IZ/+vChfmWFT53LS3s2oUak8AHWqVATg58WryDFjv53D+ahSoRyVy2cm9w2UoIzGLYktWYQt+x1iOeRMH0u51h3zlSnXoRvZEz4KCQ5g9crkB1oUsVjhb4UgqaekHyTNkHRDgud3kvSJpEmSvpXUu6hvISlJbnPM7Dwzm57KGOJ0Aw7YWiG346jTMIvF8/7Ie7x4wR/UaZC12fJValSl02H7MGX0twDsskcLshrXZeLHE0o81pKy6M+1NKheKe9xg+qV+P3PdfnK/Lb0T2YtXc1Z//ma/kO/YvSv4ZzNWrqa6hXLcc3bkzn5pTE8/MUP5MQsqfGXJFWvja1cnPfYVixB1fP/CMqo0xDVaUil/jdT6axbyWyxZ7LDLBqLFf62FZIygQFAL6AtcEpuJSfOzcB/zawDcDLweFHfQjKTXDlJL0n6TtJrkqpI+lRS5+3doaRMSQ9IGhdl/Quj7d2ifb8m6fvouIqe6x1tmyDp35LekdQcuAi4StJkSV2jQxws6X+SZm6pVhcd7zNJb0Vl75N0mqSvJU2R1DIqN0jSE5LGRuW6SXouOieDtvc8uNTLyMzgykevYcTz77Bo9kIkcebN5zDkrudTHVqJyzFj1rLVPH1CZ+7ttSd3fjSNlWs3kG0xJs1dxlUHt+bFU/ZlzvI1DJ8+N9XhJldGJhl1GrD2xXtZN+xxKhx1DlSskuqoCq94a3JdgBlmNtPM1gNDgWMKlDGgRnS/JjCPIkpmktsNeNzM2gArgEuKYZ/nAsvNbB9gH+B8Sbm94h2AKwm/GFoAB0qqBDwF9DKzTkA9ADP7FXgSeNjM2pvZF9E+GgEHAUcD920llr0JibINcAbQ2sy6AM8Al8eVqw3sD1wFDAceBtoBe0pqn2jHki6QNF7S+GeGvLK1c+KK4Mj+vXlgxMM8MOJhli5aSlbjunnPZTWsy5KFixO+7sL7LmX+L/MZ8dzbAFSuVplmu+3M7UPvYsCXA2nVYTf+9uxNtNhz16S8j+JSv2qlMGgksnDlWupVrZi/TLVKHNKiHuUzM2hSswo7167KrGWraVCtEq3rVadpzSqUy8ige8v6fL+ojDXXbYGtXIqqb6zZq0YdbOXSAmWWkPPjJIjlYMv/wBYvIKNOg2SHuv22oSYX/z0V3S4osLcmwOy4x3OibfFuB06XNAcYQf7vzu2SzIEns81sdHT/ReCvxbDPI4C94mpZNYFWwHrgazObAyBpMtAcWAXMNLNfovKvAAX/IeK9aWYxYLqkrX0yx5nZ/Oh4PwMfRNunAN3jyr1tZiZpCrDQzKZEr5kWxTi54I7NbCAwEGDDHzPTp72nFBo5ZAQjh4wAoGOPTvQ88yhGD/+CVh1as3rlnyxbtHST15x87WlUqV6FJ69/LG/b6pWrObfDGXmPbx96F0PuHlTmRle2a1iDWctWM3f5aupXq8TIHxfkjZzM1b1lfd7/YT7HtGvC0jXr+W3pnzSpWZnqFcuzct0GlqxeT50qFRg3ewltG9TYzJHKnti8mWTUaYBq1sVWLiWz7X6sezP/yMmcHyaQ2W5/+PYLqFwNZTUktuz3FEW8HbZhdGX891QRnAIMMrMHJe0PvCBpj+h7eLskM8kV/HIuji9rAZeb2ch8G6VuQHzHQQ7b917j97G1YWHxZWNxj2MFjr0uQZlE5Uqd6267j3GTvmXZshUc2u90Ljn3DI7vc2SqwyoxEz+eQIfunXn08ydZv2YdA659NO+5B0Y8zHW9r6JOwyyOv/wk5syYzT/ffQiA94aM4OOhH6Yq7GJVLiODv3XfnUuGTSRmxjHtmtAyqxqPj5lB2/o16NayPgfsnMWY3xZz3JDRZEpc2bU1tSpXAODqrrtx0RvjMYM29Wtw3B5NU/yOipHFWD9yCJVOuR4yRPY3n2N/zKX8wccRm/8LOT9NImfmFDJb7EnlC+4N5UcNhTWbHVdX+hTv2pVzgWZxj5tG2+KdC/QEMLMxUetbXWAR2ymZX6o7SdrfzMYApwJfAn2KuM+RwMWSPjazDZJas+lJi/cD0EJS86iJ8i9xz61kY1uwS+CBf2wyGCrtPXvLUwm3X9f7KgCWLFjMiTsX7FbY1O0n31yscSVT113q0XWXevm2XbL/xmZXSVx7yG6EHon89ts5i//unL7juXJ+/pY1P1+fb9uGz9/I93j9Ry8nM6TiVbzz5MYBraIupbmEgSWnFigzCzgUGCSpDVAJKFLVN5l9cj8Al0r6jtAvVRwzIp8BpgMTo2kFT7GFxG1mawh9ge9LmkBIbMujp98Gji0w8MQ553ZcxTi60syygcsIlZPvCKMop0m6Q1LfqNg1hLEV3xC6k84ysyK1+qmIry9zJFUzs1XRaMsBwE9m9nCq4yos75Pb6NROV6U6hFJh8A07pTqEUsOWLN96oR1E1ZuGFHnm/Zrh/yr0903lvteWypn+KZ0nlyLnRwNRphEGqiRuj3LOuR1dMdbkUqXUDnSQtCfwQoHN68xs36LsN6q1bVfNraRics65UskvmlpyoqH17VMdR7zSGJNzzpUYX6DZOedc2vIk55xzLm2lwcBET3LOOecS85qcc865tOVJzjnnXNry0ZXOOefSlvfJOeecS1veXOmccy5teZJzzjmXtkrxcl2F5UnOOedcQpadk+oQisyTnHPOucS8Jueccy5txXx0pXPOuXTlA0+cc86lLU9yzjnn0lYaTAbfEa8M7pxzrjCycwp/KwRJPSX9IGmGpBs2U+YkSdMlTZP0clHfgtfknHPOJVaMoyslZQIDgMOBOcA4ScPNbHpcmVbA34EDzWyppPpFPa7X5JxzziUWs8Lftq4LMMPMZprZemAocEyBMucDA8xsKYCZLSrqW/CaXBlzaqerUh1CqfHyhIdTHUKpULlx11SHUGo0rFY71SGUGnNuKvo+rHgHnjQBZsc9ngPsW6BMawBJo4FM4HYze78oB/Uk55xzLrFtmCcn6QLggrhNA81s4DYesRzQCugGNAU+l7SnmS3bxv3k26Fzzjm3qW3ok4sS2paS2lygWdzjptG2eHOAr8xsA/CLpB8JSW9coQMpwPvknHPOJVa8oyvHAa0k7SKpAnAyMLxAmTcJtTgk1SU0X84sylvwmpxzzrnEinFZLzPLlnQZMJLQ3/acmU2TdAcw3syGR88dIWk6kANcZ2aLi3JcT3LOOecSK+YFms1sBDCiwLZb4+4bcHV0Kxae5JxzziXmCzQ755xLV8U8hSAlPMk555xLLNuTnHPOuXTlF011zjmXtrxPzjnnXLoyT3LOOefSlic555xzactHVzrnnEtbPrrSOedcugoLkJRtnuScc84l5n1yzjnn0pYnOeecc+nKpxA455xLX57knHPOpSvL9iTnnHMuXXlNzjnnXNoq+9PkyEh1AK70Ofv283n0syf51/uPsMseLTZ5vkKlCvz9+Vv4v1EDeOjDRzntb/03KbNvr/159be3aLHnrskIOeluvuchDj7qZPqdflGqQ0mahx+6g++nf8nECR/Sof0eCcuM+vBVpk39nPHjPmD8uA+oVy8LgGbNGvPRB68y7uuRTJzwIb169khm6MXujnv/zpfjR/DhF2+wx15ttlj2uZce5aPRw/IeP/7svxj52WuM/Ow1xkweycjPXivpcLebxazQt9LKa3Iunw7dO9Fol0ZcfshFtOrQmvPvupgb+123SbnhA99k2pgplCtfjltfvoP23Toy+dOJAFSqWpneZ/fhx4k/JDv8pOnX+3BOPb4vN975r1SHkhS9evag1a67sHvbg9i3S0cGPHYvBxzUJ2HZ/v0vY8LEb/Ntu/HvV/Dqa2/z1MAhtGnTirffeoFdW++XjNCLXY/DurJLy504qHNvOnbei3sfvIU+h5+asGyvow9j9Z+r82275Nxr8+7fcue1rFyxqkTjLRKvyW07Sc0lTU2w/RlJbaP7v0qqG90v9CdA0iBJJ2xnXN0kHVAc+yrL9jm8C5+9/gkAP036kao1qlKrfu18ZdavXc+0MVMAyN6QzS9TZ5LVMCvv+ZOvOZW3nnydDevWJy/wJOvcfk9q1qie6jCSpk+fI3nhpVDj+OrridSsVZOGDesX+vVmUKNGNQBq1qjB/PkLSyTOZDiid3deGzocgInjv6VGjerUb1B3k3JVqlbm/Ev688iDT212X3369eSt10eUWKxFZdlW6FthSOop6QdJMyTdsIVyx0sySZ2L+h5KTXOlmZ1nZtNTGEI34ICtFUp3dRpmsXjeH3mPFy/4gzoNsjZbvkqNqnQ6bB+mjA6/3HfZowVZjesy8eMJJR6rS54mjRsyZ/a8vMdz58ynSeOGCcs+88xDjB/3ATfdeGXetjvufJBTTz2OX2eO5+3hQ7jiyptLOuQS07BRA+bNXZD3eP68hTRs1GCTctfdeDkDBwxmzeq1Cfez7/6d+H3RYn6ZOavEYi0qixX+tjWSMoEBQC+gLXBKbsWmQLnqwBXAV8XxHlKV5MpJeknSd5Jek1RF0qfbmrUVPBb9MvgIqB/3XCdJn0maIGmkpEbR9k8lPSJpsqSpkrpIag5cBFwVbe8a7eZgSf+TNHNLtbqoFviZpLeisvdJOk3S15KmSGoZlRsk6QlJY6Ny3SQ9F52HQVvY/wWSxksaP3PVr9tyikpURmYGVz56DSOef4dFsxciiTNvPochdz2f6tBcipxx5uV06HgY3bofy0EHduH008Ofzcl/6ceQIa/SvEVn+vTtz6BB/0ZSiqMtOW332I2dmzfj/XdHbbbMMcf35q03Sm8tDgjNlYW9bV0XYIaZzTSz9cBQ4JgE5e4E7gcS/zrYRqlKcrsBj5tZG2AFcMl27ufYaF9tgf5ENTFJ5YFHgRPMrBPwHHB33OuqmFn76LjPmdmvwJPAw2bW3sy+iMo1Ag4Cjgbu20osexMSZRvgDKC1mXUBngEujytXG9gfuAoYDjwMtAP2lNQ+0Y7NbKCZdTazzi2qNd9KGNvuyP69eWDEwzww4mGWLlpKVuONTS9ZDeuyZOHihK+78L5Lmf/LfEY89zYAlatVptluO3P70LsY8OVAWnXYjb89e1PaDj5JdxdfdGbeAJL5CxbStFnjvOeaNG3E3HkLNnnNvGjbqlV/8srQN9mnc3sAzj77ZF59LXxOxn41gUoVK1K3bp2SfxPF5MxzT84bLLJo4e80brKxFtuocQMWFGh+7bRPe/Zq344xk0cy7L0htGjZnFeHb/zxl5mZSa+jD+PtYe8n7T1sj22pycX/GI9uFxTYXRNgdtzjOdG2PJI6As3M7N3ieg+pGngy28xGR/dfBP66nfs5GHjFzHKAeZI+jrbvBuwBfBj9WswE5se97hUAM/tcUg1JtTaz/zfNLAZMl7Rpe0R+48xsPoCkn4EPou1TgO5x5d42M5M0BVhoZlOi10wDmgOTt3KcYjdyyAhGDgm/KDv26ETPM49i9PAvaNWhNatX/smyRUs3ec3J155GlepVePL6x/K2rV65mnM7nJH3+PahdzHk7kHMnDKj5N+EK3ZPPDmYJ54cDEDvXodyycVn8Z//vMW+XTqyYvkKFixYlK98ZmYmtWrVYPHipZQrV46jjjqMUaPC78XZs+bSo/tBDHnhv+y++65UqlSR339P/OOpNBr87FAGPzsUgB6HH8zZ55/CW2+8R8fOe7FyxSoWLfwjX/kXnv8PLzz/HwCaNmvMoKEDOLHv2XnPd+22Hz//NJP580p53+Q2DDwxs4HAwO09lKQM4CHgrO3dRyKpSnIFeymLe/ypgGlmtn8Rj7+uwD63JL5sLO5xjPzneV2CMonKpcTEjyfQoXtnHv38SdavWceAax/Ne+6BEQ9zXe+rqNMwi+MvP4k5M2bzz3cfAuC9ISP4eOiHqQo76a677T7GTfqWZctWcGi/07nk3DM4vs+RqQ6rxIx4bxQ9e/bgh+9Gs3rNGs477+q858aP+4DO+xxBxYoVGPHuy5QvX47MzExGjfqCZ559CYDr/nYHTz3xAFdccT5mxrnnXZWqt1JkH3/4OT0O78qXE95j7Zo1XH3ZLXnPjfzsNY48ZOvj1foe24s3X3+vJMMsFoXpa9sGc4FmcY+bRttyVSdUTj6NKicNgeGS+prZ+O09qJJ9vaCo/+sX4AAzGyPpGeA7oA9wrZmNl/Qr0NnM/pC0ysyqbWZfxwEXAr0J/XHTgfMJzYDTgTOiY5QnNB9Ok/Qp8L2ZXSTpIOAJM9tT0jVADTO7Ldr3IOAdM3sterylOLpFsR8dPf407r3kPRe/z+g8vGNmeyQ63uacuPMxpXdCSpK9POHhVIdQKlRu3HXrhXYQDavV3nqhHcScJVOL3Om5sPshhf6+afDJZ1s8nqRywI/AoYTkNg441cymbab8p0Tfo4UOOIFU9cn9AFwq6TtCH9UT27mfYcBPhIQ2BBgDEHVqngDcL+kbQhNg/MjJtZImEfrhzo22vQ0cW2DgiXPO7bhMhb9tbVdm2cBlwEhCxea/UcXjDkl9S+otJL0ml2rF9esgVbwmt5HX5AKvyW3kNbmNiqMmt+DgboX+vmn4+aelcrhsyvuAnHPOlU4WK5V5a5uUiSQnaU/ghQKb15nZvtu6LzPrVhricM650q6YB56kRJlIctEw+/Yeh3POJY8Voq+ttCsTSc4551zyxbI9yTnnnEtT6TAu0ZOcc865hHzgiXPOubTlSc4551za8uZK55xzaSuWU2ouObrdPMk555xLyOfJOeecS1sxnyfnnHMuXflkcOecc2nLR1c655xLWz660jnnXNrK8dGVzjnn0pX3yTnnnEtb3lzpnHMubaXDFIKy3+DqnHOuRJip0LfCkNRT0g+SZki6IcHzV0uaLulbSaMk7VzU9+BJzjnnXEI5MRX6tjWSMoEBQC+gLXCKpLYFik0COpvZXsBrwD+L+h68ubKMGXzDTqkOodSo3LhrqkMoFdbM+yLVIZQaObOmpjqEtFLMA0+6ADPMbCaApKHAMcD0jcezT+LKjwVOL+pBvSbnnHMuoZip0DdJF0gaH3e7oMDumgCz4x7PibZtzrnAe0V9D16Tc845l9C2DK40s4HAwOI4rqTTgc7AIUXdlyc555xzCRXz6Mq5QLO4x02jbflIOgy4CTjEzNYV9aCe5JxzziVUzH1y44BWknYhJLeTgVPjC0jqADwF9DSzRcVxUE9yzjnnEsqh+JKcmWVLugwYCWQCz5nZNEl3AOPNbDjwAFANeFUSwCwz61uU43qSc845l1CsmFc8MbMRwIgC226Nu39Y8R7Rk5xzzrnNiBVjTS5VPMk555xLyDzJOeecS1exVAdQDDzJOeecS8hrcs4559JWdqoDKAae5JxzziXkNTnnnHNpqxAXFyj1PMk555xLyKcQOOecS1vFPBc8JTzJOeecSyhbXpNzzjmXprwm55xzLm35ZHDnnHNpy0dXOuecS1s+utI551za8j4555xzaSu77FfkPMm5/Eb/+gcPfPY9sZjRb4+mnLPPLpuU+eDHBTw59mcEtK5XnXt77QXA/BVruOOj6SxcuRYEjx3TkcY1Kyf5HRSvhx+6g149e7B6zRrOPfcqJk2eukmZUR++SsNGDVizZi0AvXqfwu+/L6ZZs8Y8/+wj1KxVg8zMDG666V7ee//jZL+FEnfzPQ/x+eivqVO7Fm+++GSqwylRoyd/z/1DhhOLxTi2exfOPaZHvufn/7GUm5/4Dyv/XEMsFuOKU3rTtUMb3v1yIoPf+TSv3I+zFjD0nivYvXmTJL+DbeM1OZdWcmLGfZ98xxPHdaJBtUqc9spYDmlRj5ZZ1fLK/Lb0T54b9wuDTupCjUrlWbJ6Xd5zt4ycynldWrDfzlmsXp+Nyvgcm149e9Bq113Yve1B7NulIwMeu5cDDuqTsGz//pcxYeK3+bbd+PcrePW1t3lq4BDatGnF22+9wK6t90tG6EnVr/fhnHp8X26881+pDqVE5cRi3PP8MJ668QIaZNXk1Jv+TbdO7WjZtEFemaeHjeLI/fbipMMP4Oc5C7ns/md579E2HHVQR446qCMAP82az5UPDir1CQ7SY+BJxtYKSPqrpO8kzZX0WLTtIkn9Sz68hPH8KqluMe+zuaRT4x6flftedyRTFyynWc0qNK1ZhfKZGRzZuiGf/rwoX5lhU+dy0t7NqFGpPAB1qlQE4OfFq8gxY7+dswCoUqEclctnJvcNFLM+fY7khZdeA+CrrydSs1ZNGjasX+jXm0GNGuEHQs0aNZg/f2GJxJlqndvvSc0a1VMdRombOmMWzRrWpWmDLMqXK0fP/dvz6fhp+QsJVq0JP/xWrV5Dvdo1NtnPe/+bTM8D2ich4qKLbcOtMCT1lPSDpBmSbkjwfEVJ/4me/0pS86K+h8LU5C4BDotunQHMrETbJBSqADKzZE3TaA6cCrycpOOVSov+XEuD6pXyHjeoXompC5bnK/Pb0j8BOOs/XxMz48L9WnJg87rMWrqa6hXLcc3bk5m7Yg377lSHvx7YmsyMsvtTsEnjhsyZPS/v8dw582nSuCELFizapOwzzzxETk6MYcNGcPc9/wfAHXc+yHsjXubSS86hatXKHNnz5GSF7krAoqUraJhVK+9x/ayaTJkxK1+Zi48/govufZpXRo5mzbr1DLzxgk32M3LMZP7v2rNLOtxiUZxfwJIygQHA4cAcYJyk4WY2Pa7YucBSM9tV0snA/cBfinLcLdbkJD0JtADeA2rHbb9d0rXR/U8lPSJpsqSpkrrElXlB0hhJP0k6P+7110kaJ+lbSf+ItjWPMvwQYCrQbGvBSzpd0tfRsZ+KTiKSVkm6W9I3ksZKahBtbxk9niLpLkmrol3dB3SN9nNVtK2xpPej2P+5lThWSXpA0jRJH0nqEp2XmZL6RmXOkvSmpA+j2uhlkq6WNCmKqc7W3m9pkGPGrGWrefqEztzba0/u/GgaK9duINtiTJq7jKsObs2Lp+zLnOVrGD59bqrDTYozzrycDh0Po1v3YznowC6cfvoJAJz8l34MGfIqzVt0pk/f/gwa9O8y34Trtuy9/02i78Gd+XDAzQy4/hxuevwVYrGNqeLbGbOoVLECrZo1TGGUhWcq/K0QugAzzGymma0HhgLHFChzDDA4uv8acKiK+EezxSRnZhcB84DuwNItFK1iZu0Jtb7n4rbvBfQA9gduldRY0hFAK8Ibbg90knRwVL4V8LiZtTOz37YUm6Q2hAx/YHTsHOC06OmqwFgz2xv4HMhNsI8Aj5jZnoRfErluAL4ws/Zm9nC0rX20/z2Bv0jaUtKtCnxsZu2AlcBdhF8rxwJ3xJXbAzgO2Ae4G1htZh2AMcBmm38lXSBpvKTxz3256cCH4lK/aqUwaCSycOVa6lWtmL9MtUoc0qIe5TMzaFKzCjvXrsqsZatpUK0SretVp2nNKpTLyKB7y/p8v2hlicVaUi6+6EzGj/uA8eM+YP6ChTRt1jjvuSZNGzF33oJNXjMv2rZq1Z+8MvRN9uncHoCzzz6ZV197G4CxX02gUsWK1K1bJn7LuATq167BgsXL8h4vWrycBrVr5isz7JNxHLn/3gDs3bo56zZks3Tl6rznR/5vMr3KSFMlhIumFvZWCE2A2XGP50TbEpYxs2xgOZC1neEDheiTK6RXAMzsc6CGpFrR9rfMbI2Z/QF8QkhsR0S3ScBEYHdCcgP4zczGFvKYhwKdCFXeydHjFtFz64F3ovsTCM2REJLtq9H9rTVNjjKz5Wa2FpgO7LyFsuuB96P7U4DPzGxDdL95XLlPzGylmf1O+Md7O+418eXyMbOBZtbZzDqfc9AeWwl7+7VrWINZy1Yzd/lqNuTEGPnjArq1zN8H1b1lfcbPWQLA0jXr+W3pnzSpWZl2DWqyct0GlqxeD8C42UtokVW1xGItKU88OZjO+xxB532OYPjwkZxxWqiV7dulIyuWr9ikqTIzM5OsrNDIUa5cOY466jCmTfsBgNmz5tKj+0EA7L77rlSqVJHff1+cxHfjilO7ls2YteAP5ixawobsbN4fM5lDOrXNV6ZR3Vp8NfUnAGbOXcj69dnUqRH+DmKxGCPHfkPP/dsnO/TtZttwi/8xHt02batNgeIaXVlwpKltYbuAe83sqfgnog7GP7fhmAIGm9nfEzy3wcxyj53D9r3PdXH3t7aP+OPFcl9rZjFJ8a+L32cs7nFsO2MsVuUyMvhb9925ZNhEYmYc064JLbOq8fiYGbStX4NuLetzwM5ZjPltMccNGU2mxJVdW1OrcgUAru66Gxe9MR4zaFO/Bsft0TTF76hoRrw3ip49e/DDd6NZvWYN5513dd5z48d9QOd9jqBixQqMePdlypcvR2ZmJqNGfcEzz74EwHV/u4OnnniAK644HzPj3POu2tyhyrTrbruPcZO+ZdmyFRza73QuOfcMju9zZKrDKnblMjP5+1n9uPjep4nFYvTr1oVdmzVkwKsjabdLU7p1bsc1p/fhjqdf5cURXyDBHReflNdEPeH7X2iYVYumDYpUMUmqbRldaWYDgYFbKDKX/N1QTaNticrMib47awJF+mVYXF+sfwE+kXQQsNzMlkf/sMdIupfQnNeN0Cy4BrhT0ktmtkpSE2DDdhxzFPCWpIfNbFHUp1V9K82cY4Hjgf8A8aMAVgLpPzysELruUo+uu9TLt+2S/XfNuy+Jaw/ZDdhtk9fut3MW/935gJIOMan+esVNCbd33ucIAFavXsO++/VKWOa7737i4G79Siq0UuOBf2wySC5tde3Qhq4d2uTbdumJGxN6y6YNGPyPyxK+dp+2LXnxzstLNL7iVswj/8YBrSTtQkhmJxMG/MUbDpxJ6MI5gdANVKTpesWV5NZKmgSUB86J2/4toZmyLnCnmc0D5kX9aWOiRLgKOJ1QWyo0M5su6WbgA0kZhER5KbClJHcl8KKkmwjNi7lDB78FciR9Awxiy/2Pzjm3QyjOJGdm2ZIuA0YCmcBzZjZN0h3AeDMbDjwLvCBpBrCE/JWR7aIiJkkkfQpca2bjC2y/HVhlZqVmhqikKsAaM7NoeOopZlZwdE+ptvqJy9NhEYJiUeOKN1IdQqmwZt4XqQ6h1MiZVXIDs8qaSh37Fnko7z93Pr3Q3zfX//ZiqRw6nPJ+oCTrBDwWDUldRv5ap3POuTh+PTnAzLptZvvtRdmvpK+AigU2n2FmU7Z3n2b2BbB3aYrJOedKq3RoNiq1NTkz2zfVMRRUGmNyzrmSEkuDNFdqk5xzzrnU8uZK55xzaavs1+M8yTnnnNsMv2iqc865tOV9cs4559JW2U9xnuScc85thg88cc45l7a8udI551zaKvspzpOcc865zchOgzTnSc4551xCZT/FeZJzzjm3GT7wxDnnXNqyNKjLeZJzzjmXkNfknHPOpa0cr8k555xLVz5PzjnnXNpKh+bKjFQH4JxzrnSybfivKCTVkfShpJ+i/9dOUKa9pDGSpkn6VtJfCrNvT3LOOecSim3DrYhuAEaZWStgVPS4oNVAfzNrB/QE/k9Sra3t2JsryxhbsjzVIZQaDatt8mNvh5Qza2qqQyg1MnfaI9UhpJUkTiE4BugW3R8MfAr8LV8sZj/G3Z8naRFQD1i2pR17knPOOZdQthU+yUm6ALggbtNAMxtYyJc3MLP50f0FQIOtHKsLUAH4eWs79iTnnHMuoW2px0UJbbNJTdJHQMMET91UYD8mabOHltQIeAE408y22lLqSc4551xCxTmFwMwO29xzkhZKamRm86Mktmgz5WoA7wI3mdnYwhzXB54455xLKFmjK4HhwJnR/TOBtwoWkFQBGAYMMbPXCrtjT3LOOecSSuLoyvuAwyX9BBwWPUZSZ0nPRGVOAg4GzpI0Obq139qOvbnSOedcQjlJmg5uZouBQxNsHw+cF91/EXhxW/ftSc4551xC6bDiiSc555xzCdk2TCEorTzJOeecS8gXaHbOOZe2vLnSOedc2vIrgzvnnEtbOVtfUKTU8yTnnHMuobKf4jzJOeec2wxvrnTOOZe2fHSlc865tOXz5JxzzqUtr8k555xLWz660jnnXNoq+/U4T3LOOec2w5srnXPOpS1Pci6tZbbYkwpHnA7KIHvyZ2wY886mZdp0oULXYwEjtnA26956IvmBlqA77v07PQ7vypo1a7nq0puY+u13my373EuPslPzphx24LEAPP7sv2i5a3MAatSszorlKznykBOSEXaxGz35e+4fMpxYLMax3btw7jE98j0//4+l3PzEf1j55xpisRhXnNKbrh3a8O6XExn8zqd55X6ctYCh91zB7s2bJPkdJMfN9zzE56O/pk7tWrz54pOpDqfIfHSlS18SFXr2Z+3L/8RWLKHSOf8g+6eJ2B/zNhap3YDyB/RhzZA7Ye1qqFI9hQEXvx6HdWWXljtxUOfedOy8F/c+eAt9Dj81YdleRx/G6j9X59t2ybnX5t2/5c5rWbliVYnGW1JyYjHueX4YT914AQ2yanLqTf+mW6d2tGzaIK/M08NGceR+e3HS4Qfw85yFXHb/s7z3aBuOOqgjRx3UEYCfZs3nygcHpW2CA+jX+3BOPb4vN975r1SHUiySddHUkpSR6gBySWouaep2vrabpE2rGW67ZTRuSWzJImzZ7xDLIWf6WMq17pivTLkO3cie8FFIcACrVyY/0BJ0RO/uvDZ0OAATx39LjRrVqd+g7iblqlStzPmX9OeRB5/a7L769OvJW6+PKLFYS9LUGbNo1rAuTRtkUb5cOXru355Px0/LX0iwas06AFatXkO92jU22c97/5tMzwPaJyHi1Oncfk9q1kifH3tmVuhb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\n",
+ "text/plain": [
+ "
"
+ ],
+ "text/plain": [
+ " bill_length_mm bill_depth_mm flipper_length_mm \\\n",
+ "bill_length_mm 1.000000 -0.235053 0.656181 \n",
+ "bill_depth_mm -0.235053 1.000000 -0.583851 \n",
+ "flipper_length_mm 0.656181 -0.583851 1.000000 \n",
+ "body_mass_g 0.595110 -0.471916 0.871202 \n",
+ "\n",
+ " body_mass_g \n",
+ "bill_length_mm 0.595110 \n",
+ "bill_depth_mm -0.471916 \n",
+ "flipper_length_mm 0.871202 \n",
+ "body_mass_g 1.000000 "
+ ]
+ },
+ "execution_count": 108,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "pingvindata.corr()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser for eksempel at det er ganske stor positiv korrelasjon mellom nebblengde og lengden på vingene (luffene). Det betyr at dersom en pingvin har langt nebb, har den ofte også lange vinger. Det er derimot negativ korrelasjon mellom nebbdybde og vingelengde, som betyr at desto dypere nebb, desto kortere vinger har pingvinen.\n",
+ "\n",
+ "Det er derimot viktig å ikke blande korrelasjon med årsak-virkning (kausalitet). Den ene tingen forklarer ikke nødvendigvis den andre (selv om det kan gjøre det), det er bare en sammenheng mellom parametrene.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "I programmet nedenfor finner du datasettet \"iris.txt\". Les inn datasettet og gjør en korrelasjonsanalyse av variablene. Hvilke faktorerer korrelerer positivt og negativt med hverandre? Finnes det logiske forklaringer på det?\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block}\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns\n",
+ "\n",
+ "iris = pd.read_csv(\"iris.txt\")\n",
+ "corr = iris.corr()\n",
+ "\n",
+ "sns.heatmap(corr, annot=True,)\n",
+ "plt.xticks(rotation=45) \n",
+ "plt.show()\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "\n",
+ "I videoen nedenfor kan du få en innføring eller repetisjon i den grunnleggende teorien bak regresjonsanalyse:\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema4_algoritmer/algoritmer.ipynb b/_sources/docs/tema4_algoritmer/algoritmer.ipynb
new file mode 100644
index 00000000..f16cc22a
--- /dev/null
+++ b/_sources/docs/tema4_algoritmer/algoritmer.ipynb
@@ -0,0 +1,386 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "c661fd79",
+ "metadata": {},
+ "source": [
+ "# Matematiske algoritmer og stokastiske simuleringer\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. forklare noen matematiske algoritmer\n",
+ "2. programmere matematiske algoritmer\n",
+ "3. utføre og tolke stokastiske simuleringer\n",
+ "```\n",
+ "\n",
+ "Algoritmer er presise, systematiske oppskrifter, og vi kjenner mange eksempler fra hverdagen. Eksempler er strikkeoppskrifter, kakeoppskrifter og algoritmene som gir oss anbefalte filmer på Netflix og annonser på Facebook. I matematikk er algoritmer framgangsmåter som lar oss løse et matematisk problem. Vi skal her se på noen gamle, klassiske matematiske algoritmer som har fått en renessanse med datamaskinen. Vi skal også se på hvordan vi bruker tilfeldige tall til å gjøre simuleringer. Først og fremst skal vi forstå hvordan algoritmene fungerer og hva de kan brukes til. Vi skal også prøve å programmere noen av algoritmene.\n",
+ "\n",
+ "## Primtall med Eratosthenes sil\n",
+ "\n",
+ "La oss først se på en gammel metode som kan brukes til å finne primtall. Eratosthenes sil er en metode som ble utviklet av den greske matematikeren Eratosthenes i ca. 200 f. Kr. Metoden er enkel og systematisk, og er derfor også programmerbar. Metoden fungerer slik:\n",
+ "\n",
+ "1.\tLag ei liste av påfølgende heltall fra 2 til 100 med ti tall på hver rad (bortsett fra den første). Se tabellen nedenfor.\n",
+ "2.\tLa p til å begynne med være lik 2, det første primtallet.\n",
+ "3.\tStryk ut alle multipler av p som er større enn eller lik $p^2$.\n",
+ "4.\tFinn det første tallet større enn p som står igjen på lista. Dette tallet er det neste primtallet. Sett p lik dette tallet.\n",
+ "5.\tGjenta trinn 3 og 4 inntil $p^2$ er større enn 100.\n",
+ "6.\tAlle gjenværende tall på listen er primtall!\n",
+ "\n",
+ "| | | | | | | | | | |\n",
+ "|-----------|-----------|-----------|-----------|-----------|-----------|-----------|-----------|-----------|------------|\n",
+ "| | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n",
+ "| 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |\n",
+ "| 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |\n",
+ "| 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |\n",
+ "| 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |\n",
+ "| 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |\n",
+ "| 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |\n",
+ "| 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |\n",
+ "| 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 |\n",
+ "| 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Utfør [algoritmen for hånd](https://view.officeapps.live.com/op/view.aspx?src=https%3A%2F%2Fraw.githubusercontent.com%2Fandreasdh%2FProgrammering-og-modellering%2Fmaster%2Fdocs%2Ftema4_algoritmer%2FEratosthenes_ark.docx&wdOrigin=BROWSELINK). Å programmere algoritmen er litt ufordrendende, men du kan prøve på det når du er ferdig med å gjøre algoritmen for hånd.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Slik kan du programmere algoritmen\n",
+ ":class: tip, dropdown\n",
+ "Her lager vi en funksjon, men du kan godt gjøre det uten funksjoner.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "from pylab import *\n",
+ "\n",
+ "def eratosthenes_sil(n):\n",
+ " tall = list(arange(2,n+1,1)) # Lager array med heltall fra 2 til og med n\n",
+ " i = 0\n",
+ " # Algoritmen begynner\n",
+ " p = tall[i]\n",
+ " while p**2 <= n:\n",
+ " for element in tall:\n",
+ " if element%p == 0 and element >= p**2:\n",
+ " tall.remove(element)\n",
+ " i = i + 1\n",
+ " p = tall[i]\n",
+ " return tall\n",
+ "\n",
+ "primtall = finn_primtall(100)\n",
+ "print(primtall)\n",
+ "```\n",
+ "````\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9041cfc9",
+ "metadata": {},
+ "source": [
+ "## Kvadratrøtter med gammel babylonsk algoritme\n",
+ "\n",
+ "En annen gammel algoritme kommer fra Babylonia, og er godt over 2000 år gammel. Den ble brukt til å finne kvadratrota av et tall. Du kan se utledning av algoritmen i videoen nedenfor:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Algoritmen fungerer slik:\n",
+ "\n",
+ "Gjør en kvalifisert gjetning på hva $\\sqrt{a}$ er, og kall gjetningen $x_0$. Gjenta følgende algoritme $n$ ganger:\n",
+ "\n",
+ "$x_{n+1} = \\frac{1}{2}\\left(x_n+\\frac{a}{x_n}\\right)$\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Test algoritmen på $\\sqrt{12} \\approx 3.46410161514$. Regn ut feilen for hver iterasjon (gjentakelse i løkka). Eksperimenter med algoritmen på andre tall.\n",
+ "```\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c900740a",
+ "metadata": {},
+ "source": [
+ "## Stokastiske simuleringer: Monte-Carlo-metoder\n",
+ "\n",
+ "En stokastisk simulering er en simulering der tilfeldige hendelser inntreffer med en viss sannsynlighet. Det er mange prosesser i naturen som er tilfeldige eller delvis tilfeldige, f.eks. radioaktivt henfall, mutasjoner og diffusjon. Slike simuleringer er oppkalt etter kasinoet i Monte Carlo, og kalles Monte Carlo-metoder, fordi de benytter tilfeldige tall som grunnlag for det de skal tilnærme. Det er enormt mange anvendelser av MC-metoder. Vi skal se på noen av dem her. Men først skal vi ta en kikk på hvordan vi kan bruke simuleringer til å illustrere hva sannsynlighet er. Da trenger vi å kunne generere tilfeldige tall på datamaskinen. Dette kan vi gjøre slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "9d4e0d8d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "heltall = np.random.randint(1, 10) # lager et tilfeldig heltall i intervallet [1, 9]\n",
+ "flyttall = np.random.uniform(-1, 1) # Lager et tilfeldig flyttall mellom -1 og 1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d974dcfb",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag en funksjon som tar som parameter antallet ganger _n_ du skal kaste en terning. Funksjonen skal returnere ei liste med _n_ terningkast.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "import numpy as np\n",
+ "\n",
+ "def terningkast(n):\n",
+ " resultater = []\n",
+ " for i in range(n):\n",
+ " kast = np.random.randint(1,7)\n",
+ " resultater.append(kast)\n",
+ " return resultater\n",
+ "\n",
+ "print(terningkast(6))\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "59ba705a",
+ "metadata": {},
+ "source": [
+ "## Sannsynlighetsbegrepet\n",
+ "\n",
+ "Vi bruker sannsynlighet til vurderinger av hva vi skal gjøre i hverdagen hele tida. Er det trygt å gå over gata? Bør jeg spille Lotto? Er det lurt å klatre opp denne bratte, glatte fjellskrenten? Men hva er sannsynlighet egentlig? La oss prøve å bruke programmering for å finne ut av dette.\n",
+ "\n",
+ "`````{tabbed} Informasjon om oppgava\n",
+ "Vi skal studere et program som simulerer myntkast. Klikk på de ulike fanene for å gjøre oppgava tilpasset din kompetanse i programmering. Dersom du for eksempel forstår programmering godt, kan du prøve å lage programmet helt fra scratch. Da klikker du deg inn på nivå 5. Du kan starte på det nivået som passer deg. Prøv også gjerne de andre nivåene etter hvert. Det kan være mye lærering i å gå nedover i nivå også!\n",
+ "\n",
+ "- Nivå 1: Forklar og modifiser\n",
+ "- Nivå 2: Programmeringspuslespill\n",
+ "- Nivå 3: Feilsøk\n",
+ "- Nivå 4: Fyll inn\n",
+ "- Nivå 5: Lag programmet\n",
+ "`````\n",
+ "\n",
+ "`````{tabbed} Nivå 1: Forklaring\n",
+ "1. Forklar hva programmet nedenfor gjør før du kjører programmet. \n",
+ "2. Kjør deretter programmet og forklar hva det kan fortelle deg om sannsynlighet. \n",
+ "3. Modifiser programmet slik at det kaster mynten 100 ganger, 1000 ganger og 10000 ganger. Hva blir utfallet, og hvorfor?\n",
+ "\n",
+ "\n",
+ "````` \n",
+ "\n",
+ "`````{tabbed} Nivå 2: Puslespill\n",
+ "Løs [dette puslespillet](http://parsons.problemsolving.io/puzzle/23b61bf4e8954761993aa9200fb95ac2). Programmet skal simulere et myntkast og finne relativ frekvens av antall mynt, dersom kron = 0 og mynt = 1.\n",
+ "````` \n",
+ "\n",
+ "`````{tabbed} Nivå 3: Feilsøk\n",
+ "Programmetet nedenfor skal simulere et myntkast og finne relativ frekvens av antall mynt, med kron = 0 og mynt = 1, men programmet fungerer ikke som det skal. Forklar hva som er feil, og hvorfor. Rett opp programmet slik at det fungerer. Kjør programmet flere ganger med ulikt antall kast. Hva forteller resultatene deg om sammenhengen mellom relativ frekvens og sannsynlighet?\n",
+ "\n",
+ "\n",
+ "````` \n",
+ "\n",
+ "`````{tabbed} Nivå 4: Fyll inn\n",
+ "Programmet nedenfor skal simulere et myntkast og finne relativ frekvens av antall mynt, med kron = 0 og mynt = 1. Fyll inn det som mangler. Kjør deretter programmet flere ganger med ulikt antall kast. Forklar hva programmet kan fortelle deg om sammenhengen mellom relativ frekvens og sannsynlighet.\n",
+ "\n",
+ "\n",
+ "````` \n",
+ "\n",
+ "`````{tabbed} Nivå 5: Lag programmet\n",
+ "Lag et program som skal simulere et myntkast og finne relativ frekvens av antall mynt. Varier antallet kast. Hva forteller resultatene deg om sammenhengen mellom relativ frekvens og sannsynlighet?\n",
+ "\n",
+ "\n",
+ "````` "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "37549e46",
+ "metadata": {},
+ "source": [
+ "## Sannsynlighet og nedarving\n",
+ "\n",
+ "Vi kan også bruke tilfeldige tall til å modellere enkel nedarving av egenskaper. Her skal vi bruke funksjonen _choice_ istedenfor _randint_, som plukker ut et tilfeldig element fra ei liste, for eksempel slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f5859bb3",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pylab import *\n",
+ "\n",
+ "genotype_far = [\"B\", \"b\"]\n",
+ "print(choice(genotype_far))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6e74097a",
+ "metadata": {},
+ "source": [
+ "````{admonition}\n",
+ ":class: tip\n",
+ "Lag et program som regner ut sannsynligheten for å få barn med fenotypen blå øyne gitt at både mor og far har genotypen \"Bb\". Du kan ta utgangspunkt i pseudokoden nedenfor, eller prøve helt uten hjelp.\n",
+ "\n",
+ "1. Hvilke forutsetninger tar du for simuleringen?\n",
+ "2. Plott antall blåøyde som funksjon av antall barn. Beskrive det du ser.\n",
+ "3. Finn ut hvor mange barn må du får for at fordelingen av blåøyde og brunøyde skal bli noenlunde stabil.\n",
+ "```` \n",
+ "\n",
+ "````{admonition} Pseudokode\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} text\n",
+ "genotype_mor = [\"B\", \"b\"]\n",
+ "genotype_far = [\"B\", \"b\"]\n",
+ "blaa = 0\n",
+ "N = 100\n",
+ "\n",
+ "gjenta N ganger:\n",
+ " trekk et allel fra mor\n",
+ " trekk et allel fra far\n",
+ " hvis allel_far + allel_mor er lik \"bb\":\n",
+ " øk blaa med 1\n",
+ "\n",
+ "Skriv ut forholdet melllom antallet blåøyde og N.\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "from pylab import *\n",
+ "\n",
+ "genotype_mor = [\"B\", \"b\"]\n",
+ "genotype_far = [\"B\", \"b\"]\n",
+ "blaa = 0\n",
+ "N = 100\n",
+ "\n",
+ "for i in range(N): \n",
+ " allel_mor = choice(genotype_mor) \n",
+ " allel_far = choice(genotype_far) \n",
+ " genotype = allel_mor + allel_far\n",
+ " if genotype == \"bb\": \n",
+ " blaa = blaa + 1\n",
+ " \n",
+ "print(\"Sannsynligheten er:\", blaa/N)\n",
+ "```\n",
+ "````\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d404cc7b",
+ "metadata": {},
+ "source": [
+ "## Tilnærming av pi med Monte Carlo-metoder\n",
+ "\n",
+ "Selv om $\\pi$ er et bestemt tall, kan vi faktisk tilnærme $\\pi$ med tilfeldige tall. En Monte Carlo-algoritme for å estimere pi baserer seg på følgende:\n",
+ "\n",
+ "1. $A=\\pi r^2$, så hvis $r = 1$, er $A = \\pi$.\n",
+ "2. Lag et kvadrat med sidelengder = 2 og en innskrevet sirkel med radius = 1:\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "3. Trekk N tilfeldige tall av et _x_-koordinat og et _y_-koordinat. \n",
+ "4. Sjekk om $(x, y)$ ligger inni eller på sirkelen ($x^2+y^2\\leq 1$).\n",
+ "5. Sett M lik antall punkter som treffer sirkelen.\n",
+ "6. Nå er $\\pi = A_{sirkel} = A_{kvadrat} \\cdot \\frac{M}{N}$\n",
+ "7. Beregn $\\pi$ og regn avviket fra den «eksakte» verdien."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d6e7d211",
+ "metadata": {},
+ "source": [
+ "## Brownske bevegelser (enkel diffusjon)\n",
+ "\n",
+ "Vi skal her se på en MC-tilnærming til tilfeldig bevegelse av store partikler i løsning. Dette er en enkel modell for diffusjon av ikke-reagererende partikler som kan beskrive såkalte _Brownske bevegelser_. Brownske bevegelser ble først beskrevet av botanisten Robert Brown i 1827. Han oppdaga at små pollenkorn i løsning beveget seg fram og tilbake i et tilfeldig mønster. I dag veit vi at dette skyldes at de små vannmolekylene dytter på pollenkornet i mange tilfeldige retninger. Det samme gjelder større partikler som enkelte luktmolekyler (parfyme) og røyk, som vi jo kan lukte og noen ganger observere direkte i makroskala.\n",
+ "\n",
+ "\n",
+ "\n",
+ "For å simulere det som skjer på mikroskala, kan vi lage et program der vi for hvert tidssteg trekker tilfeldige tall som bestemmer retningen til partikkelen. Vi kan først se på hvordan vi kan gjøre dette ved å konstruere et rutenett der en partikkel kan bevege seg i fire retninger (opp, ned, høyre og venstre). Skråbevegelser kan beskrives som en kombinasjon av disse bevegelsene:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Disse bevegelsene kan vi representere med posisjonsarrayer $x$ og $y$. Posisjonen kan starte i origo, $(0, 0)$, og så kan vi øke eller redusere med 1 i en tilfeldig retning. Dette kan vi gjøre ved å trekke et tilfeldig tall mellom 1 og 4 som representerer bevegelse i rutenettet slik:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Hvis vi for eksempel trekker tallet 4, vil partikkelen bevege seg én rute nedover i $y$-retning. Da trekker vi fra 1 i arrayen som inneholder $y$-koordinatene. \n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk programmet nedenfor som utgangspunkt for å simulere bevegelsen til partikkelen:\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk skilpaddegrafikk (turtle) til å simulere bevegelsen til partikkelen. Du skal lage en skilpadde som beveger seg i en tilfeldig retning (tilfeldig vinkel) en bestemt avstand (for eksempel 5) for hvert tidssteg.\n",
+ "\n",
+ "\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "02dbfebf",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "\n",
+ "```{admonition} Oppgave 1\n",
+ "Utled og forklar den gamle babylonske algoritmen for å finne kvadratrøtter.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 2\n",
+ "Lag spillet Yatzy.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 3\n",
+ "Bruk simuleringer til å regne ut hva sannsynligheten for at det i vår klasse er minst 2 personer som har samme bursdag. Hvilke forutsetninger må ta gjøre for å utføre simuleringen?\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 4 (__utfordring__)\n",
+ "Det er 100 plasser i et fullbooket fly, men fordi du kommer for seint, er du den siste personen i køen som kommer inn. Den første i køen er litt idiot, og velger derfor en tilfeldig plass på flyet. Så kommer 98 Hell's Angels (én etter én). Disse bikergjengmedlemmene er ganske tydelige, og så fort de ser noen på plassen deres, grynter de, og idioten (som sitter i setet deres) må flytte seg (tilfeldig) til et annet sted. Til slutt, når alle er inne, så kommer du.\n",
+ "\n",
+ "1. Hva er sannsynligheten for at noen sitter i setet ditt?\n",
+ "\n",
+ "2. Hvor mange ganger i snitt bytter den første personen sete?\n",
+ "```"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/tema4_algoritmer/derivasjon.ipynb b/_sources/docs/tema4_algoritmer/derivasjon.ipynb
new file mode 100644
index 00000000..39df41ba
--- /dev/null
+++ b/_sources/docs/tema4_algoritmer/derivasjon.ipynb
@@ -0,0 +1,656 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Numerisk derivasjon\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med denne delen av emnet, skal du kunne:\n",
+ "1. forklare den teoretisk bakgrunnen for numerisk derivasjon, og forskjellen på numerisk og analytisk derivasjon\n",
+ "2. implementere framoverdifferansen, bakoverdifferansen og sentraldifferansen for numerisk derivasjon\n",
+ "3. derivere funksjoner og data\n",
+ "```\n",
+ "\n",
+ "## Derivasjonsbegrepet\n",
+ "Derivasjon handler om endring. Den deriverte kan beskrive stigningen og forandringen i et forløp. Nærmere bestemt handler det om momentan endring, altså endringen mellom to tilstander (funksjonsverdier) over en svært liten endring i en annen tilstand: \n",
+ "\n",
+ "$$f'(x) = \\frac{df}{dt} = \\lim_{\\Delta x \\rightarrow 0} \\frac{f(x+dx) - f(x)}{dx}$$\n",
+ "\n",
+ "Vi har derfor nytte av derivasjon i mange tilfeller der vi ønsker å beskrive en utvikling. Vi kan derimot ikke alltid derivere analytisk for hånd, så det er en stor verdi i å beherske numerisk derivasjon. Da kan vi enklest tilnærme den analytisk deriverte med en numerisk derivert:\n",
+ "\n",
+ "```{admonition} Numerisk derivasjon (framoverdifferansen)\n",
+ "For en liten verdi av $dx$ kan vi tilnærme den førstederiverte slik:\n",
+ "\n",
+ "$$f'(x) = \\frac{df}{dx} \\approx \\frac{f(x+dx) - f(x)}{dx}$$\n",
+ "```\n",
+ "der vi tilnærmer grenseverdien med en svært liten verdi av dx. Her skal vi se på denne metoden og andre metoder som kan brukes til å tilnærme den deriverte numerisk.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk definisjonen ovenfor og regn ut $f'(1)$ for $f(x) = 2x + 2$. Sett $dx = 1\\cdot 10^{-8}$.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " return x**2\n",
+ "\n",
+ "dx = 1E-8\n",
+ "x = 1\n",
+ "fder = (f(x + dx) - f(x))/dx\n",
+ "\n",
+ "print(\"f'(1) =\", fder)\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Løsningsforslaget ovenfor viser en enkel måte å implementere den numeriske deriverte på. Det kan også være nyttig å kunne lage metoden som en funksjon:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def deriver(f, x, dx = 1E-8):\n",
+ " dy = f(x + dx) - f(x)\n",
+ " return dy/dx"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Legg merke til at vi ikke deriverer symbolsk. Det betyr at vi ikke får en annen funksjon når vi deriverer en funksjon. Vi får bare _funksjonsverdier_. Vi må altså deriverere i gitte punkter, for eksempel $f'(1)$ eller $f'(-5)$. Dersom vi ønsker å visualisere den deriverte til en funksjon, må vi derfor derivere funksjonen i flere punkter. Dette kan vi gjøre vektorisert ved hjelp av arrayer:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEGCAYAAACO8lkDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAA02UlEQVR4nO3dd3iUVfbA8e9JDzWEUBMIvReBgBRRQSwoggUUUQQb2FDXXnZXV5e1b9FdFRQUXCyINAsoCi6oFEPvvSUE0khCElLn/v64A79IKAFm5p0k5/M882TKO7knk2TO3Pfee64YY1BKKaVKCnA6AKWUUv5Hk4NSSqlSNDkopZQqRZODUkqpUjQ5KKWUKiXI6QA8ISoqyjRp0sTpMJRSqlxZuXJlqjGmzskeqxDJoUmTJsTHxzsdhlJKlSsisvdUj+lpJaWUUqVoclBKKVWKJgellFKlaHJQSilViiYHpZRSpTieHEQkUERWi8jX7ttNRWS5iOwQkc9FJMTpGJVSqrJxPDkADwObS9x+FfiHMaYFcBi4y5GolFKqEnM0OYhIDHAN8IH7tgD9gRnuQ6YA1zkSnFJK+bufXoXElV751k73HP4JPAm43LdrAxnGmCL37QQg+mRPFJExIhIvIvEpKSleD1QppfzKzkXw099g63yvfHvHkoOIDAKSjTHnlPaMMRONMXHGmLg6dU66+lsppSqmwqPwzaMQ2Rz6PuaVJpwsn9EHGCwiVwNhQA3gX0CEiAS5ew8xQKKDMSqllP9Z8iak74Lb50BwmFeacKznYIx5xhgTY4xpAgwHFhpjbgUWAUPdh40C5jgUolJK+Z+UrfDzP6HTcGh2qdeacXrM4WSeAh4VkR3YMYhJDsejlFL+weWCr/8AIVXhir96tSm/qMpqjPkJ+Ml9fRfQw8l4lFLKL63+GPb+AoPfhmreHWv1x56DUkqpEx05BAv+BLEXQZeRXm9Ok4NSSpUH856Ewjy49l8g4vXmNDkopZS/2zoPNs2GS56AqBY+aVKTg1JK+bO8LPjmMajbDno/7LNm/WJAWiml1Cn88AJkHYBhUyDId3VIteeglFL+as8vED8Jet4Pjbr7tGlNDkop5Y8Kj8LccRARC/2f83nzelpJKaX80U8vQ/pOWyIjpKrPm9eeg1JK+ZvEVfDr23Y9gxdLZJyOJgellPInRfkw5wGoVs/rJTJOR08rKaWUP1n8OiRvghHTITzCsTC056CUUv7iwBpY8ndbcbXVlY6GoslBKaX8QVGBPZ1UNQquetnpaPS0klJK+YXFr8OhDTD8E6gS6XQ02nNQSinHJa6yu7t1uhnaXON0NIAmB6WUclZhHsy+D6rVhYGvOh3NcXpaSSmlnPTT3yBlC9z6JYTXcjqa47TnoJRSTtm/wi526zoKWg5wOprf0eSglFJOyM+GmWOgRoyji91OpXInh9Tt8OU9tsCVUkr50oI/weE9cP17EFbD6WhKqdzJIXM/rJ8OP/zF6UiUUpXJ9gUQPxl6PwhN+jgdzUlV7uTQvD9ceC8sfxd2LnQ6GqVUZZCbDnMetDu79fuj09GcUuVODgADXoCo1jD7fvtLU0opbzEGvnoYctPg+gkQHOZ0RKfkWHIQkTARWSEia0Vko4j8xX1/UxFZLiI7RORzEfHuvnjB4XDDRMhJgW8etb88pZTyhjWfwOa5dvOeBp2cjua0nOw55AP9jTGdgQuAq0SkJ/Aq8A9jTAvgMHCX1yNpeAFc+gxsnAXrPvd6c0qpSih9F8x7EmIvgt4POR3NGTmWHIyV7b4Z7L4YoD8ww33/FOA6nwR00R+gcW/45nFI3+2TJpVSlURxEcwcCxJoZycFBDod0Rk5OuYgIoEisgZIBhYAO4EMY0yR+5AEINonwQQEwg0TQALs3OPiojM/RymlymLJG5CwAgb9HSIaOR1NmTiaHIwxxcaYC4AYoAfQpqzPFZExIhIvIvEpKSmeCSiisf3lJayAxa955nsqpSq3fcvgf6/aonodhzodTZn5xWwlY0wGsAjoBUSIyLGaTzFA4imeM9EYE2eMiatTp47nguk41G60sfh12LvUc99XKVX5HM2AL++2HzyvfsPpaM6Kk7OV6ohIhPt6OHA5sBmbJI6l11HAHJ8Hd/XrEBFrf6k6vVUpdS6Mga8fgSNJcOMkv1wFfTpO9hwaAItEZB3wG7DAGPM18BTwqIjsAGoDk3weWVgNGDoJsg/C3HE6vVUpdfbWTLMzIPs9CzFxTkdz1hwr2W2MWQd0Ocn9u7DjD86K7gaXPW/rn8RPhu7en1GrlKogUrbCt09Ak77Q5xGnozknfjHm4Ld6PQjNL4PvnoVDG52ORilVHhQehS9GQ3AVuPGDcjFt9WQ0OZxOQIC7YmJN+8suyHE6IqWUv5v/DCRvsuUxqtd3OppzpsnhTKrVhRvet+W9v3nc6WiUUv5sw0xY+SH0edjvNu85W5ocyqLZJXDJU7D2E1sbRSmlTpS2E+Y+BNFx0P9PPmnyi/j9JGZ4Zz8aTQ5ldcmTdnDpm8cgeYvT0Sil/ElhHnwxCgKDYNhHEBjs9SY3HsjkqS/X8cGSXV75/pocyiog0A4uhVSF6bfbLf6UUgpg/tNwcL0dZ/BBeQyXy/D8nI3UqhLCI5e18kobmhzORvX6NkGkbYev/6DrH5RSsO4L9zjDI9DqSp80OXN1IvF7D/PUwDbUrOKdXoomh7PV7FK49Fm7vWj8ZKejUUo5KXkzfPUQNO7ls3GGzKOFvDJvM10aRzC0a4zX2tHkcC76PgYtLrddycRVTkejlHJC/hH4fCSEVIOhH9rxBh/4x4JtpOUU8NKQDgQEiNfa0eRwLgIC7O5xVevC9FFaf0mpysYYuw90+k4YOhlqNPBJsxsSM5m6dA+3XtiYDtE1vdqWJodzVSUSbp5q6y99eRe4ip2OSCnlK8vehU2zbYmdpn190mSxy/DcrPVEVg3hiSvKvLvBOdPkcD6iu9kKrjsXwk8vOx2NUsoX9vwM3/8RWl9jF7v5yLTle1mbkMmfBrXz2iB0SZoczle30dBlpN3/Ycu3TkejlPKmzERbSieyKVz/Loj3zvmXdCgrj9fmb6VvyygGd27okzY1OXjC1W9Awy4wayykbHM6GqWUNxTlw/SRtrDe8E9szTUfefGrTRQUu3hpSAfERwlJk4MnBIfBzf+FwBD4bATkZTodkVLKk4yBbx+HxJVw3btQp7XPmv5x8yG+WZ/EuH4taBJV1WftanLwlJoxcNMUOLwbZo4Fl8vpiJRSnhI/CVZNhYsehXaDfdZsVl4hz83aQOt61Rl7SXOftQuaHDyryUVw5d9g2zz43ytOR6OU8oQ9P8O8p6DlldD/jz5t+tV5W0g+kserQzsREuTbt2vHdoKrsHqMgaS18L9XoW5baH+90xEppc5Vxj5bS61WU7jxfZ9u3LNsVxrTlu/jnr5NuaBRhM/aPUZ7Dp4mAoP+ATE9YNZ9NlEopcqfghw7hlhcBLd86tMB6LzCYp7+ch2NI6vw6OW+G98oSZODNwSF2gHqKpHw6QjITnY6IqXU2XC5YOYYuz3w0EkQ1dKnzb/+3Vb2pOXyyg0dCQ9xZptRTQ7eUr2ene6Wmwaf3WrrvSulyodF42HL13DFeGh5uU+bXrE7ncm/7GZkz1h6t4jyadslaXLwpoYX2D2oE1bA3HFa4lup8mDddFjyBnS9HXre59OmcwuKePyLtTSqVYWnB3q/RMbpaHLwtvbX2RkO691/cEop/7VvuS2oF3sRXP2mz1ZAH/PKvC3sP5zL60M7UTXU2flCOlvJF/o+Dqk7YOFfoXYLncGklD9K3w2f3QI1o+HmjyEoxKfN/7IjlalL93Jnn6Zc2Ky2T9s+Gcd6DiLSSEQWicgmEdkoIg+7748UkQUist39tZZTMXqMCAx+y24IMute2L/C6YiUUiUdPQyf3ATGBSO+sJNJfCgjt4DHpq+leZ2qPHGlM7OTTuTkaaUi4DFjTDugJ/CAiLQDngZ+NMa0BH503y7/gkLh5mlQoyF8OhzSvbMpuFLqLBUV2LUM6bvt/2hUC582b4zh2VnrSc3O51/Duzg2O+lEjiUHY0ySMWaV+/oRYDMQDQwBprgPmwJc50iA3lC1Ntw6ww5MTxummwQp5TRj7DafuxfD4LehSR+fhzBzVSLfrj/Io1e08voGPmfDLwakRaQJ0AVYDtQzxiS5HzoI1DvFc8aISLyIxKekpPgmUE+o3dwuqMnYbxfY6BRXpZyzaDys/RT6PQcX3OLz5ven5/L83I30aBLJ2It9WzvpTBxPDiJSDfgSeMQYk1XyMWOMAU46/9MYM9EYE2eMiatTp44PIvWgxj3tFNd9S2HmPbqLnFJOWPmR3Yel6+1w8RM+b76w2MW4T1cjAm/e1JlAL+4HfS4cTQ4iEoxNDNOMMTPddx8SkQbuxxsAFXN5cYcbbJG+zXNh/tO6BkIpX9r2HXz9KLQYANf83edTVgHe/H4ba/Zn8MoNnWgUWcXn7Z+Jk7OVBJgEbDbG/L3EQ3OBUe7ro4A5vo7NZ3o9AL0ehBUT4Zd/Oh2NUpXD/hUwfRTU7wjDPoJA72+5eaLF21J47387uaVHY67p1MDn7ZeFk+sc+gAjgfUissZ937PAK8B0EbkL2Avc5Ex4PnL5S3AkCX54AarWhS63Oh2RUhVXylY7ZbVGAzs5JLS6z0NIPpLHo9PX0KpeNf48qJ3P2y8rx5KDMeZn4FR9uct8GYujAgLszlK5abbERpVIaD3Q6aiUqngyE+G/N0JAMNw2E6r5fqyyqNjFw5+u4UheEdPu7uk301ZPxvEBacX/V3Ft0NluXr53qdMRKVWx5KTBx9fbLXxvmwGRTR0J4x8/bGPprjTGX9+R1vV932s5G5oc/EVoddvNrdkIPrkZktY5HZFSFUP+EZh2I2TshVs+sx/CHLBwyyH+s2gnw7s3Ymi3GEdiOBuaHPxJ1dowcpZNFB9fD6nbnY5IqfKtMA8+vcV+2Bo2xZFFbmDXM/zh87W0a1CDFwa3dySGs6XJwd9ENILb59ipdVOH2G0KlVJnr6gAvhgFe5bYdUWtr3IkjKMFxYz9eCUuY3j3tq6EBfvvOENJmhz8UVQLGDkbCrJhymDISjrjU5RSJbiK7QLTbfPhmjehkzOTHo0xPD1zHZsPZvHW8C7E1q7qSBznQpODv6rfAW79EnJSbA8iuxyVCFHKSS6X3ZNh02y7k1v3ux0LZdLPu5mz5gCPXd6Kfm3qOhbHudDk4M8adYcR0+2ppalDtFCfUmficsE3j8LaT2y9pN4POhbKz9tT+du3m7mqfX0e6OfbSq+eoMnB3zXpYwv1pe2Aj6+zdeeVUqUZA98+Dis/hIsedaRe0jG7UrK5f9pKWtStxhs3dUYcKM9xvjQ5lAfN+8HwaZC8GaZepwlCqRMZA/OegvhJ0OdhuOzPjtRLAsjMLeSuKfEEBQYwaVR3qjm83ee50uRQXrS83C6US96kCUKpkoyxxStXTLC1ygb8xbHEUFjs4r5pK0k4nMuEkd38sqBeWWlyKE9aXfn7BKFjEKqyc7nsqaTl70HPB+CKvzqWGIwx/HnOBn7dmcbLN3SiexPfbjXqaZocyptWV9qtDJM3wdTBkJPqdERKOcPlgm/+AL99AL0fgivHO5YYAN75aSefrtjP/Zc2LxcroM9Ek0N51OoKO0iduh0+ugaOHHI6IqV8y1VsC1Wu/MgOPl/+oqOJYdbqBF7/bitDLmjI41e0diwOT9LkUF61GGBrMWXsh4+uthUnlaoMigrgy7tgzX/hkqcdHXwG+HVHKk/OWEfPZpG8NrQTAX62o9u50uRQnjXtCyNnQnYyTL4K0nY6HZFS3lWYB9NHwsZZdi+Ufs84mhg2JGYy5uOVNKldlQkj4wgNKh+lMcpCk0N517gnjPoKCnNsgji4wemIlPKOvCyYNvT/S2L0ecjRcHalZDNq8gpqhgcz9a4e1Az3/Y5y3qTJoSJoeAHcMd9ud/jR1bBvudMRKeVZ2SkwZRDs/RWun+hoSQyApMyjjJy0AoCP7+pBg5rhjsbjDZocKoo6reDO+VAlypba2Drf6YiU8oyMffDhVXaLz1s+hc43OxpOanY+IyetIPNoIR/d0YNmdao5Go+3aHKoSCIaw13fQ9028NkIWD3N6YiUOj8HN8CkK2zPYeRsO5XbQRm5Bdz2wXISDufywag4OsbUdDQeb9LkUNFUjbJjEE0vhjn3w+I37ApSpcqbXf+DDwcCAnfOg9hejoaTlVfIyEkr2JWaw/u3x9GzWW1H4/E2TQ4VUWh1W821402w8CX46mEoLnI6KqXKbv0M+O+NUCMa7l4A9ZzdPe1IXiGjJ69gy8Es3r21K31b1nE0Hl8onxWh1JkFhcANE+2ppiVvQNYBGPahTRxK+Stj7N/rwr9CbB9bcDK8lqMhZR4tZNTkFWxIzOTfI7pyWdt6jsbjK9pzqMhE4LI/wbX/gp0LYfJAyExwOiqlTq6oAOY8YBNDx5vsfupOJ4bcQkZOWs7GA5m8c2tXrupQ39F4fMnR5CAik0UkWUQ2lLgvUkQWiMh291dn/zoqgm6j4dbpkLEX3u8PiSudjkip38tNh//eAGum2VXPN0yEoFBHQ0rLzmfEB8vYknSE927rxhXtK09iAOd7Dh8BJ+76/TTwozGmJfCj+7Y6Xy0G2JlMQaHw4dWwYabTESllpWy1H1r2L4frJzi+6hngQMZRhk1Yyo7kbCbe3q3SnEoqydHkYIxZDJxYd3oIMMV9fQpwnS9jqtDqtoW7F0KDzjDjDtt9d7mcjkpVZtsXwAcDoCAbRn8DnYc7HRG7UrIZ9t5SUrLy+fiuC7m0dfna+9lTnO45nEw9Y0yS+/pB4KQpW0TGiEi8iMSnpKT4LrryrlodO9W1y0hY/LpdD5GX5XRUqrIxBpb8HaYNg1qxcM8iaNTD6ahYl5DBTROWkldYzKdjetKjafnek+F8nDE5iMg4p877G2MMcNJJ+saYicaYOGNMXJ06FX9amUcFhcLgt2Hg67D9e/jgMtu1V8oX8rPhi1Hw41+gww1w53cQ0cjpqFi0JZmbJywjLDiQ6ff2okN0xV3gVhZl6TnUA34TkekicpV4f6fsQyLSAMD9NdnL7VVOInDhGLh9jh0MfL+/rXSplDelbrenkTZ/BVeMhxsnQUhVp6Ni+m/7uXtqPM3qVGXm/b1pXkFLYpyNMyYHY8wfgZbAJGA0sF1E/iYizb0U01xglPv6KGCOl9pRYMt+j11sxyO+GA3fPQfFhU5HpSqiDTNh4qWQk2ynqfZ+0PGBZ5fL8Or8LTz55Tp6N6/N52N7Ubd6mKMx+YsyjTm4T+8cdF+KgFrADBF57XwaF5FPgaVAaxFJEJG7gFeAy0VkOzDAfVt5U81oGP0tdL8Hlv7blizI2O90VKqiKMqHeU/ZSRB128HYJdDsUqejIregiPumreTdn3ZyS4/GTB7dnWqhui74GDFnqLsjIg8DtwOpwAfAbGNMoYgEANuNMd7qQZRZXFyciY+PdzqMimHDTJj7EAQEwvXvQeuBTkekyrO0nTYpJK2Fnvfb7TwDnd/3IDHjKGOmxrM5KYvnrmnHnX2a4P0z5v5HRFYaY+JO9lhZ0mQkcIMxZm/JO40xLhEZ5IkAlR/pcIOd6vrFaPh0OPQYa/+hg7Wrrc7Suunw9R8gIAiGfwJtrnE6IgB+3ZnKg5+sprDIxaRR3enXpnJOVT2TMyYHY8zzp3lss2fDUX6hdnO4a4GdTbLsHdjzMwydZMcllDqToxnw7ROwfjo07gU3fgA1Y5yOCmMMk37ezcvzttA0qioTRnbTgefT8Md1DsofBIfBVS/DiC8g+xBMuASWvqOL5tTp7fkZ3rsINnwJlz4Lo772i8SQlVfI/dNW8ddvNnN523rMfqCPJoYz0NEXdXqtroD7l8LccfDdM7D1W7juXb+Yl678SOFRu+J+6X+gVhO7dqFRd6ejAmB9QiYPfLKKxIyjPDOwDWMublYpxxfOlvYc1JlVqwu3fGYXzh1YDe/0gpUf6SZCykqIhwkX25lu3UbDvT/7RWJwuQwfLNnFje/+SmGxi+ljezL2kuaaGMpIew6qbESg6+3uHeYetBsIbZhpE0atWKejU04oyIWf/mZ7C9Ub2rULzfs7HRUAh7LyeGz6Wn7ekcqAtnV5bWhnIquGOB1WuaLJQZ2dWk3g9rmw8kNY8Gfbi+j3LFx4LwTqn1Olsesn+wHh8B7oOgqueAnC/KPcxNfrDvDH2RvIKyxm/PUdGNGjsfYWzoH+N6uzFxAA3e+CllfAN4/B98/ZmSnX/gsadnE6OuVN2Smw4E+w9lOIbG4rqTa5yOmoAEjNzufPczbw7fqDdIqpyT9uvkAHnc+DJgd17iIawYjPYdNsuwL2/f4Qdxf0f87xHbyUh7mK7TjTj3+xp5P6PgYXPwHB4U5HhjGGuWsP8JevNpGdV8QTV7Zm7MXNCArUIdXzoclBnR8RaH+9Pde8cDz89j5snAmXPW/LggfoP2i5t3cpzH/KrnJu0heu+TvUaeV0VADsTcvhj7M3sGR7Kp1javL6sM60qqf7pHvCGctnlAdaPsOPHFxvF0DtWwr1O8GVf7PF/VT5k5kAC56HDTOgRrRdKd/hRseL5QHkFRbz/uJd/HvRDoIDA3jiytbc1jOWwADnYytPzrd8hlJlV78j3DHPLoJa8DxMGQRtBsGAFyCqpdPRqbLIy7Qb8Sx/z96++Em46BG/KK1tjOH7TYf46zeb2J9+lKs71ufPg9pTv6aWd/E0TQ7K80Sg41BbS2fpf+Dnf8B/LoQut8GlT0ONhk5HqE6mMA/iJ8HiN+BoOnQabsePIho7HRkAGxIz+du3m/l1Zxqt6lXjk7svpHeLKKfDqrD0tJLyvuwUWPIG/DbJFmHrfhf0ecRuWaqcV1wIqz+G/70ORw7YctqXv2gLMPqBhMO5vPn9NmatTqRWlWAevqwlt/WM1QFnDzjdaSVNDsp3Du+Bn16BdZ9DUBh0vxt6P6RJwilF+bBmmu3ZZeyDmB5w2Z/sQkc/cDAzj38v2s7nv+0nQIQ7L2rKfZc2p0aY8yW/KwpNDsq/pG6H/71mBzoDQ+yspt7jdKW1r+Rn257CL2/ZnkJ0N7jkKbtuxQ8Gmw9kHGXi4l18smIfLpfhpu6NeLBfCxpGOD9ttqLR5KD8U+p2+OWfsPZzMC47JbbXAxDd1enIKqYjh2DFBHt6Ly8DGveGS56AZv38IinsTs3hvZ92MnN1AsbA9V2ieeiyljSKrOJ0aBWWJgfl3zIT7cD1qqlQcMTuAXDhWDvLyQ92DSv3EuLtzKONs8FVBG0HQe+H/aI4njGGZbvSmfTzbn7ccojgwACGd2/EmIubEVNLk4K3aXJQ5UNeFqz+r30jy9gL1erZYn9dR2mJ8LOVfwTWz4BVU2wl3dAacMGt0OMeu5mTw3Lyi5iz5gD/XbaXTUlZRFYN4bYLG3Nbr1jqVtdpqb6iyUGVL65i2PGDPf2x/Xt7X7NL4ILb7KdePyjZ4JdcLtj3q617tGEWFOZA3fYQdwd0Hg6hzq4cNsawITGL6fH7mbU6kez8Ito2qMGoXrFc1yWasOBAR+OrjHQRnCpfAgKh1ZX2cnivfbNbMw1m3g0h1W2C6DDUJozKftrJGDi0ATbOgnVfQOY+CKkGHa6HbnfYwWaHxxMOZeXx1doDzFiZwJaDRwgNCuCajg24tWcsXRtHaMVUP6U9B1U+uFyw92e7af2muZCfCeGR0HqgHZto3q/y9ChcLjiwyu7Kt3E2pO8ECbADy52H28WHDq9mTs3OZ8GmQ8xdc4Blu9MwBjo3imBYtxiu7dyQmuGVPKn7CT2tpCqWonx72mnTHNg63yaKoHA7P7/l5dDiMqjV1PFPzB6Vm273UNj5I2z7HnKSQQJtuez210Pba6Gqs6uF96Tm8OOWZL7beJD4Pem4DDSLqsq1nRsy+IKGWj7bD+lpJVWxBIXaT8dtroGiAtizBLbNt+MT27+zx9RsbAv+NekLjXpAZLPylSxy02HfMtj7i70cWAMYCK1pk1/rgdBiAFSJdCzEnPwiVuxJZ8m2VH7amsyu1BwAWterzoP9W3Jl+3q0a1BDTxuVU37bcxCRq4B/AYHAB8aYV051rPYcFGDPv6fthJ0LYc9i2PMzHD1sH6sSBTHdoeEFtixE/U62xpM/vHHlpkPyJlvRNnEVJK60p4oAAkPtuEGzS21Z9IZdHNtxLye/iFX7DrNidzrLd6Wzat9hilyGkKAAejWrTb/WdejXpi6xtZ0v0KfKptydVhKRQGAbcDmQAPwG3GKM2XSy4zU5qJNyuSBlM+xfAQm/2UvqdsD9Nx9aA6JaQZ3WENkUIprYVdo1GtpptJ4a7DbGJoCsBFsG+/BeSNthL6nb7SrlY6o3tIsAo7vaRWoNu0Cw76d2FhW72JGSzbqETNbsz2DNvgy2HjpCscsQINC+YU36tIjiohZRxDWppTONyqnyeFqpB7DDGLMLQEQ+A4YAJ00OSp1UQADUa28vcXfY+/Kz4dBGOLgOUrZCyhY7fpF96IQnC1Spbc/jh9eyl5CqdtA7uIotICgB9mKKbfG64gIoPGrXGORn2V5LTqq9uAp//+3DakLtFnacpF47d5wdoHp9n7w0xxhjOJSVz47kbLYeOsK2g0fYcjCLzQePUFDkAqB6aBCdG0Vw/6XN6d4kkq6xtagW6q9vHcpT/PU3HA3sL3E7Abiw5AEiMgYYA9C4sX+UFFblQGg1aHyhvZRUkGuLzx3eA0eSbLI4kmQ/8R89DBn77bqBwqP2WFeRLflhim2iCAy2daKCwiGshl1TUCPansKqWsf2RGrG2PsiGtvE46NTWjn5RSRlHuVARh4Jh4+yLz2X/Ydz2ZOaw+7UHHILio8fG1k1hNb1qjOqVyztG9akQ3QNmkVVI0A30al0/DU5nJExZiIwEexpJYfDUeVdSBWo28Ze/JTLZcgrKiY7r4gj+UVk5xWRebSQzKOFZBwt5HBOAek5BaTlFJByJI/kI/mkHMnnSF7R775PcKAQU6sKjSOr0KNpJM2iqtK8TjVa1a9OVLVQh3465W/8NTkkAiXrJcS471MKsG+U2QVFZB0tJOtoEdn5ReTkF5FTUERuQTF5hcUcLSgmr9BFflExBUUuCotdFBQbiopdFLkMxe6Lyxy72NMsYIcJSrIf8uX4dXF/DRBx33Z/dfcG5HfPs9/PZYwd7TD8rt1jsRQWuygqtl/zi1wUFNmveYXF5BYUc7SwmDOpHhZE7aoh1KkeSpv61enbIor6NcNpGBFGg5rhRNcKp36NMN1OU52RvyaH34CWItIUmxSGAyOcDUn5Qk5+EYkZR0nKzONQZh4Hs/JIOZJPara9pOUUkJFrPy0Xu8rWYQwMEEKDAggOPHYRggKFQBECA4QA91ewb+7H3jdLvrEfSxaG3yeQY2/4xpjfHUOJ444JcGcVcccUIPYSFCgEBQhBAQGEBgdQLSyIoIAAwoIDCAsOJDQogCohgYSHBFElJJBqoUFUDwuiWmgQNcODj18iqoQQEqQb4CjP8MvkYIwpEpEHge+wU1knG2M2OhyW8pAjeYXsTMlhR3I2e9Ny2JOWy960HPan53I4t7DU8RFVgomqFkpUtRDa1q9BRJVgalUJOf6mWD0siOphwVQNDaRqqH0DDQ8OJMx90U/JSp09v0wOAMaYb4FvnY5DnTtjDHvTclmfmMmmpCy2JGWx5eARkjLzjh8TGCDE1AqncWQVOnZsQHStcKIjwmkYYU9/1K0RSmiQTpNUytf8Njmo8ifzaCGr9x1m5d7DrNp3mPUJmWS5B0ODAoQWdatxYdNIWtarTou61WhRtxqNI6sQrHsBK+V3NDmoc5aVV8iynWks25XOsl1pbD6YhTG2N9CmfnUGdW5Ip+iadIiuSat61fV8uFLliCYHVWbGGDYlZbFwczKLt6ewal8GxS5DaFAA3WJr8YcBrYhrUovOMRFU1UVSSpVr+h+sTquo2MXy3el8t/EgP2w6xAH3eEGH6Brce0kz+rasQ5fGETouoFQFo8lBleJyGVbsSWfu2gN8t+EgaTkFhAcH0rdlFI9c3op+retSp7oullKqItPkoI7bmZLNlysTmLPmAIkZR6kSEkj/NnUZ1KkBl7SqS3iI9g6Uqiw0OVRyeYXFfLs+ic9W7GfFnnQCA4S+LaN48qrWXNGuviYEpSopTQ6VVMLhXD5etpfPf9tPRm4hTWpX4amr2nBjt2jqVvd9iWillH/R5FDJrNp3mIn/28X3mw4iIlzRrh4je8bSs1ltrbyplDpOk0MlYIxh4ZZkJvxvFyv2pFMzPJixlzRnZM9YGkaEOx2eUsoPaXKowIwxfL/pEG/9uJ2NB7KIjgjnz4PacXP3RroOQSl1WvoOUQEZY/hpawqvf7eVTUlZxNauwmtDO3F9l2gtVaGUKhNNDhXMyr3pvDpvKyv2pNM4sgpvDuvMkAsaEqRJQSl1FjQ5VBD703N5Zd4WvlmfRJ3qobx0XQdujmuk9YyUUudEk0M5l5NfxL8X7WDSz7sJFOGRAS0Zc3EzqoTor1Ypde70HaScMsYwb8NBXvp6E0mZedzQNZonr2xD/Zq6RkEpdf40OZRD+9Jy+eOcDSzelkLbBjX494gudIuNdDospVQFosmhHCl2GT78ZTdvfr+NwADh+WvbMbJnrA42K6U8TpNDObH90BEen7GOtfszuKxNXV66roMuYFNKeY0mBz/nchkm/7Kb177bSrXQIN66pQvXdmqAiJa6UEp5jyYHP5aYcZTHpq9h2a50BrSty8s3dNJ9FJRSPqHJwU/N35DEkzPWUewyvHZjJ4bFxWhvQSnlM5oc/ExeYTEvfb2Jacv30SmmJm/f0oXY2lWdDkspVck4Ms1FRIaJyEYRcYlI3AmPPSMiO0Rkq4hc6UR8TtmblsMN7/zKtOX7GHtxM2bc21sTg1LKEU71HDYANwATSt4pIu2A4UB7oCHwg4i0MsYU+z5E31qw6RCPTl9DgAiTR8fRv009p0NSSlVijiQHY8xm4GTn0IcAnxlj8oHdIrID6AEs9W2EvuNyGf7xwzbeXriDjtE1eefWrjSKrOJ0WEqpSs7fxhyigWUlbie47ytFRMYAYwAaN27s/ci8IDu/iD98voYFmw5xU1wMLw7pQFiw7tmslHKe15KDiPwA1D/JQ88ZY+ac7/c3xkwEJgLExcWZ8/1+vrYvLZe7p/7GzpQcXri2HaN6N9HZSEopv+G15GCMGXAOT0sEGpW4HeO+r0JZufcw90yNp9hlmHpnD/q0iHI6JKWU+h1/K8ozFxguIqEi0hRoCaxwOCaP+mZdEre8v4waYUHMfqCPJgallF9yairr9SKSAPQCvhGR7wCMMRuB6cAmYD7wQEWaqTRx8U4e+GQVnaJrMvP+PjSN0mmqSin/5NRspVnArFM8Nh4Y79uIvMvlMrw8bzPvL9nNNZ0a8OawzjrwrJTya/42W6nCKSx28dSMdcxcncioXrE8f217AgJ04Fkp5d80OXhRXmEx909bxcItyTx6eSvG9W+hM5KUUuWCJgcvyS0o4p6p8fy6M42XruvAyJ6xToeklDqNwsJCEhISyMvLczoUjwsLCyMmJobg4OAyP0eTgxdk5RVy54e/sWrfYd4c1pkbusY4HZJS6gwSEhKoXr06TZpUrDVHxhjS0tJISEigadOmZX6ev01lLfcyjxYy8oPlrNmfwdu3dNXEoFQ5kZeXR+3atStUYgBbpqh27dpn3SPSnoMHZeUVcvvkFWxKyuLd27pxeTstnqdUeVLREsMx5/Jzac/BQ47kFTJq8go2HcjknVs1MSilyjdNDh6Qk1/E6A9/Y31CJv8e0VUTg1LqnLz11lu0bduWW2+9ldmzZ/Piiy+e9vjHH3+chQsXeiUWPa10nvIKixn78UpW7zvMf0Z05cr2J6s1qJRSZ/bOO+/www8/EBMTQ+/evZk7d+5pjx83bhz33HMP/fv393gsmhzOQ2Gxi3GfrubnHam8MawzAzs2cDokpZQH/OWrjWw6kOXR79muYQ2ev7b9KR+/99572bVrFwMHDuS2224jNDSUqChbe23IkCHceOON3H777UyYMIHFixczbdo0YmNjSUtL4+DBg9Sv79kPpnpa6Ry5XIYnZ6xjwaZD/GVwe4Z201lJSqlz995779GwYUMWLVpE3bp16dq16/HHJk6cyIsvvsiSJUt48803efvtt48/1rVrV3755RePx6M9h3P08rzNzFqdyGOXt2JU7yZOh6OU8qDTfcL3haSkJOrUqXP8dr169XjxxRfp168fs2bNIjIy8vhjdevW5cCBAx6PQXsO5+D9xbt4f8luRvWK5cH+LZwORylVwYSHh5dal7B+/Xpq165dKhHk5eURHh7u8Rg0OZyl2asTGf/tZq7p2IA/X9u+ws6LVko5p23btuzYseP47RUrVjBv3jxWr17NG2+8we7du48/tm3bNjp06ODxGDQ5nIVfd6byxIy19GwWyZs3dSZQq6sqpbzg4osvZvXq1RhjyM/P55577mHy5Mk0bNiQN998kzvvvBNjDIWFhezYsYO4uDiPx6BjDmW0Izmbez9eSZPaVZkwMk73Y1BKedyePXuOXx8wYAA//vgjAwYMYO3atcfvHzx4MIMHDwbg66+/ZujQoQQFef6tXHsOZZCWnc8dH60gJCiAyaO7UzO87JUNlVLqXDz77LPk5uae9piioiIee+wxr7SvPYczyCssZszHK0nOyuezMT1pFFnF6ZCUUpVAvXr1jvcQTmXYsGFea1+Tw2kYY3h21npW7j3MO7d2pUvjWk6HpJRSPqGnlU5j0s+7mbkqkT8MaMXVuvpZKVWJaHI4hZ+2JvO3bzczsEN9xulaBqVUJaPJ4SR2p+Yw7tPVtK5fgzdv6kyATllVSlUymhxOkFtQxL0fryQoQJg4shtVQnRYRinlG8dKdkdHR/PCCy8cv/+f//wnU6dOPe1zhw8fzvbt2z0WiyaHEowxPP3lerYnH+GtW7rozCSllE+98847LFiwgPHjxx+/r6ioiMmTJzNixIjTPve+++7jtdde81gsjnwsFpHXgWuBAmAncIcxJsP92DPAXUAx8JAx5jtfxfXRr3uYu/YAT1zZmr4t65z5CUqpimne03BwvWe/Z/2OMPCVUz58YsnuatWqAbBw4UK6du1KUFAQRUVF9OrVi9dff51LL72UZ555hoCAAMaPH0/fvn0ZPXo0RUVFHlkU59Q5kwXAM8aYIhF5FXgGeEpE2gHDgfZAQ+AHEWlljCn2dkDxe9IZ/81mLm9Xj/suae7t5pRS6nfee+895s+fz6JFi47v4wDwyy+/0K1bNwCCgoL46KOPGDp0KG+//Tbz589n+fLlAAQEBNCiRQvWrl17/Pjz4UhyMMZ8X+LmMmCo+/oQ4DNjTD6wW0R2AD2Apd6MJz2ngHGfria6VrgOQCulTvsJ39eSkpJo27bt8dvt27dn5MiRDBo0iKVLlxISEnL8sWPluz2RHPxhzOFOYJ77ejSwv8RjCe77ShGRMSISLyLxKSkp59y4y2V4bPoa0rIL+M+IrtQI09IYSin/cary3RERESQnJ//ufk+W7/ZachCRH0Rkw0kuQ0oc8xxQBEw72+9vjJlojIkzxsSV3BTjbE1csotFW1P406C2dIiuec7fRymlvOHE8t0zZ84kPT2dxYsXM27cODIyMo4/5sny3V47rWSMGXC6x0VkNDAIuMwYY9x3JwKNShwW477PK+L3pPP6d1u5pmMDbusZ661mlFLqnA0cOJCRI0cCkJqaytNPP82PP/5Io0aNePDBB3n44YeZMmUKhw4dIjw83GN7STs1W+kq4EngEmNMybKDc4FPROTv2AHplsAKb8URFhxInxZRvHxjR920RynluJIlu4+JjY2ldu3abN++nZYtW7Jt27bjjz300EPHr3/yySeMHTvWY7E4Nebwb6A6sEBE1ojIewDGmI3AdGATMB94wJszlTpE12TqnT10nEEp5ddeeeUVkpKSTntMREQEo0aN8libTs1WOmWxImPMeGD8qR5XSqnKpnXr1rRu3fq0x9xxxx0ebdMfZisppZRf+P/hz4rlXH4uTQ5KKQWEhYWRlpZW4RKEMYa0tDTCwsLO6nlaVU4ppYCYmBgSEhI4n3VT/iosLIyYmJizeo4mB6WUAoKDg2natKnTYfgNPa2klFKqFE0OSimlStHkoJRSqhSpCCPzIpIC7D3Hp0cBqR4Mx1P8NS7w39g0rrOjcZ2dihhXrDHmpMXpKkRyOB8iEm+MiXM6jhP5a1zgv7FpXGdH4zo7lS0uPa2klFKqFE0OSimlStHkABOdDuAU/DUu8N/YNK6zo3GdnUoVV6Ufc1BKKVWa9hyUUkqVoslBKaVUKZUuOYjI6yKyRUTWicgsEYk4xXFXichWEdkhIk/7IK5hIrJRRFwicsppaSKyR0TWuzdJivejuHz6ernbjBSRBSKy3f211imOK3a/XmtEZK6XYjntzy8ioSLyufvx5SLSxBtxnENco0UkpcTrc7eP4posIskisuEUj4uIvOWOe52IdPWTuC4VkcwSr9effRRXIxFZJCKb3P+PD5/kGM++ZsaYSnUBrgCC3NdfBV49yTGBwE6gGRACrAXaeTmutkBr4Ccg7jTH7QGifPh6nTEuJ14vd7uvAU+7rz99st+l+7FsL8dxxp8fuB94z319OPC5D16fssQ1Gvi3r/6eSrR7MdAV2HCKx68G5gEC9ASW+0lclwJfO/B6NQC6uq9XB7ad5Hfp0des0vUcjDHfG2OK3DeXASerY9sD2GGM2WWMKQA+A4Z4Oa7Nxpit3mzjXJQxLp+/Xm5DgCnu61OA63zQ5smU5ecvGesM4DLx/sblTv1ezsgYsxhIP80hQ4CpxloGRIhIAz+IyxHGmCRjzCr39SPAZiD6hMM8+ppVuuRwgjuxmfZE0cD+ErcTKP2LcIoBvheRlSIyxulg3Jx6veoZY45trHsQqHeK48JEJF5ElonIdV6Ioyw///Fj3B9OMoHaXojlbOMCuNF9GmKGiDTyckxl5c//g71EZK2IzBOR9r5u3H1Ksguw/ISHPPqaVcj9HETkB6D+SR56zhgzx33Mc0ARMM2f4iqDi4wxiSJSF1ggIlvcn3acjssrThdbyRvGGCMip5qXHet+zZoBC0VkvTFmp6djLae+Aj41xuSLyFhs76a/wzH5s1XYv6dsEbkamA209FXjIlIN+BJ4xBiT5c22KmRyMMYMON3jIjIaGARcZtwn606QCJT8BBXjvs+rcZXxeyS6vyaLyCzsqYPzSg4eiMsrrxecPjYROSQiDYwxSe7uc/Ipvsex12yXiPyE/dTlyeRQlp//2DEJIhIE1ATSPBjDOcVljCkZwwfYcRx/4LW/qfNR8g3ZGPOtiLwjIlHGGK8X5BORYGximGaMmXmSQzz6mlW600oichXwJDDYGJN7isN+A1qKSFMRCcEOIHpllsvZEJGqIlL92HXs4PpJZ1X4mFOv11xglPv6KKBUL0dEaolIqPt6FNAH2OThOMry85eMdSiw8BQfTHwa1wnnpAdjz2X7g7nA7e4ZOD2BzBKnEB0jIvWPjRWJSA/se6i3kzzuNicBm40xfz/FYZ59zXw96u70BdiBPS+3xn05NoOkIfBtieOuxs4I2Ik9veLtuK7HniPMBw4B350YF3bWyVr3ZaO/xOXE6+VuszbwI7Ad+AGIdN8fB3zgvt4bWO9+zdYDd3kpllI/P/Ai9kMIQBjwhfvvbwXQzEev0Znietn9t7QWWAS08VFcnwJJQKH77+su4F7gXvfjAvzHHfd6TjODz8dxPVji9VoG9PZRXBdhxxvXlXjvutqbr5mWz1BKKVVKpTutpJRS6sw0OSillCpFk4NSSqlSNDkopZQqRZODUkqpUjQ5KKWUKkWTg1JKqVI0OSjlBSLS3V3MLsy9sn2jiHRwOi6lykoXwSnlJSLyV+zK6HAgwRjzssMhKVVmmhyU8hJ3PaPfgDxsmYVih0NSqsz0tJJS3lMbqIbduSvM4ViUOivac1DKS8TuV/0Z0BRoYIx50OGQlCqzCrmfg1JOE5HbgUJjzCciEgj8KiL9jTELnY5NqbLQnoNSSqlSdMxBKaVUKZoclFJKlaLJQSmlVCmaHJRSSpWiyUEppVQpmhyUUkqVoslBKaVUKf8HofscDBmnbrcAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "def f(x):# Definerer en funksjon vi skal derivere\n",
+ " return 3*x**3 + x**2 - 1\n",
+ "\n",
+ "x = np.linspace(-2,2,100)\n",
+ "y = f(x)\n",
+ "yder = deriver(f,x)\n",
+ "\n",
+ "plt.plot(x,y,label=\"f(x)\") # Plotter funksjonen\n",
+ "plt.plot(x,yder,label=\"f'(x)\") # Plotter den deriverte funksjonen\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Feilanalyse\n",
+ "La oss nå ta en titt på hvilke verdier av $\\Delta x$ som gir best resultat. Det må vel være den verdien som ligger nærmest 0, altså en så liten verdi som mulig -- eller? La oss teste dette ved å skrive ut den deriverte for ulike verdier av $\\Delta x$:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "For delta_x = 0.1 er feilen: 4.000000000000092 %\n",
+ "For delta_x = 0.01 er feilen: 0.40000000000048885 %\n",
+ "For delta_x = 0.001 er feilen: 0.03999999998569592 %\n",
+ "For delta_x = 0.0001 er feilen: 0.003999999920267783 %\n",
+ "For delta_x = 1e-05 er feilen: 0.00040000068821655077 %\n",
+ "For delta_x = 1e-06 er feilen: 3.999977025159751e-05 %\n",
+ "For delta_x = 1e-07 er feilen: 4.010780685348436e-06 %\n",
+ "For delta_x = 1e-08 er feilen: 6.07747097092215e-07 %\n",
+ "For delta_x = 1e-09 er feilen: 8.274037099909037e-06 %\n",
+ "For delta_x = 1e-10 er feilen: 8.274037099909037e-06 %\n",
+ "For delta_x = 1e-11 er feilen: 8.274037099909037e-06 %\n",
+ "For delta_x = 1e-12 er feilen: 0.008890058234101161 %\n",
+ "For delta_x = 1e-13 er feilen: 0.07992778373591136 %\n",
+ "For delta_x = 1e-14 er feilen: 0.524016993585974 %\n",
+ "For delta_x = 1e-15 er feilen: 6.581410364015028 %\n",
+ "For delta_x = 1e-16 er feilen: 100.0 %\n",
+ "For delta_x = 1e-17 er feilen: 100.0 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "def f(x):\n",
+ " return 2*x**2 + x - 5\n",
+ "\n",
+ "def fder_analytisk(x):\n",
+ " return 4*x + 1\n",
+ "\n",
+ "x = 1\n",
+ "delta_x = [10**-i for i in range(1,18)] # liste med verdier fra 10^-18 til 10^-1\n",
+ "analytisk = fder_analytisk(x)\n",
+ "\n",
+ "for i in range(len(delta_x)):\n",
+ " numerisk = deriver(f, x, delta_x[i]) \n",
+ " feil = abs(numerisk-analytisk)/analytisk * 100\n",
+ " print(\"For delta_x =\", delta_x[i],\"er feilen:\", feil, \"%\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser at \"store\" verdier som 0.1 og 0.01 gir en del feil. Men vi ser også faktisk at nøyaktigheten er størst ved $dx = 10^{-8}$, og at den synker både med økende og med minkende $dx$. Og attpåtil gir $dx \\leq 10^{-16}$ null som svar! Dette gir naturlig nok en feil på 100 \\%, siden den analytiske verdien er 5.\n",
+ "\n",
+ "Vi forventer kanskje ikke dette resultatet. Dersom vi kun ser på definisjonen av den deriverte, er det ikke spesielt logisk at det skal slå slik ut. Men det hele handler om at tall ikke er representert eksakt i en datamaskin, og når datamaskinen skal operere med svært små tall, kan det bli en liten avrundingsfeil når den regner med tallene. Denne avrundingsfeilen gjør at vi får feil dersom vi velger for små verdier av $dx$. Dersom vi gjør en mer generell feilanalyse, viser det seg at $10^{-8}$ er en god verdi å velge her. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Lag et plott med feilen som funksjon av _dx_ med utgangspunkt i programmet ovenfor. Bruk logaritmiske akser – dette får resultatene tydeligere fram. Du kan lage logaritmiske akser slik:\n",
+ "```{code-block} Python\n",
+ "plt.yscale('log')\n",
+ "plt.xscale('log')\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "def f(x):\n",
+ " return 2*x**2 + x - 5\n",
+ "\n",
+ "def fder_analytisk(x):\n",
+ " return 4*x + 1\n",
+ "\n",
+ "x = 1\n",
+ "delta_x = [10**-i for i in range(1,18)] # liste med verdier fra 10^-18 til 10^-1\n",
+ "analytisk = fder_analytisk(x)\n",
+ "avvik = []\n",
+ "\n",
+ "for i in range(len(delta_x)):\n",
+ " numerisk = deriver(f, x, delta_x[i]) \n",
+ " feil = abs(numerisk-analytisk)/analytisk * 100\n",
+ " avvik.append(feil)\n",
+ " print(\"For delta_x =\", delta_x[i], \"er feilen:\", feil, \"%\")\n",
+ "\n",
+ "plt.plot(delta_x, avvik)\n",
+ "plt.yscale('log')\n",
+ "plt.xscale('log')\n",
+ "plt.xlabel('dx')\n",
+ "plt.ylabel('Feil (%)')\n",
+ "plt.show()\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Andre tilnærminger\n",
+ "\n",
+ "Tilnærmingen til den deriverte som vi har sett på, tar utgangspunkt i punktene $(x, f(x))$ og $(x+dx, f(x+dx))$ for å regne ut den momentane vekstfarten (altså den deriverte) i punktet $x$. Men vi kan like godt bruke andre punkter. Metoden vi har sett på, kalles _framoverdifferansen_ fordi den tar utgangspunkt i punktet $x$ og _neste_ punkt $x + dx$. Tilsvarende kan vi ta utgangspunkt i punktet $x$ og _forrige_ punkt $x - dx$. Dette kaller vi _bakoverdifferansen_. Bakoverdifferansen gir samme feil som framoverdifferansen, men er teoretisk nyttig for å utlede andre metoder.\n",
+ "\n",
+ "```{admonition} Numerisk derivasjon (bakoverdifferansen)\n",
+ "For en liten verdi av $dx$ kan vi tilnærme den førstederiverte slik:\n",
+ "\n",
+ "$$\\frac{df}{dx} \\approx \\frac{f(x) - f(x-dx)}{dx}$$\n",
+ "```\n",
+ "\n",
+ "En metode som derimot gir mindre feil enn både framover- og bakoverdifferansen, er _sentraldifferansen_. Det er en slags kombinasjon av framover- og bakoverdifferansen, der vi tar utgangspunkt i gjennomsnittet (midtpunktet) av $x+dx$ og $x-dx$.\n",
+ "\n",
+ "```{admonition} Numerisk derivasjon (sentraldifferansen)\n",
+ "For en liten verdi av $dx$ kan vi tilnærme den førstederiverte slik:\n",
+ "\n",
+ "$$\\frac{df}{dx} \\approx \\frac{f(x+dx) - f(x-dx)}{2\\cdot dx}$$\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Implementer bakover- og sentraldifferansen som Python-funksjoner. Gjør en feilanalyse med de tre ulike tilnærmingene for ulike verdier av $\\Delta x$. Bruk funksjonen $f(x) = \\sin{(x)}$ og sammenlikn med den analytiske verdien av den deriverte, $f'(x) = \\cos{(x)}$\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Numerisk derivasjon av data\n",
+ "Nå kommer vi til den nyttigste delen av numerisk derivasjon, nemlig derivasjon av diskrete data. Vi kan derivere på samme måte som vi gjorde med kontinuerlige funksjoner, men vi har gitt en $dx$ som er gitt av avstanden mellom datapunktene våre. Hvis målefrekvensen er lav, blir $dx$ høy, og motsatt. La oss se på hvordan vi kan derivere noen posisjonsdata:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "dydx = []\n",
+ "for i in range(len(y)-1):\n",
+ " dy = y[i+1]-y[i]\n",
+ " dx = x[i+1]-x[i]\n",
+ " der = dy/dx\n",
+ " dydx.append(der)\n",
+ "\n",
+ "dydx.append(None)\n",
+ "plt.plot(x, y, label='Posisjon (m)')\n",
+ "plt.plot(x, dydx, label='Fart (m/s)')\n",
+ "plt.xlabel('Tid (s)')\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I løkka bruker vi samme framgangsmåte som vi gjorde da vi deriverte funksjoner, men nå tar vi verdiene fra ei liste med verdier. Vi kan kun kjøre løkka til lengden av lengden av listene minus 1, fordi vi skal ta forskjellen mellom verdier. Da blir det nemlig én verdi mindre enn i _y_- og _x_-listene. Derfor legger vi til en ekstra verdi \"None\" til slutt i lista, slik at alle listene blir like lange."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Som du ser, kan vi benytte numerisk derivasjon på både kontinuerlige funksjoner og diskrete data. Hovedpoenget er at vi finner ut noe om endringen i en funksjon eller i et datasett. Og desto mindre _dx_ er, desto bedre tilnærming er denne endringen til den momentante endringen i et punkt, altså den deriverte.\n",
+ "\n",
+ "```{admonition} Didaktisk oppgave\n",
+ "1. Kan programmering og numeriske metoder være en måte å forstå derivasjon på? I så fall hvordan?\n",
+ "2. I denne delen har du sett på enkel numerisk derivasjon, feilanalyse, ulike tilnærminger til den deriverte og derivasjon av diskrete data. Hvilke deler av dette egner seg for elever, og i hvilke(n) sammenheng(er)?\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Derivasjon med numeriske biblioteker\n",
+ "\n",
+ "Selvfølgelig har noen også lagd funksjoner som kan derivere for oss. Vi finner dem i scipy-biblioteket. Funksjonen _derivative_ finner den numerisk deriverte ved hjelp av midtpunktstilnærmingen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "f'(1) = 2.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from scipy.misc import derivative\n",
+ "import numpy as np\n",
+ "\n",
+ "def f(x):\n",
+ " return x**2 - 4\n",
+ "\n",
+ "derivert = derivative(f, 1)\n",
+ "print(\"f'(1) =\", derivert)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "\n",
+ "```{admonition} Oppgave 1\n",
+ ":class: tip\n",
+ "Beregn f'(1) numerisk for følgende funksjoner. Kontroller ved å derivere for hånd.\n",
+ "\n",
+ "1. $f(x) = x^2 - 4x + 5$\n",
+ "2. $f(x) = e^x$\n",
+ "3. $f(x) = \\sqrt{\\ln(x)}$\n",
+ "```\n",
+ "\n",
+ "````{admonition} Oppgave 2\n",
+ ":class: tip\n",
+ "Skriv om funksjonen _deriver_ slik at _dx_ har en standardverdi. Velg en standardverdi som sannsynligvis vil gi gode resultater. \n",
+ "```{code-block} Python\n",
+ "def deriver(f, x, dx = 1E-8):\n",
+ " dy = f(x + dx) - f(x)\n",
+ " return dy/dx\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 3\n",
+ ":class: tip\n",
+ "En partikkel følger posisjonsfunksjonen $x(t) = t^3 + \\frac{1}{3}\\cdot t$. Plott både posisjon, hastighet og akselerasjon for $t = [0,10]$. Husk at $v(t) = s'(t)$ og $a(t) = v'(t)$.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 4\n",
+ ":class: tip\n",
+ "Forklar hva som er forskjellen mellom analytisk og numerisk derivasjon.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 5\n",
+ ":class: tip\n",
+ "Temperaturen $T(t)$ (i celsius) etter $t$ minutter til en nylig lagd te følger denne modellen, som vi har kommet fram til ved regresjon av eksperimentelle data:\n",
+ "\n",
+ "$$T(t) = 70e^{-0.065t}$$\n",
+ "\n",
+ "a) Bruk Newtons kvotient for å tilnærme den deriverte til $T(t)$ for 1000 jevnt fordelte verdier av $t$ i intervallet $[0, 60]$\n",
+ "b) Plott resultatet fra a) sammen med grafen for $T(t)$. Bruk merkelapper (labels og legend) for grafene.\n",
+ "c) Hvor mye synker temperaturen med ved element nr. 42 i lista over verdier for $t$ (vi teller med 0-te element)?\n",
+ "```\n",
+ "\n",
+ "````{admonition} Oppgave 6\n",
+ ":class: tip\n",
+ "Programmet nedenfor leser av fila \"heistur_kjemi_fysikk.txt\" og finner fart og akselerasjon ved hjelp av numerisk derivasjon. Programmet fungerer derimot ikke helt som det skal. Rett opp feilen. Lag også en ny kolonne \"fart\" og en ny kolonne \"akselerasjon\" i dataframen.\n",
+ "\n",
+ "\n",
+ "\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "data = pd.read_csv(\"heistur_kjemi_fysikk.txt\")\n",
+ "p = data[\"height_m\"]\n",
+ "t = data[\"time_s\"]\n",
+ "v = [] # fart i m/s\n",
+ "a = [] # akselerasjon i m/s^2\n",
+ "\n",
+ "# Vi trenger to løkker fordi a tar utgangspunkt i v, som derfor må lages først\n",
+ "for i in range(len(p)-1):\n",
+ " dt = t[i+1] - t[i]\n",
+ " fart = (p[i+1] - p[i])/dt\n",
+ " v.append(fart)\n",
+ "\n",
+ "for i in range(len(v)-1):\n",
+ " dt = t[i+1] - t[i]\n",
+ " akselerasjon = (v[i+1] - v[i])/dt\n",
+ " a.append(akselerasjon)\n",
+ "\n",
+ "v.append(None)\n",
+ "a.append(None)\n",
+ "a.append(None)\n",
+ "\n",
+ "# Legger til verdiene i dataframen\n",
+ "data[\"fart\"] = v\n",
+ "data[\"akselerasjon\"] = a\n",
+ "\n",
+ "plt.subplot(3,1,1)\n",
+ "plt.ylabel(\"Posisjon (m)\")\n",
+ "plt.plot(t, p, color = \"limegreen\")\n",
+ "plt.subplot(3,1,2)\n",
+ "plt.ylabel(\"Fart (m)\")\n",
+ "plt.ylim(-1,1)\n",
+ "plt.plot(t, v, color = \"navy\")\n",
+ "plt.subplot(3,1,3)\n",
+ "plt.ylabel(\"Akselerasjon (m)\")\n",
+ "plt.plot(t, a, color = \"firebrick\")\n",
+ "plt.ylim(-1,1)\n",
+ "plt.xlabel(\"Tid (s)\")\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 7\n",
+ ":class: tip\n",
+ "Løs puslespillet nedenfor, som skal illustrere derivasjon av diskrete data.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame('https://parsons.herokuapp.com/puzzle/cd36da48d9cc4fcbbaf13103d84454bf', width=1000, height=750)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Video\n",
+ "````{tab-set}\n",
+ "```{tab-item} Numerisk derivasjon\n",
+ "\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema4_algoritmer/feilhandtering.ipynb b/_sources/docs/tema4_algoritmer/feilhandtering.ipynb
new file mode 100644
index 00000000..37fb33ba
--- /dev/null
+++ b/_sources/docs/tema4_algoritmer/feilhandtering.ipynb
@@ -0,0 +1,35 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Numeriske metoder og feilhåndtering\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema4_algoritmer/integrasjon.ipynb b/_sources/docs/tema4_algoritmer/integrasjon.ipynb
new file mode 100644
index 00000000..da58cd28
--- /dev/null
+++ b/_sources/docs/tema4_algoritmer/integrasjon.ipynb
@@ -0,0 +1,459 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Numerisk integrasjon (ekstrastoff)\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Forklare forskjellen på ulike tilnærminger til rektangelmetoden (venstre-, høyre- og midtpunktstilnærming).\n",
+ "2. Forklare og utlede trapesmetoden.\n",
+ "3. Implementere rektangelmetoden og trapesmetoden.\n",
+ "4. Integrere funksjoner numerisk.\n",
+ "```\n",
+ "\n",
+ "## Integrasjon\n",
+ "Du kjenner kanskje integrasjon som en metode å regne ut arealet under en graf eller volumet til legemer på. I tillegg kjenner du antakelig til integrasjon som den motsatte operasjonen av derivasjon. At derivasjon og integrasjon er motsatte operasjoner, er bevist gjennom _analysens fundamentalteorem_. Termen _analyse_ brukes her om den greinen av matematikk som omhandler derivasjon og integrasjon (_kalkulus_). Siden datamaskinen kun kan operere med bestemte verdier, kan vi med numeriske algoritmer kun tilnærme _det bestemte integralet_. Vi antideriverer derfor ikke her.\n",
+ "\n",
+ "\n",
+ "## Rektangelmetoden\n",
+ "\n",
+ "Vi kan enklest gjøre en tilnærming til det bestemte integralet ved å utnytte at det kan skrives som en grenseverdi av Riemann-summer. En Riemann-sum kan beskrives som en tilnærming til arealet under en graf ved hjelp av arealet til geometriske figurer. En vanlig tilnærming er å bruke rektangler:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Her benyttes $N = 10$ rektangler for å tilnærme integralet av $f(x) = \\cos{(x)} +2$ for $x\\in[2,12]$. Bredden av rektanglene må være $(b-a)/N = (12-2)/10 = 1$. Vi ser også at høyden av hvert rektangel er $f(x_n)$ der $n\\in[2,11]$, det vil si at vi lar venstresiden av rektangelet gå opp til grafen. Dersom vi regner ut arealet til hver av disse rektanglene, får vi 18.046675645664006, noe som ligger et lite stykke unna den analytiske verdien ($(\\sin{(12)} + 2\\cdot 12)-(\\sin{(2)} + 2\\cdot 2) \\approx 18.554129655173885$. Dersom vi øker antall rektangler, her til 50, får vi naturlig nok et bedre estimat (her har vi inkludert resultatene i figuren):\n",
+ "\n",
+ "\n",
+ "\n",
+ "Det er åpenbart, spesielt i den første figuren, at flere områder av rektanglene ligger utenfor grafen. De ligger både for langt over og under grafen flere steder. Men feilen blir ikke så stor som det kan se ut som fordi vi nettopp har områder både over og under grafen. Relativ feil er her ca. 2.7 \\% med 10 rektangler og 0.65 \\% med 50 rektangler. \n",
+ "\n",
+ "La oss illustrere feilen vi får med en lineær funksjon, $f(x) = 10x$:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Vi har i disse modellene målt rektangelhøyden på venstre ytterkant av rektangelet. Dette gir oss her en underestimering av integralet for hvert rektangel. Vi kan også måle høyden av rektanglene på høyre ytterkant. Da får vi en tilsvarende overestimering:\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser her at vi får en stor underestimering med venstretilnærmingen og en stor overestimering med høyretilnærmingen, med en relativ feil på ca. 7.1 \\%. Det samme skjer for alle funksjoner i intervaller som er enten voksende eller synkende i hele intervallet. En måte å kompensere for dette, er å benytte høyden til rektangelet i midten istedenfor i endepunktet til venstre eller høyre:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Det aller beste resultatet får vi altså med denne _midtpunktstilnærmingen_. For lineære funksjoner vil vi få en eksakt verdi (selv med ett rektangel!) fordi rektanglene er like store over og under grafen. Men midtpunktstilnærmingen er generelt bedre også på for eksempel polynomer av høyere grad og trigonometriske funksjoner. La oss nå se på implementering av metodene."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Implementering av rektangelmetodene\n",
+ "\n",
+ "```{admonition} Rektangelmetoden (venstretilnærming)\n",
+ "Det bestemte integralet til en funksjon $f(x)$ fra $x = a$ til $x = b$ kan tilnærmes ved arealet til $n$ rektangler med bredden $h = \\frac{b-a}{n}$:\n",
+ "\n",
+ "$$\\int_a^b f(x) \\ \\mathrm{d}x \\approx h \\sum_{k=1}^{n} f(x_k)$$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Programmet nedenfor gir en funksjon som bruker venstretilnærmingen av rektangelmetoden til å beregne det bestemte integralet av en funksjon _f_ mellom _a_ og _b_. Fyll inn det som mangler i metoden.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def f(x):\t\t\t\t#Definerer en funksjon som vi skal integrere.\n",
+ " return x**3\n",
+ " \n",
+ "def f_analytisk(x): #Definerer analytisk verdi for sammenlikning.\n",
+ " return (1/4)*x**4\n",
+ "\n",
+ "def rektangelmetoden(f, a, b, n):\n",
+ " A = 0.0\t\t\t\t\t\t\t \n",
+ " h = (b-a)/n\t\t\t#Bredden til rektanglene\n",
+ " for k in range (n):\t\n",
+ " A = A + f(a + k*h)*h\n",
+ " return A\n",
+ " \n",
+ "print(\"Numerisk verdi:\", rektangelmetoden(f, 0, 5, 1000))\n",
+ "print(\"Analytisk verdi:\", f_analytisk(5)-f_analytisk(1))\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Tilsvarende kan vi beskrive høyretilnærmingen slik:\n",
+ "\n",
+ "```{admonition} Rektangelmetoden (høyretilnærming)\n",
+ "Det bestemte integralet til en funksjon $f(x)$ fra $x = a$ til $x = b$ kan tilnærmes ved arealet til $n$ rektangler med bredden $h = \\frac{b-a}{n}$:\n",
+ "\n",
+ "$$\\int_a^b f(x) \\ \\mathrm{d}x \\approx h \\sum_{k=1}^{n} f(x_{k+1})$$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Implementer algoritmen for høyretilnærmingen som en Python-funksjon. Test og sammenlikn med venstretilnærmingen på integralet $\\int_2^8 f(x) = x^2 - 2x + 4 \\ dx$. \n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def rektangelmetoden_høyre(f, a, b, n):\n",
+ " A = 0.0\t\t\t\t\t\t\t \n",
+ " h = (b-a)/n\n",
+ " for k in range (n-1):\t\n",
+ " A = A + f(a + (k+1)*h)*h\n",
+ " return A\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Den beste tilnærmingen med rektangler får vi med midtpunktstilnærmingen:\n",
+ "\n",
+ "```{admonition} Rektangelmetoden (midtpunktstilnærming)\n",
+ "Det bestemte integralet til en funksjon $f(x)$ fra $x = a$ til $x = b$ kan tilnærmes ved arealet til $n$ rektangler med bredden $h = \\frac{b-a}{n}$:\n",
+ "\n",
+ "$$\\int_a^b f(x) \\ \\mathrm{d}x \\approx h \\sum_{k=1}^{n} f(x_{k+1})$$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Implementer algoritmen for høyretilnærmingen som en Python-funksjon. Test og sammenlikn med venstretilnærmingen på integralet $\\int_2^8 f(x) = x^2 - 2x + 4 \\ dx$. \n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def rektangelmetoden_midt(f, a, b, n):\n",
+ " A = 0.0\t\t\t\t\t\t\t \n",
+ " h = (b-a)/n\n",
+ " for k in range (n):\t\n",
+ " A = A + f(a + (1+2*k)*(h/2))*h\n",
+ " return A\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Dersom vi har funksjoner med stor stor stigning eller minking ($|f'(x) >> 0|$), trenger vi mange rektangler for å få et godt resultat. Dette kan gi langsomme programmer dersom integrasjonen må gjentas flere ganger. Vi skal derfor nå se på noen forbedringer av rektangelmetoden."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Trapesmetoden\n",
+ "\n",
+ "Vi kan legge merke til at toppstykket i et rektangel er ei rett, horisontal linje. Ei slik linje kan representeres som et polynom av nullte grad, $f(x) = ax^0 = a$, der $a$ er et reellt tall. La oss se på mulighetene for å bytte ut dette toppstykket med et polynom av første grad, $f(x) = ax^1 = ax$. Da får vi \\textit{trapeser} istedenfor rektangler. En algoritme for dette er litt mindre intuitiv og litt mer jobb å utlede, men vi spanderer på oss det. La oss ta utgangspunktet i trapesmetoden illustrert med ett trapes i intervallet $[a, b] = [2, 12]$ på $f(x) = cos(x) + 2$:\n",
+ "\n",
+ "\n",
+ "\n",
+ "La oss utlede en algoritme for trapesmetoden. Vi tar utgangspunkt i at arealet av et trapes er gitt ved følgende formel:\n",
+ "\n",
+ "$$A_{trapes} = \\frac{side 1+side 2}{2}\\cdot h$$\n",
+ "\n",
+ "De to sidene $x_1$ og $x_2$ er gitt ved henholdsvis $f(a)$ og $f(b)$. Høyden i trapeset blir stykket langs hele x-aksen, altså $b-a$. Arealet blir derfor:\n",
+ "\n",
+ "$$A = \\frac{f(a) + f(b)}{2}\\cdot(b-a)$$\n",
+ "\n",
+ "La oss nå utvide til $n$ trapeser. Da blir høyden av hvert trapes $h = (x_1+x_2)/n$, noe som gir dette arealet for hvert $i$-te trapes:\n",
+ "\n",
+ "$$A_i = \\frac{f(x_i) + f(x_i)}{2}\\cdot h$$\n",
+ "\n",
+ "Summen blir da slik for $n$ trapeser:\n",
+ "\n",
+ "$$\\frac{f(a)+f(a+h)}{2}h + \\frac{f(a+h)+f(a+2h)}{2}h + \\frac{f(a+2h)+f(a+3h)}{2}h + ... + \\frac{f(a+ih)+f(b)}{2}h$$\n",
+ "\n",
+ "Vi multipliserer så alle ledd med $h$ og dividerer dem på 2. Dette setter vi utenfor uttrykket:\n",
+ "\n",
+ "$$\\frac{h}{2}\\cdot (f(a)+f(a+h)+f(a+h)+f(a+2h)+f(a+2h)+ ... + f(a+ih) + f(b))$$\n",
+ "\n",
+ "Trekker vi sammen like ledd, får vi:\n",
+ "\n",
+ "$$\\frac{h}{2}\\cdot (f(a)+2f(a+h)+2f(a+2h)+2f(a+3h)+ ... + 2f(a+ih) + f(b))$$\n",
+ "\n",
+ "Siden det bare er $f(a)$ og $f(b)$ som ikke er multiplisert med 2, kan vi forenkle:\n",
+ "\n",
+ "$$h\\left(\\frac{f(a)+f(b)}{2} + (f(a+h)+f(a+2h)+f(a+3h)+ ... + f(a+ih))\\right)$$\n",
+ "\n",
+ "Den siste samlingen av ledd kan vi skrive som en sum. Da får vi trapesmetoden:\n",
+ "\n",
+ "\n",
+ "```{admonition} Trapesmetoden\n",
+ "Det bestemte integralet til en funksjon $f(x)$ fra $x = a$ til $x = b$ kan tilnærmes ved arealet til $n$ trapeser med bredden $h = \\frac{b-a}{n}$:\n",
+ "\n",
+ "$$\\int_a^b f(x) dx \\approx h\\left( \\frac{f(a)+f(b)}{2} + \\sum_{i=1}^{n-1} f(x_i) \\right)$$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Implementer trapesmetoden og test den på funksjonene $f(x) = x^3 + 2x$ og $f(x) = \\sqrt(x)$ i intervallet $[2,4]$. Sammenlikn med resultatene du får fra rektangelmetoden (gjerne flere av dem!) med samme antall geometriske figurer. \n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "def trapesmetoden(f, a, b, n):\n",
+ " h = (b-a)/n\n",
+ " A = (f(a) + f(b))/2.0\n",
+ " for k in range(1, n):\n",
+ " A = A + f(a + k*h)\n",
+ " return A*h\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "Dersom vi øker antallet trapeser, blir naturlig nok også tilnærmingen bedre, som vi kan se av denne figuren:\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Simpsons metode\n",
+ "Vi har nå sett på to tilnærminger til integralet som bruker henholdsvis nullte- og førstegradspolynomer som toppstykke på de geometriske figurene som vi beregner arealet av. For å få en enda bedre tilnærming, spesielt til oscillerende funksjoner, kan vi bruke et toppstykke av et polynom med høyere grad enn 1. Alle disse metodene kan utledes ved hjelp av interpolasjon, men vi skal ikke gjøre det her. Her nøyer vi oss med å vise og implementere algoritmen for tredjegradstilnærmingen. Denne algoritmen kalles _Simpsons metode_:\n",
+ "\n",
+ "```{admonition} Trapesmetoden\n",
+ "Det bestemte integralet til en funksjon $f(x)$ fra $x = a$ til $x = b$ kan tilnærmes med $n$ geometriske figurer, der $n$ er et partall:\n",
+ "\n",
+ "$$\\int_a^b f(x) dx \\approx \\frac{h}{3} \\left( f(a) + f(b) + 2\\sum_{k = 1}^{\\frac{n}{2} - 1} f(x_{2k}) + 4\\sum_{k=1}^{\\frac{n}{2}} f(x_{2k-1}) \\right)$$\n",
+ "```\n",
+ "\n",
+ "Metoden kan implementeres slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def simpsons(f, a, b, n):\n",
+ " h = (b-a)/n\n",
+ " total = f(a) + f(b)\n",
+ " for k in range(1,n,2):\n",
+ " A += 4 * f(a + k*h)\n",
+ " for k in range(2,n,2):\n",
+ " A += 2*f(a + k*h)\n",
+ " return A*h/3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Studer koden ovenfor og prøv å finne igjen leddene i definisjonen av Simpsons metode.\n",
+ "```\n",
+ "\n",
+ "Metodene vi har sett på, bygger på samme prinsipp, nemlig tilnærming av arealet under grafen ved hjelp av geometriske figurer med rektangelbase og et polynom av grad $n$ som toppstykke. Siden prinsippet er det samme, kaller vi dem en _familie_ av metoder (hyggelig, ikke sant?). Denne familien heter _Newton-Cotes_. Det vil si at for eksempel trapesregelen kalles en Newton-Cotes-metode av første grad, mens Simpsons metode er en Newton-Cotes-metode av andre grad. Det finnes mange andre metoder og familier innenfor numerisk integrasjon, men disse lar vi ligge foreløpig."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Bruk av biblioteker for å integrere\n",
+ "Vi vender tilbake til scipy-biblioteket, som også inneholder metoder for numerisk integrasjon. Vi kan bruke biblioteket slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Trapesmetoden: 151.2501565629694\n",
+ "Simpsons metode: 151.25000015671972\n",
+ "Gauss kvadratur: (151.25, 1.6959623319719519e-12)\n"
+ ]
+ }
+ ],
+ "source": [
+ "from scipy import integrate\n",
+ "import numpy as np\n",
+ "\n",
+ "def f(x):\n",
+ " return x**3 - 1\n",
+ "\n",
+ "n = 1000\n",
+ "x = np.linspace(0,5,n)\n",
+ "y = f(x)\n",
+ "\n",
+ "# Integrasjon\n",
+ "trapes = integrate.trapz(y,x) # Trenger arrayer som parameter\n",
+ "simpsons = integrate.simps(y,x) # Trenger arrayer som parameter\n",
+ "gauss_kvadratur = integrate.quad(f,0,5) # Trenger funksjon som parameter\n",
+ "print(\"Trapesmetoden:\",trapes)\n",
+ "print(\"Simpsons metode:\",simpsons)\n",
+ "print(\"Gauss kvadratur:\",gauss_kvadratur) #Skriver ut svar og absolutt feil med Gauss kvadratur, en metode vi ikke har sett på"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Studer koden ovenfor. Hvordan fungerer de ulike funksjonene? Test gjerne ut funksjonene selv.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "\n",
+ "```{admonition} Oppgave 1\n",
+ ":class: tip\n",
+ "Løs puslespillet nedenfor. Programmet skal definere rektangelmetoden som en Python-funksjon.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame('https://parsons.herokuapp.com/puzzle/e6f9400da6d54c1389d6a1f7489eca36', width=1000, height=550)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n",
+ "```{admonition} Oppgave 2\n",
+ ":class: tip\n",
+ "Implementer algoritmen for rektangelmetoden som en Python-funksjon. Test metoden på integralet \n",
+ "\n",
+ "$$\\int_2^8 f(x) = x^2 - 2x + 4 \\ dx$$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 3\n",
+ ":class: tip\n",
+ "Implementer trapesmetoden og ulike tilnærminger for rektangelmetoden som Python-funksjoner. Gjør en feilanalyse av metodene og sammenlikn svarene du får på integralet\n",
+ "\n",
+ "$$\\int_2^8 f(x) = x^2 - 2x + 4 \\ dx$$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 4\n",
+ ":class: tip\n",
+ "Utled rektangelmetoden ved hjelp av definisjonen av integralet og en figur.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 5\n",
+ ":class: tip\n",
+ "Utled trapesformelen med utgangspunkt i definisjon av det bestemte integralet og formelen for arealet av et trapes. Bruk gjerne en figur.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 6\n",
+ ":class: tip\n",
+ "En _sannsynlighetsfordeling_ er en matematisk beskrivelse av hvor sannsynlig det er at ulike utfall vil skje. Det finnes mange forskjellige sannsynlighetsfordelinger. I denne oppgava skal vi se på en fordeling $f(x)$ som kalles en _standard normalfordeling_. Den er definert ved:\n",
+ "\n",
+ "$$f(x) = \\frac{1}{\\sqrt{2\\pi}}\\cdot e^{-\\frac{x^2}{2}}$$\n",
+ "\n",
+ "Skriv et program som bruker trapes- eller rektangelmetoden for å integrere $f(x)$ i området mellom $a = -k\\cdot\\sigma = -k$ og $b = k\\cdot\\sigma = k$ for $k \\in {1, 2, 3}$ og skriver ut resultatene. Du kan sette $\\sigma = 1$.\n",
+ "\n",
+ "For å forsikre deg om at du bruker en grei verdi for $n$, kan du se om resultatene blir omtrent lik 0.68, 0.95 og 0.997 for henholdsvis $k \\in {1, 2, 3}$. \n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 7*\n",
+ ":class: tip\n",
+ "Noen funksjoner oppfører seg trøblete ved at de går mot minus eller pluss uendelig, eller ved at funksjonen varierer svært mye mot en bestemt verdi. La oss her ta denne funksjonen:\n",
+ "\n",
+ "$$f(x) = \\sin\\left(\\frac{1}{x}\\right)$$\n",
+ "\n",
+ "Funksjonen oppfører seg turbulent like ved 0. Plott funksjonen med \\(D_f = [-5, 0) \\cup (0,5]\\) og studer grafen. Prøv å derivere og integrere med ulike metoder i punkter et stykke fra 0 og deretter punkter nær 0. Sammenlikn ulike metoder med den analytiske løsninga og kommenter resultatene.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "Bruk videoene nedenfor som en innføring eller en reptisjon til numerisk integrasjon.\n",
+ "\n",
+ "````{tab-set}\n",
+ "```{tab-item} Integrasjon\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{tab-item} Ulike metoder\n",
+ "\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema4_algoritmer/likninger.ipynb b/_sources/docs/tema4_algoritmer/likninger.ipynb
new file mode 100644
index 00000000..97390f3e
--- /dev/null
+++ b/_sources/docs/tema4_algoritmer/likninger.ipynb
@@ -0,0 +1,651 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Likninger og nullpunkter\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med denne delen av emnet, skal du kunne:\n",
+ "1. forklare den teoretisk bakgrunnen for halveringsmetoden og Newtons metode\n",
+ "2. implementere halveringsmetoden og Newtons metode\n",
+ "3. drøfte feil og begrensninger ved metodene\n",
+ "4. bruke metodene til å finne nullpunkter og løse likninger\n",
+ "```\n",
+ "\n",
+ "## Likninger\n",
+ "Å finne nullpunktene til en funksjon er det samme som å løse en likning $f(x) = 0$. Dersom vi for eksempel ønsker å løse en likning $x^4 + 3x = 2x^2 - 10$, kan vi løse denne ved å finne nullpunktet til funksjonen $f(x) = x^4 + 3x - 2x^2 + 10$. Vi kan si at vi formulerer likningen som et nullpunktsproblem.\n",
+ "\n",
+ "Likninger kan løses med mange spesialiserte løsningsmetoder og algebraiske \"triks\", for eksempel kjenner vi en løsningsformel for andregradslikninger:\n",
+ "\n",
+ "$$x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}$$\n",
+ "\n",
+ "Denne funksjonen kan kun brukes til å løse andregradslikninger. Det kreves andre funksjoner for å løse likninger av tredje og fjerde grad, og likninger av femte grad og over er ikke analytisk løsbare. Når vi løser likninger numerisk på en datamaskin, bruker vi derimot generelle metoder som i prinsippet kan brukes på alle typer likninger.\n",
+ "\n",
+ "Det finnes mange ulike måter å løse slike likninger på, og hver av metodene har sine styrker og svakheter. To metoder som er basert på relativt enkle prinsipper, er halveringsmetoden og Newtons metode. Vi skal se på implementering av disse metodene. I tillegg ser vi litt på styrker og svakheter ved metodene. Til slutt ser vi hvordan vi kan løse likninger ved å bruke ferdige algoritmer som finnes i scipy-biblioteket.\n",
+ "\n",
+ "## Praktiske anvendelser\n",
+ "\n",
+ "Det finnes flere praktiske anvendelser med likninger. Hvis vi for eksempel skal finne ut hvor to funksjoner skjærer hverandre, kan vi løse likningen $f(x) = g(x)$ som et nullpunktsproblem: $f(x) - g(x) = 0$. Disse funksjonene kan representere mange ulike ting.\n",
+ "\n",
+ "La oss for eksempel si at vi har to uttrykk som for eksempel beskriver konsentrasjon til to produkter over tid:\n",
+ "\n",
+ "$$c_1(t) = e^{-t} + t + 5$$\n",
+ "\n",
+ "$$c_2(t) = \\ln(0.006t + 1) + t^{0.3} + 10$$\n",
+ "\n",
+ "For å finne ut ved hvilken tid de to produktene har lik konsentrasjon, kan vi løse likningen $c_1(t) = c_2(t)$. Formulert som et nullpunktsproblem får vi:\n",
+ "\n",
+ "$$e^{-t} + t + 5 - \\ln(0.006t + 1) - t^{0.3} - 10 = 0$$\n",
+ "\n",
+ "Dette er en likning som ikke er analytisk løsbar. Her skal vi se på metoder for å finne nullpunktene til funksjoner. Dette er en strategi som også kan brukes til å løse likninger."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualisere løsningen\n",
+ "Før vi løser likninger, kan det være lurt å visualisere funksjonene som representerer likningen. For eksempel kan vi plotte funksjonen $f(t) = e^{-t} + t + 5 - \\ln(0.006t + 1) - t^{0.3} - 10$ og se hvor den skjærer _x_-aksen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "t = np.linspace(0,10,1000)\n",
+ "y = np.exp(-t) + t + 5 - np.log(0.006*t + 1) - t**0.3 - 10\n",
+ "\n",
+ "plt.plot(t,y)\n",
+ "plt.axhline(y = 0, color = \"red\") # x-akse\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser at grafen skjærer _x_-aksen i omtrent $x \\approx 6.5$. Vi kan også plotte $c_1(t) = e^{-t} + t + 5$ og $c_2(t) = \\ln(0.006t + 1) + t^{0.3} + 10$ i samme koordinatsystem for å se hvor de skjærer hverandre. Vi ser at dette gir samme estimat for _x_."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "t = np.linspace(0,10,1000)\n",
+ "y1 = np.exp(-t) + t + 5 \n",
+ "y2 = np.log(0.006*t + 1) + t**0.3 + 10\n",
+ "\n",
+ "plt.plot(t,y1)\n",
+ "plt.plot(t,y2)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## En enkel metode for å finne nullpunktet\n",
+ "Nå har vi en viss peiling på hvor nullpunktet befinner seg, som er løsningen på likninga. La oss prøve en veldig enkel metode for å finne dette nullpunktet. Metoden vi viser nå, brukes ikke i særlig grad, fordi den både er langsom og lite robust. Den er derimot ganske intuitiv og fin å starte med. La oss begynne med en pseudokode som beskriver algoritmen:\n",
+ "\n",
+ "```{code-block} text\n",
+ "x = startverdi\n",
+ "y = f(x)\n",
+ "dx = steglengde (avstand mellom punktene vi vil sjekke)\n",
+ "\n",
+ "gjenta så lenge y*y_forrige > 0: (det vil si inntil produktet er mindre enn 0).\n",
+ " x_forrige = x\n",
+ " x = x + dx\n",
+ "\n",
+ "nullpunkt = (x+x_forrige)/2\n",
+ "skriv ut nullpunktet\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Tolk pseudokoden ovenfor og forklar hvordan algoritmen fungerer.\n",
+ "```\n",
+ "\n",
+ "Vi kan illustrere metoden med følgende figur:\n",
+ "\n",
+ "\n",
+ "\n",
+ "Vi beveger oss altså oppover (eller nedover) grafen ved å gradvis øke _x_-verdiene med en steglengde _dx_. Underveis sjekker vi om funksjonsverdien til de to _x_-verdiene (_x_ og _x + dx_) har motsatt fortegn. Dersom de har det, må nullpunktet ligge mellom de to _x_-verdiene. I figuren ser vi at $f(x_7)$ og $f(x_8)$ har motsatt fortegn, altså ligger nullpunktet mellom disse verdiene et sted. Ofte kan det være lurt å tippe på midtpunktet mellom de to, men her ser vi at det ikke stemmer helt – nullpunktet ligger svært nært $x_7$. Dette kan vi bøte på ved å velge en _dx_ som er mye mindre. Vi har valgt en stor avstand mellom _x_-verdiene i figuren for å gjøre den tydeligere, men du bør velge en _dx_ som er liten nok til å få et godt svar. Hva som er \"liten nok\" _dx_, er avhengig av funksjonen. Dette er en åpenbar svakhet med metoden.\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Vi kan implementere algoritmen som nedenfor. Fyll inn det som mangler.\n",
+ "\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Diskuter fordeler og svakheter med algoritmen ovenfor.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Halveringsmetoden\n",
+ "La oss se på en annen metode for å finne nullpunkter og dermed løse likninger. Vi går rett til programkoden:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Nullpunktet er x = 1.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "def f(x):\n",
+ " return 2*x - 2\n",
+ "\n",
+ "# Intervallet vi skal lete etter nullpunktet i\n",
+ "a = -5\n",
+ "b = 5\n",
+ "\n",
+ "m = (a+b)/2 # Regner ut midtpunktet mellom a og b\n",
+ "\n",
+ "while f(m) != 0:\n",
+ " if f(a)*f(m) < 0:\n",
+ " b = m\n",
+ " elif f(b)*f(m) < 0:\n",
+ " a = m\n",
+ " m = (a+b)/2\n",
+ "\n",
+ "print(\"Nullpunktet er x =\", m)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{amonition} Underveisoppgave\n",
+ ":tip: tip\n",
+ "Forklar linje for linje hva programmet ovenfor gjør. Tegn en figur som illustrerer hvordan metoden fungerer.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Metoden som er brukt ovenfor, heter _halveringsmetoden_. Halveringsmetoden går ut på å velge et intervall $[a, b]$ der $f(a)$ og $f(b)$ har motsatte fortegn. Vi kan bruke grafen til å vurdere hvilket intervall som egner seg dersom vi plotter den først. Deretter skal vi finne et nytt intervall $[a, b]$ som er mindre, men slik at $f(a)$ og $f(b)$ fortsatt har motsatte fortegn. Det kan vi gjøre ved å finne midten mellom _a_ og _b_. Da får vi et punkt $m = (a + b)/2$, og vi kan finne $f(m)$. \n",
+ "\n",
+ "Vi undersøker så om $f(m_1) = 0$. Hvis ikke, evaluerer vi fortegnene til $f(a)$, $f(b)$ og $f(m)$. Dersom $f(a)$ og $f(m)$ har samme fortegn, setter vi det nye intervallet til $[m, b]$ fordi da må $f(m)$ og $f(b)$ ha motsatte fortegn. Motsatt setter vi intervallet til $[a, m]$ dersom $f(b)$ og $f(m)$ har samme fortegn. Prosessen gjentas _n_ ganger til vi har at $f(m_n) \\approx 0$. Figuren nedenfor illustrerer metoden med to trinn\n",
+ "\n",
+ "\n",
+ "\n",
+ "Algoritmen kan mer generelt beskrives slik:\n",
+ "\n",
+ "```{admonition} Halveringsmetoden\n",
+ "La _f_ være en kontinuerlig funksjon med motsatte fortegn på funksjonsverdiene $f(a)$ og $f(b)$ i intervallet $[a,b]$. Da kan nullpunktene finnes slik:\n",
+ "\n",
+ "1. Finn midtpunktet $c_k$ mellom punktene _a_ og _b_.\n",
+ "2. Undersøk hvilke av $f(a)$ og $f(b)$ som har motsatt fortegn til $f(c_k)$, og sett det nye intervallet til $[a,c_k]$ eller $[c_k, b]$, der start- og sluttverdien i intervallet skal ha motsatt fortegn.\n",
+ "3. Gjenta prosessen _n_ ganger til $f(c_k) \\approx 0$.\n",
+ "```\n",
+ "\n",
+ "### Forbedringer av metoden\n",
+ "Når vi bruker numeriske metoder, får vi sjeldent nøyaktige svar. Derfor er det aldri en god idé å undersøke hvorvidt $f(x) = 0$ helt nøyaktig. Vi bør heller sjekke om $f(x) \\approx 0$. Dette kan vi gjøre med å innføre en _toleranse_ som forteller programmet hvor nærme nullpunktet vi vil være. Dette kan vi gjøre slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Nullpunktet er x = 0.9999999962747097\n"
+ ]
+ }
+ ],
+ "source": [
+ "def f(x):\n",
+ " return 2*x - 2\n",
+ "\n",
+ "# Intervallet vi skal lete etter nullpunktet i\n",
+ "a = -5\n",
+ "b = 5\n",
+ "toleranse = 1E-8\n",
+ "\n",
+ "m = (a+b)/2 # Regner ut midtpunktet mellom a og b\n",
+ "\n",
+ "while abs(f(m)) >= toleranse:\n",
+ " if f(a)*f(m) < 0:\n",
+ " b = m\n",
+ " elif f(b)*f(m) < 0:\n",
+ " a = m\n",
+ " m = (a+b)/2\n",
+ "\n",
+ "print(\"Nullpunktet er x =\", m)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{amonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Hvorfor tar vi absoluttverdien til f(m) når vi skal sjekke om funksjonsverdien er nærmere 0 enn toleransen?\n",
+ "```\n",
+ "\n",
+ "```{amonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Utvid programmet gradvis ved å legge til elementene nedenfor. Programmet skal\n",
+ "1. printe ut antall runder løkka går (det vil si antall _iterasjoner_).\n",
+ "2. stoppe dersom et visst antall iterasjoner er nådd.\n",
+ "3. pakkes inn i en Python-funksjon med _f_, _a_, _b_, _toleranse_ og maks antall iterasjoner som parametre. Funksjonen skal returnere antall iterasjoner og løsningen.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Her ser du en mulig løsning der alle punktene ovenfor er lagt inn. I tillegg er det lagt inn en \"docstring\", altså en forklaring på hva funksjonen gjør øverst i funksjonen.\n",
+ "```{code-block} Python\n",
+ "def f(x):\n",
+ " return x**2 - x -2\n",
+ "\n",
+ "def halveringsmetoden(f,a,b,tol=1E-10,n=100):\n",
+ " \"\"\"\n",
+ " Algoritme som benytter halveringsmetoden til å \n",
+ " finne nullpunktet til en funksjon f i intervallet [a,b].\n",
+ " \n",
+ " Parametre\n",
+ " ---------\n",
+ " f: funksjonen\n",
+ " a: laveste x-verdi i intervallet\n",
+ " b: høyeste x-verdi i intervallet\n",
+ " tol: toleranseparameter/feilmargin\n",
+ " n: maks antall iterasjoner\n",
+ " \n",
+ " Returnerer\n",
+ " ----------\n",
+ " m: nullpunktet\n",
+ " i: antall iterasjoner brukt\n",
+ " \"\"\"\n",
+ " i = 0\n",
+ " m = (a+b)/2\t\t\t# Finner første halveringspunkt\n",
+ " while i < n and abs(f(m)) > tol:\t\n",
+ " if f(a)*f(m) < 0:\n",
+ " b = m\n",
+ " elif f(b)*f(m) < 0:\n",
+ " a = m\n",
+ " m = (a+b)/2\n",
+ " i += 1\n",
+ " return m, i\n",
+ "\n",
+ "m, i = halveringsmetoden(f,-10,10)\n",
+ "print(\"Nullpunktet er x =\", m, \"og løkka gikk\", i, \"ganger.\")\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "La oss nå se om vi kan benytte halveringsmetoden til å finne ut ved hvilken tid konsentrasjonen er lik i reaksjonene representert ved likningene vi startet med i dette kapitlet. Vi lager en litt enklere utgave av funksjonen i løsningsforslaget ovenfor, men vi legger i tillegg inn en standardverdi for toleransen (her $10^{-8}$). Det betyr at hvis vi ikke spesifiserer toleransen når vi kaller på funksjonen, vil toleransen automatisk settes til dette.\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Test og studer programmet ovenfor og forklar hva som skjer. Modifiser programmet slik at det også plotter nullpunktet og funksjonen for å sjekke at løsningen stemmer.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "Du kan legge til følgende plottekommandoer for å visualisere løsningen:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "x = np.linspace(0,20)\n",
+ "plt.axhline(y=0)\n",
+ "plt.plot(x,c(x)) # Plotter funksjonen\n",
+ "plt.plot(t,c(t), marker=\"o\", color=\"red\") # Plotter nullpunktet\n",
+ "plt.show()\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Newtons metode\n",
+ "Det finnes flere måter å løse likninger på. En metode som ofte fungerer godt, og som er mye raskere enn halveringsmetoden, er _Newtons metode_, også kalt _Newton-Raphsons metode_. Den bruker nullpunktet til _tangenten_ i et punkt på en funksjon _f_ som en tilnærming til nullpunktet til _f_. Metoden fungerer slik:\n",
+ "\n",
+ "1. Vi velger oss først et startpunkt $x_0$ og regner ut nullpunktet til tangenten i $f(x_0)$. Dette punktet kaller vi $x_1$. \n",
+ "2. Dersom $x_1$ tilsvarer nullpunktet til funksjonen $f$, sier vi oss ferdige. \n",
+ "3. Hvis ikke, regner vi ut nullpunktet til en ny tangent i $f(x_1)$ og kaller det $x_2$. \n",
+ "4. Slik fortsetter vi til vi er så nært nullpunktet til $f$ som vi ønsker. \n",
+ "\n",
+ "Figuren nedenfor viser to iterasjoner av metoden med funksjonen $f(x) = x^2 - x - 2$ og startgjett $x_0 = 5$:\n",
+ "\n",
+ "\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk figuren ovenfor til å forklare hvorfor Newtons metode konvergerer mot (går mot) nullpunktet raskt.\n",
+ "```\n",
+ "\n",
+ "La oss utlede en algoritme for metoden. Stigningen til en linje kan gis ved:\n",
+ "\n",
+ "$$a = \\frac{\\Delta y}{\\Delta x} = \\frac{f(x) - f(x_0)}{x - x_0}$$\n",
+ "\n",
+ "Her setter vi $x$ til å være en variabel størrelse og $x_0$ til et fast punkt. Dersom vi gjør om dette til et uttrykk for linja $f(x)$, får vi følgende:\n",
+ "\n",
+ "$$f(x) = f(x_0) + a(x - x_0)$$\n",
+ "\n",
+ "Dette er likningen for ei linje som går igjennom punktet $(x_0, f(x_0))$. Siden den deriverte i et punkt er lik stigningen i det samme punktet, kan vi skrive:\n",
+ "\n",
+ "$$f(x) = f(x_0) + f'(x_0)(x - x_0)$$\n",
+ "\n",
+ "som er likningen til en tangent gjennom punktet $(x_0, f(x_0))$ på funksjonen $f$. Vi ønsker å finne nullpunktet til tangenten, og setter derfor $f(x) = 0$:\n",
+ "\n",
+ "$$f(x_0) + f'(x_0)(x - x_0) = 0$$\n",
+ "\n",
+ "Dersom vi omformer uttrykket slik at den ukjente er nullpunktet $x$, får vi:\n",
+ "\n",
+ "$$x = x_0 - \\frac{f(x_0)}{f'(x_0)}$$\n",
+ "\n",
+ "Dette er Newtons metode. Siden vi ønsker å gjenta prosessen med å finne nullpunktene til tangentene i $(x_0, f(x_0))$, $(x_1, f(x_1))$, $(x_2, f(x_2))$ og så videre, kan vi formulere algoritmen iterativt:\n",
+ "\n",
+ "```{admonition} Newtons metode\n",
+ "La _f_ være en kontinuerlig, deriverbar funksjon, og la $(x_n, f(x_n))$ være et punkt på funksjonen. Nullpunktet til funksjonen _f_ kan tilnærmes ved nullpunktet til den $n$-te tangenten til funksjonen. Bruk først et startgjett, $x_0$. Finn så nullpunktet $x_{n+1}$ til den $n$-te tangenten ved å bruke nullpunktet, $x_n$, til den forrige tangenten. Gjenta til $f(x_{n+1}) \\approx 0$\n",
+ "\n",
+ "$$x_{n+1} = x_n - \\frac{f(x_n)}{f'(x_n)}$$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Bruk beskrivelsen ovenfor og prøv å implementere Newtons metode før du ser på hvordan vi gjør det nedenfor.\n",
+ "```\n",
+ "\n",
+ "Vi ser at vi trenger den deriverte for å beregne nullpunktet. Det er en åpenbar ulempe ved metoden dersom den deriverte er vanskelig å finne. Vi kan bruke en tilnærming til den deriverte med numeriske metoder, men da får vi enda en feil i beregningen vår. En fordel med Newtons metode er at den konvergerer raskt mot nullpunktet, og at vi kun trenger å oppgi ett punkt som vi skal starte med. Halveringsmetoden konvergerer mer langsomt og trenger to punkter (et intervall) for å fungere. Hastigheten har lite å si når vi gjør så enkle beregninger som her, men dersom vi skal gjøre tunge beregninger, er Newtons metode, og varianter av denne, mye brukt.\n",
+ "\n",
+ "Et annet problem med Newtons metode kan oppstå ved lokale ekstremalpunkter. Her kan metoden gi tangenter på hver sin side av for eksempel bunnpunktet, uten at de konvergerer mot nullpunktet. Vi kan for så vidt også få et problem dersom $f'(x) = 0$ et eller annet sted i iterasjonen, fordi vi da må dele på null i algoritmen. Dette oppstår ikke så ofte, men det kan være lurt å tenke på, spesielt med hensyn til startgjettet vårt.\n",
+ "\n",
+ "Her er en enkel implementering av Newtons metode uten å pakke metoden inn i en funksjon:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Nullpunktet er x = 1.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "def f(x):\n",
+ " return 2*x - 2\n",
+ "\n",
+ "def fder(x):\n",
+ " return 2\n",
+ "\n",
+ "toleranse = 1E-8\n",
+ "x = 0 # startgjett\n",
+ "\n",
+ "while abs(f(x)) > toleranse:\n",
+ " x = x - f(x)/fder(x)\n",
+ "\n",
+ "print(\"Nullpunktet er x =\", x)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Hvis vi ønsker å lage en funksjon av Newtons metode, kan vi gjøre det slik:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def newtons_metode(f,fder,x,tol=1E-10):\n",
+ " while abs(f(x)) > tol:\n",
+ " x = x - f(x)/fder(x)\n",
+ " return x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Både Newtons metode og halveringsmetoden er grunnleggende, men relativt robuste metoder som kan gi gode nok tilnærminger i mange tilfeller. Newtons metode er en såkalt _Householder-metode_ av første orden. Vi kan få enda bedre tilnærminger ved å bruke metoder av høyere orden $n$. Med $n=2$ får vi en algoritme som kalles _Halleys metode_. Ulempen med slike metoder er at vi trenger den $n-$te-deriverte av funksjonen. Fordelen er at de trenger svært få iterasjoner for å oppnå veldig gode tilnærminger. \n",
+ "\n",
+ "Vi kan også benytte numeriske biblioteker som allerede inneholder implementeringer av metodene. Et mye brukt bibliotek for numeriske metoder er _Scipy_ (forkortelse for _Scientific Python_). Her er et eksempel på hvordan vi kan bruke noen metoder for å løse likninger og finne nullpunkter med funksjoner fra dette biblioteket:\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Returverdien \"root\" viser nullpunktet vi får fra metodene. Metodene gir her \"converged: True\" hvis den finner nullpunktene. Da står det også \"converged\" under \"flag\" hvis alt gikk som det skulle. Hvis vi får \"converged: False\", dukker det opp en beskjed om feilen under \"flag\". \"Iterations\" angir antall ganger løkka går, altså hvor mange ganger metoden gjentas. Dette skiller seg litt fra \"function calls\", som ofte er høyere fordi flere funksjoner blir brukt, blant annet $f(x)$ og $f'(x)$ i Newtons metode, og $f(x)$, $f'(x)$ og $f''(x)$ i Halleys metode.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Kjør programmet ovenfor og forklar hvordan funksjonen _root\\_scalar_ fungerer. Prøv å endre parametrene og test funksjonen på andre problemer med ulike metoder.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Likningssett\n",
+ "\n",
+ "Likningssett kan løses med litt ulike metoder. Broydens metode fungerer stort sett fint for både lineære og ikke-lineære likningssett. Vi må definere likningene på formen $f(x) = 0$, og variablene skal settes som elementer av en array. Nedenfor har vi f.eks. disse likningene:\n",
+ "\n",
+ "$$x + 2y + 3z - 6 = 0$$\n",
+ "\n",
+ "$$y + 2z - 2 = 0$$ \n",
+ "\n",
+ "$$x + 6y + 2z - 5 = 0$$\n",
+ "\n",
+ "Vi definerer variablene slik: $x = x[0]$, $y = x[1]$ og $z = x[2]$. Vi må også velge noen punkter vi skal starte i, slik som vi gjør med halveringsmetoden og Newtons metode. Her velger vi vilkårlig startverdiene $(1, 1, 1)$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[3.00000000e+00 3.55271368e-15 1.00000000e+00]\n"
+ ]
+ }
+ ],
+ "source": [
+ "import scipy.optimize as opt\n",
+ "\n",
+ "def fun(x):\n",
+ " return [x[0] + 2*x[1] + 3*x[2] - 6, \n",
+ " x[1] + 2*x[2] - 2,\n",
+ " x[0] + 6*x[1] + 2*x[2] - 5]\n",
+ "\n",
+ "løsning = opt.broyden1(fun, [1,1,1])\n",
+ "print(løsning)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "\n",
+ "```{admonition}\n",
+ ":class: tip\n",
+ "Løs puslespillet nedenfor slik at funksjonen som benytter halveringsmetoden blir riktig.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame('https://parsons.herokuapp.com/puzzle/267d396f643145f6891e3965b75b93b2', width=1000, height=750)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave 2\n",
+ ":class: tip\n",
+ "Bruk halveringsmetoden og vis at løsningene til likningen $x^5 = 5x^3 + 3$ er $x_1 \\approx -2.169, x_2 \\approx -0.894$ og $x_3 \\approx 2.291$. Sammenlikn med \"bisect\" (halveringsmetoden) fra Scipy-biblioteket.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 3\n",
+ ":class: tip\n",
+ "Implementer Newtons metode som en Python-funksjon med toleranse, maks antall iterasjoner og relevant feilhåndtering dersom vi når maks iterasjoner uten å nå gitt toleranse. Test funksjonen på likningen $x^2 = x^3 - 4$.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "\n",
+ "````{tab-set}\n",
+ "```{tab-item} Halveringsmetoden\n",
+ "\n",
+ "```\n",
+ "```{tab-item} Newtons metode\n",
+ "\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema4_algoritmer/likninger_oppgave1.ipynb b/_sources/docs/tema4_algoritmer/likninger_oppgave1.ipynb
new file mode 100644
index 00000000..7df6072b
--- /dev/null
+++ b/_sources/docs/tema4_algoritmer/likninger_oppgave1.ipynb
@@ -0,0 +1,69 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "af18522a",
+ "metadata": {},
+ "source": [
+ "# Numerisk løsing av likninger (oppgave)\n",
+ "Gå sammen i grupper på ca. fire personer og diskuter oppgavene nedenfor.\n",
+ "\n",
+ "## Oppgave 1\n",
+ "a) Diskuter følgende spørsmål parvis i gruppa:\n",
+ "1.\tHva er en likning?\n",
+ "2.\tHva betyr det å løse en likning?\n",
+ "3.\tHva er felles for alle nullpunkter?\n",
+ "\n",
+ "b) Se på grafen til funksjonen f(x) nedenfor. Du kjenner ikke funksjonsuttrykket til denne grafen. Hvilke av følgende intervaller finnes nullpunktet i?\n",
+ "\n",
+ "[-1, 0.5], [-1, 2], [0, 1], [0.5, 1], [1, 2], [-1, 2]\n",
+ "\n",
+ "![graf](https://github.com/andreasdh/NAT3000/blob/master/docs/tema4_numeriske_metoder/bilder/graf1.png?raw=true)\n",
+ "\n",
+ "c) Hva er forskjellen mellom funksjonsverdien til funksjonen i randpunktene på de intervallene som inneholder nullpunktene og de som ikke gjør det? Er det noen systematisk sammenheng her?\n",
+ "\n",
+ "d) Ta utgangspunkt i intervallet [0, 2]. Hvordan kan du justere dette intervallet systematisk for å komme nærmere og nærmere nullpunktet? Prøv å anvende generaliseringen om funksjonsverdiene ovenfor.\n",
+ "\n",
+ "e) Prøv å formulere en enkel systematisk algoritme for å finne nullpunktet gitt et intervall.\n",
+ "\n",
+ "f) Dere får utdelt noen grafer. En på gruppa får se grafene. Denne personen kan kun oppgi funksjonsverdier, mens de andre kan teste algoritmen dere lagde ovenfor ved å systematisk oppgi ulike x-verdier. Fungerte metoden på alle grafene?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "69c9cbbc",
+ "metadata": {},
+ "source": [
+ "## Oppgave 2\n",
+ "Følgende funksjon blei gitt på eksamen i 2009:\n",
+ "\n",
+ "$$f(x)=2\\ln\\left((x^4+4)-\\frac{1}{2}x\\right) - 5$$\n",
+ "\n",
+ "a) Prøv å løse likninga $f(x) = 0$ for hånd. Hvor langt kommer du med det? Dette kaller vi analytisk løsning av likninger, og vi ender opp med et eksakt svar hvis vi får det til.\n",
+ "\n",
+ "b) Tegn grafen for funksjonen ovenfor og bruk metoden dere formulerte i oppgave 1 til å finne en tilnærma løsning. Dette kaller vi numerisk løsning av likninger."
+ ]
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/tema4_algoritmer/numeriske_biblioteker.ipynb b/_sources/docs/tema4_algoritmer/numeriske_biblioteker.ipynb
new file mode 100644
index 00000000..a587dc84
--- /dev/null
+++ b/_sources/docs/tema4_algoritmer/numeriske_biblioteker.ipynb
@@ -0,0 +1,236 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Numeriske biblioteker\n",
+ "\n",
+ "Det finnes mange ferdige biblioteker i Python som vi kan bruke til å gjøre numeriske beregner. Vi har tidligere sett på hvordan vi kan implementere algoritmer selv. Dette gjorde vi for å forstå algoritmene og hva som ligger til grunn for dem. Men når vi først forstår hva de gjør og begrensninger og forutsetninger for dem, kan vi i mange tilfeller bruke algoritmer fra veletablerte biblioteker. Her ser du noen muligheter."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 1. Løse likninger"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " converged: True\n",
+ " flag: 'converged'\n",
+ " function_calls: 44\n",
+ " iterations: 42\n",
+ " root: 1.9999999999993179\n",
+ "-----------------------------------------\n",
+ " converged: True\n",
+ " flag: 'converged'\n",
+ " function_calls: 14\n",
+ " iterations: 7\n",
+ " root: 2.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from scipy.optimize import root_scalar\n",
+ "\n",
+ "def f(x):\n",
+ " return x**2 - 4\n",
+ "\n",
+ "def dfder(x):\n",
+ " return 2*x\n",
+ "\n",
+ "# Halveringsmetoden\n",
+ "nullpunkt_halvering = root_scalar(f,method=\"bisect\",bracket=[0,5])\n",
+ "nullpunkt_newton = root_scalar(f,method=\"newton\",fprime=dfder,x0=10)\n",
+ "print(nullpunkt_halvering)\n",
+ "print(\"-----------------------------------------\")\n",
+ "print(nullpunkt_newton)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Likningssett"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Likningssett kan løses med litt ulike metoder. Broydens metode fungerer stort sett fint for både lineære og ikke-lineære likningssett. Vi må definere likningene på formen $f(x) = 0$, og variablene skal settes som elementer av en array. Nedenfor har vi f.eks. disse likningene:\n",
+ "\n",
+ "$$x + 2y + 3z - 6 = 0$$\n",
+ "\n",
+ "$$y + 2z - 2 = 0$$ \n",
+ "\n",
+ "$$x + 6y + 2z - 5 = 0$$\n",
+ "\n",
+ "Vi definerer variablene slik: $x = x[0]$, $y = x[1]$ og $z = x[2]$. Vi må også velge noen punkter vi skal starte i, slik som vi gjør med halveringsmetoden og Newtons metode. Her velger vi vilkårlig punktet $(1, 1, 1)$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[3.00000000e+00 3.55271368e-15 1.00000000e+00]\n"
+ ]
+ }
+ ],
+ "source": [
+ "import scipy.optimize as opt\n",
+ "\n",
+ "def fun(x):\n",
+ " return [x[0] + 2*x[1] + 3*x[2] - 6, \n",
+ " x[1] + 2*x[2] - 2,\n",
+ " x[0] + 6*x[1] + 2*x[2] - 5]\n",
+ "\n",
+ "løsning = opt.broyden1(fun, [1,1,1])\n",
+ "print(løsning)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 2. Derivere"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "from scipy.misc import derivative\n",
+ "import numpy as np\n",
+ "\n",
+ "derivert = derivative(f, 1)\n",
+ "print(derivert)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 3. Integrere"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "-5.333331997329328\n",
+ "-5.333333331995993\n"
+ ]
+ }
+ ],
+ "source": [
+ "from scipy import integrate\n",
+ "\n",
+ "x = np.linspace(0,2,1000)\n",
+ "y = f(x)\n",
+ "\n",
+ "trapes = integrate.trapz(y,x)\n",
+ "print(trapes)\n",
+ "\n",
+ "simpsons = integrate.simps(y,x)\n",
+ "print(simpsons)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 4. Løse difflikninger"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "from scipy.integrate import solve_ivp\n",
+ "\n",
+ "def dy_dt(t, y):\n",
+ " return t - y\n",
+ "\n",
+ "a = 0\n",
+ "b = 4\n",
+ "t = np.linspace(a,b,1000)\n",
+ "y0 = 1\n",
+ "y_int = solve_ivp(dy_dt, [a,b], [1], t_eval=t)\n",
+ "\n",
+ "plt.xlabel(\"t\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.plot(y_int.t, y_int.y[0])\n",
+ "\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema4_algoritmer/symbolsk_utregning.ipynb b/_sources/docs/tema4_algoritmer/symbolsk_utregning.ipynb
new file mode 100644
index 00000000..21c6ea12
--- /dev/null
+++ b/_sources/docs/tema4_algoritmer/symbolsk_utregning.ipynb
@@ -0,0 +1,560 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Symbolsk utregning (CAS)\n",
+ "## Bruk av CAS (Computer Algebra System) i Python\n",
+ "Her er en liten oversikt over hva du kan gjøre i CAS-verktøyet i Python. Det stjernemerkede stoffet er for spesielt interesserte, og er ikke pensum."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sympy import *\n",
+ "\n",
+ "#x = symbols(\"x\")\n",
+ "#y = symbols(\"y\")\n",
+ "\n",
+ "x, y = symbols(\"x y\") #Definerer symboler/variabler\n",
+ "uttrykk = x + 2*y*x #Definerer et uttrykk"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Faktorisering"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x \\left(2 y + 1\\right)$"
+ ],
+ "text/plain": [
+ "x*(2*y + 1)"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "factor(uttrykk)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Løse likninger\n",
+ "\n",
+ "$x^2 - 4 = 0$. Løs med hensyn på x."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[-2, 2]"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "solve(x**2 - 4, x) # Kan utelate x her, fordi vi ikke har andre bokstaver i uttrykket"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Løse likningssett\n",
+ "Vi kan løse likningssett som er lineære ved å bruke funksjonen _solve_, og ikke-lineære likningssett ved å erstatte _solve_ med _nonlinsolve_. Prinsippet er det samme."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{x: 3, y: 0, z: 1}"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sympy import *\n",
+ "\n",
+ "x,y,z = symbols('x,y,z')\n",
+ "likning1 = Eq(x + 2*y + 3*z, 6)\n",
+ "likning2 = Eq(y + 2*z, 2)\n",
+ "likning3 = Eq(x + 6*y + 2*z, 5) \n",
+ "resultat = solve([likning1, likning2, likning3],(x,y,z)) # Bruker nonlinsolve ved ikke-lineære likninger\n",
+ "resultat"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Derivere\n",
+ "Deriver $x + 2yx$ med hensyn på x."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 2 y + 1$"
+ ],
+ "text/plain": [
+ "2*y + 1"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "diff(uttrykk, x)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Difflikninger\n",
+ "\n",
+ "$y'' - y = e^x$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle y{\\left(t \\right)} = C_{2} e^{- t} + \\left(C_{1} + \\frac{t}{2}\\right) e^{t}$"
+ ],
+ "text/plain": [
+ "Eq(y(t), C2*exp(-t) + (C1 + t/2)*exp(t))"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y = Function('y')\n",
+ "t = symbols('t')\n",
+ "difflikning = Eq(y(t).diff(t, t) - y(t), exp(t))\n",
+ "dsolve(difflikning, y(t))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Integrere (for elever med R2)*\n",
+ "\n",
+ "$$\\int 4x^3 dx$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x^{4}$"
+ ],
+ "text/plain": [
+ "x**4"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "uttrykk2 = 4*x**3\n",
+ "integrate(uttrykk2, x)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Bestemt integrasjon:\n",
+ "\n",
+ "$$\\int_{-\\infty}^{\\infty} cos(x^2) dx$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{\\sqrt{2} \\sqrt{\\pi}}{2}$"
+ ],
+ "text/plain": [
+ "sqrt(2)*sqrt(pi)/2"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "integrate(cos(x**2), (x, -oo, oo))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Vektorregning (R1 og R2)*\n",
+ "\n",
+ "For vektorregning anbefaler jeg å bruke innebygde numpy-funksjoner (ikke CAS):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "vektor1 = np.array([1,-1,0])\n",
+ "vektor2 = np.array([2,2,3])\n",
+ "\n",
+ "prikkprodukt = np.dot(vektor1, vektor2) # Skalarprodukt\n",
+ "kryssprodukt = np.cross(vektor1, vektor2) # Vektorprodukt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det er også mulig å bruke CAS-verktøyet i sympy:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle (3)\\mathbf{\\hat{i}_{N}} + (5)\\mathbf{\\hat{j}_{N}} + (5)\\mathbf{\\hat{k}_{N}}$"
+ ],
+ "text/plain": [
+ "3*N.i + 5*N.j + 5*N.k"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sympy.vector import CoordSys3D\n",
+ "N = CoordSys3D('N') # Lager et kartesisk koordinatsystem å plassere vektorene i\n",
+ "# N.i, N.j og N.k er basisvektorer i det kartesiske rommet\n",
+ "\n",
+ "# Lager vektoren v = [2, 3, 4]\n",
+ "v = 2*N.i + 3*N.j + 4*N.k\n",
+ "# Lager vektoren v = [1, 2, 1]\n",
+ "u = N.i + 2*N.j + N.k\n",
+ "\n",
+ "# Enkel vektoraddisjon\n",
+ "u + v"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle (-5)\\mathbf{\\hat{i}_{N}} + (2)\\mathbf{\\hat{j}_{N}} + \\mathbf{\\hat{k}_{N}}$"
+ ],
+ "text/plain": [
+ "(-5)*N.i + 2*N.j + N.k"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "v.cross(u) # Vektorprodukt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 12$"
+ ],
+ "text/plain": [
+ "12"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "v.dot(u) # Skalarprodukt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Matematikk for spesielt interesserte**\n",
+ "\n",
+ "Nedenfor ser du eksempler på hvordan en kan gjøre litt lineær algebra og finne Taylor-rekker. Dette er ekstrastoff for de som allerede har litt kjennskap til matematikk på universitetsnivå."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Matriseregning** (lineær algebra)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}1 & 2\\\\3 & 4\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "Matrix([\n",
+ "[1, 2],\n",
+ "[3, 4]])"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "matrise = Matrix([[1,2],[3,4]])\n",
+ "matrise"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}1 & 2\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "Matrix([[1, 2]])"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "matrise.row(0)\n",
+ "# matrise.col(0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle -2$"
+ ],
+ "text/plain": [
+ "-2"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "matrise.T # Transponer matrisen\n",
+ "matrise.rref() # Radreduser\n",
+ "matrise.eigenvals() # Egenverdier\n",
+ "matrise.eigenvects() # Egenvektorer\n",
+ "matrise.diagonalize() # Diagonalisering\n",
+ "matrise.det() # Determinanten"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Du kan også bruke numpy-biblioteket til lineær algebra:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "m1 = np.array([[1,2],[3,4]])\n",
+ "m2 = np.array([[3,3],[5,5]])\n",
+ "egenverdi = np.linalg.eig(m1) # Egenverdier og egenvektorer\n",
+ "norm = np.linalg.norm(m1)\n",
+ "determinant = np.linalg.det(m1)\n",
+ "invers = np.linalg.inv(m1)\n",
+ "likning = np.linalg.solve(m1, m2)\n",
+ "likning2 = np.linalg.tensorsolve(m1, m2[:,0]) # Løser ax = b for x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Taylor-rekker**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 1 + x + \\frac{x^{2}}{2} + \\frac{x^{3}}{6} + \\frac{x^{4}}{24} + O\\left(x^{5}\\right)$"
+ ],
+ "text/plain": [
+ "1 + x + x**2/2 + x**3/6 + x**4/24 + O(x**5)"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "funksjon = exp(x)\n",
+ "funksjon.series(x, 0, 5)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 1 + \\frac{x^{2}}{2} + \\frac{5 x^{4}}{24} + \\frac{61 x^{6}}{720} + \\frac{277 x^{8}}{8064} + O\\left(x^{10}\\right)$"
+ ],
+ "text/plain": [
+ "1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f = 1/cos(x)\n",
+ "f.series(x, 0, 10)"
+ ]
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema5_modellering/differensiallikninger.ipynb b/_sources/docs/tema5_modellering/differensiallikninger.ipynb
new file mode 100644
index 00000000..ddfd33a6
--- /dev/null
+++ b/_sources/docs/tema5_modellering/differensiallikninger.ipynb
@@ -0,0 +1,989 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Differensiallikninger og kontinuerlige modeller\n",
+ "\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Forklare hva som menes med differensiallikninger, og hvordan slike likninger kan brukes til å modellere ulike systemer.\n",
+ "2. Forklare og implementere Eulers metode (Forward Euler).\n",
+ "3. Løse ordinære differensiallikninger med egne Python-funksjoner og funksjoner fra Scipy-biblioteket.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Differensiallikninger\n",
+ "\n",
+ "Vi har tidligere sett på modeller som beskriver endringer ved bestemte tidssteg, for eksempel den enkleste modellen for utviklingen i antall smittede ved et influensautbrudd:\n",
+ "\n",
+ "$$I_{n+1}=I_n+aI_n$$\n",
+ "\n",
+ "Vi kan beskrive modellen ovenfor med ord slik: Antall smittede ved neste tidspunkt er lik antall smittede ved forrige tidspunkt pluss en endring i antall smittede. Endringen er her gitt ved en vekstfaktor ganger antall smittede ved forrige tidspunkt. Det betyr at endringen er proporsjonal med antall smittede. Dette er et eksempel på en _differenslikning_, der vi finner en tallfølge, som for eksempel beskriver antall smittede i en populasjon eller antall gauper i et økosystem. Differenslikninger kan brukes der vi kan nøye oss med å beskrive systemet vårt på _diskrete_, altså bestemte, tider. Men hva hvis vi ønsker å beskrive systemet på ethvert tidspunkt, altså den _momentane endringen_? Da må vi bruke den deriverte. La oss første skrive differenslikningen på en annen form:\n",
+ "\n",
+ "$$I_{n+1} - I_n = aI_n$$\n",
+ "\n",
+ "$$\\Delta I = aI_n$$\n",
+ "\n",
+ "Nå har vi et uttrykk for endringen i systemet. Delta ($\\Delta$) betyr her endring eller forskjell. Dersom denne endringen skjer mellom to tidspunkter som er så nær hverandre som mulig ($\\Delta t$ nærmer seg null), får vi den momentane endringen. Dette skriver vi slik:\n",
+ "\n",
+ "$$I'(t) = aI(t)$$\n",
+ "\n",
+ "Dette er ikke lenger en differenslikning, for her beskriver vi systemet med en kontinuerlig funksjon, og ikke funksjonsverdier på bestemte tidspunkter. Vi kaller slike likninger for _differensiallikninger_. En differensiallikning (også kalt _difflikning_) er en likning som inneholder den deriverte av en funksjon. Det vil si at differensiallikninger beskriver den momentane endringen i et system, altså endringen på ethvert tidspunkt. Når vi løser en differensiallikning, får vi en funksjon, eller funksjonsverdiene til en funksjon.\n",
+ "\n",
+ "Differensiallikninger er svært anvendelige. De brukes til å beskrive endring i alt fra molekyler i en kjemisk reaksjon til bakterier i en petriskål eller bevegelsen til satelitter og planeter. De brukes også til å modellere overføring av informasjon i hjernen, smitteutvikling, økonomisk vekst, inntekt og investeringer, klima, miljø og vær. De fleste difflikninger er ikke løsbare for hånd. Derfor er det svært nyttig å kunne løse dem numerisk.\n",
+ "\n",
+ "```{admonition} Differensiallikninger\n",
+ "En differensiallikning er en likning som inneholder den deriverte av en funksjon. I de fleste praktiske situasjoner beskriver slike likninger sammenhengen mellom endringen, $f'(t)$, og tilstanden, $f(t)$, til et system ved tida $t$.\n",
+ "```\n",
+ "Det vil altså si at en difflikning er en sammenheng mellom den deriverte til en funksjon, altså endringen i funksjonen, og funksjonen selv. Når vi løser en difflikning, får vi ikke et uttrykk for $x$, som når vi løser likninger – vi får et uttrykk for $f(x)$. Siden vi som oftest løser difflikninger på datamaskinen, får vi heller ikke et _uttrykk_ for $f(x)$, men vi får funksjons_verdier_.\n",
+ "\n",
+ "Siden både endringen og tilstanden i et system er avhengig av hvordan systemet er til å begynne med, trenger vi alltid _initialbetingelser_ (startbetingelser) for å løse difflikninger. For eksempel trenger vi antall smittede ved t = 0 for å kunne regne ut antall smittede ved neste tidssteg. Vi må derfor alltid oppgi initialbetingelser når vi skal simulere et system.\n",
+ "\n",
+ "### Eksempler på differensiallikninger\n",
+ "\n",
+ "Dersom du møter på differensiallikninger i matematikk, er de ofte satt opp som enkle uttrykk, for eksempel slik:\n",
+ "\n",
+ "1. $y' = 1$\n",
+ "2. $y' = y$\n",
+ "3. $y' - 2x = -1$\n",
+ "\n",
+ "Dersom likningene betyr noe praktisk, pleier vi å skrive dem litt annerledes. Her er eksempler på differensiallikninger som kan brukes til å beskrive ulike systemer:\n",
+ "\n",
+ "1. Bakterievekst: $B'(t) = kB(t)$\n",
+ "2. CO$_2$-utslipp: $U'(t) = aU(t)\\left(1 - \\frac{U(t)}{b}\\right)$\n",
+ "3. Fallende ball: $v'(t) = -g - \\frac{kv(t)^2}{m}$\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Studer differensiallikningene ovenfor og forklar med ord hva de beskriver (både overordnet og hvert ledd for seg).\n",
+ "```\n",
+ "\n",
+ "Legg merke til at modellene ikke kan bevises eller utledes. Det er matematiske modeller som vi kan ha en hypotese om at stemmer godt med virkeligheten. Hvis vi for eksempel tror at veksten til bakteriene vil flate ut, justerer vi dette ved å legge til et ledd som gir logistisk vekst. Modellene må så etterprøves ved for eksempel å sammenlikne med reelle data. Modellering er derfor en prosess der vi kontinuerlig sammenlikner modell med virkelighet for å forbedre modellen.\n",
+ "\n",
+ "### Newtons 2. lov\n",
+ "\n",
+ "Et annet viktig eksempel på en differensiallikning er Newtons 2. lov. Newtons 2. lov er grunnlaget for simuleringer av alt fra satellitt- og planetbaner til molekyler, som vi snart skal se eksempler på. Loven sier at summen ($\\Sigma$) av krefter som virker på et legeme er lik produktet av massen og akselerasjonen til legemet:\n",
+ "\n",
+ "$$\\sum F = ma$$\n",
+ "\n",
+ "$$a = \\frac{\\sum F}{m}$$\n",
+ "\n",
+ "Dersom vi har en modell som beskriver kreftene som virker på et legeme, kan vi derfor regne ut akselerasjonen. Og siden $a(t) = v'(t) = s''(t)$, kan vi formulere Newtons 2. lov som en differensiallikning. Da kan vi løse denne likningen og finne farten og posisjonen til et legeme på en hvilken som helst tid, gitt en startposisjon og en startfart (initialverdier).\n",
+ "\n",
+ "$$v'(t) = \\frac{\\sum F}{m}$$\n",
+ "\n",
+ "Vi kan til og med formulere dette som en difflikning som inneholder den andrederiverte. Dette kaller vi en _andreordens_ difflikning:\n",
+ "\n",
+ "$$s''(t) = \\frac{\\sum F}{m}$$\n",
+ "\n",
+ "La oss modellere et enkelt system, for eksempel en fallende kule. I modellen vår ønsker vi å ta hensyn til både gravitasjon og luftmotstand. Da er $\\sum F = - G + L$, dersom vi velger positiv retning oppover. Vi skriver også akselerasjonen som en funksjon, siden den varierer med tida. Da får vi at:\n",
+ "\n",
+ "$\\sum F = ma(t)$\n",
+ "\n",
+ "$a(t) = \\frac{\\sum F}{m}$\n",
+ "\n",
+ "$a(t) = - \\frac{G}{m} + \\frac{L}{m}$\n",
+ "\n",
+ "Deretter må vi sette inn modeller for gravitasjonskraften og luftmotstanden. Gravitasjonen på jorda kan enkelt beskrives med modellen $G = mg$, der $m$ er massen i kg og $g \\approx 9.8$ m/s$^2$, som er tyngdeakselerasjonen. En enkel modell for luftmotstand er $L = -kv$, der _k_ er en konstant som varierer med legemets form og massetetthet, og $v$ er farten til legemet. Konstanten $k$ må bestemmes eksperimentelt.\n",
+ "\n",
+ "$a(t) = \\frac{mg}{m} - \\frac{kv(t)}{m}$\n",
+ "\n",
+ "$v'(t) = g - \\frac{kv(t)}{m}$\n",
+ "\n",
+ "Her ser vi at den siste likningen inneholder den deriverte av farten (altså akselerasjonen). Altså er dette en differensiallikning. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Eulers metode\n",
+ "Vi har altså en startverdi $f(x_0)$ og ønsker å finne $f(x_0 + dx)$, altså neste funksjonsverdi. I tillegg har vi et uttrykk for den deriverte av funksjonen, nemlig differensiallikningen. Du kjenner faktisk allerede til et uttrykk som inneholder en funksjon og dens deriverte, nemlig definisjonen av den deriverte. La oss bruke den til å utlede en metode for å finne $f(x + dx)$. Vi bruker den numeriske definisjonen der vi tilnærmer grenseverdiene med en _dx_ ($\\Delta x$) som er så liten som mulig:\n",
+ "\n",
+ "$$f'(x) \\approx \\frac{f(x+dx) - f(x)}{dx}$$\n",
+ "\n",
+ "Til å begynne med kjenner vi $f(x)$, altså $f(x_0)$. Dette er initialbetingelsen, for eksempel startkonsentrasjonen $c(t_0)$ i eksempelet ovenfor. Vi kjenner også et uttrykk for den deriverte, nemlig differensiallikningen. I tillegg bestemmer vi selv tidssteget _dx_, men husk at det verken bør være for lite eller for stort. Den eneste ukjente i den numeriske tilnærmingen til den deriverte er altså $f(x+dx)$. Det er jo nettopp $f(x+dx)$ vi prøver å finne, fordi det beskriver tilstanden til systemet ved neste tidssteg. Med litt enkel algebra får vi omformet uttrykket slik at det blir et uttrykk for $f(x+dx)$. Vi ganger først med $dx$ på begge sider:\n",
+ "\n",
+ "$$f'(x)\\cdot dx \\approx f(x+dx) - f(x)$$\n",
+ "\n",
+ "Deretter får vi $f(x+dx)$ aleine på høyre side og ender opp med følgende likning:\n",
+ "\n",
+ "$$f(x+dx) \\approx f(x) + f'(x)\\cdot dx$$\n",
+ "\n",
+ "Dette er _Eulers metode_, eller nærmere bestemt _Forward Euler_. Metoden kalles dette fordi den tar utgangspunkt i framoverdifferansen til den deriverte. Den brukes til å løse differensiallikninger, det vil si å _integrere_ den deriverte slik at vi finner funksjonsverdiene. Siden vi ofte har å gjøre med funksjoner som varierer med tid, kaller vi gjerne _dx_ for _dt_.\n",
+ "\n",
+ "Eulers metode er en iterativ algoritme. Vi starter derfor med $f(x_0)$ og finner de påfølgende funksjonsverdiene slik:\n",
+ "\n",
+ "$$f(x_1) \\approx f(x_0) + f'(x_0)\\cdot \\Delta x$$\n",
+ "$$f(x_2) \\approx f(x_1) + f'(x_1)\\cdot \\Delta x$$\n",
+ "$$f(x_3) \\approx f(x_2) + f'(x_2)\\cdot \\Delta x$$\n",
+ "$$...$$\n",
+ "\n",
+ "```{admonition} Eulers metode (Forward Euler)\n",
+ "Vi kan finne funksjonsverdiene $f(t_{k+1})$ ved å bruke funksjonsverdien $f(t_k)$ og den deriverte av funksjonen ved tida $t_k$, $f'(t_k)$ sammen med en steglengde $dt$ som representerer en liten $\\Delta t$.\n",
+ "\n",
+ "$$f(t_{k+1}) = f(t_k) + f'(t_k)\\cdot dt$$\n",
+ "```\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Implementering\n",
+ "Vi starter med et enkelt eksempel der vi løser difflikningen $f'(x) = x$ (som er det samme som $y' = x$). Vi gjør det først med en while-løkke der vi appender til lister for å spare på og til slutt plotte verdiene. Stort sett er det sammme framgangsmåte hver gang vi løser en difflikning:\n",
+ "\n",
+ "1. Definer initialbetingelser (for eksempel $y_0$).\n",
+ "2. Definer hvilke verdier vi skal evaluere funksjonen i, altså et intervall $[x_0, x_{slutt}]$. Husk at vi bare kan derivere og integrere numerisk i bestemte _punkter_. Vi får altså ikke funksjoner når vi integrerer en differensiallikning – vi får funksjonsverdier.\n",
+ "3. Definer en steglengde. Denne bør være \"ganske\" liten, som da vi så på numerisk derivasjon. Som regel er $dx = 1\\cdot 10^{-8}$ en god verdi, men du kan gjerne kjøre med for eksempel $dx = 1\\cdot 10^{-3}$, slik at det ikke skal ta så lang tid å kjøre programmet.\n",
+ "4. Lag lister eller arrayer og legg initialbetingelser og startverdier inn i disse. Disse trenger vi for å kunne plotte resultatene til slutt. Dersom du bare er interessert i slutt-tilstanden, trenger du ikke dette trinnet.\n",
+ "5. Lag ei løkke som går igjennom hele det definerte intervallet:\n",
+ " - Regn ut neste verdi av endringen $f'(x)$, gitt av differensiallikninga vår.\n",
+ " - Løs difflikninga med Eulers metode (eller en annen metode, når du lærer om det).\n",
+ " - Oppdater den uavhengige variabelen (_x_, _t_ eller liknende) med tidssteget.\n",
+ "6. Skriv ut eller visualiser resultatene. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "y0 = 1 # intitialbetingelse for y\n",
+ "x0 = 0 # startverdi for x\n",
+ "x_slutt = 5.0 # sluttverdi for x\n",
+ "dx = 1E-5 # steglengde\n",
+ "\n",
+ "x_liste = [x0] # Legger inn første x-verdi i en liste for å spare på verdiene\n",
+ "y_liste = [y0] # Legger inn initalbetingelsen for y i en liste for å spare på verdiene\n",
+ "\n",
+ "# Disse variablene skal oppdateres i løkka, mens x0 og y0 holdes konstante\n",
+ "x = x0 \n",
+ "y = y0\n",
+ "\n",
+ "while x < x_slutt:\n",
+ " yder = x # Difflikningen vi skal løse\n",
+ " y = y + yder*dx # Eulers metode for å finne neste y-verdi\n",
+ " x = x + dx # Oppdaterer x-verdien med steglengden\n",
+ " x_liste.append(x)\n",
+ " y_liste.append(y)\n",
+ "\n",
+ "plt.plot(x_liste,y_liste)\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.grid()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "For å rydde opp litt i programmet vårt, kunne vi også definert difflikninga som en funksjon. Dette gjør det litt enklere å finne igjen og endre likningen."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGzCAYAAADaCpaHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/eElEQVR4nO3dd3wUdf7H8fdms9kUEiAJSQgJEHrv5UBPQQFFRLELiqDenQVU5PQ89TzBU7DcD/HEhnciooinCKJnIRaKIiUJQXoNvYRQUslmszu/PyLxOIoEdne2vJ6PRx6yk83kzceFvJmZna/FMAxDAAAAASrM7AAAAADngzIDAAACGmUGAAAENMoMAAAIaJQZAAAQ0CgzAAAgoFFmAABAQKPMAACAgEaZAQAAAY0yAwAAAlq4md980aJFeuGFF5Sdna19+/Zpzpw5GjJkyCmfe9ddd2nq1Kl68cUXNWbMmLP+Hm63W3v37lVsbKwsFotnggMAAK8yDEPFxcVKTU1VWNiZj72YWmZKS0vVsWNH3X777bruuutO+7y5c+dq2bJlSk1NrfH32Lt3r9LT088nJgAAMMmuXbuUlpZ2xueYWmYGDhyogQMHnvE5e/bs0ejRo/XVV19p0KBBNf4esbGxkqqGERcXd045T8fpdGr+/PkaMGCAbDabR/eNXzBn32DOvsGcfYM5+4Y351xUVKT09PTqn+NnYmqZ+TVut1vDhw/Xww8/rLZt257V1zgcDjkcjurHxcXFkqSoqChFRUV5NF94eLiio6MVFRXFHxYvYs6+wZx9gzn7BnP2DW/O2el0StJZXSLi12XmueeeU3h4uO6///6z/pqJEydq/PjxJ22fP3++oqOjPRmvWmZmplf2ixMxZ99gzr7BnH2DOfuGN+ZcVlZ21s/12zKTnZ2tl156STk5OTW6cPfRRx/V2LFjqx8fP0w1YMAAr5xmyszMVP/+/Wn+XsScfYM5+wZz9g3m7BvenHNRUdFZP9dvy8zixYuVn5+vhg0bVm9zuVz64x//qMmTJ2v79u2n/Dq73S673X7SdpvN5rUXtDf3jV8wZ99gzr7BnH2DOfuGN+Zck/35bZkZPny4+vXrd8K2yy67TMOHD9ftt99uUioAAOBvTC0zJSUl2rJlS/XjvLw85ebmKj4+Xg0bNlRCQsIJz7fZbEpJSVHLli19HRUAAPgpU8tMVlaW+vbtW/34+LUuI0aM0Ntvv21SKgAAEEhMLTN9+vSRYRhn/fzTXScDAABCF2szAQCAgEaZAQAAAY0yAwAAAhplBgAABDTKDAAACGiUGQAAcE6cLrfWHzn7JYe8hTIDAADOyeuL8vT6BqvGfbre1ByUGQAAUGNr9xbq1QXbJEldG9UxNQtlBgAA1Iij0qU//nuVKt2GOsS7dWX7FFPzUGYAAECNvPT1Zm3YX6z4GJtubOKWxWLudTOUGQAAcNZydh7R6wu3SpKeGtxGsTaTA4kyAwAAztKxCpce+vcquQ3pms4NdFnbZLMjSaLMAACAs/Tclxu0raBUyXF2jRvc1uw41SgzAADgVy3ZWqC3l2yXJD13XQfVjvaD80s/o8wAAIAzKi536uEPf5IkDevZUH1aJpmc6ESUGQAAcEbP/Ge99hw9pvT4KD12RWuz45yEMgMAAE7ruw35mrVilywW6YXrO6qWPdzsSCehzAAAgFM6WlahR2ZXnV6644IM/aZJgsmJTo0yAwAATunJeWuVX+xQk3oxeviylmbHOS3KDAAAOMnnq/fpk9y9soZZNOnGToq0Wc2OdFqUGQAAcIKDxQ79Ze4aSdK9fZqqU3odcwP9CsoMAACoZhiGHpuzWodLK9S6fpzuu6S52ZF+FWUGAABU+zhnjzLXHZDNatGkGzsqItz/q4L/JwQAAD6x9+gxjft0rSRpTL8Wal0/zuREZ4cyAwAA5HYb+uO/V6m4vFKd0uvorouamB3prFFmAACA3vohTz9uO6Qom1Uv3tRJ4dbAqQiBkxQAAHjFxv3Fev6rjZKkJ65so4zEGJMT1QxlBgCAEOaodGnMB7mqqHTr0lZJGtoj3exINUaZAQAghE3K3KT1+4oUHxOhZ6/rIIvFYnakGqPMAAAQopZuO6Spi7ZJkp69tr3qxdpNTnRuKDMAAISgonKn/vjvVTIM6aZu6RrQNsXsSOeMMgMAQAgaN2+t9hw9pobx0XpicBuz45wXygwAACHm89X79HHOHoVZpEk3dlQte7jZkc4LZQYAgBByoKhcj81ZLUm6p09TdWscb3Ki80eZAQAgRBiGoYc/+klHy5xq1yBOD1zawuxIHkGZAQAgRMxYukOLNh2UPTxMk2/qFBCLSJ6N4PhdAACAM9qSX6Jn/rNekvTowFZqlhRrciLPocwAABDknC63HvwgV45Kt37bPFG39WpsdiSPoswAABDk/vHNZq3eU6jaUTa9cH1HhYUF3l1+z4QyAwBAEFux/bBe+W6LJGnCNe2VUjvS5ESeR5kBACBIFR5zasysXLkN6douDTSoQ32zI3kFZQYAgCBkGIaemLum+i6/T13dzuxIXkOZAQAgCM1ZuUfzVu2VNcyil27uFPB3+T0TU8vMokWLNHjwYKWmpspisWju3LnVn3M6nXrkkUfUvn17xcTEKDU1Vbfddpv27t1rXmAAAALAzkNl+usnayVJYy5trs4N65qcyLtMLTOlpaXq2LGjpkyZctLnysrKlJOToyeeeEI5OTn6+OOPtWnTJl111VUmJAUAIDA4XW7dP2ulShyV6tE4Xvf2bWZ2JK8z9ZjTwIEDNXDgwFN+rnbt2srMzDxh28svv6wePXpo586datiwoS8iAgAQUP7xzWbl7jqq2MhwvXhzJ1mD7G3YpxJQJ9AKCwtlsVhUp06d0z7H4XDI4XBUPy4qKpJUddrK6XR6NM/x/Xl6vzgRc/YN5uwbzNk3QnXOK7YfqX4b9t+uaqOkmHCvzsCbc67JPi2GYRgeT3AOLBaL5syZoyFDhpzy8+Xl5brwwgvVqlUrvfvuu6fdz7hx4zR+/PiTts+cOVPR0dGeigsAgF8pq5SeX2XVkQqLetRz65ZmbrMjnZeysjINGzZMhYWFiouLO+NzA6LMOJ1O3XDDDdq5c6cWLFhwxt/UqY7MpKenq6Cg4FeHUVNOp1OZmZnq37+/bDabR/eNXzBn32DOvsGcfSPU5mwYhh7892r9Z81+NYyP0if39vLJu5e8OeeioiIlJiaeVZnx+9NMTqdTN954o/Ly8vTtt9/+6m/IbrfLbreftN1ms3ntBe3NfeMXzNk3mLNvMGffCJU5f5S9W/9Zs//nt2F3Vt1aUT79/t6Yc03259dl5niR2bx5s7777jslJCSYHQkAAL+yvaBUT36yRpL0YL/gfxv2qZhaZkpKSrRly5bqx3l5ecrNzVV8fLxSU1N1/fXXKycnR5999plcLpf2798vSYqPj1dERIRZsQEA8AtOl1sPfJCr0gqXemTE654+wf827FMxtcxkZWWpb9++1Y/Hjh0rSRoxYoTGjRunefPmSZI6dep0wtd999136tOnj69iAgDgl176erNW7TqquMhwvXhTaLwN+1RMLTN9+vTRma4/9pNrkwEA8DvLth3SKwt+Xg372vZqUMe318n4E9ZmAgAgwBwprdCYD3JlGNL1XdN0ZYdUsyOZijIDAEAAMQxDD3/0k/YVlisjMUbjrmprdiTTUWYAAAgg7/y4Q1+vP6AIa5heHto5qFfDPluUGQAAAsTavYV65j/rJUmPXtFK7RrUNjmRf6DMAAAQAEodlbpv5kpVuNzq1zpJI3s3NjuS36DMAAAQAP76yVptKyhVSlykXri+oyyW0Hwb9qlQZgAA8HNzVu7W7JzdCrNIL93cSXVjuHHsf6PMAADgx/IKSvWXOVXLFdx/aXP1bMLSPv+LMgMAgJ9yVLp03/s5Kq1wqWdGvO67pLnZkfwSZQYAAD/13BcbtWZPkepG2zT55tBdruDXUGYAAPBD36w/oLd+yJMk/f2GjqpfO3SXK/g1lBkAAPzM/sJyPfThKknSHRdk6NLWySYn8m+UGQAA/IjLbeiBWSt1pMyptqlxemRgS7Mj+T3KDAAAfmTKt1u0LO+wYiKsmjKsi+zhVrMj+T3KDAAAfmLZtkN66ZtNkqSnr2mnjMQYkxMFBsoMAAB+oKDEofveXym3IV3XJU3XdE4zO1LAoMwAAGAyl9vQgx/kKr/YoWZJtfS3IW3NjhRQKDMAAJjsle+2aPHmAkXZrHr1li6Kjgg3O1JAocwAAGCiJVsLNPnrqutk/jaknVokx5qcKPBQZgAAMMnBYocemJUrtyHd0DVN13flOplzQZkBAMAEx+8nc7DYoRbJtfTU1e3MjhSwKDMAAJjgH99s1pKthxQdUXWdTFQE95M5V5QZAAB87IctBfrHt5slSc9c007NkrhO5nxQZgAA8KH8onI9MGulDEO6uXs695PxAMoMAAA+Uuly6/5ZK1VQUqFWKbEadxX3k/EEygwAAD7y0jebtXRb1bpLr9zSRZE2rpPxBMoMAAA+sGjTQU35boskacK17dW0Xi2TEwUPygwAAF52oKhcD36QK8OQhvZoqKs7NTA7UlChzAAA4EVOl1v3zVypQ6UVal0/Tk8ObmN2pKBDmQEAwIte+Gqjlm8/rFr2cL3KdTJeQZkBAMBLvlyzT1MXbZMk/f2GDspIjDE5UXCizAAA4AXbDpbooQ9/kiT94aImurxdfZMTBS/KDAAAHlZWUal73s1RiaNSPRrH60+XtTQ7UlCjzAAA4EGGYejxOWu08UCxEmvZNWVYZ4Vb+XHrTUwXAAAPenfZTs1ZuUfWMIteGdZZSXGRZkcKepQZAAA8JHfXUT316VpJ0iOXt1TPJgkmJwoNlBkAADzgcGmF7n03W06Xocvbpuj3v21idqSQQZkBAOA8udyGHpi1UnsLy5WRGKPnb+ggi8VidqyQQZkBAOA8/eObzVq8uUCRtjC9dmsXxUXazI4UUigzAACch+825usf326WJE28tr1apcSZnCj0UGYAADhHuw6XVS8geetvGuqazmlmRwpJlBkAAM5BudOle9/L0dEypzqm1dYTV7KApFkoMwAA1JBhGHryk7VavadQdaNtevXWrrKHs4CkWUwtM4sWLdLgwYOVmpoqi8WiuXPnnvB5wzA0btw4paamKioqSn369NHatWvNCQsAwM9mLt+pD7J2KcwivXRzZzWoE2V2pJBmapkpLS1Vx44dNWXKlFN+/vnnn9ekSZM0ZcoUrVixQikpKerfv7+Ki4t9nBQAgCrZO45o3Lyqf1g/fFkrXdSinsmJEG7mNx84cKAGDhx4ys8ZhqHJkyfr8ccf17XXXitJmj59upKTkzVz5kzdddddvowKAIDyi8p1z883xruifYruvpgb4/kDU8vMmeTl5Wn//v0aMGBA9Ta73a6LL75YS5YsOW2ZcTgccjgc1Y+LiookSU6nU06n06MZj+/P0/vFiZizbzBn32DOvuGNOVdUunXPu9nKL3aoWb0YPXN1G1VWVnps/4HIm6/nmuzTb8vM/v37JUnJycknbE9OTtaOHTtO+3UTJ07U+PHjT9o+f/58RUdHezbkzzIzM72yX5yIOfsGc/YN5uwbnpzzR9vClH0gTJFWQzc1KNSib+Z7bN+Bzhuv57KysrN+rt+WmeP+93bQhmGc8RbRjz76qMaOHVv9uKioSOnp6RowYIDi4jx7IyOn06nMzEz1799fNht3e/QW5uwbzNk3mLNveHrOH6/co8U/Vl0n89LQLrqkJdfJSN59PR8/s3I2/LbMpKSkSKo6QlO/fv3q7fn5+Scdrflvdrtddrv9pO02m81rf3F4c9/4BXP2DebsG8zZNzwx59W7C/XEvPWSpDH9muuydqmeiBZUvPF6rsn+/PY+MxkZGUpJSTnh0FVFRYUWLlyo3r17m5gMABAqDpU4dNeMLFVUutWvdZLuv6S52ZFwCqYemSkpKdGWLVuqH+fl5Sk3N1fx8fFq2LChxowZowkTJqh58+Zq3ry5JkyYoOjoaA0bNszE1ACAUFDpcuu+96tWwm6SGKNJN3VSWBgrYfsjU8tMVlaW+vbtW/34+LUuI0aM0Ntvv60//elPOnbsmO69914dOXJEPXv21Pz58xUbG2tWZABAiHjuyw1asvWQYiKsemN4V1bC9mOmlpk+ffrIMIzTft5isWjcuHEaN26c70IBAELevFV79ebiPEnS32/oqObJ/CPan/ntNTMAAJhh/b4iPfLRT5Kke/o01cD29X/lK2A2ygwAAD87XFqh37+TpWNOl37bPFEPDWhpdiScBcoMAACSnC63Rr2Xo91HjqlRQrReHtpZVi74DQiUGQAAJD392Tr9uK3qgt83b+umOtERZkfCWaLMAABC3qzlOzX9xx2yWKTJN3dWCy74DSiUGQBASFux/bCe+GSNJOmP/Vuof5vT32Ue/okyAwAIWXuOHtM972bL6TI0qH19jerbzOxIOAeUGQBASDpW4dIf3slSQUmF2tSP0ws3dDjjQsbwX5QZAEDIMQxDD3+0Smv3FikhJkJTb+uq6Ai/XXsZv4IyAwAIOa8u2KrPftqn8DCLXru1q9LqRpsdCeeBMgMACClfrzugv8/fKEkaf3Vb9ciINzkRzhdlBgAQMjYfKNaYD3JlGNKtv2moW3o2MjsSPIAyAwAICYVlTv3+nSyVOCrVMyNeTw5ua3YkeAhlBgAQ9Cpdbo1+P0fbD5WpQZ0ovXpLF9ms/AgMFvyfBAAEvfGfrtPizQWKslUtVZBQy252JHgQZQYAENSmL9muGUuPL1XQSW1S48yOBA+jzAAAgtbiLQUa/+laSdKfLmuly9qmmJwI3kCZAQAEpf1l0v2zfpLbkK7rkqa7L25idiR4CWUGABB0DpdWaOoGq0oclerROF4Trm3HUgVBjDIDAAgqFZVujZ61SoccFqXVjdLrw7vKHm41Oxa8iDIDAAgahmHo8TmrtWL7EUVaDU29tbPiYyLMjgUvo8wAAILG1EXb9GH2boVZpJHN3WqeVMvsSPABygwAIChkrjugZ7/cIEl6/IpWal3XMDkRfIUyAwAIeGv3FuqBWSur11wa3jPd7EjwIcoMACCg5ReX6/fTs1RW4dIFzRL05OC2vHMpxFBmAAABq9zp0h/eydbewnI1SYzRq8O6suZSCOL/OAAgILndhh78IFe5u46qdpRN/xrZXbWjbWbHggkoMwCAgPTslxv0xZr9irCGaerwrspIjDE7EkxCmQEABJx3l+7Q1EXbJEnPX99BPZskmJwIZqLMAAACyncb8/XXT9ZIksb2b6EhnRuYnAhmo8wAAALGur1FGv1ejtyGdH3XNN13STOzI8EPUGYAAAFhX+Ex3fH2CpVWuNS7aYImXNOet2BDEmUGABAAShyVuuPtLO0vKlezpFp67dauigjnRxiq8EoAAPi1Spdbo2fmaP2+IiXWitC0kd1VO4q3YOMXlBkAgN8yDEPjPl2rBRsPKtIWpn+O6K70+GizY8HPUGYAAH7rn4vz9O7SnbJYpMk3dVan9DpmR4IfoswAAPzSF6v3acIX6yVJj1/RWpe3SzE5EfwVZQYA4HeydxzRmA9yZRjSbb0a6c4LM8yOBD9GmQEA+JWtB0t05/QVclS6dUmrJP31yja8BRtnRJkBAPiN/OJyjXhruY6WOdUxrbamDOuscFbBxq/gFQIA8AsljkrdPm2Fdh85psYJ0frXyO6Kjgg3OxYCAGUGAGA6p8ute97N1tq9RUqIidD0O3oosZbd7FgIEH5dZiorK/WXv/xFGRkZioqKUpMmTfTUU0/J7XabHQ0A4CGGYeiR2T9p8eYCRdmsemtkdzVKiDE7FgKIXx+/e+655/T6669r+vTpatu2rbKysnT77berdu3aeuCBB8yOBwDwgL/P36iPc/bIGmbRq7d0UUfuJYMa8usy8+OPP+rqq6/WoEGDJEmNGzfW+++/r6ysLJOTAQA8YcbSHXrlu62SpInXtFffVkkmJ0Ig8uvTTBdeeKG++eYbbdq0SZK0atUqff/997riiitMTgYAOF9frd2vJz9ZI0l6sF8L3dg93eRECFR+fWTmkUceUWFhoVq1aiWr1SqXy6VnnnlGQ4cOPe3XOBwOORyO6sdFRUWSJKfTKafT6dF8x/fn6f3iRMzZN5izbzDnKjk7j+r+91fKbUg3dWugey5q5NGZMGff8Oaca7JPi2EYhscTeMisWbP08MMP64UXXlDbtm2Vm5urMWPGaNKkSRoxYsQpv2bcuHEaP378Sdtnzpyp6GgWJwMAsx04Jk1eY1VZpUVt67p1Z0u3rNwTD/+jrKxMw4YNU2FhoeLi4s74XL8uM+np6frzn/+sUaNGVW97+umn9e6772rDhg2n/JpTHZlJT09XQUHBrw6jppxOpzIzM9W/f3/ZbCxH7y3M2TeYs2+E+pzzix26aeoy7T5arg5pcZpxezev3Esm1OfsK96cc1FRkRITE8+qzPj1aaaysjKFhZ14WY/Vaj3jW7Ptdrvs9pPvTWCz2bz2gvbmvvEL5uwbzNk3QnHOhWVO3flOjnYfLVfjhGhNG9lDtWO8ey+ZUJyzGbwx55rsz6/LzODBg/XMM8+oYcOGatu2rVauXKlJkybpjjvuMDsaAKAGjlW4dOf0Fdqwv1j1Yu2acWdPJXBTPHiIX5eZl19+WU888YTuvfde5efnKzU1VXfddZf++te/mh0NAHCWnC63Rs/MUdaOI4qNDNc7d/RQejzXMMJz/LrMxMbGavLkyZo8ebLZUQAA58Dtrrq77zcb8mUPD9NbI7urdX3PXr8I+PV9ZgAAgcswDE38Yv0Jd/ft3jje7FgIQpQZAIBXvLFom95cnCdJev66Drq0dbLJiRCsKDMAAI/794pdevaLqltoPH5Fa13XNc3kRAhmlBkAgEd9tXa//vzxT5Kkuy9uqt9f1MTkRAh2lBkAgMcs3XZI9/28TMGN3dL0yOUtzY6EEECZAQB4xNq9hfr99CxVVLrVv02yJlzTXhYL6xTA+ygzAIDzlldQqhFvrVCxo1I9MuL18tDOCrfyIwa+wSsNAHBe9hw9plv/uUwFJQ61rh+nf47opkib1exYCCGUGQDAOTtY7NDwfy7TnqPH1CQxRjPu7KG4SNZCgm9RZgAA56SwzKnh/1qmbQWlalAnSu/+rqcSWW8JJqDMAABqrMRRqRHTllcvHPne73oqtU6U2bEQompcZkaOHKlFixZ5IwsAIACUO136wztZyt11VHWibXr3zp5qnBhjdiyEsBqXmeLiYg0YMEDNmzfXhAkTtGfPHm/kAgD4oeMrYC/ZekgxEVZNv72HWqbEmh0LIa7GZWb27Nnas2ePRo8erQ8//FCNGzfWwIED9dFHH8npdHojIwDAD7jchv7471X6en3VCtj/HNFdHdPrmB0LOLdrZhISEvTAAw9o5cqVWr58uZo1a6bhw4crNTVVDz74oDZv3uzpnAAAExmGob/MXa15q/YqPMyi12/tql5NE8yOBUg6zwuA9+3bp/nz52v+/PmyWq264oortHbtWrVp00YvvviipzICAExkGIYmfL5e7y/fpTCL9NLNndW3VZLZsYBqNS4zTqdTs2fP1pVXXqlGjRrpww8/1IMPPqh9+/Zp+vTpmj9/vmbMmKGnnnrKG3kBAD728rdb9ObiPEnSs9d20KAO9U1OBJwovKZfUL9+fbndbg0dOlTLly9Xp06dTnrOZZddpjp16nggHgDATG8s3KpJmZskSU9c2UY3dk83ORFwshqXmRdffFE33HCDIiMjT/ucunXrKi8v77yCAQDM9db3eZr4xQZJ0kMDWujOCzNMTgScWo3LzPDhw72RAwDgR2Ys3aGnPlsnSbr/0uYafUlzkxMBp8cdgAEAJ/hgxU49MXeNJOnui5vqwX4UGfg3ygwAoNrHObv1549XS5LuuCBDj1zeUhaLxeRUwJlRZgAAkqRPV+3VQx+ukmFIw3/TSE9c2Zoig4BAmQEA6Ms1+zTmg1y5Denm7ukaf1VbigwCBmUGAELc1+sOaPTMlXK5DV3XJU0TrmmvsDCKDAIHZQYAQtiCjfm6970cVboNXdUxVc9f34Eig4BDmQGAEPXDlgLdNSNbFS63BrZL0aQbO8pKkUEAoswAQAj6YUuB7nh7hRyVbvVrnax/DO2scCs/EhCYeOUCQIj5fvMvReaSVkl65ZbOslFkEMB49QJACFm06aDunH78iEySXru1i+zhVrNjAeelxssZAAAC08JNB/X7d7JU8fOppVdu6UyRQVCgzABACFiwMV9/mJGtikq3+rdJ1ivDuiginIPzCA68kgEgyH33X0VmAEUGQYgjMwAQxL7bkF/99uvL2ibr5aEUGQQfygwABKlvNxzQ3TNyVOFy6/K2KXp5GO9aQnDiVQ0AQeib9b8UmYHtKDIIbhyZAYAgk7nugO59L1tOl6FB7etr8s2dKDIIapQZAAgin67aqwc/yFWl29CgDvU1+SaKDIIfZQYAgsRH2bv1p49WyW1I13RuoBeu78ASBQgJlBkACALvLt2hv8xdI0ka2iNdzwxpz+rXCBmUGQAIcP/6Pk9/+2ydJGlk78Z6cnAbWSwUGYQOygwABLBXvtuiF77aKEm6++KmeuTylhQZhBzKDAAEIMMw9H/zN2nKd1skSQ/2a6H7L21GkUFI8vsrw/bs2aNbb71VCQkJio6OVqdOnZSdnW12LAAwjWEYeuY/66uLzKMDW+mBfs0pMghZfn1k5siRI7rgggvUt29fffHFF0pKStLWrVtVp04ds6MBgCncbkN/nbdG7y7dKUkaf1Vbjejd2NxQgMn8usw899xzSk9P17Rp06q3NW7c2LxAAGCiSpdbf/54tT7K3i2LRXr22va6qXtDs2MBpvPr00zz5s1Tt27ddMMNNygpKUmdO3fWm2++aXYsAPA5R6VLo2eu1EfZu2UNs2jyTZ0oMsDP/PrIzLZt2/Taa69p7Nixeuyxx7R8+XLdf//9stvtuu222075NQ6HQw6Ho/pxUVGRJMnpdMrpdHo03/H9eXq/OBFz9g3m7BvnMudSR6XufT9XS7Yels1q0eQbO2hAmyT+X50Br2ff8Oaca7JPi2EYhscTeEhERIS6deumJUuWVG+7//77tWLFCv3444+n/Jpx48Zp/PjxJ22fOXOmoqOjvZYVALyh1Cm9scGqHSUWRYQZ+l0rt1rW9tu/tgGPKSsr07Bhw1RYWKi4uLgzPtevj8zUr19fbdq0OWFb69atNXv27NN+zaOPPqqxY8dWPy4qKlJ6eroGDBjwq8OoKafTqczMTPXv3182m82j+8YvmLNvMGffqMmc84sduv3tbO0oKVGdKJv+eVsXdUyr7aOkgY3Xs294c87Hz6ycDb8uMxdccIE2btx4wrZNmzapUaNGp/0au90uu91+0nabzea1F7Q3941fMGffYM6+8Wtz3nGoVLf+a7l2HT6m5Di7ZtzZUy2SY32YMDjwevYNb8y5Jvvz6wuAH3zwQS1dulQTJkzQli1bNHPmTE2dOlWjRo0yOxoAeM2G/UW6/vUftevwMTWMj9ZHd/emyABn4Ndlpnv37pozZ47ef/99tWvXTn/72980efJk3XLLLWZHAwCvyNl5RDe9sVQHix1qlRKrj+7upfR4rvcDzsSvTzNJ0pVXXqkrr7zS7BgA4HWLNx/UH97J1jGnS50b1tG0kd1VJzrC7FiA3/P7MgMAoeDz1fs0ZlauKlxu/bZ5ot4Y3lXREfwVDZwN/qQAgMne+XG7npy3VoYhXdE+RS/e1En2cKvZsYCAQZkBAJMYhqG/z9+oV77bKkm6pWdDPXV1O1nDWDASqAnKDACYoNLl1mNzf9KH2bslSWP7t9B9lzRj5WvgHFBmAMDHHC7pnpm5WrCpQGEWacI17XVzD9ZZAs4VZQYAfOhwaYVeWWfVjpIC2cPDNGVYF/Vvk2x2LCCgUWYAwEd2HS7TiLeWa0eJRbWjwvXWyO7q2ije7FhAwKPMAIAPrNtbpJHTliu/2KE6EYbe/10PtW5Q1+xYQFCgzACAly3ZWqC73slWsaNSLZJq6Za0o2qWVMvsWEDQ8OvlDAAg0H2Su0cj31qhYkelejSO18zfdVedk9fCBXAeODIDAF5gGIZeXbBVL3y1UZJ0edsUTb65k6xym5wMCD6UGQDwMKfLrb/MWaMPsnZJkn7/2ww9OrC1wsIscjopM4CnUWYAwIOKy526970cLd5cdQ+ZcVe11W29GpsdCwhqlBkA8JB9hcd0+7QV2rC/WFE2q14e2ln9uIcM4HWUGQDwgLV7C3XH2yt0oMiherF2vTWiu9qn1TY7FhASKDMAcJ6+25iv0e/lqLTCpeZJtTTt9u5KqxttdiwgZFBmAOA8zFy2U098skYut6HeTRP02q1dVTvKZnYsIKRQZgDgHLjchp7/coPeWLRNknRdlzRNvLa9IsK5fRfga5QZAKihEkelxsxaqa/X50uSxvRrrgcubS6LxWJyMiA0UWYAoAZ2HynT76ZnacP+YkWEh+nvN3TUVR1TzY4FhDTKDACcpewdh3XXjGwVlFQosZZdb97WVZ0bslgkYDbKDACchTkrd+uRj1arwuVW6/px+teIbkqtE2V2LACizADAGbndhv4vc6Ne+W6rJGlAm2S9eFMnxdj56xPwF/xpBIDTKKuo1NgPVunLtfslSff2aaqHBrRUWBgX+gL+hDIDAKewr/CYfjc9S2v3FinCGqZnr2uva7ukmR0LwClQZgDgf2RtP6y7381RQYlDCTERemN4V3VrHG92LACnQZkBgP8yc9lOPTlvjZwuQ61SYvXmbd2UHs/SBIA/o8wAgKSKSrfGf7pW7y3bKUm6on2KXri+Ixf6AgGAP6UAQt7BYofufS9bK7YfkcUiPTSgpe7t05Q7+gIBgjIDIKSt2nVUd83I1v6icsXaw/XS0E66pFWy2bEA1ABlBkDImp29W4/OWa2KSrea1ovR1Nu6qWm9WmbHAlBDlBkAIafS5daEzzforR/yJEn9WifpxZs6KTbSZnIyAOeCMgMgpBwqcei+91dqydZDkqT7L22uMZc250Z4QACjzAAIGTk7j2jUeznaV1iu6AirJt3YUZe3q292LADniTIDIOgZhqEZS3fob5+tk9NlqEm9GL1+a1e1SI41OxoAD6DMAAhqZRWVeuzj1Zqbu1dS1f1jnruuA9fHAEGEMgMgaG07WKJ73s3RxgPFsoZZ9OjAVrrzwgzuHwMEGcoMgKD05Zp9eujDn1TiqFS9WLteGdZFPTJYXwkIRpQZAEGl0uXWC19t1BuLtkmSejSO15RhnZUUF2lyMgDeQpkBEDTyi8t1//srtXTbYUnS73+boT9d3ko2a5jJyQB4E2UGQFD4fnOBxnywUgUlFYqJsOqFGzrqiva87RoIBZQZAAGt0uXW5K8365UFW2QYUquUWL1ySxeWJQBCCGUGQMDaX1iu+2et1PK8qtNKw3o21F+vbKNIm9XkZAB8KaBOJE+cOFEWi0VjxowxOwoAky3YmK8r/rFYy/MOq5Y9XP8Y2lkTrmlPkQFCUMAcmVmxYoWmTp2qDh06mB0FgImcLrf+b/4mvb5wqySpbWqcpgzroozEGJOTATBLQByZKSkp0S233KI333xTdevWNTsOAJPsPXpMN09dWl1kbuvVSLPv6U2RAUJcQByZGTVqlAYNGqR+/frp6aefPuNzHQ6HHA5H9eOioiJJktPplNPp9Giu4/vz9H5xIubsG/4+56/X5+vROWt19JhTtezhmjCkjQa2S5HkltPpNjveWfP3OQcL5uwb3pxzTfZpMQzD8HgCD5o1a5aeeeYZrVixQpGRkerTp486deqkyZMnn/L548aN0/jx40/aPnPmTEVHR3s5LQBPq3BJc3aEacmBqgPJ6TGGRrZwKZF74AFBraysTMOGDVNhYaHi4uLO+Fy/LjO7du1St27dNH/+fHXs2FGSfrXMnOrITHp6ugoKCn51GDXldDqVmZmp/v37y2Zj0TpvYc6+4Y9zXrevSA/+e7W2FZRKkn53YWM9eGkzRYQHxBnyU/LHOQcj5uwb3pxzUVGREhMTz6rM+PVppuzsbOXn56tr167V21wulxYtWqQpU6bI4XDIaj3xnQt2u112u/2kfdlsNq+9oL25b/yCOfuGP8zZ7Tb01g95ev7LjapwuZUUa9ekGzvpwuaJpubyJH+Ycyhgzr7hjTnXZH9+XWYuvfRSrV69+oRtt99+u1q1aqVHHnnkpCIDIPDlF5Xrjx+u0uLNBZKk/m2S9dx1HRQfE2FyMgD+yq/LTGxsrNq1a3fCtpiYGCUkJJy0HUDg+3rdAf1p9k86XFqhSFuYnriyjYb1aCiLxWJ2NAB+zK/LDIDQUO506Zn/rNeMpTskSW3qx+kfQzupWVKsyckABIKAKzMLFiwwOwIAD8rddVRj/52rbQerLvL9/W8z9NBlLWUP5zQygLMTcGUGQHCoqHRryreb9cqCrXK5DSXH2fXC9R11UYt6ZkcDEGAoMwB8btOBYj34Qa7W7q26qeXVnVL11FXtVDuad50AqDnKDACfcbkN/ev7bfr7/E2qqHSrTrRNzwxpr0Ed6psdDUAAo8wA8Imdh8r00IertHz7YUnSJa2S9Oy17ZUUx618AZwfygwArzIMQ7NW7NLfPlunsgqXYiKseuLKNrqpezpvuQbgEZQZAF6z+0iZHv14dfUN8HpkxOv/buio9HjWSQPgOZQZAB7ndht6b9kOPfvFBpVWuBQRHqaHB7TUnRdmKCyMozEAPIsyA8CjtheU6pHZP2lZXtW1Md0a1dVz13dQ03q1TE4GIFhRZgB4hMttaNoPefr7/I0qd7oVHWHVI5e30vDfNOJoDACvoswAOG+bDxTr4Y9+Uu6uo5Kk3k0T9Nx1Hbg2BoBPUGYAnDOny62pi7bppa83q8LlVqw9XI8Naq2beacSAB+izAA4Jzk7j+ixj1drw/5iSVLflvU04dr2ql87yuRkAEINZQZAjRSVO/X8lxv03rKdMgypbrRNT1zZRtd0bsDRGACmoMwAOCuGYeiLNfs1bt5a5Rc7JEnXdUnT44NaKz4mwuR0AEIZZQbAr9p9pEx//WStvt2QL0nKSIzRM9e0U++miSYnAwDKDIAzqHS5Ne2H7ZqUuUnHnC7ZrBbd06eZ7u3TVJE2q9nxAEASZQbAaWTvOKIn5q7Run1FkqQejeM14dp2apYUa3IyADgRZQbACQ6VOPR/X6/Th9m7JUm1o2x67IpWuqFrOje/A+CXKDMAJFWdUlq0z6InXvpBReWVkqQbuqbpkYGtlFjLbnI6ADg9ygwArdh+WE/MXaMN+62SKtU2NU5PXd1OXRvVNTsaAPwqygwQwvKLy/Xs5xv08co9kqRoq6E/XdFGw3tlyMopJQABgjIDhCCny613ftyhyZmbVOyolMUi3di1gTpoh27skU6RARBQKDNACDEMQ99uyNczn6/XtoOlkqQOabX11NXt1DYlRp9/vsPkhABQc5QZIERs3F+sp/+zTos3F0iSEmIi9NBlLXVjt6ojMU6n0+SEAHBuKDNAkDtU4tCkzE16f/lOuQ0pwhqm2y9srFF9myku0mZ2PAA4b5QZIEg5Kl2avmS7Xv5mi4odVW+1vqJ9iv58eWs1TIg2OR0AeA5lBggyhmHoq7X7NfGLDdpxqEyS1K5BnJ4Y1EY9mySYnA4API8yAwSRZdsOaeIXG5S766gkKSnWrocva6nruqRx914AQYsyAwSBDfuL9PyXG6tXtY6OsOp3F2boroubKsbOH3MAwY2/5YAAtufoMU2av0kfr9wtw5CsYRYN7ZGu+y9trqTYSLPjAYBPUGaAAHSktEKvLtii6T/uUEWlW5I0qH19/XFACzWpV8vkdADgW5QZIICUOCr19g95emPRNhX/vBhkz4x4PXpFa3VKr2NuOAAwCWUGCABlFZV658cdemPhVh0pq7q5XauUWD0ysJX6tKgni4WLewGELsoM4MfKnS69t2ynXluwRQUlFZKkjMQYPXBpcw3umMoaSgAgygzglxyVLn2wYpde+W6LDhQ5JEnp8VG6/5LmuqZzA4Vbw0xOCAD+gzID+JGKSrdm5+zWlG+3aM/RY5Kk1NqRuu/S5rq+a5pslBgAOAllBvAD5U6XZi3fqamLtmlvYbkkKTnOrtF9m+nG7umyh1tNTggA/osyA5ioxFGpd5fu0D8X56mgpOp0UlKsXXdd3FS39GyoSBslBgB+DWUGMMHRsgq9vWS7pv2wXYXHqt6d1KBOlO7p01TXd02jxABADVBmAB86WOzQv77P04wft6u0wiVJapIYo3v7NtPVnVK5JgYAzgFlBvCBLfkl+tf32zQ7Z0/1HXtbpcRq9CXNNLBdfd5iDQDngTIDeIlhGFqed1hvLt6mr9fnV2/vlF5Ho/s206Wtk7jZHQB4AGUG8LBKl1tfrT2gqYu2atXuQkmSxSL1a52sP1zURN0a1aXEAIAH+XWZmThxoj7++GNt2LBBUVFR6t27t5577jm1bNnS7GjASUoclfooa5f+9UOedh2uukdMRHiYruuSpt/9NkNNWQASALzCr8vMwoULNWrUKHXv3l2VlZV6/PHHNWDAAK1bt04xMTFmxwMkSXkFpZq+ZLtmZ+9WsaNq8ce60TYN79VYt/VqpMRadpMTAkBw8+sy8+WXX57weNq0aUpKSlJ2drYuuugik1IBktttaOGmg3p7yXYt3HSwentGYozuuKCxru+arqgI3l4NAL7g12XmfxUWVl1/EB8ff9rnOBwOORyO6sdFRUWSJKfTKafT6dE8x/fn6f3iRP405+Jypz7K2av3lu3SjsNlkqquh7m4eaJu+01DXdA0QWFhFkluOZ1uc8PWkD/NOZgxZ99gzr7hzTnXZJ8WwzAMjyfwAsMwdPXVV+vIkSNavHjxaZ83btw4jR8//qTtM2fOVHR0tDcjIojtLpWWHAjTioMWVbirLt6NshrqmWTowmS36kWZHBAAgkxZWZmGDRumwsJCxcXFnfG5AVNmRo0apf/85z/6/vvvlZaWdtrnnerITHp6ugoKCn51GDXldDqVmZmp/v37y2azeXTf+IVZcy5xVOqzn/br39m7tXpPUfX25kkxurVnQ13dsb5i7AF1cPOMeD37BnP2DebsG96cc1FRkRITE8+qzATE38T33Xef5s2bp0WLFp2xyEiS3W6X3X7yBZc2m81rL2hv7hu/8MWcDcPQ6j2Fen/5Tn2Su1dlP9+l12a16PJ29TW0R7p6NUkI6rdW83r2DebsG8zZN7wx55rsz6/LjGEYuu+++zRnzhwtWLBAGRkZZkdCkCo85tS8VXs1a/lOrd37y1GYJokxGtqjoa7t0kAJvCsJAPySX5eZUaNGaebMmfrkk08UGxur/fv3S5Jq166tqCguUsD5qXS5tWjzQc3O3qPM9QeqlxmICA/TFe1SNLRHQ/XIiA/qozAAEAz8usy89tprkqQ+ffqcsH3atGkaOXKk7wMhKKzbW6TZObv1Se4eFZRUVG9vmRyrG7un69rODVQ3JsLEhACAmvDrMhMg1yYjAOQXl2te7l7Nztmj9ft+OY2UEBOhqzs10LVdGqhtahxHYQAgAPl1mQHOx+HSCn2xZp8+W7VPy/IOyf1zN46whqlfmyRd2zlNF7esJ5s1zNygAIDzQplBUCk85tT8tfv16U/79MOWArncvxzd69ywjq7rkqYrO9RXnWhOIwFAsKDMIOAVlTv13YZ8fbpqnxZtOqgK1y933m2bGqfBHVM1qH19pcdz00QACEaUGQSkA0Xlylx3QPPXHdCPWwvkdP1yBKZFci1d2SFVV3aoryasVA0AQY8yg4Cx7WCpvt10SF+t3a/cXUdP+FzTejEa2K6+BndMVcuUWHMCAgBMQZmB36qodCtrx2F9u/6APs216sCPP5zw+c4N62hAmxT1b5OsZkkcgQGAUEWZgV/ZV3hMCzYe1IKN+fphyyGVOCp//oxFNqtFvZomakCbZPVvk6zkuEhTswIA/ANlBqYqd7qUs/OIFm46qIUbD2rD/uITPp8QE6GLmicornS3Hrixn+JjuYgXAHAiygx8qtLl1k97CvXj1kP6YUuBsnYcqV5GQJLCLFKn9Drq0zJJfVrWU7vU2nK5KvX557sUG8licQCAk1Fm4FUut6EN+4v049ZDWrL1kJbnHf6vU0dVkmLturBZoi5uWU8XNa930lICLpcvEwMAAg1lBh5V6qhU7q6jytp+RFk7Dit351EV/095qRNtU68mCerdNEG9miaqab0YlhEAAJwzygzOmWEY2nP0WHV5yd5xROv2FZ1w111JqmUPV/fGddW7aaJ6NU1Qm/pxCgujvAAAPIMyg7N2oKhcP+0u1OrdR7Vqd6FW7ynU4dKKk56XWjtSXRvHq3vjuuraqK5apcTJSnkBAHgJZQYncbkN7ThUqo37i7Vhf7HW7i3ST7uPKr/YcdJzw8MsapkSq66N6qpb43h1a1RXqXWiTEgNAAhVlJkQZhiGDhY7tPFAcXVx2bi/WJvzi1XudJ/0/DCL1DwpVh3SaqtDWm21T6ujVimxirRZTUgPAEAVykwIKC53antBmbYVlGjbwVLlFfzy8b/vLDou0hamFsmxapkcq1b149QxrbbapMYpOoKXDADAv/CTKQiUOiq15+gx7TlyTLuPlGn3z7/ec/SYdh0+poKSk08PHRdmkRolxKhlcqxapsSqVUrVfxslxHCdCwAgIFBm/FSly63CY04dKatQfrFDB//3o8Sh/CKHDhSX62iZ81f3l1grQhmJMWqSWEsZ9WJ+/nWMGiZEyx7OaSIAQOCizJyj4nKnDhUfU0G5lFdQKkuYVS7DUKXLkNsw5HJXfZQ73TrmdFV9VFTqWIVLZU6XyiuqthWXV6rwmFNHy5wqPPbLx+lO/5xOXGS4GtSNVoM6UUqrW/XRoE6UGtSNUqOEGNWO4u65AIDgRJk5R+/8uEMvfLVRUri08odfff65io0MV71Yu5Ji7aoXG6l6tez/9bjqo0HdKMVxq38AQIiizJyjCGuYIm1hMlwuRUTYFB5mkfX4h8Uiq7Xqv5E2qyJtVkXZrIqOsCoy4pdfR9msirGHq060TbWjbIqLsqlOVNWv60RHKC4yXOHWMLN/qwAA+DXKzDn6/UVNNLJXuj7//HNdccVlstk4MgIAgBn4Zz8AAAholBkAABDQKDMAACCgUWYAAEBAo8wAAICARpkBAAABjTIDAAACGmUGAAAENMoMAAAIaJQZAAAQ0CgzAAAgoFFmAABAQKPMAACAgEaZAQAAAS3c7ADeZhiGJKmoqMjj+3Y6nSorK1NRUZFsNpvH948qzNk3mLNvMGffYM6+4c05H/+5ffzn+JkEfZkpLi6WJKWnp5ucBAAA1FRxcbFq1659xudYjLOpPAHM7XZr7969io2NlcVi8ei+i4qKlJ6erl27dikuLs6j+8YvmLNvMGffYM6+wZx9w5tzNgxDxcXFSk1NVVjYma+KCfojM2FhYUpLS/Pq94iLi+MPiw8wZ99gzr7BnH2DOfuGt+b8a0dkjuMCYAAAENAoMwAAIKBRZs6D3W7Xk08+KbvdbnaUoMacfYM5+wZz9g3m7Bv+MuegvwAYAAAEN47MAACAgEaZAQAAAY0yAwAAAhpl5hy9+uqrysjIUGRkpLp27arFixebHSnoLFq0SIMHD1ZqaqosFovmzp1rdqSgM3HiRHXv3l2xsbFKSkrSkCFDtHHjRrNjBaXXXntNHTp0qL4fR69evfTFF1+YHSvoTZw4URaLRWPGjDE7SlAZN26cLBbLCR8pKSmm5aHMnIMPPvhAY8aM0eOPP66VK1fqt7/9rQYOHKidO3eaHS2olJaWqmPHjpoyZYrZUYLWwoULNWrUKC1dulSZmZmqrKzUgAEDVFpaana0oJOWlqZnn31WWVlZysrK0iWXXKKrr75aa9euNTta0FqxYoWmTp2qDh06mB0lKLVt21b79u2r/li9erVpWXg30zno2bOnunTpotdee616W+vWrTVkyBBNnDjRxGTBy2KxaM6cORoyZIjZUYLawYMHlZSUpIULF+qiiy4yO07Qi4+P1wsvvKA777zT7ChBp6SkRF26dNGrr76qp59+Wp06ddLkyZPNjhU0xo0bp7lz5yo3N9fsKJI4MlNjFRUVys7O1oABA07YPmDAAC1ZssSkVIBnFBYWSqr6IQvvcblcmjVrlkpLS9WrVy+z4wSlUaNGadCgQerXr5/ZUYLW5s2blZqaqoyMDN18883atm2baVmCfm0mTysoKJDL5VJycvIJ25OTk7V//36TUgHnzzAMjR07VhdeeKHatWtndpygtHr1avXq1Uvl5eWqVauW5syZozZt2pgdK+jMmjVLOTk5WrFihdlRglbPnj31zjvvqEWLFjpw4ICefvpp9e7dW2vXrlVCQoLP81BmztH/rsBtGIbHV+UGfGn06NH66aef9P3335sdJWi1bNlSubm5Onr0qGbPnq0RI0Zo4cKFFBoP2rVrlx544AHNnz9fkZGRZscJWgMHDqz+dfv27dWrVy81bdpU06dP19ixY32ehzJTQ4mJibJarScdhcnPzz/paA0QKO677z7NmzdPixYt8voq86EsIiJCzZo1kyR169ZNK1as0EsvvaQ33njD5GTBIzs7W/n5+eratWv1NpfLpUWLFmnKlClyOByyWq0mJgxOMTExat++vTZv3mzK9+eamRqKiIhQ165dlZmZecL2zMxM9e7d26RUwLkxDEOjR4/Wxx9/rG+//VYZGRlmRwophmHI4XCYHSOoXHrppVq9erVyc3OrP7p166ZbbrlFubm5FBkvcTgcWr9+verXr2/K9+fIzDkYO3ashg8frm7duqlXr16aOnWqdu7cqbvvvtvsaEGlpKREW7ZsqX6cl5en3NxcxcfHq2HDhiYmCx6jRo3SzJkz9cknnyg2Nrb6iGPt2rUVFRVlcrrg8thjj2ngwIFKT09XcXGxZs2apQULFujLL780O1pQiY2NPemar5iYGCUkJHAtmAc99NBDGjx4sBo2bKj8/Hw9/fTTKioq0ogRI0zJQ5k5BzfddJMOHTqkp556Svv27VO7du30+eefq1GjRmZHCypZWVnq27dv9ePj52FHjBiht99+26RUweX47QX69OlzwvZp06Zp5MiRvg8UxA4cOKDhw4dr3759ql27tjp06KAvv/xS/fv3NzsaUGO7d+/W0KFDVVBQoHr16uk3v/mNli5datrPQe4zAwAAAhrXzAAAgIBGmQEAAAGNMgMAAAIaZQYAAAQ0ygwAAAholBkAABDQKDMAACCgUWYAAEBAo8wAAICARpkBAAABjTIDAAACGmUGQEA5ePCgUlJSNGHChOpty5YtU0REhObPn29iMgBmYaFJAAHn888/15AhQ7RkyRK1atVKnTt31qBBgzR58mSzowEwAWUGQEAaNWqUvv76a3Xv3l2rVq3SihUrFBkZaXYsACagzAAISMeOHVO7du20a9cuZWVlqUOHDmZHAmASrpkBEJC2bdumvXv3yu12a8eOHWbHAWAijswACDgVFRXq0aOHOnXqpFatWmnSpElavXq1kpOTzY4GwASUGQAB5+GHH9ZHH32kVatWqVatWurbt69iY2P12WefmR0NgAk4zQQgoCxYsECTJ0/WjBkzFBcXp7CwMM2YMUPff/+9XnvtNbPjATABR2YAAEBA48gMAAAIaJQZAAAQ0CgzAAAgoFFmAABAQKPMAACAgEaZAQAAAY0yAwAAAhplBgAABDTKDAAACGiUGQAAENAoMwAAIKBRZgAAQED7f72vReK/b/O3AAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "y0 = 1 # intitialbetingelse for y\n",
+ "x0 = 0 # startverdi for x\n",
+ "x_slutt = 5.0 # sluttverdi for x\n",
+ "dx = 1E-5 # steglengde\n",
+ "\n",
+ "x_liste = [x0] # Legger inn første x-verdi i en liste for å spare på verdiene\n",
+ "y_liste = [y0] # Legger inn initalbetingelsen for y i en liste for å spare på verdiene\n",
+ "\n",
+ "# Disse variablene skal oppdateres i løkka, mens x0 og y0 holdes konstante\n",
+ "x = x0 \n",
+ "y = y0\n",
+ "\n",
+ "# Definerer difflikningen som en funksjon\n",
+ "def fder(x):\n",
+ " return x\n",
+ "\n",
+ "while x < x_slutt:\n",
+ " yder = fder(x) # Difflikningen vi skal løse\n",
+ " y = y + yder*dx # Eulers metode for å finne neste y-verdi\n",
+ " x = x + dx # Oppdaterer x-verdien med steglengden\n",
+ " x_liste.append(x)\n",
+ " y_liste.append(y)\n",
+ "\n",
+ "plt.plot(x_liste,y_liste)\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.grid()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Modifiser programmet ovenfor slik at du løser difflikningen $f'(x) = \\frac{1}{y+1} - lg(x+2)$. Bruk samme initialbetingelse og løsningsintervall.\n",
+ "```\n",
+ "\n",
+ "````{admonition} Løsningsforslag\n",
+ ":class: tip, dropdown\n",
+ "\n",
+ "Her er det bare å endre funksjonen slik at den representerer den nye difflikninga. Husk å importere tierlogaritmen.\n",
+ "\n",
+ "```{code-block} Python\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "y0 = 1 # intitialbetingelse for y\n",
+ "x0 = 0 # startverdi for x\n",
+ "x_slutt = 5.0 # sluttverdi for x\n",
+ "dx = 1E-5 # steglengde\n",
+ "\n",
+ "x_liste = [x0] # Legger inn første x-verdi i en liste for å spare på verdiene\n",
+ "y_liste = [y0] # Legger inn initalbetingelsen for y i en liste for å spare på verdiene\n",
+ "\n",
+ "# Disse variablene skal oppdateres i løkka, mens x0 og y0 holdes konstante\n",
+ "x = x0 \n",
+ "y = y0\n",
+ "\n",
+ "# Definerer difflikningen som en funksjon\n",
+ "def fder(x):\n",
+ " return 1/(y+1) - np.log10(x+2)\n",
+ "\n",
+ "while x < x_slutt:\n",
+ " yder = fder(x) # Difflikningen vi skal løse\n",
+ " y = y + yder*dx # Eulers metode for å finne neste y-verdi\n",
+ " x = x + dx # Oppdaterer x-verdien med steglengden\n",
+ " x_liste.append(x)\n",
+ " y_liste.append(y)\n",
+ "\n",
+ "plt.plot(x_liste,y_liste)\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.grid()\n",
+ "plt.show()\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi kan også bruke arrayer istedenfor lister. Dette gir en raskere kode, og kan være en fordel i mange tilfeller. Da appender vi ikke til lister, men bruker indeksering. Vi bruker også gjerne en for-løkke, og da må vi vite hvor mange ganger løkka skal gå. Dette kan vi regne ut ved å ta differansen mellom $x_0$ og $x_{slutt}$, som vi dividerer på steglengden $dx$. Da får vi antall intervaller mellom $x_0$ og $x_{slutt}$ med avstand $dx$. For å finne antall punkter, må vi derfor ta antall intervaller og legge til 1: \n",
+ "\n",
+ "$N_{punkter} = \\frac{x_{slutt} - x_0}{dx} + 1$\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "\n",
+ "Forklar hvorfor antallet punkter _N_ kan regnes ut som ovenfor.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "# Plotteverdier\n",
+ "x0 = 0 # startverdi for x\n",
+ "x_slutt = 5.0 # sluttverdi for x\n",
+ "dx = 1E-5 # steglengde\n",
+ "N = int((x_slutt - x0)/dx) + 1 # antall punkter\n",
+ "\n",
+ "# Initialbetingelser\n",
+ "y0 = 1 # intitialbetingelse for y\n",
+ "\n",
+ "# Differensiallikningen\n",
+ "def yder(y,x):\n",
+ " return x\n",
+ "\n",
+ "# Lager arrayer for å spare på verdiene\n",
+ "x = np.zeros(N)\n",
+ "y = np.zeros(N)\n",
+ "y[0] = y0 # Legger inn initalbetingelsen for y\n",
+ "x[0] = x0\n",
+ "\n",
+ "# Eulers metode\n",
+ "for i in range(N-1):\n",
+ " y[i+1] = y[i] + yder(y[i],x[i])*dx\n",
+ " x[i+1] = x[i] + dx\n",
+ "\n",
+ "plt.plot(x,y)\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.grid()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "\n",
+ "Forklar programmet ovenfor linje for linje. Modifiser også programmet slik at det løser difflikninga $f'(x) = 1$.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Ulike initialbetingelser\n",
+ "Dersom vi endrer initialbetingelsene, får vi naturlig nok andre løsninger. Her har vi et program som regner ut og plotter ut "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Plotteverdier\n",
+ "x0 = 0 # startverdi for x\n",
+ "x_slutt = 5.0 # sluttverdi for x\n",
+ "dx = 1E-3 # steglengde\n",
+ "N = int((x_slutt - x0)/dx) + 1 # antall punkter\n",
+ "\n",
+ "# Initialbetingelser\n",
+ "y0 = 1 # intitialbetingelse for y\n",
+ "\n",
+ "# Differensiallikningen y' = 1\n",
+ "def yder(y,x):\n",
+ " return 1 \n",
+ "\n",
+ "# Lager arrayer for å spare på verdiene\n",
+ "x = np.zeros(N)\n",
+ "y = np.zeros(N)\n",
+ "x[0] = x0\n",
+ "\n",
+ "y_liste = [0, 1, 2, 3]\n",
+ "for y0 in y_liste:\n",
+ " y[0] = y0 \n",
+ " for i in range(N-1):\n",
+ " y[i+1] = y[i] + yder(y[i],x[i])*dx\n",
+ " x[i+1] = x[i] + dx\n",
+ " plt.plot(x,y,label=f\"y0={y0}\")\n",
+ "plt.grid()\n",
+ "plt.legend()\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det er enkelt å se at funksjonene vi får ovenfor er $y = x + C$, der $C$ avhenger av initialbetingelsene. Vi får derimot ikke selve funksjonsuttrykket som output, men vi får, som nevnt før, _funksjonsverdiene_. Vi kan også løse likningen $y' = y + x$ på samme måte. Den analytiske løsningen for denne likningen er $y = Ce^x - x - 1$. Resultatene blir da slik for de samme initialbetingelsene som ovenfor:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "def yder(y,x):\n",
+ " return y + x\n",
+ "\n",
+ "y_liste = [0, 1, 2, 3]\n",
+ "for y0 in y_liste:\n",
+ " y[0] = y0 \n",
+ " for i in range(N-1):\n",
+ " y[i+1] = y[i] + yder(y[i],x[i])*dx\n",
+ " x[i+1] = x[i] + dx\n",
+ " plt.plot(x,y,label=f\"y0={y0}\")\n",
+ "plt.grid()\n",
+ "plt.legend()\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Løs differensiallikninga $y' + y^3 = \\sin(x)$ med Eulers metode fra $x = 0$ til $x = 10$. Bruk initialbetingelsen $y(0) = 0$. Vær nøye med hvordan du definerer funksjonen.\n",
+ "```\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Kontinuerlige modeller\n",
+ "\n",
+ "Modeller som er basert på differensiallikninger, er kontinuerlige. Det betyr at de har funksjonsverdier for alle verdier av _x_ (eller tilsvarende variabler). Nå skal det sies at når vi simulerer med utgangspunkt i kontinuerlige matematiske modeller på en datamaskin, blir resultatene ikke helt kontinuerlig. Det er fordi datamaskinen ikke kan operere med uendelig mange eller uendelig små (eller store) verdier. Vi sier at vi _diskretiserer_ problemet når vi benytter en numerisk algoritme for å løse det. Men dersom stegene er tilstrekkelig små, er det en god _tilnærming_ til en kontinuerlig løsning.\n",
+ "\n",
+ "Vi har allerede sett på diskrete modeller for blant annet CO$_2$-utslipp. Da tok vi utgangspunkt i følgende diskrete modell:\n",
+ "\n",
+ "$$u_{n+1} = u_n + au_n$$\n",
+ "\n",
+ "som er det samme som:\n",
+ "\n",
+ "$$u_{n+1} - u_n = au_n$$\n",
+ "\n",
+ "Vi ser at vi på venstresiden har forskjellen i utslipp fra en tid til en annen. Det kan vi skrive som $\\Delta u$, som jo er et uttrykk for (gjennomsnittlig) endring. Da får vi:\n",
+ "\n",
+ "$$\\Delta u = au_n$$\n",
+ "\n",
+ "Dersom vi ønsker den _momentane_ endringen istedenfor den gjennomsnittlige, kan vi uttrykke dette ved den deriverte:\n",
+ "\n",
+ "$$u'(t) = au(t)$$\n",
+ "\n",
+ "Dermed har vi en kontinuerlig modell som beskriver den momentane endringen i et system! Vi kan da bruke denne modellen til å finne tilstanden til systemet ved ethvert lite tidssteg _dt_. Da kan vi bruke Eulers metode, som ovenfor. Her er et eksempel på hvordan vi kan løse modellen ovenfor:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt \n",
+ "\n",
+ "tid_slutt = 2100 # År etter 1825\n",
+ "tid = 1825 # Startår\n",
+ "a = 0.045 # Utslippsrate\n",
+ "u = 0.01 # Utslipp i 1825 (tonn per innbygger)\n",
+ "dt = 1E-5\n",
+ "\n",
+ "utslipp = [u]\n",
+ "årstall = [tid]\n",
+ "\n",
+ "while tid <= tid_slutt:\n",
+ " uder = a*u # Differensiallikningen\n",
+ " u = u + uder*dt # Eulers metode\n",
+ " tid = tid + dt # Går fram ett tidssteg\n",
+ " utslipp.append(u)\n",
+ " årstall.append(tid)\n",
+ "\n",
+ "plt.plot(årstall, utslipp)\n",
+ "plt.title(\"Utslipp av CO$_2$ i Norge\")\n",
+ "plt.xlabel(\"År\")\n",
+ "plt.ylabel(\"Tonn CO$_2$ per innbygger\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Hvis vi sammenlikner med den diskrete modellen for det samme systemet, kan vi se at de to modellene ikke gir det samme resultatet. Dette er fordi utslippsraten _a_ ikke har samme enhet. I det diskrete systemet representerte _a_ vekstraten _per uke_, mens i den kontinuerlige modellen gir _a_ den momentane vekstraten. De to parameterne må derfor bestemmes uavhengig av hverandre.\n",
+ "\n",
+ "````{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Følgende modell kan beskrive størrelsen til en populasjon med bæreevnen _b_, vekstrate _a_ og populasjonsstørrelse _N_:\n",
+ "\n",
+ "$$N'(t) = aN(t)\\left(1-\\frac{N(t)}{b}\\right)$$\n",
+ "\n",
+ "Tida _t_ er gitt i timer.\n",
+ "\n",
+ "1. Lag et program som simulerer utviklingen i en bakteriekoloni med N(t$_0$) = 100, _a_ = 0,005 og en bæreevne på 120 000 bakterier. \n",
+ "2. Hvilke forutsetninger og begrensninger ligger til grunn for modellen? \n",
+ "3. Når vil populasjonen nå bæreevnen?\n",
+ "4. Lag programmet med arrayer istedenfor lister. Husk at _append_ ikke fungerer med arrayer, og at vi må forhåndsdefinere størrelsen til disse arrayene på forhånd. Størrelsen på disse bør være gitt ved (forklar hvorfor!):\n",
+ "\n",
+ "```{code-block}\n",
+ "N = int((tid_slutt-tid_start)/dt) + 1 # Antall punkter\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "````{admonition} Løsningsforslag (deloppgave 4)\n",
+ ":class: tip, dropdown\n",
+ "```{code-block} Python\n",
+ "import matplotlib.pyplot as plt \n",
+ "import numpy as np\n",
+ "\n",
+ "a = 0.045 # Utslippsrate\n",
+ "u0 = 0.01 # Utslipp i 1825 (tonn per innbygger)\n",
+ "\n",
+ "tid_slutt = 2100 # År etter 1825\n",
+ "tid_start = 1825 # Startår\n",
+ "dt = 1E-3 # tidssteg\n",
+ "N = int((tid_slutt-tid_start)/dt) + 1 # Antall punkter\n",
+ "\n",
+ "u = np.zeros(N)\n",
+ "t = np.zeros(N)\n",
+ "\n",
+ "u[0] = u0\n",
+ "t[0] = tid_start\n",
+ "\n",
+ "for i in range(N-1):\n",
+ " uder = a*u[i] # Differensiallikningen\n",
+ " u[i+1] = u[i] + uder*dt # Eulers metode\n",
+ " t[i+1] = t[i] + dt # Går fram ett tidssteg\n",
+ "\n",
+ "plt.plot(t, u)\n",
+ "plt.title(\"Utslipp av CO$_2$ i Norge\")\n",
+ "plt.xlabel(\"År\")\n",
+ "plt.ylabel(\"Tonn CO$_2$ per innbygger\")\n",
+ "plt.show()\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Newtons 2. lov\n",
+ "\n",
+ "Vi så at Newtons 2. lov gir oss differensiallikninger når vi omformulerer akselerasjonen som den deriverte av farten.\n",
+ "\n",
+ "$$a(t) = v'(t) = s''(t)$$\n",
+ "\n",
+ "Vi kan altså få både en førsteordens og en andreordens difflikning ut av Newtons 2. lov. Det betyr også at vi kan finne akselerasjon og fart ut fra strekning ved å derivere, og motsatt finne fart og posisjon fra akselerasjon ved å integrere (løse difflikningen). Vi kan med andre ord skrive Newtons 2. lov slik:\n",
+ "\n",
+ "$$\\sum F = ma(t) = mv'(t) = ms''(t)$$\n",
+ "\n",
+ "La oss løse Newtons 2. lov for det enkle systemet vi så på tidligere: Når vi slipper ei kule fra en viss høyde, kan vi regne med at to krefter virker på kula, nemlig tyngdekraften og luftmotstand. For en lett ball som faller, kan vi si at summen av krefter er summen av gravitasjonskraften og luftmotstanden i $y$-retning på en graf. Vi definerer positiv retning oppover $y$-aksen.\n",
+ "\n",
+ "$$\\sum F = - G + L = ma(t) = mv'(t) = ms''(t)$$\n",
+ "\n",
+ "Vi ser at vi nå har den deriverte av hastigheten, som er akselerasjonen. For å kunne løse denne likningen, må vi finne ut hva summen av kreftene er. Du husker kanskje at $G = mg$, og at en mulig modell for luftmotstand er $L = -kv$, der $k$ er en konstant som blant annet er avhengig av legemets form. Da kan vi skrive uttrykket slik:\n",
+ "\n",
+ "$$ma(t) = - mg + (- kv(t))$$\n",
+ "\n",
+ "$$a(t) = \\frac{- mg - kv(t)}{m} = - g - \\frac{kv(t)}{m}$$\n",
+ "\n",
+ "Dette er en førsteordens difflikning der vi har en funksjon $v(t)$, og dens deriverte $a(t)$ (det vil si $v'(t)$). La oss løse denne numerisk:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEWCAYAAACaBstRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAtmElEQVR4nO3deXgV5f3+8fedhLCvEmTfBEVARQgo4oKWKloV64r7Wlyrta2ttl+7alurbdWKKO4LivtS9x0VRQRBBEEMqKxiQPad5PP7I4f+Ug3hAEkmy/26rrlyzjMzZz5HMDczz8zzKCIwMzNLR0bSBZiZWdXh0DAzs7Q5NMzMLG0ODTMzS5tDw8zM0ubQMDOztDk0zEog6S1J56VenyXp3fI+zjbu11FSSMrajn2/lDRoW/czA4eG1QCpX5JrJa0qtrROui6zqmib/5ViVkUdFRGvJV2EWVXnMw2rkSQ1lfScpHxJS1Ov26a5bzdJr0r6VtJnkk4stu5eScMlPS9ppaQPJO1SbP0PJc2QtFzSLYC+89nnSJqequllSR3SrOm41BlVz1QN1xRbN1DSvC3slyHpSkmzJC2R9KikZukc02omh4bVVBnAPUAHoD2wFrhlaztJqg+8CjwEtACGArdK6l5ss6HAH4GmQB5wbWrf5sCTwP8BzYFZwIBinz0E+A1wLJADvAM8nEZNZwPXAYMiYurWtv+OnwLHAAcBrYGlwPBt/AyrQRwaVlM8LWlZank6IpZExBMRsSYiVlL0i/2gND7nSODLiLgnIjZFxCTgCeCEYts8FRHjI2ITMArolWo/ApgWEY9HxEbgRuDrYvtdAPw1Iqan9v0L0GsrZxs/A64ABkZEXhr1f9cFwG8jYl5ErAf+ABy/PR3sVjP4L4bVFMcU79OQVA/4FzCYojMCgIaSMiOioJTP6QDsI2lZsbYs4IFi74sHwRqgQep1a2Du5hUREZLmFtu2A3CTpH8UaxPQBvhqC/VcAfwpIkq8/JSGDsBTkgqLtRUAOwPzt/MzrRpzaFhN9QtgN2CfiPhaUi9gEt/pYyjBXGBMRPxwO465EGi3+Y0kFX+f+uxrI2LUNnzmocBLkr6OiCdSbauBesW2aVnK/nOBcyJi7DYc02owX56ymqohRf0Yy1Idv79Pc7/ngF0lnS6pVmrpK2n3NPZ9Hugh6djU5Z9L+d9f6LcBV0nqASCpsaQTSvic4qZRdLY0XNLRqbbJwBGSmklqSdElrC25Dbh28yUwSTmpvhWzEjk0rKa6EagLLAbGAS+ls1Oq/+NQijq7F1B0Keo6oHYa+y6mqO/jb8ASoCswttj6p1KfNVrSCmAqcHgan/sxRX0td0g6nKJLZR8DXwKvAI+UsvtNwLPAK5JWUvTfYp+tHdNqLnkSJjMzS5fPNMzMLG0ODTMzS5tDw8zM0ubQMDOztFX75zSaN28eHTt2TLoMM7MqY+LEiYsjIqekddU+NDp27MiECROSLsPMrMqQtKURCHx5yszM0ufQMDOztDk0zMwsbQ4NMzNLm0PDzMzSVuVCQ9Lg1BSbeZKuTLoeM7OapEqFhqRMiqaiPBzoDpz8nWk2zcysHFW15zT6AXkRMRtA0mhgCPBpWR/o5tc/pzCCrAyRlZlR9DP1uk6tTBrUzqRB7Vo0qJP139eN6mZRL7uq/Sc1M0tfVfsN14Zi02UC8yhh7H9Jw4BhAO3bt9+uA902ZhZrNpQ262fJ6tbKZKcG2TRvUJvm//1Zm1ZN6tC2aT3aNq1LmyZ1qVMrc7vqMjNLUlULjbRExEhgJEBubu52TRjy6Z8GU1gYbCoMNhUWFv0sCDYVFLJuYyGr1m9KLRtZtb6AVes2sXztRpasWs+S1RtYvGo985et4+N5y/l29QYKCv+3jOYNatO2aV3aN6tHlxYN2CWnAV1aNKBj83rUznKgmFnlVNVCYz7/O6dy21RbucjIENkZInsHu34KCoNFK9Yxf9la5i1dw/yla5mXWj6as5T/TFnA5rmwMgTtmtWjS04Ddm/ViB6tG9GjdWPaNatL0ZTSZmbJqWqh8SHQVVInisJiKHBKsiVtXWaGaN2kLq2b1KVvx2bfW792QwGzF69iVv5q8r5Zxaz8VXy+aCVvzcz/7xlKwzpZdG9VFCB7tm1Mnw5NadvUQWJmFatKhUZEbJJ0CfAykAncHRHTEi5rh9XNzqRH68b0aN34f9rXbSzgs69XMm3BCqYtWM60BSt4aPxX3D22EICchrXp074pvTs0oU+HpvRo3dh9JWZWrqr9HOG5ublRnUa53VRQyMxFq/hozlI++mopE+cs5aslawDIzsygV7sm7NdlJ/bbpTm92jUhO6tK3VVtZpWApIkRkVviOodG1Ze/cj0fzVnKxK+W8v6sJUxdsJyIoju5+nZqxoBdikKkR+tGZGT4cpaZlc6hUc1D47uWr9nI+7OX8P6sxYydtYS8b1YB0LxBNgft2oJDurXggF2b06hOrYQrNbPKyKFRw0Lju75ZsY6xsxbz5ox8xszMZ/najWRliNyOTTmkW1GI7JLTwJ3qZgY4NGp8aBS3qaCQSXOX8caMb3hzxjfM+HolALvk1Ofwnq04fI+WdG/VyAFiVoM5NBwaWzR/2VremL6IF6d+zbjZSygM6LBTPQb3bMkRPVuxZ9vGDhCzGsah4dBIy5JV63nl06IAeS9vMZsKgzZN6nLUXq05tncbdt25YdIlmlkFcGg4NLbZ8jUbeXX6Ip6fsoC3P19MQWHQvVUjfrx3G47u1ZqdG9VJukQzKycODYfGDlm8aj3PT1nIU5PmM3nuMiTYb5edOKZXG47YoxX1a1epZ0TNbCscGg6NMvPF4tU8PWk+T0+ez1dL1lA/O5Oje7XmpL7t2cv9H2bVgkPDoVHmIoKP5ixl9Pi5PDdlIWs3FtCtZUOG9m3Hj/duS+N6fgbErKpyaDg0ytXKdRt59uMFPPLhXKbMW052VgZH9GzJKft0oG/Hpj77MKtiHBoOjQozbcFyHvlwLk9Nms/KdZvYvVUjztqvA0fv1Ya62R5M0awqcGg4NCrc2g0FPD15Pve99yUzvl5Jk3q1OCm3Haft24F2zeolXZ6ZlcKh4dBITEQw/otvue/9L3l52iIKI/hBt505e0BH9ttlJ1+6MquESgsN3ytp5UoS+3TeiX0678SCZWt56IM5PDx+Dq9NX0T3Vo04/6DOHLFHK2plegh3s6rAZxpW4dZtLODZyQu4/e1ZzMpfTZsmdTln/04M7dvOz3yYVQK+POXQqJQKC4M3ZnzDyLdnM/7Lb2lUJ4vT9u3AWQM60qKhnzg3S4pDw6FR6U2as5SRb8/mpWlfUysjg+P6tOWigbu409wsAaWFRqW7kCzpD5LmS5qcWo4otu4qSXmSPpN0WJJ1Wtnau31TRpzWhzd/MZATctvyxMR5HHzDW1zx2Md8uXh10uWZWUqlO9OQ9AdgVUTc8J327sDDQD+gNfAasGtEFJT2eT7TqJq+Xr6O28bM4uHxc9hYUMiQXm24+OAudGnRIOnSzKq9KnWmUYohwOiIWB8RXwB5FAWIVUMtG9fhD0f34J1fH8x5B3Tmpalf88N/jeHihz5ixtcrki7PrMaqrKFxiaQpku6W1DTV1gaYW2ybeak2q8ZaNKzDb47YnbFXHsJFA3dhzGf5DL7xHS556CNm5a9KujyzGieR0JD0mqSpJSxDgBHALkAvYCHwj+34/GGSJkiakJ+fX7bFWyKa1c/misO68e6vD+aSg7vwxoxv+OE/x/Crxz9m3tI1SZdnVmNUuj6N4iR1BJ6LiJ6SrgKIiL+m1r0M/CEi3i/tM9ynUT0tXrWeW9+cxYMffAUBp+zTnosO3sW36pqVgSrVpyGpVbG3Pwampl4/CwyVVFtSJ6ArML6i67PKoXmD2vzuqO689cuBHNenDQ+M+4qD/v4Wf3txBsvWbEi6PLNqq9KdaUh6gKJLUwF8CZwfEQtT634LnANsAn4WES9u7fN8plEzfLl4Nf96bSbPfryABrWzuOTgLpy5X0fq1PLIumbbyg/3OTRqjBlfr+DvL33GGzO+oU2Tuvxq8G4ctWdrMjI8MKJZuqrU5SmzHdGtZSPuPqsvo87bh8Z1a3HZ6Mkcc+tYxs1eknRpZtWCQ8OqpQFdmvPcT/fnHyfsRf7K9QwdOY7z7ptA3je+TddsRzg0rNrKyBDH9WnLm78cyBWH7ca42Us47Ma3ufrpqSxd7c5ys+3h0LBqr06tTC4+uAtvXTGQU/dpz0Pj5zDwhre4//0v2VRQmHR5ZlWKQ8NqjOYNavOnIT154dID6NG6Eb97ZhpH/vtd3p/l/g6zdDk0rMbZrWVDRp23DyNO7c3KdZs4+Y5xXDzqIz9ZbpYGh4bVSJI4fI9WvP6Lg7h80K68PmMRg/45hpte+5x1G0sdONmsRnNoWI1Wp1Ymlw3qyuu/GMgPdt+Zf702kx/8YwyvT1+UdGlmlZJDwwxo06Quw0/pzcM/2Zd62Zmce98Ezn9gAguWrU26NLNKxaFhVkz/XXbi+UsP4NeDuzFmZj6D/jmGO96ezUbfZWUGODTMvic7K4MLB+7Cq5cfRP/OO3HtC9M56t/vMvGrb5MuzSxxDg2zLWjXrB53npnL7af3YfnajRw34n2uenKKR9G1Gs2hYVYKSRzWoyWv/fwgfnJAJx6dMI9D/jGGZybPp7oP9mlWEoeGWRrq187itz/qznM/3Z92zepx2ejJnHufO8qt5nFomG2D3Vs14skL9+PqI7vz/qwlHPqvt3lg3FcUFvqsw2oGh4bZNsrMEOfu34lXLj+QXu2acPXTUxk6chyz8j2CrlV/Dg2z7dSuWT0eOLcf1x+/JzO+XsHhN73D8DfzfHuuVWsODbMdIIkTctvx2i8OYtDuLbj+5c8YcstYps5fnnRpZuXCoWFWBlo0rMOtp/bhttP6sHjVeo4ZPpYbX5vpsw6rdhIJDUknSJomqVBS7nfWXSUpT9Jnkg4r1j441ZYn6cqKr9ps6wb3bMkrlx/IkXu24sbXPufHt45l5qKVSZdlVmaSOtOYChwLvF28UVJ3YCjQAxgM3CopU1ImMBw4HOgOnJza1qzSaVIvmxuH7s1tp/Vm4bJ1HHnzu4x4axYFvsPKqoFEQiMipkfEZyWsGgKMjoj1EfEFkAf0Sy15ETE7IjYAo1PbmlVag3u24uXLD+SQbi247qUZnHDbe8z2HVZWxVW2Po02wNxi7+el2rbUXiJJwyRNkDQhPz+/XAo1S0fzBrUZcVpvbhrai1n5qzni5ne4Z+wXfq7DqqxyCw1Jr0maWsJS7mcIETEyInIjIjcnJ6e8D2dWKkkM6dWGVy4/kP6dd+KP//mUU+4c55kCrUrKKq8PjohB27HbfKBdsfdtU22U0m5WJezcqA53n9WXRyfM5U//+ZTDb3qHa47pyZBeWzxpNqt0KtvlqWeBoZJqS+oEdAXGAx8CXSV1kpRNUWf5swnWabZdJHFS3/a8eNmBdG3RgMtGT+ZnoyexYt3GpEszS0tSt9z+WNI8oD/wvKSXASJiGvAo8CnwEnBxRBRExCbgEuBlYDrwaGpbsyqp/U71ePT8/lw+aFf+M2Uhh9/4Dh9+6fk6rPJTdR/eOTc3NyZMmJB0GWZb9NGcpfxs9GTmLV3DRQO7cNmgrtTKrGwXAawmkTQxInJLWue/mWYJ692+KS9cdgDH9W7LLW/mcfyI9/hi8eqkyzIrkUPDrBJoUDuL60/Yi1tP7c2XS9bwo5vf4ZEP53iiJ6t0HBpmlcgRe7TipZ8dQK92Tfj1E5/w04fdSW6Vi0PDrJJp1bguD567D78avBsvTv2aI29+lynzliVdlhng0DCrlDIyxEUDu/DIsH3ZVFDIcSPe4853ZvtylSXOoWFWieV2bMYLlx3AwN1acM3z0znvvgksXb0h6bKsBnNomFVyTeplM/L0PvzhqO688/lijrj5HcZ/4Wc6LBlbDQ1JuZIul3S9pD9JOlFS04oozsyKSOKsAZ148qL9qJ2VwdCR7/Pv1z/3cOtW4bYYGpLOlvQRcBVQF/gM+AbYH3hN0n2S2ldMmWYG0LNNY5679ACO3qs1/3h1Jqff9QH5K9cnXZbVIKUNWFgPGBARa0taKakXRWNDzSmHusxsCxrUzuJfJ/Vivy7N+d0zU/nRze8w/NTe9O3YLOnSrAbY4plGRAzfUmCk1k+OiNfLpywzK40kTsxtx1MXDaB+7SyGjhzHHW/77iorf1sdGj012uxPgY7Ft4+Io8uvLDNLx+6tGvHMJQP41WNTuPaF6Uz8ail/P2FPGtWplXRpVk1tdcBCSR8DdwGfAIWb2yNiTPmWVjY8YKHVBBHBXe9+wV9fnEG7pnUZcVofdm/VKOmyrIra0QEL10XEzRHxZkSM2byUcY1mtgMkcd4BnRk9bF/WbCjgx7eO5fGJ85Iuy6qhdELjJkm/l9RfUu/NS7lXZmbbrG/HZjx/6QHs3a4pv3zsY658YgrrNhYkXZZVI+lM97oHcDpwCP//8lSk3ptZJZPTsDYPnNuPf746k1vfmsUn85dz22l9aNesXtKlWTWQTp9GHtA9Iqrk2AXu07Ca7PXpi7j8kclkZIhbTu7N/l2bJ12SVQE72qcxFWhSphWZWYX4we478+wl+9OiYW3OuPsD35ZrOyyd0GgCzJD0sqRnNy87clBJJ0iaJqlQUm6x9o6S1kqanFpuK7auj6RPJOVJulmSdqQGs5qiY/P6PHXRAAb3bMm1L0znstGTWbvB/Ry2fdLp0/h9ORx3KnAscHsJ62ZFRK8S2kcAPwE+AF4ABgMvlkNtZtVO/dpZDD+lN7e+NYsbXvmMz79ZxcjT3c9h226LoSFJUWSLt9du3mZbDxoR01P7p7W9pFZAo4gYl3p/P3AMDg2ztEni4oO70KN1Iy59eBJH3fIu/z55bw7ompN0aVaFlHZ56k1JP/3uoISSsiUdIuk+4MxyqKmTpEmSxkg6INXWBih+0/m8VFuJJA2TNEHShPz8/HIo0azqGrhbC569ZH92bliHM+8ez+1jZrmfw9JWWmgMBgqAhyUtkPSppC+Az4GTgRsj4t4t7SzpNUlTS1iGlHLMhUD7iNgb+DnwkKRtfqw1IkZGRG5E5Obk+F9RZt/VsXl9nrxoPwb3bMlfX5zBTx+exJoNm5Iuy6qALV6eioh1wK3ArZJqAc2BtRGxLJ0PjohB21pMRKwH1qdeT5Q0C9gVmA+0LbZp21SbmW2nzf0ct42Zzd9fnsGs/NXccUYf2jZ1P4dtWVoz90XExohYmG5gbC9JOZIyU687UzT0+uyIWAiskLRv6q6pM4BnyrMWs5pAEhcO3IV7zurLvG/XcMzwsUz8yrMC2pYlMt2rpB9Lmgf0B56X9HJq1YHAFEmTgceBCyJi89/gi4A7gTxgFu4ENyszA3drwVMX70eD2lmcPPIDj1tlW7TVJ8KrOj8Rbpa+ZWs2cNGoj3hv1hLOP7AzvxrcjcwMPxJV0+zoE+FmVkM0qZfNfef04/R9O3D727P5yf0TWLluY9JlWSWy1dCQtFLSiu8scyU9lep3MLNqpFZmBn8+pid/HtKDMTPzOW7Ee8xZsibpsqySSOdM40bgCoqei2gL/BJ4CBgN3F1ulZlZok7v35H7z+nHohXrGTL8XcbNXpJ0SVYJpBMaR0fE7RGxMiJWRMRI4LCIeARoWs71mVmCBnRpztMXD6Bp/WxOu/MDHh4/J+mSLGHphMYaSSdKykgtJwLrUuuqdy+6mdEpNeDhfl2ac9WTn3DNc59SUOj/9WuqdELjVIomYfoGWJR6fZqkusAl5VibmVUSjevW4u4zczlrv47c+e4XXPjgRD9BXkP5llsz2yb3jP2CPz/3KT1aN+auM3Np0ahO0iVZGSvtltutDo0uKYeiIck7Ft8+Is4pqwLNrOo4e0An2jerx08fnsQxw8dy99l96dZym4eIsyoqnctTzwCNgdeA54stZlZD/WD3nXn0/P4URHD8iPcZM9OjSdcU6YRGvYj4dUQ8GhFPbF7KvTIzq9R6tmnM0xcPoF2zepxz74eM+uCrpEuyCpBOaDwn6Yhyr8TMqpxWjevy2AX9ObBrc3771FT+8sJ0Cn1nVbWWTmhcRlFwrE09Db5S0oryLszMqoYGtbO444xczuzfgZFvz+bCURM9B3k1ttXQiIiGEZEREXUjolHqvXu9zOy/sjIz+OOQnvz+qO688ukiho58n/yV65Muy8rBFkNDUrfUz94lLRVXoplVFWcP6MTI03OZuWgVx414j9n5q5IuycrYFp/TkDQyIoZJerOE1RERh5RvaWXDz2mYVbzJc5dxzr0fEhHcdVZferf3iENVSWnPafjhPjMrF18uXs2Z94xn0Yp13HJybwZ13znpkixNOzyfhqT9JJ0i6YzNS9mWaGbVTcfm9Xniwv3YbeeGDHtggm/JrSbSmU/jAeAGYH+gb2opMYHMzIpr3qA2Dw/bl4N2zeG3T03lH698RnW/ulHdbXUYEYoConv4T9rMtkO97KJbcv/v6an8+408Fi5fx1+P3YNamZ44tCpK509tKtCyLA8q6XpJMyRNSc0A2KTYuqsk5Un6TNJhxdoHp9ryJF1ZlvWYWfnKyszgr8fuweWDduXxifM4974JrFrvUXKronRCoznwqaSXJT27ednB474K9IyIPYGZwFUAkroDQ4EewGDgVkmZkjKB4cDhQHfg5NS2ZlZFSOKyQV257rg9GJu3mKEj3+ebleu2vqNVKulcnvpDWR80Il4p9nYccHzq9RBgdESsB76QlAf0S63Li4jZAJJGp7b9tKxrM7PydVLf9rRoWIeLRn3Esbe+x/3n9KNzToOky7I0pTtg4ZjiC7B7GdZwDvBi6nUbYG6xdfNSbVtqL5GkYZImSJqQn+/RN80qm4O7tWD0sH1Zu6GAE257n0/mLU+6JEtTOqFxtaT/Psgn6VcU/Su/VJJekzS1hGVIsW1+C2wCRm1P8VsSESMjIjcicnNycsryo82sjOzVrgmPXdCfOrUyOfmOcbyXtzjpkiwN6YTG0cBfJB0g6VpgH9IIjYgYFBE9S1ieAZB0FnAkcGqxO7PmA+2KfUzbVNuW2s2sCuuc04AnLtyP1k3qcNY9H/LiJwuTLsm2Ip0BCxdTFBzDgdbA8RGxYUcOKmkw8Cvg6IhYU2zVs8BQSbUldQK6AuOBD4GukjpJyqaos3xHO+PNrBJo2bgOj57fnz3aNubihz7ioQ/mJF2SlWKLHeGSVgLFn83IBjoDx0uKHRzp9hagNvCqJIBxEXFBREyT9ChFHdybgIsjoiBVzyXAy0AmcHdETNuB45tZJdKkXjYPnrsPF42ayG+e+oRvV6/n4oO7kPr9YJWIx54ys0pjY0Ehv3p8Ck9Nms/ZAzpy9Y+6k5Hh4KhopY09tdVbblUU9acCnSLiz5LaAa0iYnwZ12lmNVytzAz+ccJeNK2Xzd1jv2Dp6g1cf8Jefnq8EknnT+JWoD9wSur9Kor6N8zMylxGhrj6yN254rDdeHryAn5y/wTWbPDT45VFOqGxT0RcDKwDiIilFPVvmJmVC0lcfHAX/nrsHrw9M5/T7vyAZWt26P4bKyPphMbG1DAeASApBygs16rMzICT+7Xn1lN7M3X+Ck66fZyHHakE0gmNm4GngBap5zTeBf5SrlWZmaUM7tmKe87uy9ylazjxtveZt3TN1neyclNqaEjKAL6g6JmKvwILgWMi4rEKqM3MDIABXZrzwLn7sGT1Bk687X3PPZ6gUkMjIgqB4RExIyKGR8QtETG9gmozM/uvPh2aMnrYvqzfVMiJt7/P9IUrki6pRkrn8tTrko6Tn7Ixs4T1aN2YR87vT63MDE66/X0mzVmadEk1TjqhcT7wGLBe0gpJKyU54s0sEV1aNODR8/vTtH42p975Ae/N8kCHFSmdsacaRkRGRGRHRKPU+x0ZQsTMbIe0a1aPx87vT9umdTnrng95ffqipEuqMbYaGpJeT6fNzKwitWhUh0eG9adby4ac/8BE/vPxgqRLqhG2GBqS6khqBjSX1FRSs9TSkVImQDIzqyhN62cz6rx96N2+KZeOnsTo8R4ht7yVdqZxPjAR6Jb6uXl5hqJRas3MEtewTi3uO6cfB3bN4conP+HOd2YnXVK1tsXQiIibIqIT8MuI6BwRnVLLXhHh0DCzSqNudiZ3nJHL4T1bcs3z07nljc+TLqnaSufuqa8lNQSQ9H+SnpTUu5zrMjPbJtlZGfz75L358d5tuOGVmfzz1ZlU96kfkpDWHOERsVLS/sAg4C5gRPmWZWa27bIyM7jhhL04oU9bbn79c6576TMHRxnb6nwaQEHq54+AkRHxvKRryrEmM7PtlpkhrjtuT7KzMrhtzCw2bCrk6iN39yyAZSSd0Jgv6Xbgh8B1kmqT3hmKmVkiMjLENcf0pFZmBneP/YKNBYX88egengWwDKTzy/9EiubmPiwilgHNgCt25KCSrpc0Q9IUSU9JapJq7yhpraTJqeW2Yvv0kfSJpDxJN3tYEzMrjSR+f1R3zj+wMw+M+4rfPPUJhYW+VLWjtnqmERFrgCeLvV9I0Wi3O+JV4KqI2CTpOuAq4NepdbMiolcJ+4wAfgJ8ALwADAZe3ME6zKwak8SVh3cr6iR/I48NBYVcf/xeZPqMY7ulc3mqzEXEK8XejgOOL217Sa2ARhExLvX+fuAYHBpmthWS+MWhu1ErM4N/vjqTjQXBP0/0vOPbK5HQ+I5zgEeKve8kaRKwAvi/iHiHoifQ5xXbZh6lPJUuaRgwDKB9+/ZlXrCZVT2X/qAr2VkZ/O3FGWzcVMjNJ+9NdpaDY1uV238xSa9JmlrCMqTYNr8FNgGjUk0LgfYRsTfwc+AhSds8OGJEjIyI3IjIzcnJKYuvY2bVwAUH7cLVR3bnpWlfc9GoiazfVLD1nex/lNuZRkQMKm29pLOAI4EfROpG6ohYD6xPvZ4oaRawKzAfaFts97apNjOzbXLu/p3Izsrg6qenMuz+idx+eh/q1MpMuqwqI5FzM0mDKZpC9uhUR/vm9hxJmanXnYGuwOxU5/sKSfum7po6g6IxsMzMttnp+3bguuP24O3P8xn2wETWbfQZR7qSuqB3C9AQePU7t9YeCEyRNBl4HLggIr5NrbsIuBPIA2bhTnAz2wEn9W3PdcfuyTsOjm2i6v6IfW5ubkyYMCHpMsysknr0w7n8+skpHNg1x5eqUiRNjIjcktb51gEzq9FO7NuO647dkzEz8znfZxxb5dAwsxrvxL7tuO64PRgzM58LHnRwlMahYWZGqo/juD146zMHR2kcGmZmKQ6OrXNomJkVc1Lf9vzt2KLguNDB8T0ODTOz7xjaryg43kwFh58c//8cGmZmJRjarz1/TQXHBQ84ODZzaJiZbcHJDo7vcWiYmZWieHBc8tAkNhYUJl1SohwaZmZbcXK/9vxpSA9e/XQRPxs9mU01ODgqw3waZmaV3hn9O7JhUyHXPD+dWpniHyf2qpEzADo0zMzSdN4BndlQUMjfX/qMWpkZXHfcnmTUsOBwaJiZbYOLBnZh/cZCbnr9c7KzMrjmmJ4UzdhQMzg0zMy20c8GdWVDQSEj3ppFdlYGvzuye40JDoeGmdk2ksSvDtuN9RsLuXvsF2RnZXDl4G41IjgcGmZm20ESVx+5OxsLCrl9zGxqZ2bw80N3S7qscufQMDPbTpL449E92LCpkJvfyCM7K4NLDumadFnlyqFhZrYDMjLEX47dg40FhdzwykxqZ2XykwM7J11WuUns4T5Jf5Y0JTVH+CuSWqfaJelmSXmp9b2L7XOmpM9Ty5lJ1W5mVlxmhvj78Xvyoz1bce0L07l37BdJl1Ruknwi/PqI2DMiegHPAb9LtR8OdE0tw4ARAJKaAb8H9gH6Ab+X1LSiizYzK0lWZgY3ntSLQ7vvzB/+8ykPj5+TdEnlIrHQiIgVxd7WByL1eghwfxQZBzSR1Ao4DHg1Ir6NiKXAq8DgCi3azKwUtTIz+PcpezNwtxx+89QnPDN5ftIllblEx56SdK2kucCp/P8zjTbA3GKbzUu1bandzKzSqJ2VyW2n9aFfx2b8/NGPefXTRUmXVKbKNTQkvSZpagnLEICI+G1EtANGAZeU4XGHSZogaUJ+fn5ZfayZWVrq1MrkzjNz6dm6ERc/9BFj8xYnXVKZKdfQiIhBEdGzhOWZ72w6Cjgu9Xo+0K7Yurapti21l3TckRGRGxG5OTk5ZfNlzMy2QcM6tbjvnH502qk+P7l/AhO/Wpp0SWUiybunit/MPASYkXr9LHBG6i6qfYHlEbEQeBk4VFLTVAf4oak2M7NKqUm9bB44rx8tGtbmrHvGM23B8qRL2mFJ9mn8LXWpagpFAXBZqv0FYDaQB9wBXAQQEd8CfwY+TC1/SrWZmVVaLRrW4cHz9qFh7SzOuGs8ed+sSrqkHaKI2PpWVVhubm5MmDAh6TLMrIabnb+KE28fR1aGeOyC/rRrVi/pkrZI0sSIyC1pnWfuMzOrAJ1zGvDAuf1Yu7GAU+/8gEUr1iVd0nZxaJiZVZDdWzXi3rP7smTVek678wO+Xb0h6ZK2mUPDzKwC7d2+KXee2Zc5367hzLvHs2LdxqRL2iYODTOzCtZ/l50YcVpvpi9cwbn3fsiaDZuSLiltDg0zswQc0m1nbhq6NxO/Wsr5D0xk/aaCpEtKi0PDzCwhP9qzFX87dk/e+Xwxlz8ymYLCyn83q+fTMDNL0Il927Fi3UaueX46jetO5S8/7lmpp411aJiZJey8Azrz7eoN3PrWLJrVr8UVh3VLuqQtcmiYmVUCVxy2G0vXbGT4m7NoWi+b8w6onLP/OTTMzCoBSVxzTE+Wr93ANc9Pp0m9bI7v0zbpsr7HoWFmVklkZoh/ndSLFWsn8OsnptCoThaH9miZdFn/w3dPmZlVIrWzMrn99D70bNOYSx6exLjZS5Iu6X84NMzMKpn6tbO456y+tG9Wj/Pum8DU+ZVnSHWHhplZJdSsfjYPnNuPxnVrcebd45mdXzmGVHdomJlVUq0a1+WBc/sBcPpd41m4fG3CFTk0zMwqtc45Dbj37H4sX7uRM+4az9KER8Z1aJiZVXJ7tG3MHWfk8tW3azj73g9ZvT65AQ4dGmZmVUD/XXbi3yfvzZR5y7jgwYls2FSYSB0ODTOzKuKwHi3523FFAxz+4rGPKUxggMNEQkPSnyVNkTRZ0iuSWqfaB0panmqfLOl3xfYZLOkzSXmSrkyibjOzpJ2Y245fD+7Gfz5ewJ+f/5SIig2OpJ4Ivz4irgaQdCnwO+CC1Lp3IuLI4htLygSGAz8E5gEfSno2Ij6twJrNzCqFCw7qzDcr13HP2C9p0bAOFw7cpcKOnUhoRMSKYm/rA1uLyn5AXkTMBpA0GhgCODTMrMaRxNU/6s6SVRu47qUZNG+QzQm57Srk2ImNPSXpWuAMYDlwcLFV/SV9DCwAfhkR04A2wNxi28wD9inls4cBwwDat29fxpWbmSUvI0PccMJefLt6A1c++Qk7NcjmkG47l/9xy+uDJb0maWoJyxCAiPhtRLQDRgGXpHb7COgQEXsB/wae3p5jR8TIiMiNiNycnJwy+DZmZpVPdlYGt53eh91bNeSiUR/x0Zyl5X7McguNiBgUET1LWJ75zqajgONS+6yIiFWp1y8AtSQ1B+YDxc+92qbazMxqtAa1s7jnrH7s3KgO59z7IXnfrCzX4yV191TXYm+HADNS7S2VmudQUj+K6lsCfAh0ldRJUjYwFHi2Yqs2M6ucchrW5v5z+pGVIc64azxfL19XbsdK6jmNv6UuVU0BDgUuS7UfD0xN9WncDAyNIpsouoT1MjAdeDTV12FmZkCHner/d7iRM+8ez/I1G8vlOKroe3wrWm5ubkyYMCHpMszMKsTYvMWcdc949m7XlPvP7UedWpnb/BmSJkZEbknr/ES4mVk1MqBLc/55Yi8659QnK0Nl/vme7tXMrJo5aq/WHLVX63L5bJ9pmJlZ2hwaZmaWNoeGmZmlzaFhZmZpc2iYmVnaHBpmZpY2h4aZmaXNoWFmZmmr9sOISMoHvtrO3ZsDi8uwnKrA37n6q2nfF/ydt1WHiChxXolqHxo7QtKELY2/Ul35O1d/Ne37gr9zWfLlKTMzS5tDw8zM0ubQKN3IpAtIgL9z9VfTvi/4O5cZ92mYmVnafKZhZmZpc2iYmVnaHBolkDRY0meS8iRdmXQ95U1SO0lvSvpU0jRJl219r+pBUqakSZKeS7qWiiCpiaTHJc2QNF1S/6RrKm+SLk/9vZ4q6WFJdZKuqaxJulvSN5KmFmtrJulVSZ+nfjYti2M5NL5DUiYwHDgc6A6cLKl7slWVu03ALyKiO7AvcHEN+M6bXQZMT7qICnQT8FJEdAP2opp/d0ltgEuB3IjoCWQCQ5OtqlzcCwz+TtuVwOsR0RV4PfV+hzk0vq8fkBcRsyNiAzAaGJJwTeUqIhZGxEep1ysp+kXSJtmqyp+ktsCPgDuTrqUiSGoMHAjcBRARGyJiWaJFVYwsoK6kLKAesCDhespcRLwNfPud5iHAfanX9wHHlMWxHBrf1waYW+z9PGrAL9DNJHUE9gY+SLiUinAj8CugMOE6KkonIB+4J3VJ7k5J9ZMuqjxFxHzgBmAOsBBYHhGvJFtVhdk5IhamXn8N7FwWH+rQsP+S1AB4AvhZRKxIup7yJOlI4JuImJh0LRUoC+gNjIiIvYHVlNEli8oqdR1/CEWB2RqoL+m0ZKuqeFH0bEWZPF/h0Pi++UC7Yu/bptqqNUm1KAqMURHxZNL1VIABwNGSvqToEuQhkh5MtqRyNw+YFxGbzyIfpyhEqrNBwBcRkR8RG4Engf0SrqmiLJLUCiD185uy+FCHxvd9CHSV1ElSNkWdZs8mXFO5kiSKrnNPj4h/Jl1PRYiIqyKibUR0pOjP+I2IqNb/Ao2Ir4G5knZLNf0A+DTBkirCHGBfSfVSf89/QDXv/C/mWeDM1OszgWfK4kOzyuJDqpOI2CTpEuBliu60uDsipiVcVnkbAJwOfCJpcqrtNxHxQnIlWTn5KTAq9Q+i2cDZCddTriLiA0mPAx9RdJfgJKrhkCKSHgYGAs0lzQN+D/wNeFTSuRRND3FimRzLw4iYmVm6fHnKzMzS5tAwM7O0OTTMzCxtDg0zM0ubQ8PMzNLm0DDbTpJ2kjQ5tXwtaX7q9SpJt25hny8lNS+hXZLekNSolOONltS1LL+D2bbycxpm2ykilgC9ACT9AVgVETds58cdAXy8leFbRlA0VtZPtvMYZjvMZxpmZUzSwM3zc6TORl5JzedwJ6At7HYqqSd2JdWX9Lykj1NzQJyU2uYdYFBqtFazRDg0zMrX74F3I6IH8BTQfgvbDQA2D544GFgQEXul5oB4CSAiCoE8iubBMEuEQ8OsfB0IPAgQEc8DS7ewXbPUXCYAnwA/lHSdpAMiYnmx7b6haLRWs0Q4NMwqh02SMgAiYiZFo89+Alwj6XfFtqsDrE2gPjPAoWFW3t4GTgGQdDiwpXmaPwM6p7ZrDayJiAeB6/nf4ct3BaZ+f3eziuEONbPy9UfgYUnTgPcoGqq7JM9TNEppHrAHcL2kQmAjcCGApJ2Btakhzs0S4VFuzSqB1CQ590fED0vZ5nJgRUTcVXGVmf0vX54yqwRScznfUdrDfcAy4L6KqcisZD7TMDOztPlMw8zM0ubQMDOztDk0zMwsbQ4NMzNLm0PDzMzS9v8AZbsL6EW0vKgAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "# Konstanter\n",
+ "k = 0.1 # Luftmotstand\n",
+ "g = 9.81 # Tyngdeakselerasjon i m/s^2\n",
+ "m = 1 # Masse i kg\n",
+ "v0 = 0 # Starthastighet i m/s\n",
+ "s0 = 0 # Startposisjon i m\n",
+ "\n",
+ "# Tidsvariabler\n",
+ "dt = 1E-5 # Tidsintervall i s\n",
+ "tid_start = 0\n",
+ "tid_slutt = 10\n",
+ "N = int((tid_slutt-tid_start)/dt) + 1 # Antall punkter\n",
+ "\n",
+ "# Arrayer\n",
+ "t = np.zeros(N)\n",
+ "a = np.zeros(N)\n",
+ "v = np.zeros(N)\n",
+ "s = np.zeros(N)\n",
+ "\n",
+ "# Startverdier\n",
+ "t[0] = tid_start\n",
+ "v[0] = v0\n",
+ "s[0] = s0\n",
+ "\n",
+ "for i in range(N-1):\n",
+ " a[i] = - g - k*v[i]/m\n",
+ " v[i+1] = v[i] + a[i]*dt\n",
+ " s[i+1] = s[i] + v[i]*dt + 0.5*a[i]*dt**2\n",
+ " t[i+1] = t[i] + dt\n",
+ "\n",
+ "plt.plot(t,s)\n",
+ "plt.title('Fallende kule')\n",
+ "plt.xlabel('Tid (s)')\n",
+ "plt.ylabel('strekning (m)')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Studer programmet ovenfor og forklar hvordan det fungerer linje for linje. Test programmet med andre modeller for luftmotstand. Vurder de ulike modellene opp mot hverandre.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ODE-løsere\n",
+ "La oss se nå se på hvordan vi kan løse differensiallikninger med funksjoner fra scipy-biblioteket. De differensiallikningene vi har sett på, kaller vi for _ODE-er_ (ordinary differential equations) for å skille dem fra _PDE-er_ (partial differential equations). Vi skal ikke se på partielle differensiallikninger her, men mange av prinsippene for å løse dem er like som for ODE-er. Vi kommer til å bruke ODE som forkortelse videre.\n",
+ "\n",
+ "Vi starter med enkle differensiallikninger for å illustrere de grunnleggende prinsippene. En enkel differensiallikning vi kan begynne med, er:\n",
+ "\n",
+ "$$y' = t - y$$\n",
+ "\n",
+ "Denne kan vi ganske enkelt definere som en funksjon og løse med en annen funksjon som heter _solve\\_ivp_ (\"solve initial value problem\")."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "from scipy.integrate import solve_ivp\n",
+ "\n",
+ "def dy_dt(t, y):\n",
+ " return t - y\n",
+ "\n",
+ "a = 0\n",
+ "b = 4\n",
+ "t = np.linspace(a,b,1000)\n",
+ "y0 = 1\n",
+ "y_int = solve_ivp(dy_dt, [a,b], [1], t_eval=t)\n",
+ "\n",
+ "plt.xlabel(\"t\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.plot(y_int.t, y_int.y[0])\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi definerer her et sett med t-verdier slik at vi får et intervall å integrere over. Dernest er det viktig å ha en startbetingelse for $y$ (husk: vi trenger den forrige $y$-verdien for å finne den neste). Funksjonen _solve\\_ivp_ er en generell løser for differensiallikninger og tar som første parameter en funksjon av typen $f(t,y)$ – legg merke til rekkefølgen på parameterne. Deretter legger vi inn tidsintervallet som vi skal integrere over. Dette legges inn som en liste.\n",
+ "\n",
+ "Etter tidsintervallet legges startbetingelsene inn. Siden _solve\\_ivp_ er en løser som kan løse systemer av differensiallikninger, må vi lage startbetingelsen som en liste. Deretter har vi en del valgfrie parametre. Vi har brukt parameteren _t\\_eval_ her fordi den sier hvilke $t$-verdier vi skal regne ut $y$-verdier for. Hvis vi ikke gjør dette, får vi integralet kun evaluert i noen få punkter. Det kan være greit hvis vi for eksempel bare ønsker sluttverdien, men ikke hvis vi ønsker å plotte resultatene.\n",
+ "\n",
+ "Dersom du prøver å printe ut resultatene fra _solve\\_ivp_, får du mye ulik informasjon. Derfor henter vi ut spesifikke _t-_ og _y-_verdier ved å skrive _y_int2.t_, som henter ut tidsverdiene, og _y_int2.y[0]_, som henter ut _y_-verdiene. Legg merke til at $y$ kan inneholde flere elementer ettersom vi kan løse systemer av differensiallikninger. Her må vi eksplisitt be om det første elementet (element 0 med Python-språk), selv om arrayen ikke inneholder flere $y$-verdier.\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Løs differensiallikningen $f'(t) = \\cos(t)$ med $f(t_0) = 0$ med _solve\\_ivp_ fra $t=0$ til $t=\\pi$. Plott den analytiske løsningen $f(t) = \\sin(t)$ i samme koordinatsystem for å sammenlikne.\n",
+ "```\n",
+ "\n",
+ "Algoritmene som brukes i slike biblioteker, er ofte sammensatte algoritmer som benytter seg av flere prinsipper enn en enkelt metode. Som standard benytter _solve\\_ivp_ seg av en blanding av Runge-Kutta 4 og Runge-Kutta 5, kalt RK45. Dette er gode \"go to\"-metoder."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Oppgaver\n",
+ "\n",
+ "```{admonition} Oppgave 1\n",
+ ":class: tip\n",
+ "Utled Eulers metode og skriv et program for hånd som implementerer denne metoden.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 2\n",
+ ":class: tip\n",
+ "Løs differensiallikningene nedenfor med Eulers metode (og analytisk hvis du får til). Bruk initialbetingelse $f(0) = 0$, og velg løsningsområde/løsningsintervall selv.\n",
+ "1. $f'(x) = 1$\n",
+ "2. $f'(x) = x$\n",
+ "3. $f'(x) = 4 + 3\\cdot f(x)$\n",
+ "4. $y' + 4y + 3x = 0$\n",
+ "5. $xy' + y = 3x^2 + 4x$\n",
+ "6. $f'(x) = x + y^2$\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 3\n",
+ ":class: tip\n",
+ "Hvorfor må vi ha initialbetingelser for å løse en differensiallikning numerisk?\n",
+ "```\n",
+ "\n",
+ "````{admonition} Oppgave 4\n",
+ ":class: tip\n",
+ "Det er alltids fint å ha definert funksjoner i et program -- da kan du gjenbruke dem i andre programmer!\n",
+ "a. Skriv et program der Eulers metode er definert som en funksjon. Funksjonen skal ta inn som argument _yder_, som antas å være en funksjon av to variable $x$ og $y$. Funksjonen skal også ta inn en initialbetingelse _y0_, startverdien og sluttverdien til _x_ og steglengden _dt_. Funksjonene skal så returnere resultatene, altså lister eller arrayer med verdier av _y_ og _x_. __Tips:__ For at en funksjon skal returnere to verdier, kan du skrive _return x,y_.\n",
+ "\t\n",
+ "b. Bruk funksjonen til å løse likninga $y'(x) = -\\dfrac{xy}{x^2+1}$ der $y(0) = 1$ og $x \\in [0,7]$.\n",
+ "__Tips:__ Funksjonen returnerer to verdier:_y_ og _x_. Du kan hente to eller flere verdier fra en funksjon, ved å gjøre slik:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "x, y = # Her kaller du på funksjonen din med riktige parametre\n",
+ "```\n",
+ "Da vil variabelen _x_ settes til å være lik den returnerte verdien for _x_, og variabelen _y_ settes til å være lik den returnerte verdien for _y_. \n",
+ "\t\n",
+ "c. Plott resultatet ditt sammen med den analytiske løsninga for å se om funksjonen din er implementert riktig:\n",
+ "\n",
+ "$$y(x) = \\frac{1}{\\sqrt{x^2 + 1}}$$\n",
+ "````\n",
+ "\n",
+ "````{admonition} Oppgave 5\n",
+ ":class: tip\n",
+ "Programmet under løser likninga $f'(x) = 2f(x)$ der $f(0) = 2$ for $x\\in[0,1]$:\n",
+ "\n",
+ "```{code-block} Python\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "N = 1000\n",
+ "a = 0\n",
+ "b = 1\n",
+ "x = np.linspace(a,b,N)\n",
+ "dx = x[1]-x[0]\n",
+ "\n",
+ "fder = np.zeros(N)\n",
+ "f = np.zeros(N)\n",
+ "\n",
+ "f[0] = 2\n",
+ "for i in range(N-1):\n",
+ "\tfder[i] = 2*f[i]\n",
+ "\tf[i+1] = f[i] + dx*fder[i]\n",
+ "plot(x,f)\n",
+ "xlabel(\"x\")\n",
+ "ylabel(\"f(x)\")\n",
+ "title(\"Plott av f(x)\")\n",
+ "show()\n",
+ "```\n",
+ "````\n",
+ "\n",
+ "```{admonition} Oppgave 6\n",
+ ":class: tip\n",
+ "Kari begynner med å ha en årsinntekt på $I(0) = 500 000$ kroner og har nylig oppretta en sparekonto. Hun har derfor $S(0) = 0$ kroner i sparekontoen.\n",
+ "\n",
+ "Vi velger å prøve ut følgende modeller for forandringen i inntekten hennes $I'(t)$ og sparekontoen hennes $S'(t)$:\n",
+ "\n",
+ "$$I'(t) = I(0) \\cdot \\ln(1.006)\\cdot 1.006^t$$\n",
+ "$$S'(t) = 0.01\\cdot I(t)$$\n",
+ "\n",
+ "Lag et program som finner ut hvordan $S(t)$ vil utvikle seg i løpet av 15 år. Visualiser resultatet.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 7\n",
+ ":class: tip\n",
+ "Lag et program som regner ut posisjon, hastighet og akselerasjon til et legeme som faller. Bruk luftmotstandskoeffisienten 0.1 og masse 1 kg.\n",
+ "\n",
+ "a. Benytt først en enkel modell uten luftmotstand, det vil si kun fritt fall.\n",
+ "\n",
+ "b. Legg inn luftmotstand og plott i samme koordinatsystem som beregninga uten luftmotstand. Sammenlikn resultatene og kommenter svaret.\n",
+ "\n",
+ "c. Varier systematisk massen og luftmotstandskoeffisienten og se hva dette gjør med resultatene.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 8\n",
+ ":class: tip\n",
+ "Lag et program som modellerer en fiskepopulasjon. Du kan selv bestemme modellen du bruker og initialbetingelsene. Forklar hvorfor du brukte akkurat denne modellen.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 9\n",
+ ":class: tip\n",
+ "Newtons avkjølingslov forteller oss at temperaturen $T(t)$ etter ei tid $t$ til et objekt i en omgivelse forandrer seg på følgende måte:\n",
+ "\n",
+ "$$T(t) = -k(T(t) - T_o)$$\n",
+ "\n",
+ "der $k$ er er en konstant som forteller hvor raskt temperaturen forandrer seg og $T_o$ representerer temperaturen til omgivelsen objektet befinner seg i. \n",
+ "\n",
+ "a. Et varmeanlegg i en bil påvirker innetemperaturen $T(t)$ i bilen. Temperaturen inni bilen kan uttrykkes ved:\n",
+ "\n",
+ "$$T'(t) = -0.16(T(t) - 20)$$\n",
+ "\n",
+ "der $T(0) = 7^oC$. \n",
+ "\t\n",
+ "Lag et program som bruker Eulers metode til å finne funksjonsverdiene til $T(t)$ for $t \\in [0, 30]$. Plott resultatene.\n",
+ "\t\n",
+ "b. Som du kanskje så i deloppgave _a_, tar det fryktelig lang tid før temperaturen i bilen når vanlig romtemperatur som ligger på $20^oC$. Du finner derfor en som prøver å fikse på varmeanlegget billigst mulig. Uheldigvis greier personen å gjøre varmeanlegget verre. Etter noen målinger finner du at temperaturen forandrer seg på følgende måte:\n",
+ "\n",
+ "$$T'(t) = -0.16(T(t) - T_o(t))$$\n",
+ "\n",
+ "der $T_o(t) = 5\\cdot\\cos\\left(\\frac{\\pi^2}{15}\\cdot t\\right) + 19$\n",
+ "\n",
+ "Utvid programmet ditt slik at det plotter bilens temperatur med det (enda mer) ødelagte varmeanlegget. Sammenlikn utfallene.\n",
+ "```\n",
+ "\n",
+ "```{admonition} Oppgave 10\n",
+ ":class: tip\n",
+ "Arne skal på familiemiddag og har lovet familien sin å ta med sin smakfulle tilberedelse av en kalkun. Fem timer før middagen kommer han plutselig på middagsavtalen. Uheldigvis bruker han vanligvis fire timer på å kjøre til familien hvis han kjører omtrent 80 km i timen.\n",
+ "\n",
+ "Problemet er at kalkunen må være i en ovn på 180$^o$C i tre timer for å bli spiseklar. Han veit at under panseret på bilen kan det bli varmere enn dette. Han bestemmer seg derfor for å prøve å tilberede kalkunen under panseret mens han kjører. \n",
+ "\n",
+ "Arne har lagd følgende modell for temperaturen under panseret etter ei tid $t$:\n",
+ "\n",
+ "$$T_o(t) = 35\\log(v(t)+1)+0.4v(t)\\sin(2\\pi p\\cdot t) + 37.7$$\n",
+ "\n",
+ "der $v(t)$ er farten til bilen og $p$ er et tilfeldig flyttall mellom 1 og 2. Verdien til $p$ forandrer seg for hver tid $t$\n",
+ "\n",
+ "Fra Newtons avkjølingslov vil temperaturen $T(t)$ til kalkunen forandre seg på følgende måte:\n",
+ "\n",
+ "$$T'(t) = -4\\cdot(T(t) - T_o(t))$$\n",
+ "\n",
+ "Akselerasjonen $a(t)$ til bilen etter ei tid $t$ vil følge modellen\n",
+ "\n",
+ "$$a(t) = 2000e^{-500t^2}$$\n",
+ "\n",
+ "Lag et program som finner kalkunens temperatur etter fire timer under panseret. Plott temperaturen og forklar ut fra plottet om kalkunen vil være spiseklar eller ikke etter kjøreturen (I episoden _Food Fables_ fra Mythbusters kan du se at dette faktisk er mulig!).\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Videoer\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema5_modellering/diskret_modellering.ipynb b/_sources/docs/tema5_modellering/diskret_modellering.ipynb
new file mode 100644
index 00000000..86d5aec1
--- /dev/null
+++ b/_sources/docs/tema5_modellering/diskret_modellering.ipynb
@@ -0,0 +1,133 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Modellering\n",
+ "\n",
+ "```{epigraph}\n",
+ "Kun virkeligheten er virkeligheten i seg selv.\n",
+ "\n",
+ "-- Andreas Haraldsrud (og sikkert mange andre også)\n",
+ "```\n",
+ "\n",
+ "Når vi mennesker skal beskrive virkeligheten, lager vi en modell som beskriver noe, men ikke alt, om det vi observerer. Hver modell har sine styrker og svakheter, og ingen modeller representerer virkeligheten eksakt. Modeller er _bare_ forenklinger, men dette er egentlig en nødvendighet for å kunne systematisere virkeligheten. Som sagt er virkeligheten for kompleks til å representeres eksakt. \n",
+ "\n",
+ "Se på bildene nedenfor. Hva viser bildene?\n",
+ "\n",
+ "```{tabbed} Bilde 1\n",
+ "\n",
+ "```\n",
+ "```{tabbed} Bilde 2\n",
+ "\n",
+ "```\n",
+ "```{tabbed} Bilde 3\n",
+ "\n",
+ "```\n",
+ "```{tabbed} Bilde 4\n",
+ "\n",
+ "```\n",
+ "\n",
+ "```{admonition} Hva viser bildene?\n",
+ ":class: tip, dropdown\n",
+ "Det er ikke et enkelt fasitsvar her. Bildene er _representasjoner_ av noe. Du ser for eksempel ikke en motorsykkel eller et atom, men en representasjon av begge. Du kan si noe om den faktiske virkeligheten med hver av disse representasjonene, men du kan ikke si alt. Dette er altså modeller som kan fortelle oss om utvalgte ting ved virkeligheten.\n",
+ "```\n",
+ "\n",
+ "For hver enkelt modell er det viktig å være oppmerksom på begrensningene og forutsetningene som gjelder. Dette er enklere å bli bevisst på når vi lager og/eller utforsker modellene selv, og dette er lettere å få til med programmering. Programmering er et viktig verktøy for å forstå og utforske matematiske modeller, og på den måten få bedre innsikt i et naturvitenskapelig problem.\n",
+ "\n",
+ "En modelleringsprosess innebærer flere trinn. For det første må vi ha en observasjon eller et fenomen vi ønsker å studere. Ut fra visse egenskaper ved dette systemet lager vi en modell som skal beskrive systemet under visse betingelser. En modell er en forenklet representasjon av virkeligheten. Denne modellen kan vi teste, for eksempel gjennom eksperimenter eller simuleringer. Da får vi data som vi kan bruke til å evaluere modellens gyldighet. Deretter kan vi eventuelt justere modellen og gjøre nye simuleringer og målinger.\n",
+ "\n",
+ "Modellering er altså en kontinuerlig prosess der modeller hele tiden evalueres og justeres opp mot virkeligheten. Programmering kan gjøre denne prosessen enklere fordi vi med noen tastetrykk kan endre modellen og observere utfallet av dette. \n",
+ "\n",
+ "Når en arbeider med modeller, åpner det for utforsking og kritisk refleksjon. En kan endre både rammebetingelser og variabelverdier med et tastetrykk og utforske konsekvensene for modellen. Det finnes ikke riktige og gale svar, og differensiering er en naturlig del av arbeidsformen. Modeller kan variere i kompleksitet, og en viktig del av modelleringsprosessen er å undersøke modellene opp mot virkeligheten, for eksempel med systematiske eksperimenter og observasjoner.\n",
+ "\n",
+ "## Diskrete modeller\n",
+ "\n",
+ "En diskret modell er en modell som beskriver tilstanden i et system på gitt tidspunkter. Det vil si at vi ikke har en kontinuerlig funksjon som beskriver tilstandene i systemet på et hvert tidspunkt. Et eksempel er en diskret populasjonsmodell som beskriver størrelsen på en gaupebestand hver andre måned. En kontinuerlig modell vil derimot beskrive populasjonen på _ethvert_ tidspunkt. Regresjonsmodeller er kontinuerlige modeller fordi modellene er kontinuerlige funksjoner. Det samme er modeller basert på _differensiallikninger_, som vi skal se på seinere.\n",
+ "\n",
+ "Diskrete modeller kan beskrives med _differenslikninger_. Eksempelet med gaupepopulasjonen kan beskrives som en differenslikning: Antall gauper er lik antall gauper ved forrige tidssteg pluss en endring. Det er denne endringen vi skal finne ut av når vi modellerer. Et annet eksempel på sammenhenger som kan beskrives som differenslikninger, er mønsteret i tallfølger. \n",
+ "\n",
+ "```{admonition} Differenslikninger\n",
+ "En differenslikning er en likning som beskriver forskjellen mellom etterfølgende verdier til en funksjon av diskrete variabler.\n",
+ "```\n",
+ "La oss se på et eksempel på en diskret modell. Her ser vi på modeller som beskriver utslipp av CO$_2$. Vi bygger opp modellen gradvis.\n",
+ "\n",
+ "````{admonition} Oppgave\n",
+ ":class: tip\n",
+ "Vi ser først på en diskret modell der utslippet øker med en prosentvis andel hvert år. Følgende modell kan da beskrive utslippet:\n",
+ "\n",
+ "$$u_{n+1} = u_n + au_n$$\n",
+ "\n",
+ "Her er _u_ antall tonn CO$_2$ som slippes ut per innbygger, og _a_ er en parameter som bestemmer utslippsraten (vekstfaktoren). Tilpasning av slike parametere er en viktig del av modellering. Parameterne representerer ulike forhold i det virkelige livet, men det kan være vanskelig å finne gode verdier for dem. Ofte bruker vi reelle data til dette. \n",
+ "\n",
+ "__Oppgave 1:__\n",
+ "\n",
+ "Forklar for hverandre med ord hva modellen sier. Drøft også i hvilke sammenhenger det kan være hensiktsmessig å bruke en slik modell. Er det en realistisk modell i noen sammenhenger?\n",
+ "\n",
+ "__Oppgave 2:__\n",
+ "\n",
+ "Fyll inn det som mangler i programmet nedenfor for å simulere utslippet. Dersom du vil, kan du selvfølgelig viske ut alt og bygge programmet fra grunnen av. Varier med ulike verdier av _a_ og forklar betydningen av denne parameteren.\n",
+ "\n",
+ "\n",
+ "\n",
+ "__Oppgave 3:__\n",
+ "\n",
+ "Hva er utslippet i 2100? Tror du dette er realistisk? Finn utslippet i 2018 etter denne modellen, og sammenlikn med det reelle utslippet i Norge og India ved hjelp av data som er gitt i disse tekstfilene: [Norge](https://raw.githubusercontent.com/andreasdh/Programmering-og-modellering/master/docs/Datafiler/CO2_Norge.txt) og [India](https://github.com/andreasdh/Programmering-og-modellering/blob/master/docs/Datafiler/CO2_India.txt).\n",
+ "\n",
+ "__Oppgave 4:__\n",
+ "\n",
+ "Varier utslippsraten _a_ slik at modellen passer best mulig med utslippet til enten Norge eller India. Du kan lese inn filene i programmet og plotte de reelle dataene i samme graf som modellen din. Kommenter hvor godt modellen passer med dataene. Hva er i så fall gyldighetsområdet til modellen? \n",
+ "\n",
+ "__Oppgave 5:__\n",
+ "\n",
+ "La oss utvide modellen og innføre flere parametere. Vi kan tenke oss en begrensningsparameter b som sier oss hva hver person maksimalt kan oppnå av utslipp. Følgende modell tar hensyn til dette:\n",
+ "\n",
+ "$$u_{n+1} = u_n + au_n\\left(1 - \\frac{u_n}{b}\\right)$$\n",
+ "\n",
+ "Beskriv modellen, og prøv å forklare alle leddene og faktorene. Hva skjer med uttrykket i parentesen når _u_ øker?\n",
+ "\n",
+ "__Oppgave 6:__\n",
+ "\n",
+ "Erstatt den gamle modellen med den nye modellen. Beskriv det du ser.\n",
+ "\n",
+ "\n",
+ "__Oppgave 7:__\n",
+ "\n",
+ "Eksperimenter med a og b slik at modellen passer godt med dataene.\n",
+ "\n",
+ "__Oppgave 8:__\n",
+ "\n",
+ "I 2015 setter vi inn tiltak som gjør at veksten stagnerer og blir negativ (minker med 4,5 % hvert år). Legg dette inn i simuleringen og kommenter utviklingen. Er utviklingen realistisk?\n",
+ "\n",
+ "__Ekstraoppgaver: Utforsk modellen__\n",
+ "\n",
+ "- Finn ut hvor store tiltakene (a) må være for at vi bare skal slippe ut 2 tonn CO2 per innbygger i Norge i 2100.\n",
+ "\n",
+ "- Gjenta simuleringene med India. Lag en modell som følger omtrent samme utvikling som en av modellene for Norge. Når vil India nå samme topputslipp som Norge?\n",
+ "````"
+ ]
+ }
+ ],
+ "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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git "a/_sources/docs/tema5_modellering/maskinl\303\246ring_titanic.ipynb" "b/_sources/docs/tema5_modellering/maskinl\303\246ring_titanic.ipynb"
new file mode 100644
index 00000000..8b219ef0
--- /dev/null
+++ "b/_sources/docs/tema5_modellering/maskinl\303\246ring_titanic.ipynb"
@@ -0,0 +1,645 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Maskinlæring"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Lese dataene\n",
+ "titanic = pd.read_csv(\"Datafiler/titanic.csv\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Utforsking og opprydding av datasettet\n",
+ "La oss undersøke dataene og rydde litt, dersom vi trenger det."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
survived
\n",
+ "
pclass
\n",
+ "
sex
\n",
+ "
age
\n",
+ "
sibsp
\n",
+ "
parch
\n",
+ "
fare
\n",
+ "
embarked
\n",
+ "
class
\n",
+ "
deck
\n",
+ "
embark_town
\n",
+ "
alive
\n",
+ "
alone
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
0
\n",
+ "
3
\n",
+ "
0
\n",
+ "
22.0
\n",
+ "
1
\n",
+ "
0
\n",
+ "
7.2500
\n",
+ "
S
\n",
+ "
Third
\n",
+ "
NaN
\n",
+ "
Southampton
\n",
+ "
no
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
1
\n",
+ "
1
\n",
+ "
1
\n",
+ "
38.0
\n",
+ "
1
\n",
+ "
0
\n",
+ "
71.2833
\n",
+ "
C
\n",
+ "
First
\n",
+ "
C
\n",
+ "
Cherbourg
\n",
+ "
yes
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
1
\n",
+ "
3
\n",
+ "
1
\n",
+ "
26.0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
7.9250
\n",
+ "
S
\n",
+ "
Third
\n",
+ "
NaN
\n",
+ "
Southampton
\n",
+ "
yes
\n",
+ "
True
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
1
\n",
+ "
1
\n",
+ "
1
\n",
+ "
35.0
\n",
+ "
1
\n",
+ "
0
\n",
+ "
53.1000
\n",
+ "
S
\n",
+ "
First
\n",
+ "
C
\n",
+ "
Southampton
\n",
+ "
yes
\n",
+ "
False
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
0
\n",
+ "
3
\n",
+ "
0
\n",
+ "
35.0
\n",
+ "
0
\n",
+ "
0
\n",
+ "
8.0500
\n",
+ "
S
\n",
+ "
Third
\n",
+ "
NaN
\n",
+ "
Southampton
\n",
+ "
no
\n",
+ "
True
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " survived pclass sex age sibsp parch fare embarked class deck \\\n",
+ "0 0 3 0 22.0 1 0 7.2500 S Third NaN \n",
+ "1 1 1 1 38.0 1 0 71.2833 C First C \n",
+ "2 1 3 1 26.0 0 0 7.9250 S Third NaN \n",
+ "3 1 1 1 35.0 1 0 53.1000 S First C \n",
+ "4 0 3 0 35.0 0 0 8.0500 S Third NaN \n",
+ "\n",
+ " embark_town alive alone \n",
+ "0 Southampton no False \n",
+ "1 Cherbourg yes False \n",
+ "2 Southampton yes True \n",
+ "3 Southampton yes False \n",
+ "4 Southampton no True "
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Skriver ut fem første linjer\n",
+ "titanic.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi ser at det ikke er alle kategoriene vi trenger. Siden vi er interessert i hvem som overlevde, og hvorfor, kan det også være lurt å sjekke hvor mange dette var."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "38.38 % overlevde\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Hvor mange overlevde?\n",
+ "overlevde_prosent = (titanic['survived'].sum()/titanic['survived'].count())*100\n",
+ "print(f'{overlevde_prosent:.2f} % overlevde')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 Southampton\n",
+ "1 Cherbourg\n",
+ "2 Southampton\n",
+ "3 Southampton\n",
+ "4 Southampton\n",
+ " ... \n",
+ "886 Southampton\n",
+ "887 Southampton\n",
+ "888 Southampton\n",
+ "889 Cherbourg\n",
+ "890 Queenstown\n",
+ "Name: embark_town, Length: 891, dtype: object"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Sletter kategorier vi ikke er interessert i\n",
+ "titanic.pop('deck')\n",
+ "titanic.pop('fare')\n",
+ "titanic.pop('embarked')\n",
+ "titanic.pop('embark_town')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "survived 0\n",
+ "pclass 0\n",
+ "sex 0\n",
+ "age 177\n",
+ "sibsp 0\n",
+ "parch 0\n",
+ "class 0\n",
+ "alive 0\n",
+ "alone 0\n",
+ "dtype: int64\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Print antall manglende verdier i kolonnene\n",
+ "print(titanic.isna().sum())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Fyller inn manglende alder med gjennomsnittet\n",
+ "gjennomsnitt = titanic['age'].mean()\n",
+ "titanic['age'].fillna(gjennomsnitt, inplace = True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Visualiseringer\n",
+ "La oss først se hvilken effekt klasse og kjønn hadde på overlevelsessjansene:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Sortere etter alder\n",
+ "aldersklasse = []\n",
+ "\n",
+ "for alder in titanic['age']:\n",
+ " if alder > 15:\n",
+ " aldersklasse.append(\"voksen\")\n",
+ " else:\n",
+ " aldersklasse.append(\"barn\")\n",
+ " \n",
+ "titanic['aldersklasse'] = aldersklasse\n",
+ "\n",
+ "sns.countplot(x='aldersklasse', hue='survived', data=titanic, palette='ocean')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# *Frivilling: Erstatte kategorier for visualisering med nye kategorier\n",
+ "\"\"\"\n",
+ "overlevende = {0: \"døde\", 1: \"overlevde\"}\n",
+ "titanic[\"survived\"] = titanic[\"survived\"].map(overlevende)\n",
+ "titanic.head(5)\n",
+ "\"\"\"\n",
+ "# *Frivillig: Telle forekomster av ulike tilfeller\n",
+ "\"\"\"\n",
+ "titanic[\"survived\"].count()\n",
+ "titanic[\"survived\"].value_counts()\n",
+ "\"\"\"\n",
+ "None # Printer None for å unngå output"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Maskinlæring\n",
+ "Vi skal nå lage en modell som kan forutsi hvorvidt en person overlever på Titanic eller ikke, gitt data om personen. Vi velger ut hvilke data vi ønsker å bruke som kriterium for overlevelse, og spesifiserer kategorien \"survived\" som målkategorien vår:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split, cross_val_score\n",
+ "from sklearn import tree\n",
+ "from sklearn.metrics import accuracy_score, confusion_matrix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "kriterier = titanic[['pclass', 'sex', 'age', 'sibsp', 'parch']]\n",
+ "kategorier = titanic['survived'] "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I maskinlæring er det viktig at modellen vår klarer å forutsi data som kommer utenfra datasettet vi trener modellen med. Derfor deler vi ofte opp dataene i et treningssett og et testsett. Treningssettet bruker vi til å trene modellen, testsettet til å teste og evaluere modellen i etterkant. Vi blander ikke disse dataene. Vi kan generere slike data med funksjonen _train\\_test\\_split()_. Her bruker vi 80 \\% av dataene til trening og 20 \\% til testing. Du bør bruke minst 70 \\% av dataene dine til trening."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testandel = 0.2 # Andel brukt til testing\n",
+ "ml_data = train_test_split(kriterier, kategorier, test_size=testandel, random_state=42)\n",
+ "\n",
+ "treningskriterier = ml_data[0]\n",
+ "testkriterier = ml_data[1]\n",
+ "treningskategorier = ml_data[2]\n",
+ "testkategorier = ml_data[3]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå kan vi lage modellen vår. Vi bruker en algoritme som heter _Decision Tree Classifier_. Det er basert på sammensatte og forgreinede valgtrær, der alle kombinasjoner av kriterier blir utforsket. Betingede sannsynligheter for ulike hendelser blir beregnet, og de mest sannsynlige utfallene blir framhevet basert på kombinasjonen av kriteriene. Først trener vi modellen:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier()"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modell = tree.DecisionTreeClassifier()\n",
+ "modell.fit(treningskriterier, treningskategorier)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det var det - da har vi en modell! Den ligger nå i et objekt som vi har kalt _modell_. Vi kan få innsyn i hvordan modellen ser ut, men det kan fort bli litt uoversiktlig og teknisk. La oss først nøye oss med å sjekke hvordan modellen takler testsettet vårt.\n",
+ "\n",
+ "## Test og validering av modellen"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.7653631284916201"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modellkategorier_forutsett = modell.predict(testkriterier)\n",
+ "accuracy_score(testkategorier, modellkategorier_forutsett)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Dette betyr at modellen forutsier riktig ca. 76 % av gangene. Det er en ok modell. For å få bedre oversikt over hva modellen forutsier riktig og hva den feiler på, kan vi konstruere en såkalt \"Confusion Matrix\" (forvirringsmatrise/feilmatrise):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "cm = confusion_matrix(modellkategorier_forutsett, testkategorier)\n",
+ "\n",
+ "import seaborn as sns\n",
+ "sns.heatmap(cm, annot=True, cmap='viridis')\n",
+ "plt.title(\"Forvirringsmatrise\")\n",
+ "plt.xlabel(\"Predikerte verdier\")\n",
+ "plt.ylabel(\"Sanne verdier\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "La oss benytte disse dataene og telle hvor mange datapunkter vi har, hvor mange som overlevde og døde, og deretter beregne hvor stor prosentandel av overlevende og døde som modellen klarte å forutsi korrekt."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(Andel korrekt forventet død 77.68 %)\n",
+ "(Andel korrekt forventet overlevelse 73.13 %)\n"
+ ]
+ }
+ ],
+ "source": [
+ "presisjon_død = (87/(87+25))*100\n",
+ "presisjon_overleve = (49/(49+18))*100\n",
+ "print(f'(Andel korrekt forventet død {presisjon_død:.2f} %)')\n",
+ "print(f'(Andel korrekt forventet overlevelse {presisjon_overleve:.2f} %)')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Det er større presisjon i å forutsi død. Dette er forventet, siden modellen har trent på flere tilfeller av død enn av overlevelse. \n",
+ "\n",
+ "La oss helt til sist visualisere modellen vår. Vi velger maks dybde på modellen til 3 for at vi ikke skal få alt for mange forgreininger."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABGoAAAIuCAYAAADnru5GAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAD0aElEQVR4nOzddXgVxx7G8e9EiAsJgeDu7u5upbQUKVXq7u5ChbrRQimUlgLFWtyd4u4Q3J0kxG3uHwfS5iZAgISTwPt5Hp5LZmdnf5tLYfOe2RljrUVERERERERERJzPxdkFiIiIiIiIiIiIg4IaEREREREREZEcQkGNiIiIiIiIiEgOoaBGRERERERERCSHUFAjIiIiIiIiIpJDKKgREREREREREckhFNSIiIiIiIiIiOQQCmpERERERERERHIIBTUiIiIiIiIiIjmEghoRERERERERkRxCQY2IiIiIiIiISA6hoEZEREREREREJIdQUCMiIiIiIiIikkMoqBERERERERERySEU1IiIiIiIiIiI5BAKakREREREREREcgg3ZxcgIiIi2c/L0+NYXHxCAWfXIdfO0yPP8di4+FBn1yEiIiLZw1hrnV2DiIiIZDNjjI1eM9HZZUgW8KndDWutcXYdIiIikj306pOIiIiIiIiISA6hoEZEREREREREJIdQUCMiIiIiIiIikkMoqBERERERERERySEU1IiIiIiIiIiI5BAKakREREREREREcggFNSIiIiIiIiIiOYSbswsQERERyQ1SUlL4cfRUfhk/g31HjhMU4MetrRvx9mN98ff1ztQYPrW7ZdheKH8wYdOHZmW5IiIikkspqBERERHJhNe//pXv/phI5+b1ePquboQdOMLAUZNZsyWM2UM+xs3NNVPjNK5Ziftva5+mzcfTIztKFhERkVxIQY2IiIjkauHnogiPjKZE4QLZdo1tew7ww6jJ3NKyAaM+fy21vVyJIjz+/nf8NmkO/f4vfLmYEoVD6dOpRTZVKiIiIrmd1qgRERER4uIT6D9oFDVue4x8je6gUPM7qdvzad76dni6vvNWrKfr4+9QqPmdBDXsQb1eTzNk3PQ0fe56+VP863Vn6bqtadonzVuGT+1uvDhg8DXVm5CYyJQFK+j78ieUancfUxauuKbxLmfsjMWkpKTwZN9b0rT37dyS4AA/Rk9bcEXjJSQmEhUT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iIiIiIiIiI24qt765OjoGJmdnR1c1nHYCgcHh6isrKyQso7DVmm8nKexcnEaK5Y0Xi5O4+U8jZWL01ixpPFycRov52msXJzGiiWNl4vTeDnvahorV9WjT4ZhmCNHjizrMGzGyJEjMU3TKOs4bJXGy3kaKxensWJJ4+XiNF7O01i5OI0VSxovF6fxcp7GysVprFjSeLk4jZfzrqaxokefRERERERERERshAo1IiIiIiIiIiI2QoUaEREREREREREboUKNiIiIiIiIiIiNUKFGRERERERERMRGqFAjIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChRoRERERERERERuhQo2IiIiIiIiIiI1QoUZERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbIQKNSIiIiIiIiIiNkKFGhERERERERERG6FCjYiIiIiIiIiIjVChRkRERERERETERqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshAo1IiIiIiIiIiI24rov1GRlZTFq1CiWLVtWrP3u37+ft956i9jY2GLtV8qWxotYS2NFikLjRaylsSJFofEi1tJYkaLQeCl5132hZs2aNWRlZdGqVati7bdmzZqEhISwaNGiYu1XypbGi1hLY0WKQuNFrKWxIkWh8SLW0liRotB4KXnXdaEmMzOTNWvW0LhxY1xcXIq9/5YtW7J3717Onj1b7H1L6dN4EWtprEhRaLyItTRWpCg0XsRaGitSFBovpeO6LtTs3LmTjIwMGjZsWCL916pVC0dHRzZv3lwi/Uvp0ngRa2msSFFovIi1NFakKDRexFoaK1IUGi+l47ou1OzZswcvLy+Cg4NLpH9nZ2cqVKjA7t27S6R/KV0aL2ItjRUpCo0XsZbGihSFxotYS2NFikLjpXRct4Wa3NxcTpw4QVhYWIkep3z58iQlJWlBpKucxotYS2NFikLjRaylsSJFofEi1tJYkaLQeCk9122hJiEhgczMTHx9fUv0OP/2f70/Y3e103gRa2msSFFovIi1NFakKDRexFoaK1IUGi+l57ot1KSkpADg6upaosdxc3OzOJ5cnTRexFoaK1IUGi9iLY0VKQqNF7GWxooUhcZL6bluCzWGYZTKcUzTLJXjSMnSeBFraaxIUWi8iLU0VqQoNF7EWhorUhQaL6Xnui3U/FulS0tLK9Hj/Nu/u7t7iR5HSpbGi1hLY0WKQuNFrKWxIkWh8SLW0liRotB4KT3XbaHG29sbJyenEl+gKC4uDoCgoKASPY6ULI0XsZbGihSFxotYS2NFikLjRaylsSJFofFSeq7bQo2dnR3ly5fn1KlThX5+9uzZ/AHyr/T0dM6ePVvgWbn4+HjOnj1LTk5OgX5OnjyJp6cnfn5+xRe8lDqNF7GWxooUhcaLWEtjRYpC40WspbEiRaHxUnqu20INQN26dUlOTub06dMFPhszZgxjx4612LZ3717GjBnDhg0bLLZPnz6dMWPGkJiYaLE9IyOD48ePU7du3eIPXkqdxotYS2NFikLjRaylsSJFofEi1tJYkaLQeCkd13Whpl69eri4uLBjx44S6X/fvn1kZWXRtGnTEulfSpfGi1hLY0WKQuNFrKWxIkWh8SLW0liRotB4KR0OZR1AWXJycqJ169asXbuWTp064eLikv/ZyJEjC7Rv3LgxjRs3LrD93nvvLbT/9evXU7t2bQIDA4stZik7Gi9iLY0VKQqNF7GWxooUhcaLWEtjRYpC46V0XNczagDatGmDk5MT69atK9Z+9+/fT2RkJF27di3WfqVsabyItTRWpCg0XsRaGitSFBovYi2NFSkKjZeSZ1xN7yg3DMMsrEp3vRo5ciSmaZbOy+yvQhov52msXJzGiiWNl4vTeDlPY+XiNFYsabxcnMbLeRorF6exYknj5eI0Xs67msbKdT+jRkRERERERETEVqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshAo1IiIiIiIiIiI2QoUaEREREREREREboUKNiIiIiIiIiIiNUKFGRERERERERMRGqFAjIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChRoRERERERERERuhQo2IiIiIiIiIiI1QoUZERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbIQKNSIiIiIiIiIiNkKFGhERERERERERG6FCjYiIiIiIiIiIjVChRkRERERERETERqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshGGaZlnHYDVHR8fI7Ozs4LKOw1Y4ODhEZWVlhZR1HLZK4+U8jZWL01ixpPFycRov52msXJzGiiWNl4vTeDlPY+XiNFYsabxcnMbLeVfTWLmqCjUiIiIiIiIiItcyPfokIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChRoRERERERERERuhQo2IiIiIiIiIiI1QoUZERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbIQKNSIiIiIiIiIiNkKFGhERERERERERG6FCjYiIiIiIiIiIjVChRkRERERERETERqhQIyIiIiIiIiJiI1SoERERERERERGxESrUiIiIiIiIiIjYCBVqRERERERERERshAo1IiIiIiIiIiI2QoUaEREREREREREboUKNiIiIiIiIiIiNUKFGRERERERERMRGqFAjIiIiIiIiImIjVKgREREREREREbERKtSIiIiIiIiIiNgIFWpERERERERERGyECjUiIiIiIiIiIjZChRoRERERERERERuhQo2IiIiIiIiIiI1QoUZERERERERExEaoUCMiIiIiIiIiYiNUqBERERERERERsREq1IiIiIiIiIiI2AgVakREREREREREbMT/AIkgmXKGm3LWAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(20,10))\n",
+ "titanic.pop('survived')\n",
+ "tree.plot_tree(modell, max_depth=2, feature_names=titanic.columns, class_names=['Døde', 'Overlevde'], filled=True, label=None,) \n",
+ "None"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema5_modellering/modelleringsrapport.ipynb b/_sources/docs/tema5_modellering/modelleringsrapport.ipynb
new file mode 100644
index 00000000..38d46866
--- /dev/null
+++ b/_sources/docs/tema5_modellering/modelleringsrapport.ipynb
@@ -0,0 +1,408 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Rapporteksempel: Smittemodellering\n",
+ "_Navn Navnesen_\n",
+ "\n",
+ "_Rapport 11.4.2023_\n",
+ "\n",
+ "(Nedenfor følger et eksempel på hvordan du kan lage en modelleringsrapport. Rapporten er ikke helt perfekt, men står til høy måloppnåelse - karakteren 5. Spesielt burde det vært mer utforsking og variasjon av ulike parametre (som _a_ og _b_). Eulers metode kunne også vært beskrevet i teoridelen, og det kunne vært mer drøfting og forklaring underveis. Men alt i alt viser rapporten hvordan strukturen og oppsettet på din rapport bør være).\n",
+ "\n",
+ "## 1. Hensikt\n",
+ "Vi skal her utforske ulike modeller for smitteutvikling. Smittemodellering kan være nyttig for å forutsi smitte ved årlige sykdomsforløp, slik som influensa, og for å undersøke effekten av ulike tiltak, slik som vaksinasjon.\n",
+ "\n",
+ "## 2. Teori\n",
+ "Vi ser her på tre ulike modeller for smittespredning.\n",
+ "\n",
+ "### Modell 1\n",
+ "Vi starter med en smittespredningsmodell er der ingen blir friske av den smittsomme sykdommen. Da antar vi at antall smittede utvikler seg slik:\n",
+ "\n",
+ "$$I_{n+1}=I_n+aI_n$$\n",
+ "\n",
+ "Her er _I_ antall smittede (infected) og _a_ er en parameter som bestemmer spredningsraten. Smitteraten _a_ kan variere med blant annet sykdommens spredningsmønster, hvor smittsom spredningen er, hvilke tiltak vi har i samfunnet (hygiene, munnbind, kontaktmønster), befolkningstetthet og mobilitet.\n",
+ "\n",
+ "### Modell 2\n",
+ "Vi kan utvide modellen vår og innføre en ny kategori av individer som er mottakelige for smitte. Vi kaller dem _S_ (susceptibles).\n",
+ "\n",
+ "Vi kan anta at de smittede da utvikler seg slik.\n",
+ "\n",
+ "$$I_{n+1}=I_n+aI_nS_n$$\n",
+ "\n",
+ "Her multipliserer vi de smittede med de mottakelige for å simulere hendelsen der et smittet individ møter et mottakelig individ og kan overføre smitten. Hvorvidt smitten overføres eller ikke, bestemmes av _a_. Siden smittede individer ikke lenger er mottakelige, kan de mottakelige individene beskrives slik:\n",
+ "\n",
+ "$$S_{n+1}=S_n-aI_nS_n$$\n",
+ "\n",
+ "### Modell 3\n",
+ "La oss deretter utforske en modell som også tar hensyn til at det går an å bli frisk fra sykdommen. Da innfører vi en kategori til, nemlig de friske og tidligere smittede. Disse har da immunitet og kan ikke bli smittet igjen. Vi kaller dem _R_ (\"recovered\"), og de kan beskrives slik:\n",
+ "\n",
+ "$$R_{n+1}=R_n+bI_n$$\n",
+ "\n",
+ "Da må de smittede utvikle seg slik:\n",
+ "\n",
+ "$$I_{n+1}=I_n+aS_nI_n-bI_n$$\n",
+ "\n",
+ "Antall usmittede, men mottakelige individer, _S_, må fortsatt følge denne modellen:\n",
+ "\n",
+ "$$S_{n+1}=S_n-aI_nS_n$$\n",
+ "\n",
+ "Disse tre likningene utgjør det vi kaller \"SIR-modellen\" for smitteutvikling. Parameteren _b_ beskriver her _bedringsraten_, altså hvor stor andel av de smittede som blir friske, beskrevet av leddet $b\\cdot I_n$. Bedringsraten kommer an på sykdommen som spres, og hvor fort folk blir friske av sykdommen."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 3. Resultater og drøfting\n",
+ "Vi ser på tre modellene for seg, og plotter resultatene gitt bestemte verdier av parameterne _a_ og _b_. Først importerer vi nødvendige biblioteker:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pandas as pd"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Modell 1\n",
+ "\n",
+ "Vi starter med å se på den enkleste modellen, som forutsetter at ingen dør eller blir friske, og/eller at det ikke finnes noen immunitet mot sykdommen."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "N = 157759 # Populasjonsstørrelse\n",
+ "a = 0.2 # Kontaktrate per uke\n",
+ "tid_slutt = 48 # Antall uker vi ønsker å simulere\n",
+ "\n",
+ "# Startverdier\n",
+ "I = 3 # Antall smittede til å begynne med\n",
+ "\n",
+ "# Lister for å spare på verdiene\n",
+ "smittede = [I]\n",
+ "t = [0]\n",
+ "\n",
+ "for tid in range(tid_slutt):\n",
+ " I = I + a*I # Modellen\n",
+ " smittede.append(I)\n",
+ " t.append(tid)\n",
+ "\n",
+ "plt.plot(t,smittede,label='Smittede')\n",
+ "plt.xlabel('Antall uker fra siste uke i september 2004')\n",
+ "plt.ylabel('Antall individer')\n",
+ "plt.legend() # Viser merkelapper\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Modellen sier at antall smittede individer ved neste tidssteg er lik antall smittede individer ved forrige tidssteg + en viss andel (_a_) av antall individer som sprer smitten videre.\n",
+ "\n",
+ "Modellen forutsetter enten at det ikke er noen immunitet innenfor smittemengden, altså at ingen smittede møter på personer som allerede er smittet. Det kan være et realistisk bilde i en stor populasjon i begynnelsen av et smitteforløp. Det er derfor usannsynlig at modellen beskriver utvikling langt fram i tid. Modellen forutsetter også at ingen blir friske i løpet av den tiden vi ser på. Igjen peker dette på at modellen kun kan gjelde for et kort tidsrom."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Modell 2\n",
+ "\n",
+ "Vi utvider modellen ved å legge til en kategori for mottakelige individer, altså individer som kan få sykdommen."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "N = 157759 # Populasjonsstørrelse\n",
+ "a = 0.5/N # Kontaktrate\n",
+ "tid_slutt = 48 # Antall uker vi ønsker å simulere\n",
+ "\n",
+ "# Startverdier\n",
+ "I = 3 # Antall smittede til å begynne med\n",
+ "S = N-I # Antall usmittede til å begynne med\n",
+ "\n",
+ "# Lister for å spare på verdiene\n",
+ "mulige = [S]\n",
+ "smittede = [I]\n",
+ "t = [0]\n",
+ "\n",
+ "for i in range(tid_slutt):\n",
+ " # Lager variabelen endring for å ikke endre I eller S før ny I eller S beregnes\n",
+ " endring = a*S*I \n",
+ " I = I + endring\n",
+ " S = S - endring\n",
+ " # Legger inn verdier i listene\n",
+ " smittede.append(I)\n",
+ " mulige.append(S)\n",
+ " t.append(i)\n",
+ " \n",
+ "plt.plot(t,smittede,label='Smittede')\n",
+ "plt.plot(t,mulige,label='Mulige')\n",
+ "plt.xlabel('Antall uker fra siste uke i september 2004')\n",
+ "plt.ylabel('Antall individer')\n",
+ "plt.legend() # Viser merkelapper\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "I modellen blir alle smittet, og ingen blir friske. Modellen er derfor lite egna til å studere smitteutvikling, verken over kort tid (individene smittes for langsomt) eller over lang tid (individene blir aldri friske), med mindre vi har å gjøre med en sykdom som gir betydelige langtidsvirkninger.\n",
+ "\n",
+ "Modellen sier at antall mottakelige er lik antall mottakelige ved forrige tidssteg minus andelen som er smittet. Årsaken til at vi også ganger inn de mottakelige her, er at smittespredningen nå avhenger av både mottakelige og de som allerede er smittet. At vi multipliserer disse faktorene er ikke nødvendigvis det eneste rette. Det kan vise seg at modellen avhenger enda mer av antall mottakelige enn smittede. Da kan vi for eksempel kvadrere antall mottakelige i modellen:\n",
+ "\n",
+ "$$I_{n+1}=I_n+aI_nS_n^2$$\n",
+ "\n",
+ "Husk at dette er modeller, og at det ofte er flere muligheter for å lage en modell som beskriver et system. Vi har ennå ikke validert modellen vår."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Modell 3\n",
+ "\n",
+ "Den siste modellen vi skal se på, innfører en kategori for friskmeldte, og dermed immune, individer."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1509\n"
+ ]
+ }
+ ],
+ "source": [
+ "N = 157759 # Populasjonsstørrelse\n",
+ "a = 4/N # Kontaktrate\n",
+ "b = 3.5 # Bedringsrate\n",
+ "tid_slutt = 48 # Antall uker vi ønsker å simulere\n",
+ "\n",
+ "# Startverdier\n",
+ "I = 3 # Antall smittede til å begynne med\n",
+ "S = N-I # Antall usmittede til å begynne med\n",
+ "R = 0\n",
+ "\n",
+ "# Lister for å spare på verdiene\n",
+ "mulige = [S]\n",
+ "smittede = [I]\n",
+ "friskmeldte = [R]\n",
+ "t = [0]\n",
+ "\n",
+ "for i in range(tid_slutt):\n",
+ " endring_smittede = a*S*I\n",
+ " endring_friske = b*I\n",
+ " I = I + endring_smittede - endring_friske\n",
+ " S = S - endring_smittede\n",
+ " R = R + endring_friske\n",
+ " # Legger inn verdier i listene\n",
+ " smittede.append(I)\n",
+ " mulige.append(S)\n",
+ " friskmeldte.append(R)\n",
+ " t.append(i)\n",
+ "\n",
+ "plt.plot(t,smittede,label='Smittede')\n",
+ "plt.plot(t,mulige,label='Mulige')\n",
+ "plt.plot(t,friskmeldte,label='Friskmeldte')\n",
+ "plt.xlabel('Antall uker fra siste uke i september 2004')\n",
+ "plt.ylabel('Antall individer')\n",
+ "plt.legend() # Viser merkelapper\n",
+ "plt.show()\n",
+ "\n",
+ "plt.title('Antall smittede')\n",
+ "plt.xlabel('Antall uker fra siste uke i september 2004')\n",
+ "plt.ylabel('Antall individer')\n",
+ "plt.plot(t,smittede)\n",
+ "plt.grid()\n",
+ "plt.show()\n",
+ "\n",
+ "print(int(max(smittede)))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi tar utgangspunkt i denne modellen og sammenlikner de smittede med et datasett som viser antall smittede i en influensasesong. Vi justerer _a_ og _b_ slik at de passer best mulig med dataene."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "N = 157759 # Populasjonsstørrelse\n",
+ "a = 4/N # Kontaktrate\n",
+ "b = 3.5 # Bedringsrate\n",
+ "tid_slutt = 48 # Antall uker vi ønsker å simulere\n",
+ "\n",
+ "# Startverdier\n",
+ "I = 3 # Antall smittede til å begynne med\n",
+ "S = N-I # Antall usmittede til å begynne med\n",
+ "R = 0\n",
+ "\n",
+ "# Lister for å spare på verdiene\n",
+ "mulige = [S]\n",
+ "smittede = [I]\n",
+ "friskmeldte = [R]\n",
+ "t = [0]\n",
+ "\n",
+ "for i in range(tid_slutt):\n",
+ " endring_smittede = a*S*I\n",
+ " endring_friske = b*I\n",
+ " # Legg inn likningene her\n",
+ " I = I + endring_smittede - endring_friske\n",
+ " S = S - endring_smittede\n",
+ " R = R + endring_friske\n",
+ " # Legger inn verdier i listene\n",
+ " smittede.append(I)\n",
+ " mulige.append(S)\n",
+ " friskmeldte.append(R)\n",
+ " t.append(i)\n",
+ "\n",
+ "# Les og plott dataene her\n",
+ "data = pd.read_csv('influensa.txt', skiprows=2,delimiter=',')\n",
+ "uke = data[\"uker\"]\n",
+ "smittede_data = data[\"infiserte\"]\n",
+ "\n",
+ "plt.plot(uke, smittede_data, label = 'Datapunkter')\n",
+ "plt.plot(t, smittede, label = 'Modelldata')\n",
+ "plt.title('Sammenlikning av modelldata med reelle data')\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Modell 3 viser et forløp der antall smittede øker sakte i starten, og raskere fram til ca. uke 13. Da snur trenden, og antall smittede går nedover fra ca. uke 17. Det er maksimalt 1509 smittede i populasjonen på samme tid. Etter at antall smittede har nådd 0 (ca. uke 27), har vi ifølge modellen oppnådd flokkimmunitet, eller influensasesongen er over, og ingen flere individer blir smittet. Merk at modellen forutsetter at ingen dør av sykdommen, noe som ikke stemmer helt med influensa. Det er derimot ofte ganske få døde i forhold til befolkningen, så modellen gir uansett et godt estimat på hvor mange som er smittet til enhver tid i løpet av sesongen.\n",
+ "\n",
+ "Vi validerer modellen og tilpasser parameterne ved hjelp av datasettet som viser antall smittede i en populasjon på $N = 157 759$ testede individer. Den best tilpassede kurven får vi for $a \\approx 4/N$ og $b \\approx 3.5$. Siden dataene og modellen beskriver et vanlig influensavirus som kommer igjen hver høst i omtrent samme variant, kan modellen brukes til å estimere smittsomhet og sykdomstopper også for neste sesong. Parameterne i modellen, spesielt smitteraten, må likevel tilpasses sosiale og helsemessige forhold i den aktuelle populasjonen, f.eks. befolkningstetthet, generell hygiene og levestandard."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 5. Konklusjon\n",
+ "Vi har modellert ulike forløp for spredning av smitte ved hjelp av tre ulike smittemodeller med ulik kompleksitet. Modellene er validert ved å utføre parameterjustering med grunnlag i et reellt datasett som beskriver smitte\n",
+ "\n",
+ "Vi kan utvide modellen ved å innføre en kategori for døde, i tillegg til en vaksineringseffekt, der vi starter med at en viss andel av populasjonen er immune ved sykdommens start."
+ ]
+ }
+ ],
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema5_modellering/newtons_avkjolingslov.ipynb b/_sources/docs/tema5_modellering/newtons_avkjolingslov.ipynb
new file mode 100644
index 00000000..db8d8160
--- /dev/null
+++ b/_sources/docs/tema5_modellering/newtons_avkjolingslov.ipynb
@@ -0,0 +1,166 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Newtons avkjølingslov"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pylab import *"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Newtons avkjølingslov sier at forandring i temperatur skal være proporsjonal i forhold til differansen mellom temperaturen til objektet og temperaturen til omgivelsen. \n",
+ " \n",
+ "$\n",
+ "\\Large\n",
+ "\\begin{equation*}\n",
+ " \\frac{\\partial T}{\\partial t} = {-k} (T - T_{omg})\n",
+ "\\end{equation*}$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0, 0.5, 'temperatur i celsius')"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "korrelasjon = pingviner.corr()\n",
+ "sns.heatmap(korrelasjon, annot=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Maskinlæring"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split, cross_val_score\n",
+ "from sklearn import tree\n",
+ "from sklearn.metrics import accuracy_score, confusion_matrix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "pingviner.dropna(inplace=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "kriterier = pingviner[[\"body_mass_g\", \"bill_length_mm\", \"bill_depth_mm\", \"flipper_length_mm\"]]\n",
+ "kategorier = pingviner[\"species\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "testandel = 0.20 # bruker 20 % av datasettet til å teste\n",
+ "ml_data = train_test_split(kriterier, kategorier, test_size=testandel, random_state=42)\n",
+ "\n",
+ "treningskriterier = ml_data[0]\n",
+ "testkriterier = ml_data[1]\n",
+ "treningskategorier = ml_data[2]\n",
+ "testkategorier = ml_data[3]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier()"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modell = tree.DecisionTreeClassifier()\n",
+ "modell.fit(treningskriterier, treningskategorier)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9850746268656716"
+ ]
+ },
+ "execution_count": 77,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "forutsigelser = modell.predict(testkriterier)\n",
+ "accuracy_score(testkategorier, forutsigelser)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['Adelie'], dtype=object)"
+ ]
+ },
+ "execution_count": 78,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "modell.predict([[2000, 40, 60, 500]])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/tema5_modellering/regresjonsmodeller.ipynb b/_sources/docs/tema5_modellering/regresjonsmodeller.ipynb
new file mode 100644
index 00000000..9816d36d
--- /dev/null
+++ b/_sources/docs/tema5_modellering/regresjonsmodeller.ipynb
@@ -0,0 +1,263 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Regresjonsmodeller\n",
+ "\n",
+ "Regresjon er en form for modellering som brukes i mange ulike fagdisipliner, fra samfunnsvitenskap og økonomi til naturvitenskap og matematikk. Det betyr å finne en funksjon som er best tilpasset datasettet vårt. Regresjon tar ofte utgangspunkt i _minste kvadraters metode_, som gjør at vi får en modellfunksjon som gir minst mulig varians. Regresjonsmodeller passer derfor ofte ikke perfekt med alle, eller noen, av punktene. Modellene har heller et avvik fra gjennomsnittet av punktene (varians) som er så lite som mulig.\n",
+ "\n",
+ "## Lineær regresjon\n",
+ "\n",
+ "Vi har tidligere sett på enkel [polynomregresjon](https://andreasdh.github.io/NAT3000/docs/tema3_datahandtering/statistikk.html#regresjon) med funksjonen _polyfit_ fra numpy-biblioteket. Denne kan brukes dersom vi for eksempel ønsker å utføre lineær regresjon eller andregradsregresjon. Men hvis vi ønsker å tilpasse dataene våre til en vilkårlig modell, må vi bruke en annen funksjon. Funksjonen _curve\\_fit_ fra scipy-biblioteket har den funksjonaliteten vi ønsker. Da definerer vi en bestemt modell, i form av en Python-funksjon, som er utgangspunktet for regresjonen vår. Modellfunksjonen må ta som parameter en uavhengig variabel, i tillegg til koeffisientene/konstantene i uttrykket. Hvis vi for eksempel ønsker å gjøre en lineær regresjon, kan vi definere følgende funksjon:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def modell(x, a, b):\n",
+ " return a*x + b"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Her ser vi at variabelen _x_ og konstantene _a_ og _b_ er gitt som parametre i funksjonen. La oss lage en lineær modell ut fra følgende data, som et eksempel:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x = [1, 2, 3, 4, 5]\n",
+ "y = [2.1, 3.9, 6.5, 7.1, 11.0]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Først importerer vi funksjonen fra underbiblioteket _optimize_, som finnes i scipy-biblioteket. Deretter bruker vi funksjonen til å lage en lineær modell som passer best mulig med dataene våre. Funksjonen _curve_\\fit_ gir både koeffisientene _a_ og _b_, men også et mål på hvor godt modellen passer dataene våre som kalles _kovarians_. Dette skal vi ikke se på her, men vi må passe på å lagre koeffisientene og kovariansen i ulike variabler, slik at vi får ut riktige verdier for modellen vår. Parametrene i _curve\\_fit_ er modellfunksjonen vår og dataene vi vil beskrive med modellen vår (her _x_ og _y_): "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Koeffisienter: [ 2.1 -0.18]\n",
+ "Kovarians: [[ 0.06359996 -0.19079989]\n",
+ " [-0.19079989 0.69959972]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "from scipy.optimize import curve_fit\n",
+ "\n",
+ "koeffisienter, kovarians = curve_fit(modell, x, y)\n",
+ "print(\"Koeffisienter:\", koeffisienter)\n",
+ "print(\"Kovarians:\", kovarians)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Vi overser her de fire verdiene som utgjør kovariansen vår, og ser at vi har fått koeffisientene $a = 2,1$ og $b = -0,18$. Dette betyr at regresjonsmodellen har formen $y = 2,1x - 0,18$. Koeffisientene kommer i den rekkefølgen vi har gitt i modellfunksjonen vår. La oss derfor legge dem i hver sin variabel: "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = koeffisienter[0]\n",
+ "b = koeffisienter[1]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Nå kan vi for eksempel plotte datapunktene og modellfunksjonen i samme koordinatsystem. Da genererer vi noen nye _x_-verdier som vi kan lage funksjonsverdier ut fra, og deretter bruker vi modellfunksjonen til å generere _y_-verdier:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "x_ny = np.linspace(0, 6, 1000)\n",
+ "y_modell = modell(x_ny, a, b)\n",
+ "\n",
+ "plt.plot(x_ny, y_modell, color = \"cornflowerblue\", label = \"Tilpasset modell\")\n",
+ "plt.scatter(x, y, color = \"navy\", label = \"Datapunkter\")\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.grid()\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "En måte å måle hvor godt modellen er tilpasset dataene våre, er å regne ut $R^2$. Da mater vi inn de originale _x_-verdiene i modellen vår, og sammenlikner dem med de originale _y_-verdiene:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R2 = 0.9585289514866979\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import r2_score\n",
+ "\n",
+ "x = np.array(x)\n",
+ "y_predikert = modell(x,a,b)\n",
+ "\n",
+ "R2 = r2_score(y, y_predikert)\n",
+ "print(\"R2 =\", R2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "En $R^2$-score varierer mellom 0 og 1, der 1 er perfekt tilpasning til modellen, og 0 er ingen tilpasning. Desto høyere verdi $R^2$ har, desto bedre forklarer modellen de allerede eksisterende dataene (men ikke nødvendigvis data i framtiden!)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Andre regresjonsmodeller\n",
+ "\n",
+ "Hvis vi ønsker å bruke andre regresjonsmodeller, er det bare å endre modellfunksjonen vår. Dersom vi for eksempel ønsker å gjøre en logistisk regresjon av dataene våre ovenfor, kan vi definere en generell logistisk funksjon:\n",
+ "\n",
+ "$$f(x) = \\frac{c}{1 + a\\cdot e^{-bx}}$$\n",
+ "\n",
+ "Dette kan vi gjøre enkelt i Python, og vi kan gjenta den samme prosedyren med tilpasning og plotting som med lineær regresjon. Et fullstendig program vil kunne se slik ut:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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ltPS0khJSSEuLg6n00laWhp+v7/R5UaMGMGgQYMAuOOOO1i1alXtEfex7SYnJxMfH09aWhrx8fHcdNNNpKenM3z4cA4ePFj7XJs3b+YnP/kJH330EWeccQYQGJ0zMTGx9rkWL17M119/jcMR+CJYXl6OMYbExEQmT55MRkbGae2rU0lKSqod17++aD2lvql1WWsp3O5h3vJKDpT46X9mHNcOT+acMzoDvSJWV7ipruYLRW0hDX5jTDyB0M+11r4NYK3dX2f+C8CCRlZvNTt3ljRrektt27YNp9NJRkYGTzzxRIPDLdfX2LDM0PAwzvWnu93u45apO7xy3XGYevTogdvtZvXq1bXBX5/f72fRokW14+zXdWzwOGm+HQe8/G1ZJd9866VHJycPT3RxQc/4E15fkXAJZa8eA7wIbLTW/q7O9B51FrseWB+qGo7p2TO9WdNb4tglBx988EGMMZSUlNCjRw8cDgd//etfa4dbrj9UcmPLAaxcuZLt27fj9/t54403GD16NBBo+tq4cSN+v5933nmnSfV17NiR999/n//4j/+o/dpYv5bx48fzpz/9qfZxS8b4l+9UVvvJXVzBrHml7D3iY8qYFB67tQMDeyUo9CWiQjk03yhgKnBFva6b/22MWWeMWQuMBX4awhoAmDVrHCkpx19UJCUlnlmzxp3W81ZVVdV257zyyisZP348jz32GAD3338/r7zyCoMHD2bTpk21R8yDBg3C6XQycuRIZs+e3ehyELgK14MPPsh5551H7969uf766wH49a9/zaRJkxg5ciQ9evQ4sbBGZGZmsmDBAh544AFWrFjBNddcwzvvvFP74+7TTz/N6tWrGTRoEAMGDNBwyi1krWXl5mp+8XoJizdUM25QIrOmdCTngiRdTlCig7U26m/Dhg2z9W3YsOGEaQ0pLS211lr76qtrba9es60xj9tevWbbV19d26T1Q+VYXY3Jy8uzEydODFM13zlVXaF0stc0Ly8vfIU0Q/26DpZ47e/ml9gfPltsf/m3o7bogCcq6ooWqqv5Tqc2oMA2kKkx0yF7ypSBTJkyMNJlSDtlreWzTTXM/bQCgNtGpzD2gkSddCVRKWaCv63JycmJ2l4GcrySSj9/za9gTZGHc86I454rUunaQQOnSfRq08FvrdWPZO2EbQNXgmvIrrIO/H1uCW6P5ZZRKYwblIhD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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from scipy.optimize import curve_fit\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "x = [1, 2, 3, 4, 5]\n",
+ "y = [2.1, 3.9, 6.5, 7.1, 11.0]\n",
+ "\n",
+ "def modell_logistisk(x, a, b, c):\n",
+ " return c/(1 + a*np.exp(-b*x))\n",
+ "\n",
+ "koeffisienter, kovarians = curve_fit(modell_logistisk, x, y)\n",
+ "\n",
+ "a = koeffisienter[0]\n",
+ "b = koeffisienter[1]\n",
+ "c = koeffisienter[2]\n",
+ "\n",
+ "x_ny = np.linspace(0, 20, 1000)\n",
+ "y_modell = modell_logistisk(x_ny, a, b, c)\n",
+ "\n",
+ "plt.plot(x_ny, y_modell, color = \"cornflowerblue\", label = \"Tilpasset modell\")\n",
+ "plt.scatter(x, y, color = \"navy\", label = \"Datapunkter\")\n",
+ "plt.xlabel(\"x\")\n",
+ "plt.ylabel(\"y\")\n",
+ "plt.grid()\n",
+ "plt.legend()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} Oppgave\n",
+ ":class: tip\n",
+ "1. Forklar hvordan programmet ovenfor fungerer.\n",
+ "2. Lag en modell som beskriver dataene som beskriver [antall smittede som funksjon av tid](https://raw.githubusercontent.com/andreasdh/NAT3000/master/docs/datafiler/smitte_virus.csv).\n",
+ "3. Tolk modellen og beskriv hva den kan fortelle oss.\n",
+ "4. Regn ut $R^2$ for modellen og forklar hva dette sier oss.\n",
+ "```"
+ ]
+ }
+ ],
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/tema5_modellering/temperaturmodellering.ipynb b/_sources/docs/tema5_modellering/temperaturmodellering.ipynb
new file mode 100644
index 00000000..79ccc2ab
--- /dev/null
+++ b/_sources/docs/tema5_modellering/temperaturmodellering.ipynb
@@ -0,0 +1,357 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "82210676",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pylab import *"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "af31e097",
+ "metadata": {},
+ "source": [
+ "# Strålingsbalansen på jorda"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7ac71bb7",
+ "metadata": {},
+ "source": [
+ "Det som hovedsakelig varmer opp planeten vår, er sollys. Solen sender ut energi i form av elektromagnetisk stråling som treffer jordkloden. All elektromagnetisk stråling som treffer toppen av atmosfæren, har blitt målt til ca 1361 W/m$^2$ Hvor mye energi som treffer toppen av atmosfæren er nesten konstant, og har bare variert med 0.2 prosent på 400 år. Strålingen blir kalt for _solkonstanten_."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "37e33057",
+ "metadata": {},
+ "source": [
+ "![sunlight_angle.png](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/sunlight_angle.png)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "71786d5c",
+ "metadata": {},
+ "source": [
+ "![solar_insolation_planet_sphere_disk_600x320.png](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/solar_insolation_planet_sphere_disk_600x320.png)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6e1fc738",
+ "metadata": {},
+ "source": [
+ "### Energi som treffer planeten\n",
+ "\n",
+ "$$ E_{inn} = K_s \\cdot \\pi R{_E}^2$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "e74d82f2",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Planeten blir truffet av 1.735e+17 W stråling\n"
+ ]
+ }
+ ],
+ "source": [
+ "Ks = 1361 #[watt per kvadratmeter] Solinnstråling\n",
+ "radius_jorda = 6371000 #[m] Jorda\n",
+ "\n",
+ "e_inn = Ks * pi * radius_jorda**2\n",
+ "\n",
+ "print(f\"Planeten blir truffet av {e_inn:.3e} W stråling\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "363ff8ab",
+ "metadata": {},
+ "source": [
+ "### Energi inn i systemet\n",
+ "\n",
+ "$$E_{absorbert} = K_s \\cdot (1 - albedo) \\cdot \\pi R{_E}^2$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "e3eea153",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Planeten absorberer 1.215e+17 W stråling\n"
+ ]
+ }
+ ],
+ "source": [
+ "albedo = 0.30\n",
+ "e_absorbert = Ks * (1-albedo) * pi * radius_jorda**2\n",
+ "print (f\"Planeten absorberer {e_absorbert:.3e} W stråling\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b910a359",
+ "metadata": {},
+ "source": [
+ "### Energi ut av systemet\n",
+ "\n",
+ "Stefan-Boltzmann loven: Hvor mye energi som blir sendt ut fra overfalten til et legeme per flatenhet og tidsenhet i form av varmestråling. \n",
+ "\n",
+ "$$\\phi=\\sigma T^4$$\n",
+ "\n",
+ "$\\sigma$ er Stefan-Boltzmann constant. $\\sigma = 5.670373 \\cdot 10^{-8} W / (m^2K^4)$\n",
+ "\n",
+ "$$E_{emittert} = \\sigma T^4 \\cdot 4\\pi R{_E}^2$$\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "63132bac",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sigma = 5.670373e-8"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0b144ecf",
+ "metadata": {},
+ "source": [
+ "### Energi inn = Energi ut\n",
+ "\n",
+ "\n",
+ "På grunn av energiprinsippet, loven om at energi er konstant, må energi inn på planeten være det samme som energi ut.\n",
+ "\n",
+ "$$ E_{absorbert}= E_{emittert}$$\n",
+ "\n",
+ "$$ K_s \\cdot (1 - albedo) \\cdot \\pi R{_E}^2 = \\sigma T^4 \\cdot 4\\pi R{_E}^2$$\n",
+ "\n",
+ "$$T = \\sqrt[4]{\\frac{K_s\\cdot(1-albedo)}{4\\sigma}}$$\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "11db413a",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Beregningen av gjennomsnittstemperaturen gir en temperatur på: -18.57 celsius\n"
+ ]
+ }
+ ],
+ "source": [
+ "temperatur_kelvin = ((Ks*(1-albedo))/(4*sigma))**(1/4)\n",
+ "temperatur_celsius = temperatur_kelvin - 273.15\n",
+ "print (f\"Beregningen av gjennomsnittstemperaturen gir en temperatur på: {temperatur_celsius:.2f} celsius\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0ba8cdc5",
+ "metadata": {},
+ "source": [
+ "# Støtte til modelleringsoppgave 2 (temperaturmodellering)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "938f7515",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\"\"\"Konstanter\"\"\"\n",
+ "#Stefan-Boltzman Konstant\n",
+ "sigma=(5.67e-8) #[W m^2 K^4]\n",
+ "#Temperatur Sola\n",
+ "temperatur_sol = 5778 #[Kelvin]\n",
+ "diameter_sol = 1391016e3 #[m]\n",
+ "distanse_sol_jord = 149600000e3 #[m]\n",
+ "radius_jord = 6371e3 #[m]\n",
+ "albedo = 0.3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "fcf5f37b",
+ "metadata": {},
+ "source": [
+ "## Oppgave 1)\n",
+ "Formelen for å kalkulere mengden energi som treffer toppen av atmosfæren ($S_0$) er: \n",
+ "\n",
+ "$$S_0 = \\large\\frac{{radius_{sun}}^2}{{distanse_{jord\\space sol}}^2} \\cdot stråling\\space sol$$ "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "bd78a3f6",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1365.948361181013\n"
+ ]
+ }
+ ],
+ "source": [
+ "stråling_sol = sigma*(temperatur_sol**4)\n",
+ "s0 = ((diameter_sol/2)**2)/(distanse_sol_jord**2)*stråling_sol\n",
+ "print (s0)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "36d1064c",
+ "metadata": {},
+ "source": [
+ "## Oppgave 2)\n",
+ "Bruk energiprinsippet og Stefan-Boltzmanns lov til å lage et utrykk for gjennomsnittlig temperatur på jorden. Noe av innstrålingen fra solen vil bli reflektert, og målet for refleksjonen til en flate kalles albedo. Legg til denne refleksjonsfaktoren for jordkloden og kalkuler temperaturen på jorden. Anta at\n",
+ "temperaturen på planeten er konstant, og at planeten er en flat sirkel."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0dcddf6a",
+ "metadata": {},
+ "source": [
+ "![solar_insolation_planet_sphere_disk_600x320.png](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/solar_insolation_planet_sphere_disk_600x320.png)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5bc539f3",
+ "metadata": {},
+ "source": [
+ "### Utrykket for temperatur man skal komme frem til:\n",
+ "$$T = \\sqrt[4]{\\frac{K_s\\cdot(1-albedo)}{4\\sigma}}$$\n",
+ "\n",
+ "Prøv å vis hvordan man får dette utrykket."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "5ad019b4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "-18.336567683297915"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "temperatur = ((s0*(1-albedo))/(4*sigma))**(1/4)\n",
+ "temperatur - 273.15"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "eeba839f",
+ "metadata": {},
+ "source": [
+ "## Oppgave 3) \n",
+ "\n",
+ "Når vi skal legge til atmosfæren i modellen gjør vi ganske mange forenklinger. Vi antar tre ting (og ingen av antagelsene er faktisk sanne!): \n",
+ "\n",
+ "1) Atmosfæren har en konstant temperatur - dvs. at atmosfæren er en stor blokk hvor hele blokken har den samme temperaturen. \n",
+ "2) Atmosfæren er fullstendig gjennomsiktig for stråling fra solen - dvs at all stråling fra solen treffer jordoverflaten. \n",
+ "3) Atmosfæren tar imot all stråling fra jorden."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "da9d605f",
+ "metadata": {},
+ "source": [
+ "![Atmosf%C3%A6re.png](https://www.uio.no/studier/emner/matnat/ifi/IN-KJM1900/h20/datafiler/atmosferestraling.png)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4d173112",
+ "metadata": {},
+ "source": [
+ "Figuren over viser situasjonen med antagelsene: \n",
+ "(1) viser solinnstårlingen som treffer jordkloden. \n",
+ "(3) viser utsrålingen fra jordkloden som treffer atmosfæren. \n",
+ "(2) viser situasjonen til atmosfæren. Atmosfæren vil sende ut stråling til verdensrommet, men også stråling tilbake til jorden. Energien atmosfæren sender ut kan da kalkuleres ved å bruke stefan-boltzmans lov. \n",
+ "\n",
+ "Prøv å legg inn atmosfæren som et ledd i din kalkulering og se hvordan det påvirker temperaturen.\n",
+ "\n",
+ "#### Løsning ved bruk av figuren over.\n",
+ "$Energi_{inn} = Energi_{ut}$ er fortsatt det som gjelder, men denne gangen blir det to ligninger. Etter systemet nevnt i oppgave 3(a) blir likningene:\n",
+ "\n",
+ "$$\\space s_0\\cdot(1-albedo) = \\sigma T_{a}^4 $$\n",
+ "$$\\space s_0\\cdot(1-albedo) + \\sigma T_{a}^4 = \\sigma T_{s}^4$$\n",
+ "\n",
+ "Sett likning 1 inn i 2 for å få en løsning for $T_{s}$\n",
+ "\n",
+ "Prøv å vis på figuren hvilke piler disse to likningene representerer. Prøv å forklar til deg selv hva som er gjort her for å forstå likningsystemet. \n",
+ "\n",
+ "Kommentar: Resultatet her vil være veldig høyt. I denne situasjonen vil energien til atmosfæren være det jorden sender ut. Vi har jo kalkulert at jorden blir truffet med 1365 watt/m^2, men denne energien vil bare være når solen står på sitt høyeste vertikalt rett ned på jorden. På grunn av rotasjonen til jorden, med natt og dagsykluser, og at jorden egentlig er en kule vil ikke dette være den faktiske gjennomsnittelige innstrålingen som treffer jorden. En forenkling for å finne gjennomsnitt på innstrålingen over hele jordkloden når man tenker at deler ikke får like mye sollys hele tiden vil da være: $S_{0}$/4 = 1365/4 watt/$m^2$. Dette nummeret er veldig nærme den observerte gjennomsnittelige energien som treffer jorden. Sett inn $S_{0}/4$ inn for $S_{0}$ og sjekk hva som skjer med $T_{s}$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "b38cd1ad",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit 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.12"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/_sources/docs/temaX_grafikk/Untitled.ipynb b/_sources/docs/temaX_grafikk/Untitled.ipynb
new file mode 100644
index 00000000..fe7492dc
--- /dev/null
+++ b/_sources/docs/temaX_grafikk/Untitled.ipynb
@@ -0,0 +1,222 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Grafiske brukergrensesnitt\n",
+ "Vi kan benytte et bibliotek kalt _tkinter_ for å lage grafiske grensesnitt til programmene våre."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import tkinter"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "vindu = tkinter.Tk()\n",
+ "vindu.title(\"Simuleringsplattform\")\n",
+ "\n",
+ "merkelapp = tkinter.Label(vindu, text = \"Velkommen!\")\n",
+ "# pack brukes til å vise objektet i vinduet, omtrent som \"show\" i plotting\n",
+ "merkelapp.pack()\n",
+ "\n",
+ "knapp1 = tkinter.Button(vindu, text=\"Trykk her\", fg=\"green\")\n",
+ "knapp2 = tkinter.Button(vindu, text=\"Ikke trykk her\", fg=\"red\")\n",
+ "knapp1.pack()\n",
+ "knapp2.pack()\n",
+ "\n",
+ "vindu.mainloop()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "vindu = tkinter.Tk()\n",
+ "vindu.title(\"Simuleringsplattform\")\n",
+ "\n",
+ "merkelapp = tkinter.Label(vindu, text = \"Velkommen!\")\n",
+ "# pack brukes til å vise objektet i vinduet, omtrent som \"show\" i plotting\n",
+ "merkelapp.pack()\n",
+ "\n",
+ "toppramme = tkinter.Frame(vindu)\n",
+ "toppramme.pack(side = \"top\")\n",
+ "bunnramme = tkinter.Frame(vindu)\n",
+ "bunnramme.pack(side = \"bottom\")\n",
+ "\n",
+ "knapp1 = tkinter.Button(bunnramme, text=\"Trykk her\", fg=\"green\")\n",
+ "knapp2 = tkinter.Button(toppramme, text=\"Ikke trykk her\", fg=\"red\")\n",
+ "knapp1.pack()\n",
+ "knapp2.pack()\n",
+ "vindu.mainloop()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "TclError",
+ "evalue": "can't invoke \"label\" command: application has been destroyed",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mTclError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mCheckVar1\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtkinter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIntVar\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mCheckVar2\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtkinter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIntVar\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[0mtkinter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLabel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvindu\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtext\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"Username\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;31m#tkinter.Checkbutton(toppramme, text = \"Machine Learning\",variable = CheckVar1,onvalue = 1, offvalue=0).grid(row=0,sticky=\"W\")\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;32m~\\anaconda3\\lib\\tkinter\\__init__.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, master, cnf, **kw)\u001b[0m\n\u001b[0;32m 3141\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3142\u001b[0m \"\"\"\n\u001b[1;32m-> 3143\u001b[1;33m \u001b[0mWidget\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmaster\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'label'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcnf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkw\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3144\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3145\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;32m~\\anaconda3\\lib\\tkinter\\__init__.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, master, widgetName, cnf, kw, extra)\u001b[0m\n\u001b[0;32m 2565\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mv\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mclasses\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2566\u001b[0m \u001b[1;32mdel\u001b[0m \u001b[0mcnf\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2567\u001b[1;33m self.tk.call(\n\u001b[0m\u001b[0;32m 2568\u001b[0m (widgetName, self._w) + extra + self._options(cnf))\n\u001b[0;32m 2569\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mv\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mclasses\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mTclError\u001b[0m: can't invoke \"label\" command: application has been destroyed"
+ ]
+ }
+ ],
+ "source": [
+ "top = tkinter.Tk()\n",
+ "CheckVar1 = tkinter.IntVar()\n",
+ "CheckVar2 = tkinter.IntVar()\n",
+ "tkinter.Label(vindu, text = \"Username\")\n",
+ " \n",
+ "#tkinter.Checkbutton(toppramme, text = \"Machine Learning\",variable = CheckVar1,onvalue = 1, offvalue=0).grid(row=0,sticky=\"W\")\n",
+ "#tkinter.Checkbutton(toppramme, text = \"Deep Learning\", variable = CheckVar2, onvalue = 0, offvalue =1).grid(row=1,sticky=\"W\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout\n",
+ "app = QApplication([])\n",
+ "window = QWidget()\n",
+ "layout = QVBoxLayout()\n",
+ "layout.addWidget(QPushButton('Top'))\n",
+ "layout.addWidget(QPushButton('Bottom'))\n",
+ "window.setLayout(layout)\n",
+ "window.show()\n",
+ "app.exec()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import sys\n",
+ "\n",
+ "# 1. Import `QApplication` and all the required widgets\n",
+ "from PyQt5.QtWidgets import QApplication\n",
+ "from PyQt5.QtWidgets import QLabel\n",
+ "from PyQt5.QtWidgets import QWidget"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 2. Create an instance of QApplication\n",
+ "app = QApplication(sys.argv)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 3. Create an instance of your application's GUI\n",
+ "window = QWidget()\n",
+ "window.setWindowTitle('PyQt5 App')\n",
+ "window.setGeometry(100, 100, 280, 80)\n",
+ "window.move(60, 15)\n",
+ "helloMsg = QLabel('
Hello World!
', parent=window)\n",
+ "helloMsg.move(60, 15)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "SystemExit",
+ "evalue": "0",
+ "output_type": "error",
+ "traceback": [
+ "An exception has occurred, use %tb to see the full traceback.\n",
+ "\u001b[1;31mSystemExit\u001b[0m\u001b[1;31m:\u001b[0m 0\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "C:\\Users\\a_har\\anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py:3426: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.\n",
+ " warn(\"To exit: use 'exit', 'quit', or Ctrl-D.\", stacklevel=1)\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 4. Show your application's GUI\n",
+ "window.show()\n",
+ "\n",
+ "# 5. Run your application's event loop (or main loop)\n",
+ "sys.exit(app.exec_())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/temaX_grafikk/tilfeldige_tall_grafikk.ipynb b/_sources/docs/temaX_grafikk/tilfeldige_tall_grafikk.ipynb
new file mode 100644
index 00000000..86c2fc8f
--- /dev/null
+++ b/_sources/docs/temaX_grafikk/tilfeldige_tall_grafikk.ipynb
@@ -0,0 +1,145 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Tilfeldige tall og grafikk (teori)\n",
+ "```{admonition} Læringsutbytte\n",
+ "Etter å ha arbeidet med dette temaet, skal du kunne:\n",
+ "1. Generere tilfeldige flyttall og heltall.\n",
+ "2. Bruke enkel Turtle-grafikk.\n",
+ "3. Bruke grafikkmoduler (Pygame, Turtle eller VPython) i eget prosjekt.\n",
+ "```\n",
+ "\n",
+ "## Tilfeldige tall"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/W5LchfvbcO4? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Kast en terning 10000 ganger og plott relativ frekvens av seksere for hvert kast som funksjon av antall kast.\n",
+ "```\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Turtle-grafikk"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from IPython.display import IFrame\n",
+ "IFrame(\"https://www.youtube.com/embed/PafdmVrIJHU? autoplay=0&rel=0\", width=800, height=600)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Når du har sett videoen, kan du gjøre følgende oppgave for å sjekke om du forstår innholdet:\n",
+ "\n",
+ "```{admonition} Underveisoppgave\n",
+ ":class: tip\n",
+ "Tegn en rettvinkla trekant der en av sidene er 3 lang og den andre er 4 lang.\n",
+ "```\n",
+ "\n",
+ "\n",
+ ""
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Edit Metadata",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/temaX_grafikk/tkinter-demo.ipynb b/_sources/docs/temaX_grafikk/tkinter-demo.ipynb
new file mode 100644
index 00000000..8687cff8
--- /dev/null
+++ b/_sources/docs/temaX_grafikk/tkinter-demo.ipynb
@@ -0,0 +1,267 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Introduksjon"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from tkinter import *"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "vindu = Tk()\n",
+ "vindu.title(\"Simuleringsplattform\")\n",
+ "# Lager Label-Widget.\n",
+ " \n",
+ "lb = Label(vindu, text=\"Hei på deg!\")\n",
+ "lb.pack()\n",
+ "\n",
+ "vindu.mainloop()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Gridsystem (rutenettsystem - rad og kolonner)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "vindu = Tk()\n",
+ "vindu.title(\"Simuleringsplattform\")\n",
+ "# Lager Label-Widget.\n",
+ " \n",
+ "lb1 = Label(vindu, text=\"Hei på deg!\")\n",
+ "lb2 = Label(vindu, text=\"Du er grei!\")\n",
+ "lb1.grid(row=0, column=0)\n",
+ "lb2.grid(row=1, column=1)\n",
+ "\n",
+ "vindu.mainloop()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from vpython import *\n",
+ "\n",
+ "vindu = 500\n",
+ "Natoms = 200 # change this to have more or fewer atoms\n",
+ "\n",
+ "# Typical values\n",
+ "L = 1 # container is a cube L on a side\n",
+ "gray = color.gray(0.7) # color of edges of container\n",
+ "mass = 4E-3/6E23 # helium mass\n",
+ "Ratom = 0.03 # wildly exaggerated size of helium atom\n",
+ "k = 1.4E-23 # Boltzmann constant\n",
+ "T = 300 # around room temperature\n",
+ "dt = 1E-5\n",
+ "\n",
+ "animation = canvas( width=win, height=win, align='left')\n",
+ "animation.range = L\n",
+ "animation.title = 'A \"hard-sphere\" gas'\n",
+ "s = \"\"\" Theoretical and averaged speed distributions (meters/sec).\n",
+ " Initially all atoms have the same speed, but collisions\n",
+ " change the speeds of the colliding atoms. One of the atoms is\n",
+ " marked and leaves a trail so you can follow its path.\n",
+ " \n",
+ "\"\"\"\n",
+ "animation.caption = s\n",
+ "\n",
+ "d = L/2+Ratom\n",
+ "r = 0.005\n",
+ "boxbottom = curve(color=gray, radius=r)\n",
+ "boxbottom.append([vector(-d,-d,-d), vector(-d,-d,d), vector(d,-d,d), vector(d,-d,-d), vector(-d,-d,-d)])\n",
+ "boxtop = curve(color=gray, radius=r)\n",
+ "boxtop.append([vector(-d,d,-d), vector(-d,d,d), vector(d,d,d), vector(d,d,-d), vector(-d,d,-d)])\n",
+ "vert1 = curve(color=gray, radius=r)\n",
+ "vert2 = curve(color=gray, radius=r)\n",
+ "vert3 = curve(color=gray, radius=r)\n",
+ "vert4 = curve(color=gray, radius=r)\n",
+ "vert1.append([vector(-d,-d,-d), vector(-d,d,-d)])\n",
+ "vert2.append([vector(-d,-d,d), vector(-d,d,d)])\n",
+ "vert3.append([vector(d,-d,d), vector(d,d,d)])\n",
+ "vert4.append([vector(d,-d,-d), vector(d,d,-d)])\n",
+ "\n",
+ "Atoms = []\n",
+ "p = []\n",
+ "apos = []\n",
+ "pavg = sqrt(2*mass*1.5*k*T) # average kinetic energy p**2/(2mass) = (3/2)kT\n",
+ " \n",
+ "for i in range(Natoms):\n",
+ " x = L*random()-L/2\n",
+ " y = L*random()-L/2\n",
+ " z = L*random()-L/2\n",
+ " if i == 0:\n",
+ " Atoms.append(sphere(pos=vector(x,y,z), radius=Ratom, color=color.cyan, make_trail=True, retain=100, trail_radius=0.3*Ratom))\n",
+ " else: Atoms.append(sphere(pos=vector(x,y,z), radius=Ratom, color=gray))\n",
+ " apos.append(vec(x,y,z))\n",
+ " theta = pi*random()\n",
+ " phi = 2*pi*random()\n",
+ " px = pavg*sin(theta)*cos(phi)\n",
+ " py = pavg*sin(theta)*sin(phi)\n",
+ " pz = pavg*cos(theta)\n",
+ " p.append(vector(px,py,pz))\n",
+ "\n",
+ "deltav = 100 # binning for v histogram\n",
+ "\n",
+ "def barx(v):\n",
+ " return int(v/deltav) # index into bars array\n",
+ "\n",
+ "nhisto = int(4500/deltav)\n",
+ "histo = []\n",
+ "for i in range(nhisto): histo.append(0.0)\n",
+ "histo[barx(pavg/mass)] = Natoms\n",
+ "\n",
+ "gg = graph( width=win, height=0.4*win, xmax=3000, align='left',\n",
+ " xtitle='speed, m/s', ytitle='Number of atoms', ymax=Natoms*deltav/1000)\n",
+ "\n",
+ "theory = gcurve( color=color.cyan )\n",
+ "dv = 10\n",
+ "for v in range(0,3001+dv,dv): # theoretical prediction\n",
+ " theory.plot( v, (deltav/dv)*Natoms*4*pi*((mass/(2*pi*k*T))**1.5) *exp(-0.5*mass*(v**2)/(k*T))*(v**2)*dv )\n",
+ "\n",
+ "accum = []\n",
+ "for i in range(int(3000/deltav)): accum.append([deltav*(i+.5),0])\n",
+ "vdist = gvbars(color=color.red, delta=deltav )\n",
+ "\n",
+ "def interchange(v1, v2): # remove from v1 bar, add to v2 bar\n",
+ " barx1 = barx(v1)\n",
+ " barx2 = barx(v2)\n",
+ " if barx1 == barx2: return\n",
+ " if barx1 >= len(histo) or barx2 >= len(histo): return\n",
+ " histo[barx1] -= 1\n",
+ " histo[barx2] += 1\n",
+ " \n",
+ "def checkCollisions():\n",
+ " hitlist = []\n",
+ " r2 = 2*Ratom\n",
+ " r2 *= r2\n",
+ " for i in range(Natoms):\n",
+ " ai = apos[i]\n",
+ " for j in range(i) :\n",
+ " aj = apos[j]\n",
+ " dr = ai - aj\n",
+ " if mag2(dr) < r2: hitlist.append([i,j])\n",
+ " return hitlist\n",
+ "\n",
+ "nhisto = 0 # number of histogram snapshots to average\n",
+ "@numba\n",
+ "while True:\n",
+ " rate(300)\n",
+ " # Accumulate and average histogram snapshots\n",
+ " for i in range(len(accum)): accum[i][1] = (nhisto*accum[i][1] + histo[i])/(nhisto+1)\n",
+ " if nhisto % 10 == 0:\n",
+ " vdist.data = accum\n",
+ " nhisto += 1\n",
+ "\n",
+ " # Update all positions\n",
+ " for i in range(Natoms): Atoms[i].pos = apos[i] = apos[i] + (p[i]/mass)*dt\n",
+ " \n",
+ " # Check for collisions\n",
+ " hitlist = checkCollisions()\n",
+ "\n",
+ " # If any collisions took place, update momenta of the two atoms\n",
+ " for ij in hitlist:\n",
+ " i = ij[0]\n",
+ " j = ij[1]\n",
+ " ptot = p[i]+p[j]\n",
+ " posi = apos[i]\n",
+ " posj = apos[j]\n",
+ " vi = p[i]/mass\n",
+ " vj = p[j]/mass\n",
+ " vrel = vj-vi\n",
+ " a = vrel.mag2\n",
+ " if a == 0: continue; # exactly same velocities\n",
+ " rrel = posi-posj\n",
+ " if rrel.mag > Ratom: continue # one atom went all the way through another\n",
+ " \n",
+ " # theta is the angle between vrel and rrel:\n",
+ " dx = dot(rrel, vrel.hat) # rrel.mag*cos(theta)\n",
+ " dy = cross(rrel, vrel.hat).mag # rrel.mag*sin(theta)\n",
+ " # alpha is the angle of the triangle composed of rrel, path of atom j, and a line\n",
+ " # from the center of atom i to the center of atom j where atome j hits atom i:\n",
+ " alpha = asin(dy/(2*Ratom)) \n",
+ " d = (2*Ratom)*cos(alpha)-dx # distance traveled into the atom from first contact\n",
+ " deltat = d/vrel.mag # time spent moving from first contact to position inside atom\n",
+ " \n",
+ " posi = posi-vi*deltat # back up to contact configuration\n",
+ " posj = posj-vj*deltat\n",
+ " mtot = 2*mass\n",
+ " pcmi = p[i]-ptot*mass/mtot # transform momenta to cm frame\n",
+ " pcmj = p[j]-ptot*mass/mtot\n",
+ " rrel = norm(rrel)\n",
+ " pcmi = pcmi-2*pcmi.dot(rrel)*rrel # bounce in cm frame\n",
+ " pcmj = pcmj-2*pcmj.dot(rrel)*rrel\n",
+ " p[i] = pcmi+ptot*mass/mtot # transform momenta back to lab frame\n",
+ " p[j] = pcmj+ptot*mass/mtot\n",
+ " apos[i] = posi+(p[i]/mass)*deltat # move forward deltat in time\n",
+ " apos[j] = posj+(p[j]/mass)*deltat\n",
+ " interchange(vi.mag, p[i].mag/mass)\n",
+ " interchange(vj.mag, p[j].mag/mass)\n",
+ " \n",
+ " for i in range(Natoms):\n",
+ " loc = apos[i]\n",
+ " if abs(loc.x) > L/2:\n",
+ " if loc.x < 0: p[i].x = abs(p[i].x)\n",
+ " else: p[i].x = -abs(p[i].x)\n",
+ " \n",
+ " if abs(loc.y) > L/2:\n",
+ " if loc.y < 0: p[i].y = abs(p[i].y)\n",
+ " else: p[i].y = -abs(p[i].y)\n",
+ " \n",
+ " if abs(loc.z) > L/2:\n",
+ " if loc.z < 0: p[i].z = abs(p[i].z)\n",
+ " else: p[i].z = -abs(p[i].z)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "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.8.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/_sources/docs/test_quiz.ipynb b/_sources/docs/test_quiz.ipynb
new file mode 100644
index 00000000..04ca8a77
--- /dev/null
+++ b/_sources/docs/test_quiz.ipynb
@@ -0,0 +1,2638 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Review"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In this Chapter, we started working with real data, introduced Pands, partitions, summary statistics, binary hypothesis testing via bootstrap resampling, and two-dimensional statistics. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": [
+ "remove-input"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "