Inbyggda funktioner i MATLAB

Relevanta dokument
Från förra gången: Newton-Raphsons metod

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

LABORATION cos (3x 2 ) dx I =

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

Ickelinjära ekvationer

Linjärisering och Newtons metod

Föreläsning 1. Numeriska metoder grundkurs II, DN1240. Carina Edlund Mottagningstid i rum 4516: onsdagar kl.

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

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

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

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

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

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

Linjärisering, Jacobimatris och Newtons metod.

Newtons metod och arsenik på lekplatser

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

Laboration 3. Funktioner, vektorer, integraler och felskattning

Icke-linjära ekvationer

Labb 3: Ekvationslösning med Matlab (v2)

Institutionen för Matematik. F1 - Linjär algebra och numerisk analys, TMA671 Svar till övningar i Heath s bok och extraövningar

Variabler och konstanter

Intervallhalveringsmetoden, GKN sid 73. Sekantmetoden, GKN sid 79

Beräkning av integraler

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering

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

Laboration 3. Funktioner, vektorer, integraler och felskattning

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

MMA132: Laboration 1 Introduktion till MATLAB

Introduktion till Matlab

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

TANA17 Matematiska beräkningar med Matlab

MMA132: Laboration 2 Matriser i MATLAB

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

TMV225+TMV176 Inledande matematik M, TD Sammanfattning. Läsanvisningar inför tentamen.

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

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

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

Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1

) + γy = 0, y(0) = 1,

SF1625 Envariabelanalys

Om datorns användning matematikundervisningen

Introduktion till Matlab

Introduktion till MATLAB

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

Kapitel 4. Iterativ lösning av ekvationer

Funktionsstudier med derivata

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

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Mer om texter i MATLAB och om iterativ lösning av linjära ekvationssystem

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

17.1 Kontinuerliga fördelningar

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad a) i) Nollställen för polynomet 2x 2 3x 1:

Konvergens för iterativa metoder

Matematik 3 Digitala övningar med TI-82 Stats, TI-84 Plus och TI-Nspire CAS

Numerisk Analys, MMG410. Lecture 10. 1/17

4 Numerisk integration och av differentialekvationer

TANA81: Simuleringar med Matlab

SF1625 Envariabelanalys Lösningsförslag till tentamen

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

Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker. GeoGebraexempel

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

TMV225 Inledande Matematik M

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Matlab övningsuppgifter

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

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

Teknisk Beräkningsvetenskap I Tema 3: Styvhetsmodellering av mjuk mark med icke-linjära ekvationer

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

MMA132: Laboration 1 & 2 Introduktion till MATLAB

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Felfortplantning och kondition

Sammanfattning (Nummedelen)

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

André Jaun, HT-2005 Anteckningar från lektioner i Numeriska Metoder fys-åk2. (Sid 60) Problemformulering. Använd matematik

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

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

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

Modul 4 Tillämpningar av derivata

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

Numeriska metoder för fysiker Lördag , kl 10-14

Omtentamen i DV & TDV

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

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

vux GeoGebraexempel 3b/3c Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker

MAA7 Derivatan. 2. Funktionens egenskaper. 2.1 Repetition av grundbegerepp

Planering för Matematik kurs D

SAMMANFATTNING TATA41 ENVARIABELANALYS 1

TMV156/TMV155E Inledande matematik E, 2009

SF1661 Perspektiv på matematik Tentamen 24 oktober 2013 kl Svar och lösningsförslag. z 11. w 3. Lösning. De Moivres formel ger att

f(x + h) f(x) h f(x) f(x h) h

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

Attila Szabo Niclas Larson Gunilla Viklund Mikael Marklund Daniel Dufåker. GeoGebraexempel

DN1212 för M: Projektrapport. Krimskramsbollen. av Ninni Carlsund

Textsträngar från/till skärm eller fil

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.

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

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

x +y +z = 2 2x +y = 3 y +2z = 1 x = 1 + t y = 1 2t z = t 3x 2 + 3y 2 y = 0 y = x2 y 2.

