MMA132: Laboration 1 & 2 Introduktion till MATLAB

Storlek: px
Starta visningen från sidan:

Download "MMA132: Laboration 1 & 2 Introduktion till MATLAB"

Transkript

1 MMA132: Laboration 1 & 2 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med kombinationer av enklare operationer. I praktiken betyder detta att man byter ut abstrakt och komplex teori som det är svårt och tidsödande att arbeta med mot stora mängder enkla beräkningar. Den främsta fördelen med detta är att vi idag har tillgång till maskiner som kan utföra många beräkningar snabbt och korrekt: datorer. Under de här laborationerna så skall vi använda datorer, mer specifikt den populära programvaran MATLAB för att undersöka olika numeriska metoder och fenomen på ett sätt som är mer praktiskt än at räkna med penna och papper och mer likt det sätt som man arbetar med numeriska metoder som ingenjör. Denna första laboration skall utföras under 4 timmar. Laborationen kan göras på egen hand med rekommeras att göras i par. Laborationen består av ett antal exempel på funktioner i MATLAB och hur dessa används. Tanken är att ni under laborationens gång skall jobba parallellt med handledningen och experimentera lite utifrån exemplen på egen hand. Denna laboration är menad att introducera MATLABs mest grundläggande funktioner och visa hur man kan använda MATLAB för att snabbt lösa vanliga matematiska problem. I slutet av varje exempel finns ett övningsproblem som ni skall lösa. Lösningarna på dessa problem skall sedan redovisas i en labbrapport. Rapporten bör vara mellan 2 och 5 sidor lång per laboration (4-10 sidor per labbtillfälle) och skall innehålla all MATLAB-kod som är nödvändig för att lösa uppgifterna. Det skall också framgå tydligt vilken del av koden som gör vad. Om din rapport innehåller figurer skall det vara tydligt vad det är det ritar upp och som som anges på x- och y-axeln. Ett allmänt tips för laborationen och övningsuppgifterna är att tänka igenom precis vad du vill göra (det kan också vara en bra idé att skriva ner detta) innan du börjar skriva MATLAB-kod för att lösa en övningsuppgift eller testa ett laborationsexempel. 1

2 Laboration 1 Denna laboration behandlar några grundläggande funktioner i MATLAB: beräkning av aritmetiska uttryck, lagring av värden i variabler, lagring av vektorer och matriser samt lösning av linjära ekvationssystem. För den som har tid över finns också exempel på hur man kan arbeta med polynom i MATLAB. Det kanske enklaste sättet att komma igång med MATLAB är att arbeta igenom ett par exempel och läsa ett par problem. Ni ska gå igenom följande exempel och sen göra övningarna som finns i slutet av handledningen. Använd gärna hjälp-funktionen i MATLAB för att läsa mer om de kommandon som används och se fler exempel på hur de kan användas och vad det finns för liknande kommandon. Introduktion till MATLAB MATLAB är ett kraftfullt och komplext program som används för olika typer av tekniska beräkningar. Det är inte helt lätt att lära sig och även den som har använt programmet i flera år upptäcker med jämna mellanrum funktioner som de inte visste om och nya sätt att lösa problem. De här labbarna förutsätter inte att man kan någonting om MATLAB och är uppbyggda som att man får pröva sig fram med olika exempel på vad programmet kan göra. Var beredd på att saker inte alltid kommer att fungera på första försöket. När något går fel så försöker MATLAB ofta berätta vad det är som inte fungerar. Se ett exempel i figur 2. Läs och försök förstå dessa felmeddelanden i så stor utsträckning som möjligt. MATLAB har också en bra inbyggd hjälpfunktion Har du erfarenhet av programmering så kan det vara värt att titta på sidan 7 innan du börjar med Exempel 1. Här och på sidan 7 finns det bilder på hur programmet ser ut där några användbara eller viktiga saker är markerade. Om du inte kommer ihåg var någon finns eller inte förstår vad ett visst ord betyder så kan du se om det finns här. Figur 1: Huvudvy i MATLAB. Vad siffrorna markerar kan man läsa i tabell 1. 2

3 1 Kommandofönstret (Command Window): Här skrivet du in dina kommandon och här skrivs dina resultat ut. 2 Här kan du se vilken mapp som MATLAB för tillfället letar efter m-filer i och vad som finns i den mappen. 3 Här kan du se de variabler som är är definierade just nu och vilken sorts variabel de är och ibland deras värde. 4 Här kan du se din kommando historia. Om du lyckades göra något för en stund sen men har glömt hur så kan du titta efter här. 5 Här kan du klicka för att komma åt den inbyggda hjälpfunktionen. Tabell 1: Förklaring till siffrorna i figur 1 Figur 2: Kommandofönster med felmeddelande. 3

4 Exempel 1: MATLAB som avancerad miniräknare Det är enkelt att använda MATLAB för att beräkna olika matematiska uttryck. Prova att skriva 2 + 2*3 i kommando-fönstret. Resultatet av en uträkning kan sparas i en variabel. Prova att skriva resultat = 2 + 2*3 i kommando-fönstret. Du kan få fram ett värde som har sparats i en variabel genom att skriva variabelns namn på kommandoraden. Bekräfta detta genom att skriva resultat på kommandoraden. Vill man beräkna samma uttryck flera gånger är det bra att använda variabler eftersom de kan stoppas in i matematiska uttryck precis som siffror. Prova att skriva resultat*3 i kommando-fönstret. Nu är det dags att se hur MATLAB kan beräkna värdet av en matematisk funktion för flera värden på en gång. För att beräkna värdet av y = t 2 för t = 0, t = 1 och t = 2 så måste vis först definiera vilka t-värden MATLAB skall använda. Detta gör vi med hjälp av en lista, ibland kallad vektor (på engelska array, list eller vector). I MATLAB skapas listor genom att skriva in deras element, skilda med antingen mellanslag eller komma, mellan []. Prova att skriva t=[0 1 2] i kommandofönstret. Vi vill nu beräkna värdet på y. Prova att skriva y = t.^2 i kommandofönstret. Notera punkten mellan t och ^. Denna punkt är där därför att vi vill ta varje element i listan upphöjt till två. Skulle punkten inte vara där skulle MATLAB tolka y = t 2 som att du vill ta listan t och matrismultiplicera den med sig själv. Detta kommer naturligtvis inte att fungera. Prova gärna på egen hand vad som händer om du försöker använda +, -, * och / på antingen två listor eller en lista och ett tal. Vad händer när du sätter punkter framför? För att rita en graf över det beräknade värdena av y = t 2 så skriv plot(t,y) i kommandofönstret. Eftersom vi har beräknat värdet i så få punkter blir grafen inte särskilt slät. För att få en bättre graf vill vi beräkna funktionsvärdet i fler punkter. För att skapa en lista med många punkter kan man skriva [första värde i listan:steglängd:sista värde i listan] i kommandofönstret. Skapar man en lista med många värden kan det vara opraktiskt att MATLAB skriver ut alla värden. Vill man att MATLAB inte skall skriva ut resultatet av en beräkning eller definition kan man sätta ; sist på raden. Prova att skriva 4

