Tillämpning: Bildinterpolation. Ekvationslösning. Integraler. Tillämpning: En båt. Räkning med polynom. Projekt. Tentamensinformation.

Relevanta dokument
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. 9 november 2015 Sida 1 / 28

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

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

15 februari 2016 Sida 1 / 32

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 4 december 2015 Sida 1 / 26

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

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

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

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

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

TAIU07 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

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

Interpolation. 8 december 2014 Sida 1 / 20

TANA17 Matematiska beräkningar med Matlab

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

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

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Interpolation Modellfunktioner som satisfierar givna punkter

MMA132: Laboration 1 Introduktion till MATLAB

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

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

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

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

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

Introduktion till MATLAB

Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

MMA132: Laboration 1 & 2 Introduktion till MATLAB

TAIU07 Matematiska beräkningar med Matlab

2 februari 2016 Sida 1 / 23

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Newtons metod. 1 Inledning. 2 Newtons metod. CTH/GU LABORATION 6 MVE /2013 Matematiska vetenskaper

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Kravspecifikation Fredrik Berntsson Version 1.3

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Matematisk Modellering

TANA17 Matematiska beräkningar med Matlab

TANA81: Simuleringar med Matlab

f(x) = x 2 g(x) = x3 100 h(x) = x 4 x x 2 x 3 100

Omtentamen i DV & TDV

x 2 x 1 W 24 november, 2016, Föreläsning 20 Tillämpad linjär algebra Innehåll: Projektionssatsen Minsta-kvadratmetoden

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

% Föreläsning 3 10/2. clear hold off. % Vi börjar med att titta på kommandot A\Y som löser AX=Y

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

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

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

Laboration 2. Laborationen löses i grupper om två och redovisas individuellt genom en lappskrivning den 3/10. x = 1±0.01, y = 2±0.05.

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

Inlämningsuppgift 4 NUM131

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

Föreläsning 5. Approximationsteori

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

TMA226 datorlaboration

Rapportexempel, Datorer och datoranvändning

f(x) = x 2 g(x) = x3 100

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

LABORATION cos (3x 2 ) dx I =

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Laboration 1. 1 Matlab-repetition. 2 Störningsräkning 1. 3 Störningsräkning 2

Frågorna 1 till 6 ska svaras med sant eller falskt och ger vardera 1

Grundläggande kommandon

Tentamen i Teknisk-Vetenskapliga Beräkningar

Mathematica. Utdata är Mathematicas svar på dina kommandon. Här ser vi svaret på kommandot från. , x

(a) Skriv en matlabsekvens som genererar en liknande figur som den ovan.

Tentamen, del 2 DN1240 Numeriska metoder gk II för F

MMA132: Laboration 2 Matriser i MATLAB

Linjärisering och Newtons metod

% Föreläsning 4 22/2. clear hold off. % Vi repeterar en liten del av förra föreläsningen:

TANA09 Föreläsning 5. Matrisnormer. Störningsteori för Linjära ekvationssystem. Linjära ekvationssystem

Linjärisering, Jacobimatris och Newtons metod.

Omtentamen i DV & TDV

a = a a a a a a ± ± ± ±500

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

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

Sekantmetoden Beräkningsmatematik TANA21 Linköpings universitet Caroline Cornelius, Anja Hellander Ht 2018

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Numeriska metoder och grundläggande programmering för P1

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

Sammanfattning (Nummedelen)

TMV225 Inledande Matematik M

Sidor i boken f(x) = a x 2 +b x+c

13 Potensfunktioner. Vi ska titta närmare på några potensfunktioner och skaffa oss en idé om hur deras kurvor ser ut. Vi har tidigare sett grafen till

2. (a) Skissa grafen till funktionen f(x) = e x 2 x. Ange eventuella extremvärden, inflektionspunkter

DN1212/numpp Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

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

TANA19 NUMERISKA METODER

Labb 3: Ekvationslösning med Matlab (v2)

TAIU07 Matematiska beräkningar med Matlab

Del I: Lösningsförslag till Numerisk analys,

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

Vi ska titta närmare på några potensfunktioner och skaffa oss en idé om hur deras kurvor ser ut. Vi har tidigare sett grafen till f(x) = 1 x.

SF1669 Matematisk och numerisk analys II Lösningsförslag till modelltentamen DEL A

Uppgift 1. (SUBPLOT) (Läs gärna help, subplot innan du börjar med uppgiften.) 1 A) Testa och förklara hur nedanstående kommandon fungerar.

Transkript:

TAIU07 Föreläsning 6 Tillämpning: Bildinterpolation. Ekvationslösning. Integraler. Tillämpning: En båt. Räkning med polynom. Projekt. Tentamensinformation. 22 februari 2016 Sida 1 / 28