Sammanfattninga av kursens block inför tentan

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

Transkript:

Inbyggda funktioner i MATLAB MATLAB innehåller som vi redan sett ett stort antal inbyggda funktioner (se Holly Moore: Appendix A, Chapman avsn. 2.14, MATLAB 8 avsn. 2.3, 2.6): Elementär matematik: abs,exp,log10,rem,sqrt,sum, Trigonometri: sin,cos,tan,asin,atan,sinh,atanh, Komplexa tal: abs,angle,conj,imag,real,isreal, Avrundning: ceil,fix,floor,ceil Slumptal: rand,randn,randi Matriser: ones,xeros,eye,det,sum, Dataanalys: max,min,mean,median,std,sort,size, In- och utmatning: input,disp,fprintf,save,load, Diagram i 2D: plot,polar,pie,bar,axis,legend,text Diagram i 3D: plot3,mesh,pie3,bar3, Symbolisk matematik: diff,int,matlabfunction,simplify,solve Special: pi,eps,i,j,inf,nan, Numeriska metoder: polyfit,polyval,quad,integral, fzero,root,ode45,ode23, Föreläsning 6 sid.1 SF 1518/19 ht 2015 14 sept.

Egendefinierade funktioner på.m-fil Väljer man function i menyn under knappen så får man denna mall i editorn: function [ output_args ] = untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here end Där ersätter man untitled2 med ett funktionsnamn, som inte kolliderar med de inbyggda, input_args med parameter(-rar), output_args med resultatvariabel(-ler), satser som bl.a. som ger resultatvärde i funktionskroppen (i det blanka före end). Exempel: function res = kvotkub(x,y) if x==0 & y==0 disp( 0/0, bryt? ); pause else res=x^3/y^3; end Sparas med knappen Save under namnet kvotkub.m Kan användas direkt: kvotkub(36,3) ger 1728 kvotkub(1,0) ger Inf Föreläsning 6 sid.2 SF 1518/19 ht 2015 14 sept.

Egendefinierade anonyma (inline) funktioner och funktionshandtag Man kan också definiera en anonym funktion direkt i programmet: kvotkuban = @(x,y)x^3/y^3 och anropa på samma sätt. Man skapar då ett funktionshandtag (function handle) och lägger det i variabeln, här kvotkuban. Man kan skapa ett funktionshandtag på många fler sätt: + för en sparad funktion: kv = @kvotkub + från ett namn i en sträng: kv = str2func( kvotkub ) ger @kvotkub + för en symbolisk funktion: syms x; f=sin(sin(x)); sinsin = matlabfunction(f) ger @(x)sin(sin(x)) kv(36,3) ger 1728 Föreläsning 6 sid.3 SF 1518/19 ht 2015 14 sept.

Funktioner som parametrar Man kan ge funktionshandtag (eller strängar med funktionsnamn eller funktionsuttryck) som parametrar till funktioner: function res=computef2(f,a,b);res=f(a,b); end Anropas v=computef2(@kvotkub,36,3) eller v=computef2(kv,36,3) (kv sattes till @kvotkub) men v=computef2(kvotkub,36,3) ger Error Ett antal bra funktioner för numeriska metoder anropas med funktionshandtag eller strängar som första parametrar: quad(@(x)sin(x^3),0,1,5e-8) integral(@(x)log(1/(1+x^2)),0,4) fzero(@(x)x^3-3^x,2.5) fzero( cos,[0,pi]) fzero( exp(x)-2,[0 1]) ode45(@de,[0.3 10],[0.1 0.2]) med function r=de(x,y); r=[y(2) -2*x*y(2)-y(1)^2]; Föreläsning 6 sid.4 SF 1518/19 ht 2015 14 sept.