5 t = [0:0.1:2]; i kommandofönstret. Nu kan nya värden av y beräknas genom att återigen skriva y = t.^2 i kommandofönstret. Rita också upp den nya grafen genom att skriva plot(t,y). Det är också enkelt att beräkna värdet av andra funktioner för värdena i t, för att få fram en lista på värden för z = t skriv z = sqrt(t); i kommandofönstret. Vi kan också rita upp flera grafer i samma fönster. Prova att skriva plot(t,y,t,z) i kommandofönstret. Övning 1 Rita en fin graf för funktionerna f(x) = e x2 (tips: kolla in MATLAB-kommandot exp) och g(x) = 1 1 för 2 x 2 i samma bild. 1+x 2 5

6 Exempel 2: Matriser i MATLAB MATLAB är en förkortning av MATrix LABoratory. Detta namn valdes eftersom MATLAB är mycket bra på att hantera matriser. Listor i MATLAB är egentligen matriser med bara 1 rad (eller bara 1 kolonn). Prova att skriva A = [1 2 3; 0 1 6; 7 8 1] i kommandofönstret. Prova nu att skriva B = [ ] i kommandofönstret. Jämför de två matriserna med varandra. Det är också enkelt att transponera och invertera matriser. Prova att skriva C = A och D = inv(a) i kommandofönstret. Fundera ut vilket kommando som gör vad. Man kan också lösa linjära ekvationssystem med MATLAB. Om ekvationssystemet kan skrivas Ax = y där A är den matris som vi tidigare lagrade i variabel A och så kan du lösa ekvationssystemet genom att skriva y = [1;2;3]; x = A\y 1 y = 2 3 i kommandofönstret. Om du vill kan även använda inversen du räknade ut tidigare för att lösa systemet. Lös ekvationssystemet Övning x x x 3 = x x x 3 = x x 2 =

7 Viktigt verktyg: m-filer Om du har en komplicerad beräkning att göra kan det bli mycket att skriva i kommandofönstret. Det kan också vara besvärligt att spara allting du har skrivit i kommandofönstret, speciellt eftersom man då också sparar de gånger man har råkat skriva fel. Ett bättre alternativ är ofta att använda sig av m-filer. En m-fil är en vanlig text-fil som man har skrivit MATLAB-kommandon i. Genom att skriva namnet på filen i kommandofönstret kommer MATLAB att köra kommandona i den ordning de dyker upp i filen. Det finns vissa regler som måste följas för att en m-fil skall fungera. Varje rad i filen fungera om den hade skrivits i kommandofönstret (MATLAB hjälper dig faktiskt med att kontrollera detta, fråga din handledare). Filen kan inte heller heta vad som helst, namnet får inte innehålla några specialtecken, såsom?,! eller mellanslag. Filnamnet får heller inte börja med en siffra (men siffror senare i namnet går bra). För att MATLAB skall kunna hitta filen måste mappen som filen finns i vara vald som Current Folder längst upp i MATLAB-fönstret. Skapa en ny m-fil genom att klicka på (File New Script) och skriv in de kommandon som användes i det av de tidigare exemplen du tyckte mest om. Spara filen och skriv sedan in namnet på filen i kommandofönstret för att göra om exemplet. Figur 3: MATLABs inbyggda textredigerare. 1 Här skriver du dina kommandon. För det mesta så betyder ny rad nytt kommando, undantaget är matriser där kommandot slutar på den rad där matrisen avslutas (med ]). Om du har ett väldigt långt kommando så kan du skriva... och sen fortsätta med kommandot på nästa rad. 2 Här finns knappar för att skapa ny fil, öppna fil och spara fil. 3 Du kan köra din fil genom att klicka på Run". Kom ihåg att resultatet kommer i ett annat fönster. 4 Om du öppnar flera filer så lägger sig de här som flikar. 5 MATLABs textredigerare försöker upptäcka fel innan du kör filen. Rött betyder att filen inte kommer att gå att köra, orange att de kan orsaka problem men att filen kan köras och grönt betyder att MATLAB inte hittat några fel (det finns dock fel som MATLAB inte kan hitta). 6 Här kan du se på vilken rad och i vilken kolumn du skriver just nu. Tabell 2: Förklaring till siffrorna i figur 3 7

8 Figur 4: Kommandofönster med felmeddelande från m-fil. De gröna pilarna visar var du kan se vilken fil som felet skett i, vilken rad i filen felet skett på samt vilken kolumn som felet skett i. 8

9 Extra del att göra om du har tid över: Polynom i MATLAB Man kan beräkna värdet av polynom i MATLAB på samma sätt som andra funktioner men det finns en del inbyggda funktioner i MATLAB som gör att polynom kan representeras ast med en lista av koefficienter. Polynomet p(t) = t 3 2t + 1 kan representeras med vektorn [ ]. Värdet på polynomet kan beräknas med hjälp utav kommandot polyval. För att beräkna värdet av p(t) för samma värden på t som vi använde i föregåe exempel och rita upp resultatet skriv t = [0:0.1:2]; poly_coeff = [ ]; p = polyval(poly_coeff,t); plot(t,p) i kommandofönstret. Ett annat användbart kommando är roots som hittar rötterna till ett polynom. Prova att skriva r = roots(poly_coeff) i kommandofönstret. Jämför resultatet med bilden av polynomet du ritade upp tidigare. Det kan vara lättare att se var rötterna finns om du skriver grid i kommandofönstret. Det finns många inbyggda kommandon som kan användas för att jobba med polynom i MATLAB. Ett exempel är kommandot conv som kan användas för att multiplicera två polynom. conv är en förkortning av convolution, faltning på svenska. Om du inte redan vet vad detta så slå gärna upp det på din fritid, det kan mycket väl dyka upp i senare matematik kurser. Det finns också ett kommando som låter dig dividera polynom, deconv 1, för att få reda på mer om hur dessa kommandon fungerar, slå upp dom med MATLABs hjälpfunktion. Extra övning om du har tid över Låt p(x) = x 7 + 2x 6 + x 2 + 2x och q(x) = x 4 + x 3 + 3x 2 + 5x + 2. Hitta ett enkelt sätt att beräkna koefficienterna f ör polynomet r(x) = p(x)q(x) m.h.a. kommandot conv och leta sedan upp rötterna till r(x) med kommandot roots. Rita upp r(x) för 1.5 x 1.5 och kolla med bilden så att rötterna du fått verkar rimliga. 1 Denna metod saknas i Freemat. 9