Interpolation i Bilder Exempel Antag att vi har en bild I där störande objekt råkat komma med. Kan vi lösa problemet? Den del av bilden vi vill dölja är markerad. Detta är ett interpolations problem. Uppskatta lämpliga färgvärden att ersätta de pixlar vi vill ta bort. 22 februari 2016 Sida 2 / 28

Definition En bild I R n m är en matris där varje pixel I ij har ett värde som representerar en färg. Definition Interpolations masken M R n m har element M ij = 1 om motsvarande pixel skall ersättas med ett nytt interpolerat värde och M ij = 0 annars. Bilden representeras som en matris I. I Matlab läser vi in den med kommandot >> I=imread( 839.jpg ); imshow(i); Vi vill ersätta de pixlar där M ij = 1 med nya värden. Färgbilder behandlas som tre separata bilder. 22 februari 2016 Sida 3 / 28

I H = 0 Ω I H = I Definition Antag att I(x, y) är definierad på område ir 2 och okänd i delområdetω. Harmonisk interpolation innebär att man beräknar I H (x, y) som lösningen till { 2 I H x 2 + 2 I H y 2 = 0, iω, I H (x, y) = I(x, y), på Ω. 22 februari 2016 Sida 4 / 28

Numerisk Metod Approximera andra derivator med differenskvoret 2 I H x 2 (x i, y j ) 1 h 2(I H(x i+1, y j ) 2I H (x i, y j )+I H (x i 1, y j )). Formulera ett linjärt ekvationssystem Ax = b där varje okänd pixel(i, j) ger en ekvation I H (i+1, j)+i H (i 1, j)+i H (i, j+1)+i H (i, j 1) 4I H (i, j)=0, och varje känd pixel ger en ekvation I H (i, j) = I(i, j). Lösningsvektorn x innehåller de obekanta x = (I H (1, 1), I H (1, 2), I H (1, 3)..., I H (m, n 1), I H (m, n)) T. 22 februari 2016 Sida 5 / 28

Resultatet efter Harmonisk interpolation och orginal bilden. Här har bilden 384 256 pixlar. Matrisen A får dimension 98304 98304. Med linjär differential operator får vi alltid jämna bilder utan skarpa kanter! Lösning av linjära ekvationssystem på dator är en av de vanligaste uppgifterna för datorer. 22 februari 2016 Sida 6 / 28

Lösning av Icke-Linjära Ekvationer Exempel Vi skall beräkna roten x till ekvationen, f(x) = cos(3x)e x. Metod Om vi beräknar funktionsvärden för x=0 och x=1 så ser vi att f(0)=1>0 och f(1)= 2.69<0. Alltså finns det en rot i intervallet 0<x<1. Beräkna sedan f(0.5)= 0.144>0 och vi ser att roten finns i intervallet <x<1. Detta kallas intervallhalveringsmetoden. 1 2 Avsluta när intervallet [a n, b n ] som innehåller roten uppfyller b n a n < ε = 10 6. Övning Skriv en funktion IntHalv som beräknar roten till f(x) = 0 med hjälp av intervallhalveringsmetoden. 22 februari 2016 Sida 7 / 28

Frivilliga inargument Kommandot nargin ger det antal inargument som gavs då en funktion anropades. Exempel På filen funk.m skriver vi function [y]=funk( x, p ) end if nargin<2, p=1; end y=exp(x^p); I Matlab skriver vi sedan >> y = funk( 2 ); % p=1 används. Anropar vi med y=funk(2,1.5) används p = 1.5. 22 februari 2016 Sida 8 / 28

Funktionen fzero hittar en rot till ekvationen f(x) = 0. Den anropas >> x = fzero( fun, x0 ) där f är ett funktionshandtag och x 0 är en start gissning. Exempel Lös ekvationen f(x) = e 2x x = 0. Skapa en funktion och använd fzero för att hitta roten >> f = @(x) exp(-2*x)-x; >> x = fzero( f, 1 ) x = 0.4263 Kommentar Funktionen fzero använder en avancerad numerisk metod. Det finns färdiga metoder för att lösa en stor mängd problem i MATLAB. 22 februari 2016 Sida 9 / 28

Tillämpning: Hur stor del av en båt är under vatten? Problem En båt som lastas sjunker precis så mycket att båtens vikt blir precis motsvarar det vatten den tränger undan. 0.5 0-0.5-1 -1.5-2 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 Givet en viss vikt hur skall vi beräkna hur stor del av båten som hamnar under vatten? 22 februari 2016 Sida 10 / 28

Matematisk modell Inför relevanta storheter och beskriv lösningsmetoden. Båtens profil ges av en skiss y x (0, 0) (3, 0) c (a, c) (b, c) (0.6, 1.4) (2.1, 1.4) Båtens vikt inklusive last är L = 697 kg. Vattnets densitet är 998 kg/m 3. Funktioner ShipShape(x), DisplayShip(c) och DisplacedVolume(c). 22 februari 2016 Sida 11 / 28

Funktionen ShipShape blir function F = ShipShape( x ) F=zeros(size(x)); for i=1:length(x) if x(i)<0.6 F(i)=1.4*x(i)/0.6; elseif x(i)<2.1 F(i)=1.4; else F(i)=1.4*cos( pi*(x(i)-2.1)/(3.0-2.1)/2 ); end end end Kommentar Rät linje från(0, 0) till(0.6, 1.4) följt av en cosinus från(2.1, 1.4) till (3.0, 0). Funktionen måste klara en vektor x som inargument. 22 februari 2016 Sida 12 / 28

Funktionen DisplayShip blir function DisplayShip( c ) x=0:0.01:3; F=ShipShape( x ); clf,hold on plot( x, -F, k- ) plot( [0 3],[0,0], k- ) plot( [-0.5 3.5],[-c -c], b ) axis([-0.5 3.5-1.6 0.2 ] ) axis equal end Kommentar y-axeln är definierad så att y = 0 är överst på båten. Måste alltså byta tecken innan vi ritar! 22 februari 2016 Sida 13 / 28

Funktionen DisplacedVolume blir function V=DisplacedVolume( c ) % Första roten bör ligga nära x=0.4; a=fzero( @(x)shipshape(x)-c,0.4); % Andra roten bör ligga närmare x=2.5; b=fzero(@(x)shipshape(x)-c,2.5); % Undanträngd volym är en ingetral över [a,b] V=integral( @(x)shipshape(x)-c, a, b ); end Kommentar Hitta skärningspunkterna mellan skrovet och vattenytan. Integrera sedan för att hitta totala arean under ytan. 22 februari 2016 Sida 14 / 28

Huvudprogrammet blir L=697; % Last i Kg rho=998; % Vattnets densitet i kg/m3 % Ekvation Volym( c )*rho - L = 0. Start gissning är c = fzero( @(c)displacedvolume( c )*rho-l, 0.9 ) DisplayShip( c ) weight=displacedvolume( c) * rho; str=[ Med last L=,num2str(L), kg fås c= ]; str=[str,num2str(c), m ];disp(str) Resultatet blir Med last L=697kg fås c=1.0253 m 22 februari 2016 Sida 15 / 28

Räkning med Polynom Exempel Vi will anpassa ett polynom p(t) = c 0 + c 1 t+c 2 t 2 till en uppsättning mätningar (t i, y i ), 1 i m. 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0.2 0 0.2 0.4 0.6 0.8 1 1.2 Funktionen polyfit beräknar ett polynom p(t) som approximerar punkterna (t i, y i ) enligt minsta kvadrat metoden. 22 februari 2016 Sida 16 / 28

Skriv >> P = polyfit( t, y, 2 ) P = 0.7112-0.1073 0.0400 Det polynom som bäst approximerar(t i, y i ) är p(t) = 0.7112t 2 0.1073t+0.0400. Funktionen polyval beräknar polynomets värden för ett antal t värden. Skriv >> y = polyval( P, t ); 22 februari 2016 Sida 17 / 28

Lösning Antag att data (t i, y i ) lagrats som två vektorer t och x. Vi skriver >> p2 = polyfit( t, y, 2 ); >> tt=0:0.1:2; >> yy=polyval( p2, tt ); >> plot(t,y, r+,tt,yy); 1.2 1 0.8 0.6 0.4 0.2 0 0.2 0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 22 februari 2016 Sida 18 / 28

Exempel Hitta det polynom som interpolerar punkterna Hitta ett polynom p n (x) som interpolerar värdena i tabellen x 0.0 0.3 0.6 0.9 f(x) 1.23 1.57 1.35 1.09 Plotta polynomet p(x) tillsammans med punkterna (x i, f(x i )) i en graf. Lemma Ett polynon p n (x), av gradtal n, blir entydigt bestämt om vi anger (n+1) interpolations villkor p n (x i ) = y i. 22 februari 2016 Sida 19 / 28

1.6 1.5 1.4 1.3 1.2 1.1 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 I Matlab skriver vi >> x=0:0.3:0.9; y=[1.23 1.57 1.35 1.09]; >> p3=polyfit(x,y,3) p3 = 3.2099-6.0000 2.6444 1.2300 >> xx=0:0.01:0.9; >> plot(x,y, r+,xx,polyval(p3,xx), b- ) 22 februari 2016 Sida 20 / 28

Funktionen roots hittar alla rötter till ett polynom med coefficienter c = (c n 1,..., c 0 ). Exempel Hitta rötterna till polynomet p(x) = 1.2 2.0x+1.7x 2 0.2x 3. I Matlab skriver vi >> r = roots( [ -0.2 1.7-2.0 1.2 ] ); r ans = 7.2320+0.0000i 0.6340-0.6540i 0.6340+0.6540i >> >> polyval( [ -0.2 1.7-2.0 1.2 ], r(1) ) ans = 3.0198e-14 Vi har hittat en rot! 22 februari 2016 Sida 21 / 28

För att integrera eller derivera polynom finns polyint respektive polyder. Exempel Beräkna I Matlab I = 2 0 (0.2t 4 + 0.7t 2 1.3t+0.9)dt >> p4 = [ 0.2 0.0 0.7-1.3 0.9]; >> p5 = polyint( p4 ) >> I = polyval(p5,2)-polyval(p5,0) I = 2.3467 22 februari 2016 Sida 22 / 28

Exempel Vi vill undersäka hur bra approximationen sin(x) x x 3 /6, är. Med Taylor utveckling ser vi att felet bör domineras av termen R T = x 5 /120. Metod Välj ett antal x-värden i intervallet 0.1 < x < 0.4 och beräkna felet E(x). Passa ett uttryck av typen E(x) = Cx p till felet och bestämm C och p. Utnyttja log(e) = log(c)+p log(x) = c 0 + c 1 y, y = log(x). 22 februari 2016 Sida 23 / 28

I Matlab skriver vi >> x=0.1:0.01:0.4; E=abs( sin(x) - x + x.^3/6 ); >> p1=polyfit( log(x), log(e), 1 ) p1 = 4.9896-4.8041 >> C=exp(p1(2)), p = 5; % p heltal C = 0.0082 Beräkna 1/120 = 0.0083 så ser vi att det stämmer! 22 februari 2016 Sida 24 / 28

Seminarieuppgifterna Mål Seminarieuppgiftena syftar till att ge - träning i att skriva lite mer omfattande program med flera deluppgifter som kan lösas separat som olika funktioner. Delarna skall sedan kopplas samman för att lösa hela uppgiften. - träning i skriftlig presentation. Uppgiften, Lösningen, och resultatet skall beskrivas i en kort rapport. - erfarenhet av att använda Matlab för att lösa ett någorlunda realistiskt problem från en tillämpning. 22 februari 2016 Sida 25 / 28

Genomförande - Varje grupp tilldelas en uppgift. Denna annonseras på kurshemsidan. - Två handledningstillfällen i datorsal finns. Det är viktigt att ni är förberedda så att ni kan utnyttja läraren effektivt. - Senast dagen innan seminariet skall den grupp som skall opponera ha fått rapporten. På seminariet ges varje grupp kommentarer då rapporterna och resultaten diskuteras i gruppvis. Lärare finns tillgänglig för frågor. - Senast två dagar efter seminariet skall opponenternas kritik åtgärdas och rapporten lämnas in till respektive lärare för godkännande. 22 februari 2016 Sida 26 / 28

Krav I rapporten skall ingå - en kort bakgrund till uppgiften. - en beskrivning av de olika funktioner som utvecklats. Den metod som implementeras i funktionen skall beskrivas. - ett exempel där funktionerna används för att lösa en uppgift. Här ingår grafer. - Matlabprogram skall inte ingå i rapporten utan dessa skickas med som bilaga. Reservtillfälle Deltagande i seminariet är obligatoriskt. Ett ett extra tillfälle kommer att organiseras precis innan period VT2 börjar. Vet du att du inte kan vara med på ordinarie seminarietillfälle så kontakta din lektionsledare. Missar du ordinarie tillfälle på grund av sjukdom så ta kontakt med mig snarast efter. 22 februari 2016 Sida 27 / 28

Tentamensinformation - Skriftlig tentamen i datorsal. Lös uppgiften i Matlab. Skriv av ditt program på papper då du är färdig. Inga utskrifter behövs. - Salar är Boren/Hunn, Roxen/Glan och ISYs salar Asgård, Olympen, Egypten, etc. Anslås på kurshemsidan. - För att jämna ut antal studenter i olika lokaler så gäller att Mi1a går till MAIs lokaler och Mi1b går till ISYs. - Ni använder särskilda inloggningar för tentan. Dessa delas ut av vakterna. - Tentamen består av 6 uppgifter med totalt 18 poäng. Det krävs 8 poäng för godkänt. - Träna på lektionsuppgifterna. Lycka till! 22 februari 2016 Sida 28 / 28