Hitta rötter till icke-linjära ekvationer Rötterna till en ekvation, f(x)=0 kan i de flesta fall inte uttryckas i exakt eller sluten form utan behöver approximeras. Flertalet metoder för att hitta rötterna bygger på att man hittar en startapproximation och sedan iterativt (upprepat) hittar bättre approximationer. Metoderna konvergerar om man startar tillräckligt nära roten. En bra förberedelse för att hitta ett startvärde är att rita upp f(x). Exempel: Man vill veta om f(x) = x 3-3 x = 0 har fler rötter än den uppenbara 3. Låt oss på försök titta på intervallet [-2:4] och rita kurvan och linjen y=0. x=-2:0.01:4; f=x.^3-3.^x; plot(x,0.*x,x,f) Föreläsning 6 sid.5 SF 1518/19 ht 2015 14 sept.

Kurvan och noll-linjen En rot 2,5 utöver den uppenbara 3. Föreläsning 6 sid.6 SF 1518/19 ht 2015 14 sept.

Intervallhalvering Om man vet att i f(x)=0 funktionen f(x) har olika tecken i ändpunkterna av ett intervall, [a, b], (och är kontinuerlig) så måste det finnas minst en rot i intervallet. Med hjälp av en graf kan man stänga in precis en rot. Genom att successivt beräkna f((a+b)/2) kan man minska intervallet och stänga in rötterna, algoritm: för att hitta roten med mindre fel än epsilon. 1. m:=(a+b)/2; Bilda f(m). Om f(m)=0 så roten:=m (precis!). Avbryt. 2. Om f(m)*f(a)>0 (samma sida) a:=m, annars b:=m 3. Om b-a > epsilon så gör om från 1., annars roten:=(a+b)/2 4. Felskattning: (b-a)/2 = eps/2 För x 3-3 x = 0 finns en rot i intervallet [2.2, 2.8]. Föreläsning 6 sid.7 SF 1518/19 ht 2015 14 sept.

Exempel på intervallhalvering För x 3-3 x = 0 finns en rot, r, i intervallet [2.2, 2.8]. Lås oss beräkna den med tre decimaler, osäkerhet E< 5*10-4. Från början r=2.5±0.3, E=0.3, efter ett varv E=0.15, efter n varv E=0.3*2 -n. För E< 5*10-4 krävs 0.3*2 -n <5*10-4 Tiologaritmera: -n*0.301+0.477-1<0.699 4, n > 9.2 I MATLAB: f=@(x)3^x-x^3 a=2.2; b=2.8; i=0; while (b-a)/2>5e-4 i=i+1; m=(a+b)/2; if f(m)*f(a)>0 a=m else b=m end end i ger 10 rot=(a+b)/2 ger 2.4780 E=(b-a)/2 ger 2.9e-04 Föreläsning 6 sid.8 SF 1518/19 ht 2015 14 sept.

Newton-Raphsons metod Idé: För att hitta en rot till f(x)=0 utgår man från en första Approximation x 0 och använder derivatan för att dra en tangent som skär x-axeln närmare roten och upprepar detta tills man är tillräckligt nära: x n+1 = x n f(x n )/f (x n ) Om f är ett formeluttryck så kan man normalt lätt bilda derivatan f Föreläsning 6 sid.9 SF 1518/19 ht 2015 14 sept.

Exempel (EXS 2.6) med Newton-Raphson P(x)=4x 4-7x 3 + 5.5x 2 +27.5x 50 = 0. Hitta noga roten nära 1.5. P (x)=16x 3 21x 2 + 11x +27.5 p=[4-7 5.5 27.5-50] for k=1:4 %derivatan pprim(k)=(5-k)*p(k); end x=1.5; dx=1; format long ger 1.500000000000000-0.004926108374384 1.495073891625616-0.000013421067689 1.495060470557926-0.000000000099026 1.495060470458900 0.000000000000000 while abs(dx/x)>1e-12 px=polyval(p,x); pprimx=polyval(pprim,x); dx=-px/pprimx; disp([x dx]); x=x+dx; end Fördubblat antal decimaler varje varv Kvadratisk konvergens? Föreläsning 6 sid.10 SF 1518/19 ht 2015 14 sept.