10 Laboration 2 Syftet med den här laborationen är att bli bekant med fler av MATLABs grundläggande funktioner, såsom funktioner, villkor och loopar. Dessa grundläggande funktioner skall också användas för numerisk lösning av icke-linjära ekvationssystem. Mer om m-filer I slutet av laboration 1 introducerades m-filer. Dessa var filer där vi kunde skriva in flera MATLABkommandon och köra dem efter varandra vilket för det mesta är mer praktiskt än att arbeta direkt i kommandofönstret. För denna laboration är det rekommerat att du använder m-filer i så stor utsträckning som möjligt. Skapa en ny m-fil genom att klicka på (File New Script) och skriv in de kommandon som användes i det av de tidigare exempel du tyckte mest om. Spara filen och skriv sedan in namnet på filen i kommandofönstret för att göra om exemplet. Ibland kan det vara svårt att komma ihåg precis vad det var man gjorde i en m-fil. Då kan man skriva kommentarer i den. Kommentarer skriver man genom att sätta % först på raden. Det kan t.ex. se ut så här: % Det här är en kommentar. % Nu skall jag räkna ut 2+2 x = 2+2 % Hoppas att det blir fyra m-filer är bra om man vill läsa flera liknande problem eller vill spara sina lösningar till senare. Om det är en speciell metod man vill använda många gånger kan det vara bättre at skriva en funktion. Exempel 1: Funktioner Funktioner i MATLAB liknar funktioner i matematiken. Funktioner kan ses som små datorprogram som tar emot en (eller flera) variabler och skickar tillbaka en (eller flera) andra variabler. Under förra labben har ni redan använt flera olika funktioner, t.ex. exp, plot och deconv. Nedan finns en bild av hur funktioner fungerar. x x,y z = f(x) f z function [a,b] [a,b] = function(x,y) Figur 5: Illustration som visar likheterna mellan en matematisk funktion och en MATLAB-funktion. Det finns flera sätt att skapa funktioner i MATLAB. Vill man skapa en enkel funktion kan man använda inline För att få en funktion som beräknar f(x) = sin(x) + cos(x) kan man skriva f1 = inline( sin(x)+cos(x), x ) eller 10

11 f2 sin(x) + cos(x) Du kan sedan beräkna värdet av dessa funktioner för x = 1 genom att skriva t.ex. f1(1) eller f2(1). Notera att även om du har använt variabeln x i definitionen av funktionen så kan du fortfarande använda x utanför funktionen utan att det blir några problem. De variabler du definierar inuti funktionen syns helt enkelt inte utanför funktionen. Detta kan vara speciellt användbart när du använder en funktion som någon annan har skrivit. Viktigt: Det är viktigt att hålla reda påom en variabel är en funktion eller en lista. Om f1 är funktionen vi nyss definierade så ger f1(n) värdet av funktionen för x = n men om f1 vore en lista skulle f1(n) ge det n:te elementet i listan. Detta innebär t.ex. att f1(1.5) skulle fungera bra om f1 är en funktion men dåligt om f1 vore en lista. Det fungerar på samma sätt för funktioner av flera variabler och matriser. f(x,y) för en funktion ger f(x,y) men f(x,y) för en matris ger elementet som finns i den x:te raden och y:te kolonnen. För mer avancerade funktioner får man skriva en speciell m-fil. Första raden i m-filen skall vara skriven på detta sätt: function [ variabler du vill skicka tillbaka ] = namn på funktionen( variabler du vill skicka in ) Namnet på funktionen måste 2 vara samma som namnet på m-filen!. Om du vill ha en funktion som räknar ut värdena för en annan funktion får hundra värden mellan a och b och dessutom ritar upp grafen för dessa värden så kan du skriva så här: function [f_val] = plot_example(f,a,b) % Funktion som beräknar värdet av f % för hundra värden mellan a och b % samt ritar grafen för dessa värden. % Skapa lista med hundra värden mellan % a och b. h = (b-a)/100; x = a:h:b; % Beräkna värden för f, vi antar att % f klarar av att räkna med listor f_val = f(x); % Rita grafen plot(x,f_val) % Markera axlar på ett bra sätt title('grafen för funktionen') xlabel('x') ylabel('funktionsvärde') På sidan i Egnesund kan du läsa om intervallhalveringsmetoden som kan användas för att lösa icke-linjära ekvationer. Denna metod finns redan implementerad som en funktion i MATLAB och heter fzero. Om vi tittar på fzero i MATLABs hjälp så ser vi att funktionen skall användas så här: 2 Rent teknisk sett så fungerar funktionen ändå men den måste anropas med namnet på m-filen istället för namnet på funktionen. 11

12 x = fzero(f,x0) Där x är lösningen, f är funktionen och x0 är en första gissning. Om vi vill kan vi också använda funktionen på det här sättet [x,fval] = fzero(f,[a b]) där x är lösningen, fval är funktionens värde i lösningen, f är funktionen och vi tror att lösningen skall finnas mellan a och b. Rita upp funktionen f1 eller f2 mellan x = 2 och x = 2 med hjälp av plot_example. Titta på grafen och välj lämpliga värden på a och b. Se om du kan hitta ett nollställe genom att skriva [x,fval] = fzero(f,[a b]). Övning 1 Om du tittar på sidan 3.14 i kompiumet så skrivs formeln för en iteration med Jacobis metod på matrisform i ekvation (3.35). Skriv en funktion som heter jacobi och som tar emot tre argument: en matris, M, en svarsvektor, y, och en ungefärlig lösning, x, och skickar tillbaka en ny gissning framräknad med Jacobis metod. För att testa er funktion kan ni skriva: M = [8 1 3; ; ] y = [119; 131; 167] x0 = [10; 10; 10] x1 = jacobi(m,y,x0) Om ni får resultatet x1 = så fungerar er funktion som den ska. 12

13 Exempel 2: Villkor och loopar Tidigare i kursen har vi talat om iterativa metoder för lösning av linjära ekvationer (intervallhalveringsmetoden, Newton-Raphson metoden, sekantmetoden och fixpunktsmetoden). Alla dessa metoder byggde på att göra en enkel beräkning flera gånger efter varandra. I denna del skall vi lära oss hur vi kan få MATLAB att arbeta iterativt. for-loopar Ett sätt att få MATLAB att upprepa en viss beräkning flera gånger är att använda en for-loop. En for-loop konstrueras på följande sätt: for index variabel t.ex. i = lista t.ex. list Här står de MATLAB-kommandon som utför den beräkning som vi vill göra. Oftast så skjuts de in lite för att det ska bli tydligt vad som är inuti och vad som är utanför for-loopen. Kommandona körs en gång per element i listan list och om i dyker upp i något kommando så kommer det att vara motsvarande värde i list. Om man vill skriva ett program som utför en beräkning n gånger kan man skriva for i = 1:n Här står de MATLAB-kommandon som som man vill köra n gånger. Låt oss testa att skriva en for-loop genom att skriva en funktion som räknar ut fakulteten av ett tal. n! = n (n 1) (n 2) En m-fil för detta kan se ut som följer (prova gärna och se om du kan skriva den på ett annat sätt): function f = factorial_calc(n) % factorial_calc beräknar fakulteten % av ett positivt heltal med hjälp av % en for-loop % 0! = 1 f = 1; % Här multipliceras värdena 1 till n % med varandra i en for-loop. % Notera att för MATLAB så betyder % 1:n och [1:1:n] samma sak for i = 1:n % i kommer att variera från 1 till n % Första varvet kommer f = 1*1 % Andra varvet kommer f = 1*2 % Tredje varvet kommer f = 2*3 % Tredje varvet kommer f = 6*4 o.s.v f = f*i; 13

14 Om du byter ut i = 1:n mot i = 1:2:n kommer du att få en funktion som räknar ut produkten av alla udda tal mellan 1 och n f(n) = m (m 2) där m = n om n är udda och m = n 1 om n r jämn Om vi istället vill skriva en funktion som räknar ut produkten av alla element i en lista så kan vi enkelt ordna det function f = list_prod(list) % Beräknar produkten av alla elementen i list f = 1; for i = list f = f*i; Jämför den här funktionen med funktionen för fakultet och se till att du förstår skillnaden. I MAT- LAB finns det också färdiga funktioner för fakultet och produkt av elementen i en lista, de heter factorial respektive prod. Villkor När man utför numeriska beräkningar är det inte alltid man vet i förväg hur många gånger man vill utföra en beräkning utan man vill enkelt fortsätta tills svaret är tillräckligt bra. Man kan få MATLAB att kolla hur bra en lösning är åt oss. Först vill vi kunna jämföra tal med varandra, det finns det ett antal olika kommandon för i MATLAB a < b a < b a mindre än b a <= b a b a mindre än eller lika med b a > b a > b a större än b a >= b a b a större än eller lika med b a == b a = b a lika med b Tabell 3: Tabell över olika kommandon för att jämföra saker i MATLAB. Det finns en viktig skillnad mellan a = b och a == b. När bara ett likhetstecken, =, används säger vi att vi vill spara värdet till höger i variabeln till vänster. När två likhetstecken används, ==, så jämför värdet i variabeln på höger sida med variabeln på vänster sida och ser om dom är lika. När vi skriver a == b så kommer resultatet att bli antingen 0 (om a b) eller 1 (om a = b). Prova och skriv följande i kommandofönstret: 1 < <= 12 3*5 == 15 Blir svaren vad du förväntade dig? Om man jämför två listor med varandra så kommer jämförelserna att göras elementvis. Vi kan också använda jämförelser för att bara göra något när ett visst villkor är uppfyllt med hjälp 14

15 av en if-sats. if-satser skrivs på följande vis: if jämförelse Här står de MATLAB-kommandon som bara skall utföras om jämförelsen är sann (villkoret är uppfyllt) Det finns också en variant av if-satsen där vi kan få MATLAB att bete sig på olika sätt beroe på om villkoret är uppfyllt eller inte. if else jämförelse Här står de MATLAB-kommandon som bara skall utföras om jämförelsen är sann (villkoret är uppfyllt) Här står de MATLAB-kommandon som bara skall utföras om jämförelsen är falsk (villkoret är inte uppfyllt) Vi kan bygga ut funktionen för fakultetsberäkning som vi tidigare skrev: function f = factorial_calc(n) % factorial_calc beräknar fakulteten % av ett positivt heltal med hjälp av % en for-loop % 0! = 1 f = 1; % Kontrollera att n är ett positivt tal if n > 0 % Här multipliceras värdena 1 till n % med varandra i en for-loop. % Notera att för MATLAB så betyder % 1:n och [1:1:n] samma sak for i = 1:n % i kommer att variera från 1 till n % Första varvet kommer f = 1*1 % Andra varvet kommer f = 1*2 % Tredje varvet kommer f = 2*3 % Tredje varvet kommer f = 6*4 o.s.v f = f*i; % Vad skall vi göra om n inte är positivt else % Kommandot disp skriver ut text i % kommandofönstret disp('n måste vara större än 0') f = 0; 15

16 Här kan du tillräckligt för att göra övning 2! while-loopen Nu när vi vet hur jämförelser fungerar kan vi också få MATLAB att fortsätta göra samma sak, om och om igen tills ett visst villkor har uppfyllts. Detta görs enklast med en så kallad while-loop: while jämförelse Här står de MATLAB-kommandon som utf ör den beräkning som vi vill göra. MATLAB kommer att utföra dessa om och om igen tills jämförelsen inte är sann längre. Med en while-loop kan man enkelt implementera de iterativa metoder som vi användes för attt lösa icke-linjära ekvationer i kapitel två och gruppuppgift 1. Nedan finns en enkel implementation av Newton-Raphson metoden för att lösa x 3 2 x = 0. function y = newton_raphson(x) % Funktion som numerisk löser % x^3-2*x^2+1 = 0 % med Newton-Raphsons metod och % startvärde x. z = -1:0.01:2; fv = z.^3-2*z.^2+1; %plot(z,fv) % Här bestämmer vi att vi vill ha % 3 korrekta decimaler i vårt svar. eps = ; % Vi låter y vara den 'nya lösningen' % och x vara den 'gamla lösningen'. % Vi få ta till ett litet knep för att % se till att MATLAB skall räkna fram % en ny lösning minst en gång. y = x; x = y + 1; % Här använder vi Newton-Raphsons metod. % Vi avgör hur bra uppskattningen är % genom att titta på funktionsvärdet. while abs(y^3-2*y^2+1) > eps % Vår 'nya lösning' blir vår 'gamla lösning' % inför nästa varv. x = y; % Beräkning av funktionens värde och derivata % för den gamla lösningen. f = x^3-2*x^2+1 f_p = 3*x^2-4*x; % Beräkning av ny lösning. y = x - f_p/f 16

17 Notera att denna implementation inte skyddar mot Newton-Raphson metodens instabilitet överhuvudtaget. Det betyder att man kan välja ett startvärde x sådant att man aldrig hittar någon lösning. Detta innebär att programmet aldrig kommer att sluta köra. Om du skulle råka ge ett sådant startvärde och MATLAB slutar svara, tryck på ctrl-c så kommer du att avbryta körningen 3. Här kan du tillräckligt för att göra övning 3! Har du tid över under laborationen så får du gärna prova att förbättra funktionen (tips: du kan använda en if-sats och kommandot return för att sätta ett maximalt antal interationer), eller skriva en ny funktion som använder sig av sekantmetoden istället. Om du tittar på kursens Blackboard-sida finns också ett par lite mer avancerade implementationer av Newton-Raphsons metod och sekantmetoden (under Laborationer Laboration 2 Intressanta m-filer) om du är intresserad. Övning 2 Skriv en ny funktion (hitta på ett bra namn själv) som kan ge en ungefärlig lösning på ett linjärt ekvationsystem med hjälp av Jacobis metod. Metoden skall ta en matris, en svarsvektor, en ungefärlig lösning och ett heltal, n, som inargument och skicka tillbaka en ny ungefärlig lösning framräknad med n iterationer av Jacobis metod. Tips: återanvänd lösningen till uppgift 1 och slå upp MATLAB-funktionen norm. Kom också ihåg att använda en diagonaldominant matris när ni testar funktionen (Som en extra utmaning till den som vill: se till att funktionen kollar om matrisen är diagonaldominant och låter bli att räkna om den inte är det). 3 Om du använder FreeMat så avbryter du skript och funktioner med ctrl-b 17

18 Extra övningar att göra om ni har tid Skriv en MATLAB-funktion som använder sekantmetoden för att lösa icke-linjära ekvationer. Funktionen skall ta fyra argument, f, x0, x1, tol. f skall vara en funktion, x0 och x1 skall vara första gissningar och tol skall vara den tillåtna felgränsen E f. Funktionen skall kunna följande: Returnera en punkt x sådan att f(x) = 0 ± E f med sekantmetoden. Om funktionen inte hittat en tillräckligt bra lösning efter 1000 iterationer så skall den ge upp. Funktionen skall rita upp f(x) över ett lämpligt intervall och markera alla gissningar som sekantmetoden har givit. MATLAB-funktioner kan också användas för att illustrera olika fenomen. Från Blackboard kan du ladda ner filen interpmkv.m. Där finns en liten demonstration av hur resultatet från minsta-kvadrat-metoden varierar med grad på det passade polynomet och att om man använder tillräckligt högt grad så får man Lagrange-interpolation. För att köra demonstrationen: Ladda ner filen och lägg den i samma mapp som de andra filer du använt i laborationen. Skriv interpmkv i kommandofönstret och tryck på enter. MATLAB kommer nu att rita upp en figur med några punkter markerade. Om du trycker på mellanslag kommer MATLAB att rita in ett passat polynom av grad 1. Om du trycker på mellanslag igen kommer MATLAB att rita in ett passat polynom av grad 2. Fortsätter du trycka på mellanslag så kommer programmet att fortsätta att rita upp passade polynom av högre och högre grad tills du når grad 8, detta polynom interpolerar alla punkterna. Kör demonstrationen och spara den slutgiltiga bilden. I labbrapporten skall du lägga in bilden och skriva en kort kommentar om vilken grad på polynomet som du tror är mest användbar och varför. 18

MMA132: Laboration 1 Introduktion till MATLAB

MMA132: Laboration 1 Introduktion till MATLAB MMA132: Laboration 1 Introduktion till MATLAB De flesta numeriska metoder låter oss få en tillräckligt bra lösning på ett matematiskt problem genom att byta ut komplexa matematiska operationer med kombinationer

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

Laboration: Grunderna i MATLAB

Laboration: Grunderna i MATLAB Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar

Läs mer

Introduktion till Matlab

Introduktion till Matlab Introduktion till Matlab Inledande matematik, I1, ht10 1 Inledning Detta är en koncis beskrivning av de viktigaste delarna av Matlab. Till en början är det enkla beräkningar och grafik som intresserar

Läs mer

En introduktion till MatLab

En introduktion till MatLab Chalmers tekniska högskola En introduktion till MatLab Gustafsson Gabriel gabgus@student.chalmers.se Johansson Việt Simon simoj@student.chalmers.se Författare: Norell Pontus npontus@student.chalmers.se

Läs mer

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

Linjär algebra med tillämpningar, lab 1

Linjär algebra med tillämpningar, lab 1 Linjär algebra med tillämpningar, lab 1 Innehåll Per Jönsson Fakulteten för Teknik och Samhälle, 2013 Uppgifterna i denna laboration täcker kapitel 1-3 i läroboken. Läs igenom motsvarande kapitel. Sitt

Läs mer

Laboration: Grunderna i Matlab

Laboration: Grunderna i Matlab Laboration: Grunderna i Matlab Att arbeta i kommandofönstret och enkel grafik Den här delen av laborationen handlar om hur man arbetar med kommandon direkt i Matlabs kommandofönster. Det kan liknas vid

Läs mer

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32) Programmeringsteknik och Matlab Övning Dagens program Övningsgrupp 2 (Sal Q22/E2) Johannes Hjorth hjorth@nada.kth.se Rum 458 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d2

Läs mer

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln Matlab-föreläsning (4), 10 september, 015 Innehåll m-filer (script) - fortsättning från föreläsning 1 In- och utmatning Sekvenser, vektorer och matriser Upprepning med for-slingor (inledning) Matlab-script

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde: TANA81: Beräkningar med Matlab - Variabler och Matriser - Logiska uttryck och Villkor - Repetitionssatser - Grafik - Funktioner Variabler I Matlab skapas en variabel genom att man anger dess namn och ger

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Newtons metod och arsenik på lekplatser

Newtons metod och arsenik på lekplatser Newtons metod och arsenik på lekplatser Karin Kraft och Stig Larsson Beräkningsmatematik Chalmers tekniska högskola 1 november 2004 Introduktion Denna övning ingår i Lärardag på Chalmers för kemilärare

Läs mer

Matlabföreläsningen. Lite mer och lite mindre!

Matlabföreläsningen. Lite mer och lite mindre! Inmatning: Här är lite exempel på inmatning i Matlab: >> pi 3.1416 >> format long >> ans 3.141592653589793 Matlabföreläsningen Lite mer och lite mindre! >> format %återställer format (%- tecknet gör att

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU 2015/2016 Matematiska vetenskaper Introduktion till Matlab 1 Inledning Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor och universitet runt

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,

Läs mer

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI TEKNISKA HÖGSKOLAN I LINKÖPING Matematiska institutionen Beräkningsmatematik/Fredrik Berntsson Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI Tid: 14-18, 14:e Mars, 2017 Provkod: TEN1 Hjälpmedel:

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU STUDIO 1 LMA515b - 2016/2017 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU LABORATION 1 TMV157-2014/2015 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på många tekniska högskolor

Läs mer

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU LABORATION 1 MVE011-2012/2013 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på de flesta tekniska högskolor

Läs mer

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter Inledande matematik för I1 MVE011 läsperiod 1 010 Matlab vecka övningsuppgifter Linjära ekvationssystem Matlab har många kraftfulla redskap för att hantera matriser och därmed också linjära ekvationssystem.

Läs mer

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 18:e augusti klockan

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 18:e augusti klockan MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 18:e augusti klockan 8.00-12.00 Redovisning Lös först uppgifterna i Matlab.

Läs mer

Ickelinjära ekvationer

Ickelinjära ekvationer Löpsedel: Icke-linjära ekvationer Ickelinjära ekvationer Beräkningsvetenskap I Varför är det svårt att lösa icke-linjära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod

Läs mer

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från

Läs mer

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB MAI/Linköpings universitet Fredrik Berntsson Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB Redovisning Lös först uppgifterna i Matlab. Då du har en

Läs mer

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2016 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

TMV156/TMV155E Inledande matematik E, 2009

TMV156/TMV155E Inledande matematik E, 2009 TMV156/TMV155E Inledande matematik E, 2009 DATORÖVNING 2 PÅ VÄG MOT PROGRAMMERING Instruktioner Skapa en ny filkatalog ( directory ) Lab2 för denna övning. Gör alltid uppgifterna i script-filer eller funktionsfiler.

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 4. Funktioner 1 Egna Funktioner Uppgift 1.1 En funktion f(x) ges av uttrycket 0, x 0, f(x)= sin(x), 0 < x π 2, 1, x > π 2 a) Skriv en Matlab funktion

Läs mer

MATLAB handbok Introduktion

MATLAB handbok Introduktion Department of Physics Umeå University 30 juni 2014 MATLAB handbok Introduktion Marina Wallin Martin Hansson Per Sundholm 1 INTRODUKTION TILL MATLAB 1 1 Introduktion till Matlab Något man som Teknisk fysiker

Läs mer

Datorlaboration :: 1 Problembeskrivning ::

Datorlaboration :: 1 Problembeskrivning :: Datorlaboration :: Ett hyrbilsföretags problem Laborationen går ut på att lösa Labbuppgift 1 till 5. Laborationen redovisas individuellt genom att skicka laborationens Mathematicafil till Mikael Forsberg

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade

Läs mer

Linjära ekvationssystem i Matlab

Linjära ekvationssystem i Matlab CTH/GU LABORATION 2 MVE11-212/213 Matematiska vetenskaper Linjära ekvationssystem i Matlab 1 Inledning Först skall vi se lite på matriser, vilket är den grundläggande datatypen i Matlab, sedan skall vi

Läs mer

Instruktion för laboration 1

Instruktion för laboration 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 3. Repetitionssatser och Programmering 1 Introduktion Denna övning syftar till att träna programmering med repetitionssatser och villkorssatser. Undvik

Läs mer

LABORATION cos (3x 2 ) dx I =

LABORATION cos (3x 2 ) dx I = SF1518,SF1519,numpbd14 LABORATION 2 Trapetsregeln, ekvationer, ekvationssystem, MATLAB-funktioner Studera kapitel 6 och avsnitt 5.2.1, 1.3 och 3.8 i NAM parallellt med arbetet på denna laboration. Genomför

Läs mer

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper CTH/GU LABORATION 3 MVE270-2013/2014 Matematiska vetenskaper Newtons metod 1 Inledning Vi skall lösa system av icke-linjära ekvationer. Som exempel kan vi ta, { x1 (1 + x 2 2) 1 = 0 x 2 (1 + x 2 1 ) 2

Läs mer

Matematisk Modellering

Matematisk Modellering Matematisk Modellering Föreläsning 1 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/37 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk

Läs mer

Gruppuppgifter 1 MMA132, Numeriska metoder, distans

Gruppuppgifter 1 MMA132, Numeriska metoder, distans Gruppuppgifter 1 MMA132, Numeriska metoder, distans Uppgifter märkta med redovisas 1. Läs om felkalkyl i enkla fall sidan 1.2-1.3. Givet a = 1,23, E a = 0,005 c = 0,00438 ± 0,5 10 5 b = 23,71, E b = 0,003

Läs mer

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, Uppsala universitet Institutionen för informationsteknologi Avdelningen för beräkningsvetenskap Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, 2015-12-17 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!)

Läs mer

Datorövning 1 Fördelningar

Datorövning 1 Fördelningar Lunds tekniska högskola Matematikcentrum Matematisk statistik FMSF20: MATEMATISK STATISTIK, ALLMÄN KURS, 7.5HP FÖR E, HT-15 Datorövning 1 Fördelningar I denna datorövning ska du utforska begreppen sannolikhet

Läs mer

Matriser och Inbyggda funktioner i Matlab

Matriser och Inbyggda funktioner i Matlab Matematiska vetenskaper 2010/2011 Matriser och Inbyggda funktioner i Matlab 1 Inledning Vi skall denna vecka se på matriser och funktioner som är inbyggda i Matlab, dels (elementära) matematiska funktioner

Läs mer

Kort om programmering i Matlab

Kort om programmering i Matlab CTH/GU 25/26 Matematiska vetenskaper Kort om programmering i Matlab Inledning Redan första tillfället gjorde ni ett litet program. Ni skrev ett script eller en skriptfil som beräknade summan 5 i 2 = 2

Läs mer

DN1240, Numeriska metoder. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB

DN1240, Numeriska metoder. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB DN1240, Numeriska metoder för O1. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB Del 1: UNIX och kontoadministration Uppgift 1.1 Ni bör jobba

Läs mer

Moment Viktiga exempel Övningsuppgifter

Moment Viktiga exempel Övningsuppgifter Moment Viktiga exempel Övningsuppgifter Inga Inga Inga Linjära ekvationssystem Vi har redan tidigare i kursen stött på linjära ekvationssystem. Nu är stunden kommen till en mera systematisk genomgång.

Läs mer

Tentamen för kursen TME135 Programmering i Matlab för M1

Tentamen för kursen TME135 Programmering i Matlab för M1 Tentamen för kursen TME135 Programmering i Matlab för M1 Tid: 18 oktober 2011 kl 8:30-12:30 Lärare: Håkan Johansson, mobil: 0739-678 219, kontor: 772 8575 Tillåtna hjälpmedel: P. Jönsson: MATLAB-beräkningar

Läs mer

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson Introduktion till MATLAB Introduktion till MATLAB sid. 2 av 12 Innehåll 1 Vad är MATLAB? 3 1.1 Textens syfte..................................... 3 2 Grundläggande

Läs mer

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1. SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1. Denna labb är tänkt att öva datorhantering och öva inledande Matlab. Eftersom förkunskaperna varierar finns en del frivilliga uppgifter

Läs mer

4.3. Programmering i MATLAB

4.3. Programmering i MATLAB 4.3. Programmering i MATLAB MATLAB används ofta interaktivt, dvs ett kommando som man skriver, kommer genast att utföras, och resultatet visas. Men MATLAB kan också utföra kommandon som lagrats i filer,

Läs mer

Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1

Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1 Facit Tentamen i Beräkningsvetenskap I (1TD9) STS ES W K1 Utför överskådlig beräkning, och presentera svar på följande frågor. Det bifogade svarsarket måste användas, så lös först uppgifterna på ett kladdpapper,

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Block 5: Ickelineära. ekvationer? Läroboken. Löpsedel: Icke-lineära. ekvationer. Vad visade laborationen? Vad visade laborationen?

Block 5: Ickelineära. ekvationer? Läroboken. Löpsedel: Icke-lineära. ekvationer. Vad visade laborationen? Vad visade laborationen? Block 5: Ickelineära ekvationer Löpsedel: Icke-lineära ekvationer Varför är det svårt att lösa ickelineära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod Noggrannhet/stoppvillkor

Läs mer

MATLAB övningar, del1 Inledande Matematik

MATLAB övningar, del1 Inledande Matematik MATLAB övningar, del1 Inledande Matematik Övningarna på de två första sidorna är avsedda att ge Dig en bild av hur miljön ser ut när Du arbetar med MATLAB. På de följande sidorna följer uppgifter som behandlar

Läs mer

Matematisk Modellering

Matematisk Modellering Matematisk Modellering Föreläsning 1 Magnus Oskarsson Matematikcentrum Lunds Universitet Matematisk Modellering p.1/34 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk

Läs mer

Laboration 0: Del 2. Benjamin Kjellson Introduktion till matriser, vektorer, och ekvationssystem

Laboration 0: Del 2. Benjamin Kjellson Introduktion till matriser, vektorer, och ekvationssystem Laboration 0: Del 2 Benjamin Kjellson 2016 03 21 Introduktion till matriser, vektorer, och ekvationssystem I den här filen får ni en kort introduktion till hur man hanterar och räknar med matriser i R,

Läs mer

OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1.

OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1. OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1. Laboration 0 del 1-3 (frivilliga delar) Del 1-3 (dvs upg

Läs mer

DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg 1.1-1.17) behöver inte redovisas

DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg 1.1-1.17) behöver inte redovisas DN1212, Numeriska metoder & grundläggande programmering för P1. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg 1.1-1.17) behöver inte redovisas Introduktion till UNIX och MATLAB Del 1: UNIX och

Läs mer

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1. SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1. Denna labb är tänkt att öva datorhantering och öva inledande Matlab. Eftersom förkunskaperna varierar finns en del frivilliga uppgifter

Läs mer

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering SF1518,SF1519,numpbd15 LABORATION 2 Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering - Genomför laborationen genom att göra de handräkningar och MATLAB-program som begärs. Var noga med

Läs mer

MATLAB - en kompakt introduktion av Tore Gustafsson

MATLAB - en kompakt introduktion av Tore Gustafsson 6.1.7 1 ÅBO AKADEMI TEKNISKA FAKULTETEN MATLAB - en kompakt introduktion av Tore Gustafsson MATLAB 1 är ett interaktivt programpaket för numeriska beräkningar. Matlab står för matrix laboratory och är

Läs mer

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08 LUNDS TEKNISKA HÖGSKOLA MATEMATIKCENTRUM MATEMATISK STATISTIK MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08 Laboration 2: Om väntevärden och fördelningar 1 Syfte I denna laboration skall vi försöka

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 1. Vektorer och Matriser 1 Inledning I denna övning skall du träna på att använda Matlab för enklare beräkningar och grafik. För att lösa uppgifterna

Läs mer

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!) SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!) Denna labb är tänkt att öva datorhantering och öva inledande Matlab. Eftersom förkunskaperna varierar finns

Läs mer

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 17 januari 2013

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 17 januari 2013 MÄLARDALENS HÖGSKOLA TENTAMEN I MATEMATIK Akademin för utbildning, kultur och kommunikation MMA3 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 7 januari 03 Examinator: Karl Lundengård Skrivtid:

Läs mer

Matriser och vektorer i Matlab

Matriser och vektorer i Matlab CTH/GU LABORATION 3 TMV206-2013/2014 Matematiska vetenskaper 1 Inledning Matriser och vektorer i Matlab I denna laboration ser vi på hantering och uppbyggnad av matriser samt operationer på matriser En

Läs mer

Konsten att lösa icke-linjära ekvationssystem

Konsten att lösa icke-linjära ekvationssystem Konsten att lösa icke-linjära ekvationssystem Andreas Axelsson Vi beskriver här de grundläggande teknikerna för att lösa icke-linjära ekvationssystem. Detta är en nödvändig kunskap för att kunna lösa diverse

Läs mer

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar KPP053, HT2016 MATLAB, Föreläsning 2 Vektorer Matriser Plotta i 2D Teckensträngar Vektorer För att skapa vektorn x = [ 0 1 1 2 3 5]: >> x = [0 1 1 2 3 5] x = 0 1 1 2 3 5 För att ändra (eller lägga till)

Läs mer

2D1210, Numeriska Metoder, GK I för V 2.

2D1210, Numeriska Metoder, GK I för V 2. Kursöversikt Numme för V, 2003. 1 Beatrice Frock NADA, KTH 030612 ANADA 2D1210, Numeriska Metoder, GK I för V 2. Kursprogram. Läsanvisningar. Om WWW: I World Wide Web på Internet finns aktuell information

Läs mer

Datorövning 1 Introduktion till Matlab Fördelningar

Datorövning 1 Introduktion till Matlab Fördelningar Lunds tekniska högskola Matematikcentrum Matematisk statistik STATISTISKA METODER FÖR SÄKERHETSANALYS FMS065, HT-12 Datorövning 1 Introduktion till Matlab Fördelningar I denna datorövning ska du först

Läs mer

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik LUNDS TEKNISKA HÖGSKOLA MATEMATIKCENTRUM MATEMATISK STATISTIK DATORLABORATION 4 MATEMATISK STATISTIK, AK FÖR I, FMS 01, HT-07 Laboration 4: Stora talens lag, Centrala gränsvärdessatsen, enkla punktskattningar

Läs mer

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20. Teorifrågor Störningsanalys 1. Värdet på x är uppmätt till 0.956 med ett absolutfel på högst 0.0005. Ge en övre gräns för absolutfelet i y = exp(x) + x 2. Motivera svaret. 2. Ekvationen log(x) x/50 = 0

Läs mer

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61 Moment 5.5 Övningsuppgifter I 5.0a. 5.0b, 5.0.c, 1 Linjära ekvationssystem Vi har redan tidigare i kursen stött på linjära ekvationssystem. Nu är stunden kommen till en mera systematisk genomgång. Kvadratiska

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

Laboration 3. Funktioner, vektorer, integraler och felskattning

Laboration 3. Funktioner, vektorer, integraler och felskattning 1 SF1520 K2 HT2014 NA 21 december 2015 Laboration 3 Funktioner, vektorer, integraler och felskattning Efter den här laborationen skall du kunna använda och skriva egna funktioner med flera in- och utparametrar,

Läs mer

Du kan söka hjälp efter innehåll eller efter namn

Du kan söka hjälp efter innehåll eller efter namn Du kan söka hjälp efter innehåll eller efter namn Skalärer x = 2 y = 1.234 pi, inf Ex: Skriver du >> x+100*pi Så blir svaret ans = 316.1593 (observera decimalpunkt.) Vektorer v = [1 2 3 4] radvektor u

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 2. Linjär Algebra, Villkor och Logik 1 Linjär Algebra Programsystemet Matlab utvecklades ursprungligen för att underlätta beräkningar från linjär

Läs mer

4.4. Mera om grafiken i MATLAB

4.4. Mera om grafiken i MATLAB 4.4. Mera om grafiken i MATLAB Larry Smarr, ledare för NCSA (National Center for Supercomputing Applications i University of Illinois, brukar i sina föredrag betona betydelsen av visualisering inom den

Läs mer

Introduktion till Matlab

Introduktion till Matlab CTH/GU 2011/2012 Matematiska vetenskaper 1 Inledning Introduktion till Matlab Version för IT-programmet Matlab är både en interaktiv matematikmiljö och ett programspråk, som används på de flesta tekniska

Läs mer

HI1024 Programmering, grundkurs TEN2 2014-03-13

HI1024 Programmering, grundkurs TEN2 2014-03-13 HI1024 Programmering, grundkurs TEN2 2014-03-13 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga

Läs mer

Använda Python Laboration 1 GruDat, DD1344

Använda Python Laboration 1 GruDat, DD1344 Använda Python Laboration 1 GruDat, DD1344 Örjan Ekeberg 14 oktober 2008 Målsättning Målet med denna laboration är att du ska prova på att använda Python, framförallt interativt. Du ska också lära dig

Läs mer

JavaScript del 3 If, Operatorer och Confirm

JavaScript del 3 If, Operatorer och Confirm JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att

Läs mer

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 13 jan 2014

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 13 jan 2014 MÄLARDALENS HÖGSKOLA TENTAMEN I MATEMATIK Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 13 jan 2014 Examinator: Karl Lundengård Skrivtid:

Läs mer

Matematisk Modellering

Matematisk Modellering Matematisk Modellering Föreläsning läsvecka 3 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/39 Denna föreläsning (läsvecka 3) Matematisk modellering - fördjupning Modelleringsexempel

Läs mer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 20 november 2015 Sida 1 / 30

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 20 november 2015 Sida 1 / 30 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 20 november 2015 Sida 1 / 30 Föreläsning 5 Funktioner. Programstruktur. Rekursiva funktioner. Exempel: Skalärprodukt.

Läs mer

Datorövning 5 Exponentiella modeller och elasticitetssamband

Datorövning 5 Exponentiella modeller och elasticitetssamband Datorövning 5 Exponentiella modeller och elasticitetssamband Datorövningen utförs i grupper om två personer. I denna datorövning skall ni använda Minitab för att 1. anpassa och tolka analysen av en exponentiell

Läs mer

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R}

Talmängder N = {0,1,2,3,...} C = {a+bi : a,b R} Moment 1..1, 1.., 1..4, 1..5 Viktiga exempel 1., 1.4, 1.8 Övningsuppgifter I 1.7, 1.8, 1.9 Extrauppgifter 1,,, 4 Den teori och de exempel, som kommer att presenteras här, är normalt vad jag kommer att

Läs mer

Liten MATLAB introduktion

Liten MATLAB introduktion Liten MATLAB introduktion Denna manual ger en kort sammanfattning av de viktigaste Matlab kommandon som behövs för att definiera överföringsfunktioner, bygga komplexa system och analysera dessa. Det förutsätts

Läs mer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4 Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa

Läs mer

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,

Läs mer

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08 LUNDS TEKNISKA HÖGSKOLA MATEMATIKCENTRUM MATEMATISK STATISTIK Laboration 5: Regressionsanalys DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08 Syftet med den här laborationen är att du skall

Läs mer

Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2 Högskolan i Halmstad Sektionen för Informationsvetenskap, Dator- och Elektroteknik 08/ Thomas Munther Datorövning 2 Matlab/Simulink i Styr- och Reglerteknik för U3/EI2 Laborationen förutsätter en del förberedelser

Läs mer

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi. Grundläggande programmering 4 stefan@it.uu.se - Huvudprogram och underprogram - Egna funktioner - Olika typer av fel - Lite om effektiv programmering Exempel att testa Programmen för några vardagsproblem

Läs mer

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning MATEMATISKA VETENSKAPER TMV66 07 Chalmers tekniska högskola Datorlaboration Examinator: Tony Stillfjord TMV66 Linjär algebra för M Datorlaboration : Matrisalgebra och en mekanisk tillämpning Allmänt Den

Läs mer

Matriser och linjära ekvationssystem

Matriser och linjära ekvationssystem Linjär algebra, I1 2011/2012 Matematiska vetenskaper Matriser och linjära ekvationssystem Matriser En matris är som ni vet ett rektangulärt talschema: a 11 a 1n A = a m1 a mn Matrisen ovan har m rader

Läs mer

Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade.

Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade. 1.1 Ekvationslösning Lösandet av ekvationer utgör ett centralt område inom matematiken, kanske främst den tillämpade. 1.1.1 Polynomekvationer Ett polynom i en variabel x är som bekant en summa av termer

Läs mer

Lösningar och kommentarer till uppgifter i 3.1

Lösningar och kommentarer till uppgifter i 3.1 Lösningar och kommentarer till uppgifter i.1 102 b) TB: Kör de med dessa uppgifter i det här kapitlet också? Det gör inget, jag börjar bli ganska bra på det. Vi har funktionen fx) = x x 2 24x + 1 och man

Läs mer

Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2

Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2 Välkomna till Numme och MATLAB, 9 hp, för Materialdesign och Energi&Miljö, årskurs 2 Kursen avses ge dig kunskap om numeriska metoder, hur man kan använda dessa genom elementär programmering i MATLAB samt

Läs mer