Matlab-uppgift 3 i Flervariabelanalys

Relevanta dokument
MATLAB Laboration problem med lokala extremvärden

Sätt t = (x 1) 2 + y 2 + 2(x 1). Då är f(x, y) = log(t + 1) = t 1 2 t t3 + O(t 4 ) 1 2 (x 1) 2 + y 2 + 2(x 1) ) 2 (x 1) 2 + y 2 + 2(x 1) ) 3

Kap Implicit givna funktioner

Funktionsstudier med derivata

Envariabelanalys 5B1147 MATLAB-laboration Derivator

Lokala undersökningar

5 Lokala och globala extremvärden

1. Bestäm definitionsmängden och värdemängden till funktionen f(x,y) = 1 2x 2 3y 2. Skissera definitionsmängden, nivålinjerna och grafen till f.

n : R vara en reell funktion av n variabler och P 0 en punkt i funktionens definitionsområde D.

= ( 1) xy 1. x 2y. y e

Figur 1: Postföretagets rektangulära låda, definitioner.

Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper

4 Numerisk integration och av differentialekvationer

Flervariabelanalys E2, Vecka 3 Ht08

För studenter i Flervariabelanalys Flervariabelanalys MA012B ATM-Matematik Mikael Forsberg

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

Lösningar till tentamen i Matematik 2, 5B1116, för E och ME samt 5B1136 för I den 1 mars 2004.

Datorövning 2 med Maple

Antag att du går rakt norrut i ett bergslandskap. Ibland går du uppför, ibland nerför men hela tiden rakt mot norr. Vi kallar detta bäring 0.

Institutionen för Matematik, KTH Torbjörn Kolsrud

Tentamen i tmv036c och tmv035c, Analys och linjär algebra C för K, Kf och Bt A =, = det(a λi) = e 2t + c 2. x(t) = c 1. = c 1.

Tentamen i TATA43 Flervariabelanalys

Typuppgifter på TATA69

SF1626 Flervariabelanalys Tentamen Tisdagen den 12 januari 2016

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

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

2 Funktioner från R n till R m, linjära, inversa och implicita funktioner

SF1625 Envariabelanalys Lösningsförslag till tentamen

Matematiska Institutionen, K T H. B. Krakus. Differential- och integralkalkyl, del 2. Maplelaboration 1.

Tentamen i Analys B för KB/TB (TATA09/TEN1) kl 14 19

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

1. Beräkna och klassificera alla kritiska punkter till funktionen f(x, y) = 6xy 2 2x 3 3y 4 2. Antag att temperaturen T i en punkt (x, y, z) ges av

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A

Extra datorövning med Maple, vt2 2014

Tentamen i Matematik 2: M0030M.

Repetition, Matematik 2 för lärare. Ï x + 2y - 3z = 1 Ô Ì 3x - y + 2z = a Ô Á. . Beräkna ABT. Beräkna (AB) T

Matlab övningsuppgifter

Optimering, exempel. Funktionens enda stationära punkt är alltså origo. Den ligger också i det inre av mängden.

6 Derivata och grafer

1. Beräkna hastigheten, farten och accelerationen vid tiden t för en partikel vars rörelse beskrivs av r(t) = (2 sin t + cos t, 2 cos t sin t, 2t).

TSBB14 Laboration: Intro till Matlab 1D

Datorlaborationer i matematiska metoder E1, del C, vt 2002

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

1. Beräkna volymen av det område som begränsas av paraboloiden z = 4 x 2 y 2 och xy-planet. Lösning: Volymen erhålles som V = dxdydz.

Tentan , lösningar

Linjära ekvationssystem

Matlab övningsuppgifter

SF1625 Envariabelanalys

Flervariabelanlys och Matlab Kapitel 4

TAIU07 Matematiska beräkningar med Matlab

, x > 0. = sinx. Integrera map x : x 3 y = cosx + C. 1 cosx x 3. = kn där k är. k = 1 22 ln 1 2 = 1 22 ln2, N(t) = N 0 e t. 2 t 32 N 1.

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

Tentamen : Lösningar. 1. (a) Antingen har täljare och nämnare samma tecken, eller så är täljaren lika med noll. Detta ger två fall:

Flervariabelanalys och Matlab Kapitel 2

Datorövning 2 med Maple, vt

(x + 1) dxdy där D är det ändliga område som begränsas av kurvorna

f(x, y) = ln(x 2 + y 2 ) f(x, y, z) = (x 2 + yz, y 2 x ln x) 3. Beräkna en vektor som är tangent med skärningskurvan till de två cylindrarna

Lösningar och kommentarer till uppgifter i 3.1

Funktionsytor och nivåkurvor

SF1626 Flervariabelanalys

2x ex dx. 0 = ln3 e

x ( f u 2y + f v 2x) xy = 24 och C = f

Checklista för funktionsundersökning

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

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

f(x, y) = ln(x 2 + y 2 + 1). 3. Hitta maximala arean för en rektangel inskriven i en ellips på formen x 2 a 2 + y2

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

Provtentamen i Matematik 2, 5B1116, för B,E,I,IT,M,Media och T, ht 2001

MMA127 Differential och integralkalkyl II

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

15 februari 2016 Sida 1 / 32

Funktionsytor och nivåkurvor

TANA17 Matematiska beräkningar med Matlab

1. Vi skriver upp ekvationssystemet i matrisform och gausseliminerar tills vi når trappstegsform,

Flervariabelanalys och Matlab Kapitel 4

ATT RITA GRAFER MED KOMMANDOT "PLOT"

har ekvation (2, 3, 4) (x 1, y 1, z 1) = 0, eller 2x + 3y + 4z = 9. b) Vi söker P 1 = F (1, 1, 1) + F (1, 1, 1) (x 1, y 1, z 1) = 2x + 3y + 4z.

UPPSALA UNIVERSITET Matematiska institutionen Michael Melgaard. Prov i matematik Prog: Datakand., Frist. kurser Derivator o integraler 1MA014

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

Uppsala Universitet Matematiska Institutionen Bo Styf

Ekvationer & Funktioner Ekvationer

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

Flervariabelanlys och Matlab Kapitel 1

1 Koordinattransformationer

Lösningsförslag till tentamen Torsdag augusti 16, 2018 DEL A

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

3. Beräkna riktningsderivatan för funktionen f(x, y, z) = xy sin z, i riktningen v = (1, 2, 1), uträknad i

Matematiska Institutionen, K T H. B. Krakus. Matematik 1. Maplelaboration 2.

Mälardalens högskola Akademin för utbildning, kultur och kommunikation

7 Extremvärden med bivillkor, obegränsade områden

av envariabelfunktionen g(t) och flervariabelfunktionen t = h(x, y) = x 2 + e y.)

R AKNE OVNING VECKA 2 David Heintz, 13 november 2002

TMV036 Analys och linjär algebra K Kf Bt, del C

Matematik 3c Kap 3 Kurvor, derivator och integraler

= 0. Båda skärningsvinklarna är således π/2 (ortogonala riktningsvektorer).

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

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

Optimering med bivillkor

Envariabel SF1625: Föreläsning 11 1 / 13

4 McLaurin- och Taylorpolynom

Transkript:

5B1148 Flervariabelanalys Karim Daho 2007-04-09 Matlab-uppgift 3 i Flervariabelanalys Av: Arash Rezai IT1 och Lucas Held ME1

Rapport i 5B1148 Flervariabelanalys Innehållsförteckning Förord.....3 Problem 1...3 Problem 2...6 Problem 3.....9 Problem 4.....13 Problem 5.....16 Problem 6.....19

Matlab-uppgift 3 Förord Vi läste igenom alla introduktions-exemplena mycket noggrant och kom fram till hur vi skulle bära oss åt i Matlab. Nedan följer uppgifterna, med dess lösningar i Matlab, samt graferna till samtliga uppgifter. För enkelhetens skull har vi lagt max ett problem per sida. För att förenkla för läsaren, har vi markerat all Matlab-kod med färgen röd, samt all resultat i Matlab med blått. Problem 1: Find and classify all critical points of the function which you studied in the previous lesson, and compare your results with the contour and gradient plot of g that you have already made. OBS!! Om du tycker att funktionen g(x,y) från problem1 är besvärlig och inte kan få grepp om den så får ersättas med g(x,y)=exp(-2y^2-4xy-x^4)! Matlabkoden för problem1: Vi börjar med att mata in funktionen i MATLAB (kommandot syms används för att MATLAB ska se x, y och z som symboler istället för variabler). syms x y z f=exp(-2*y^2-4*x*y-x^4) Vi låter sedan MATLAB ta ut funktionen f:s förstaderivator med avseende på x och y. fx=diff(f,x) fy=diff(f,y) Kommandot solve används för att ta reda på i vilka punkter förstaderivatorna blir noll. [xcr,ycr]=solve(fx,fy); [xcr,ycr] MATLAB returnerar då 3 punkter: (0, 0), (1, -1) och (-1, 1)

Vi behöver också andraderivatorna som senare behövs för att skapa en hessiandeterminant (som i sin tur används för att klassificera extrempunkterna): fxx=diff(fx,x) fxy=diff(fx,y) fyy=diff(fy,y) Vi får fram matrisen av andraderivatorna gradf = jacobian(f, [x, y]) Och sedan tar vi determinanten av den hessmatf = jacobian(gradf, [x, y]) hessdetf1 = simplify(det(hessmatf)) Vi gör en tabell av extrempunkter, tillsammans med Hessiandeterminanten och andra partiella derivatan med avseende på x. xcr = xcr(1:3); ycr = ycr(1:3); for k = 1:3 [xcr(k), ycr(k), subs(hessdetf1, [x,y], [xcr(k), ycr(k)]),... subs(fxx, [x,y], [xcr(k), ycr(k)])] end x-koord. y-koord. Hessiandeterminant '' f xx Typ av extrempunkt 0 0-16 0 Sadelpunkt 1-1 2 32e -12e Maximipunkt -1 1 2 32e -12e Maximipunkt Genom att titta på hessiandeterminanten och andraderivatan med avseende på x kan man klassificera extrempunkterna på följande sätt: Är hessiandeterminanten för en extrempunkt negativ betyder det att den punktens egenvärden har olika tecken, vilket i sin tur betyder att den är en sadelpunkt. Är hessiandeterminanten för en extrempunkt positiv vet man att punkten är antingen en minimi- eller maximipunkt. För att bestämma vilken av dessa punkten är tittat man på andraderivatan med avseende på x: är den negativ har vi en maximipunkt, och är den positiv har vi en minimipunkt. Här ser vi att första punkten (0,0) är en sadelpunkt (negativ hessiandeterminant). (1,-1) och (-1,1) är båda maximipunkter (positiv hessiandeterminant och negativ andraderivata med avseende på x). Vi plottar lite så man kan se allt grafiskt också! Med hjälp av följande kommandon skapar vi en 2d-graf med vektorpilar för hur funktionen växer: [xx, yy] = meshgrid(-3:.1:3,-3:.1:3); ffun = inline(vectorize(f)); fxfun = inline(vectorize(gradf(1))); fyfun = inline(vectorize(gradf(2))); contour(xx, yy, ffun(xx,yy), 30) hold on [xx, yy] = meshgrid(-3:.25:3,-3:.25:3); quiver(xx, yy, fxfun(xx,yy), fyfun(xx,yy), 0.6) axis equal tight, hold off

Contour-grafen: Och med hjälp av följande kommandon får vi en 3d-graf syms x y f=exp(-2*y^2-4*x*y-x^4) [X1,Y1]= meshgrid(-5:.1:5,-5:.1:5); zfun = @(x, y) eval(vectorize(f)); Z1=zfun(X1,Y1); surf(x1,y1,z1) Surf-grafen: Egna kommentarer: Vi tyckte problem1 var besvärligt och kunde inte få grepp om det, då den första funktionen bara resulterade i nollor när vi deriverade, så istället ersatte vi den första funktionen med g(x,y)=exp(-2y^2-4xy-x^4).

Problem 2: Find and classify the critical points of the function You may have trouble substituting the symbolic values of the coordinates of the critical points into the Hessian matrix; if so, convert them to numerical values, using double. Matlabkoden för problem2: syms x y z f2=(3*x^2)+(4*y^2)+(z^2)-(9*x*y*z) f2 = 3*x^2+4*y^2+z^2-9*x*y*z Vi tar fram första- och andraderivatorna mha. att använda jacobian-kommandot två gånger, första gången för att ta fram förstaderivatorna, och andra gången för att ta fram andraderivatorna (som sedan används för att skapa en hessianmatris): gradf2=jacobian(f2,[x,y,z]) hessmatf2=jacobian(gradf2,[x,y,z]) gradf2 = [ 6*x-9*y*z, 8*y-9*x*z, 2*z-9*x*y] hessmatf2 = [ 6, -9*z, -9*y] [ -9*z, 8, -9*x] [ -9*y, -9*x, 2] För att hitta extrempunkterna måste vi hitta de punkter där partiella derivatorna är 0. Detta görs med kommandot solve : [xcr2,ycr2,zcr2]=solve(gradf2(1),gradf2(2), gradf2(3)); [xcr2,ycr2,zcr2] Punkterna: (0,0,0), (4/9, 2 3 9, 4 3 2 3 ), (-4/9, 9 9, - 4 3 2 3 ), (-4/9, - 9 9, 4 3 9 ) och (4/9, - 2 3 9, - 4 3 9 ) Det finns 5 extrempunkter, nu evaluerar vi hessianmatrisen i extrempunkterna. H1=subs(hessmatf2,[x,y,z], [xcr2(1),ycr2(1),zcr2(1)]) H2=subs(hessmatf2,[x,y,z], [xcr2(2),ycr2(2),zcr2(2)]) H3=subs(hessmatf2,[x,y,z], [xcr2(3),ycr2(3),zcr2(3)])

H4=subs(hessmatf2,[x,y,z], [xcr2(4),ycr2(4),zcr2(4)]) H5=subs(hessmatf2,[x,y,z], [xcr2(5),ycr2(5),zcr2(5)]) Hessianmatrisen, H1, till (0,0,0): [ 6, 0, 0] [ 0, 8, 0] [ 0, 0, 2] Hessianmatrisen, H2, till (4/9, 2/9*3^(1/2), 4/9*3^(1/2)): [ 6, -4*3^(1/2), -2*3^(1/2)] [ -4*3^(1/2), 8, -4] [ -2*3^(1/2), -4, 2] Hessianmatrisen, H3, till (-4/9, 2/9*3^(1/2), -4/9*3^(1/2)): [ 6, 4*3^(1/2), -2*3^(1/2)] [ 4*3^(1/2), 8, 4] [ -2*3^(1/2), 4, 2] Hessianmatrisen, H4, till (-4/9, -2/9*3^(1/2), 4/9*3^(1/2)): [ 6, -4*3^(1/2), 2*3^(1/2)] [ -4*3^(1/2), 8, 4] [ 2*3^(1/2), 4, 2] Hessianmatrisen, H5, till (4/9, -2/9*3^(1/2), -4/9*3^(1/2)): [ 6, 4*3^(1/2), 2*3^(1/2)] [ 4*3^(1/2), 8, -4] [ 2*3^(1/2), -4, 2] Vi har alltså ovan fått ut en hessianmatris för varje extrempunkt, men för att kunna klassificera punkterna tar vi nu fram egenvärdena för respektive hessianmatris. Detta med kommandot eig : eig(h1) eig(h2) eig(h3) eig(h4) eig(h5) Vi omvandlar egenvärdena H2, H3, H4 och H5 till numeriska värden. H1 är redan numerisk och behöver därmed inte bli konverterad. eig(h1) double(eig(h2)) double(eig(h3)) double(eig(h4)) double(eig(h5))

För att få en överskådlig syn över alla punkter sätter vi dem, och deras egenvärden, i en tabell: Punkt Egenvärden Typ av punkt (0,0,0) 6 8 2 Minimipunkt (4/9, 2 3 9, 4 3 9 ) 14.0565-4.3445 6.2880 (-4/9, 2 3 9, - 4 3 9 ) 14.0565-4.3445 6.2880 (-4/9, - 2 3 9, 4 3 9 ) 14.0565-4.3445 6.2880 (4/9, - 2 3 9, - 4 3 9 ) 14.0565-4.3445 6.2880 Sadelpunkt Sadelpunkt Sadelpunkt Sadelpunkt Egna kommentarer: Vi kan direkt komma med slutsatsen att första punkten är minimipunkt, och de fyra andra (som har samma egenvärden) är sadelpunkter. Detta enligt: - alla egenvärden är positiva minimipunkt - alla egenvärden är negativa maximipunkt - olika tecken på egenvärdena sadel Alltså: (0,0,0) är minimipunkt. Resterande fyra är sadelpunkter.

Problem 3: Find and classify all critical points of the function Relate your results to a simultaneous contour and gradient plot of the function. Matlabkoden för problem3: syms x y k=(x^4)+(y^4)+(x*y)-(x^2)-(y^2) kx=diff(k,x) ky=diff(k,y) kx = 4*x^3+y-2*x ky = 4*y^3+x-2*y I detta problem använder vi oss av en grafisk metod: Vi plottar en graf med två kurvor i, en där förstaderivatan med avseende på x är noll(röd), och en där förstaderivatan med avseende på y är noll(blå). Sedan läser vi av i grafen där de båda kurvorna skär varandra (dessa punkter är extrempunkter). [x1,y1]=meshgrid(-8:.1:8,-8:.1:8); kxfun=inline(vectorize(kx)); kyfun=inline(vectorize(ky)); contour(x1,y1,kxfun(x1,y1),[0,0],'r'), hold on contour(x1,y1,kyfun(x1,y1),[0,0],'b'), hold off Gradient-grafen:

Vi läser av ur grafen att det finns punkter kring: (-1,1), (-.5,-.5), (0,0), (.5,.5) och (1,-1) och låter sedan newtonfilen bestämma punktena mer exakt: [xsol,ysol]=newton2d(kx, ky, -1, 1); [xsol,ysol] ans = -0.8660 0.8660 [xsol,ysol]=newton2d(kx, ky, -.5, -.5); [xsol,ysol] ans = -0.5000-0.5000 [xsol,ysol]=newton2d(kx, ky, 0, 0); [xsol,ysol] ans = 0 0 [xsol,ysol]=newton2d(kx, ky,.5,.5); [xsol,ysol] ans = 0.5000 0.5000 [xsol,ysol]=newton2d(kx, ky, 1, -1); [xsol,ysol] ans = 0.8660-0.8660 Punkterna var alltså: 3 3 (, ), (-.5,-.5), (0,0), (.5,.5) samt ( 2 2 3 3, ). 2 2 Beräknar hessiandeterminanten: hessdetk = simplify(diff(kx, x)*diff(ky, y) - diff(kx, y)^2) hessdetk = 144*x^2*y^2-24*x^2-24*y^2+3 Tar fram hessiandeterminanterna och andraderivatorna med avseende på x för de olika punkterna: double(subs(hessdetk, [x,y], [-0.8660, 0.8660])) double(subs(diff(kx, x), [x,y], [-0.8660, 0.8660])) double(subs(hessdetk, [x,y], [-0.5000, -0.5000])) double(subs(diff(kx, x), [x,y], [0.5000, -0.5000])) double(subs(hessdetk, [x,y], [0, 0])) double(subs(diff(kx, x), [x,y], [0, 0])) double(subs(hessdetk, [x,y], [0.5000, 0.5000])) double(subs(diff(kx, x), [x,y], [0.5000, 0.5000])) double(subs(hessdetk, [x,y], [0.8660, -0.8660])) double(subs(diff(kx, x), [x,y], [0.8660, -0.8660])) Sedan sätter vi in alla punkter, deras hessiandeterminant och andraderivata med avseende på x för att få en bra överblick, se nästa sida:

x-koord. y-koord. Hessiandeterminant Andraderivatan map. x Typ av extrempunkt 3 2 3 2 48 7 Minimi -0.5-0.5 0 1 Minimi 0 0 3-2 Maximi 0.5 0.5 0 1 Minimi 3 2 3 2 48 7 Minimi Vi plottar, först i 2d, sedan också i3d: [X1,Y1]= meshgrid(-1:.05:1,-1:.05:1); zfun = @(x, y) eval(vectorize(k)) Z1=zfun(X1,Y1); zfun = @(x, y) eval(vectorize(k)) I 2d: ezcontour(k, [-1, 1, -1, 1]) Ezcontour-grafen: Och i 3d: surf(x1,y1,z1)

Surf-grafen: Egna kommentarer: (-0.8660, 0.8660) och (0.8660, -0.8660) är båda minimipunkter(positiv hessiandeterminant och positiv andraderivata). (0,0) är en maximipunkt(positiv hessiandeterminant och negativ andraderivata). (-0.5000, -0.5000) och (0.5000, 0.5000) går att klassificera enkelt genom att titta i grafen. Men eftersom contourplotten ser lite konstig ut just vid (0.5, 0.5) och (-0.5,-0.5) testar vi punkten med hjälp av inline-kommnadot: f=inline('x^4+y^4+x*y-x^2-y^2','x','y') f = Inline function: f(x,y) = x^4+y^4+x*y-x^2-y^2 För punkten (0.5,0.5): f(0.5, 0.5) ans= -0.1250 f(0.51, 0.51) ans = -0.1248 f(0.49, 0.49) ans = -0.1248 För punkten (-0.5,-0.5): f(-0.5, -0.5) ans= -0.1250 f(-0.51, -0.51) ans = -0.1248 f(-0.49, -0.49) ans = -0.1248 Vi ser alltså att vårt antagande att (0.5,0.5) och (-0.5,-0.5) är minimipunkter, vilket stämmer.

Problem 4: Find and classify all critical points of the function MATLAB will report many critical points, but only a few of them are real. Matlabkoden till problem4: syms x y z f2=(x^4)+(y^4)+(z^4) + (x*y*z) f2 = x^4+y^4+z^4+x*y*z Även i detta problem använder vi oss av jacobian-kommandot två gånger får att ta fram första- och andraderivatorna: gradf2=jacobian(f2,[x,y,z]) hessmatf2=jacobian(gradf2,[x,y,z]) gradf2 = [ 4*x^3+y*z, 4*y^3+x*z, 4*z^3+x*y] MATLAB ger oss följande hessianmatris: hessmatf2 = [ 12*x^2, z, y] [ z, 12*y^2, x] [ y, x, 12*z^2] Använder kommandot solve för att se vid vilka punkter som derivatorna är 0: [xcr2,ycr2,zcr2]=solve(gradf2(1),gradf2(2),gradf2(3)); [xcr2,ycr2,zcr2] Matlab ger oss punkterna: [ 0, 0, 0] [ -1/4, 1/4, 1/4] [ -1/4, -1/4, -1/4] [ 1/4, 1/4*i, 1/4*i] [ 1/4, -1/4*i, -1/4*i] [ 1/4, -1/4, 1/4] [ 1/4, 1/4, -1/4] [ -1/4, -1/4*i, 1/4*i] [ -1/4, 1/4*i, -1/4*i] [ -1/4*i, -1/4, 1/4*i] [ 1/4*i, -1/4, -1/4*i] [ 1/4*i, 1/4, 1/4*i] [ -1/4*i, 1/4, -1/4*i] [ 1/4*i, 1/4*i, 1/4] [ -1/4*i, -1/4*i, 1/4] [ -1/4*i, 1/4*i, -1/4] [ 1/4*i, -1/4*i, -1/4]

Det är bara 1,2,3,6 och 7 som är reella. Tar fram deras hessainmatriser: H1=subs(hessmatf2,[x,y,z], [xcr2(1),ycr2(1),zcr2(1)]) H2=subs(hessmatf2,[x,y,z], [xcr2(2),ycr2(2),zcr2(2)]) H3=subs(hessmatf2,[x,y,z], [xcr2(3),ycr2(3),zcr2(3)]) H6=subs(hessmatf2,[x,y,z], [xcr2(6),ycr2(6),zcr2(6)]) H7=subs(hessmatf2,[x,y,z], [xcr2(7),ycr2(7),zcr2(7)]) Hessianmatrisen, H1, till (0,0,0): [ 0, (0), (0)] [ (0), 0, (0)] [ (0), (0), 0] Hessianmatrisen, H2, (-1/4, 1/4, 1/4): [ 3/4, (1/4), (1/4)] [ (1/4), 3/4, (-1/4)] [ (1/4), (-1/4), 3/4] Hessianmatrisen, H3, (-1/4, -1/4, -1/4): [ 3/4, (-1/4), (-1/4)] [ (-1/4), 3/4, (-1/4)] [ (-1/4), (-1/4), 3/4] Hessianmatrisen, H6 (1/4, -1/4, 1/4): [ 3/4, (1/4), (-1/4)] [ (1/4), 3/4, (1/4)] [ (-1/4), (1/4), 3/4] Hessianmatrisen, H7, (1/4, 1/4, -1/4): [ 3/4, (-1/4), (1/4)] [ (-1/4), 3/4, (1/4)] [ (1/4), (1/4), 3/4] Vi tar ut egenvärdena för att kunna klassificera extrempunkterna: eig(h1) eig(h2) eig(h3) eig(h6) eig(h7) Sedan sätter vi in alla punkter och deras egenvärden i en tabell: Punkt Egenvärden Typ av extrempunkt (0,0,0) 0 0 0 Sadel (-1/4,1/4,1/4) 0.2500 1.000 1.000 Minimi (-1/4,-1/4,-1/4) 0.2500 1.000 1.000 Minimi (1/4,-1/4,1/4) 0.2500 1.000 1.000 Minimi (1/4,1/4,-1/4) 0.2500 1.000 1.000 Minimi Vi ser här att alla egenvärden till punkten (0,0,0), vilket gör att vi inte kan klassificera den punkten direkt, utan måste kolla om värden för punkter nära origo växlar tecken Växlar dessa värden har vi en sadelpunkt. Är de alla positiva har vi en minimipunkt, och är de alla negativa har vi en maximipunkt. De övriga fyra punkterna har samma egenvärden, alla positiva, vilket betyder att de alla är minimipunkter. Vi kollar vilka värden några punkter mycket nära origo får:

Kommandot inline låter oss mata in en vald punkt och då få ut funktionens värde i den punkten. f = inline('x^4+y^4+x*y*z','x', 'y','z') Inline function: f(x,y,z) = x^4+y^4+x*y*z punkt1=f(0.001,0.001,0.001) punkt1 = 1.0020e-009 punkt2=f(-0.001,0.001,0.001) punkt2 = -9.9800e-010 Egna kommentarer: Alla punkter utom (0,0,0) verkar vara minimipunkter. Punkten (0,0,0) har vi kommit fram till att den är en sadelpunkt, eftersom funktionsvärdet för punkter mycket nära den har olika tecken. Men vi kan dessvärre inte kontrollera detta grafiskt eftersom det är för många variabler, så vi sitter i mörkret här.

Problem 5: Find and classify all critical points of the function h(x, y) = y^2*exp(x^2) - x - 3*y. You will need the graphical/numerical method to find the critical points. Matlabkoden för problem5: syms x y k = y^2*exp(x^2) - x - 3*y kx=diff(k,x) kx = 2*y^2*x*exp(x^2)-1 ky=diff(k,y) ky = 2*y*exp(x^2)-3 Här använder vi oss av den grafiska metoden igen. Plottar och titta var de båda partiella derivatorna är noll: [x1,y1]=meshgrid(-6:.1:6,-6:.1:6); kxfun=inline(vectorize(kx)); kyfun=inline(vectorize(ky)); contour(x1,y1,kxfun(x1,y1),[0,0],'r'), hold on contour(x1,y1,kyfun(x1,y1),[0,0],'b'), hold off Gradient-grafen: Följde punkter approximerades ur grafen: (0.2,1.4) (1.2,0.2) (2.1,0.1) (4.0,0.1)

Vi använder Newton-filen för att bestämma punkterna mer exakt: [xsol,ysol]=newton2d(kx, ky, 0.2, 1.4); [xsol,ysol] [xsol,ysol]=newton2d(kx, ky, 1.2, 0.2); [xsol,ysol] [xsol,ysol]=newton2d(kx, ky, 2.1, 0.1); [xsol,ysol] [xsol,ysol]=newton2d(kx, ky, 4.0, 0.1); [xsol,ysol] Vi ser att det endast finns två extrempunkter. De resterande två visade sig inte vara extrempunkter. punkt1 = 0.2348 1.4195 punkt2 = 1.3406 0.2486 punkt3 = 1.3406 0.2486 punkt4 = 1.3406 0.2486 Tar fram hessiandeterminanten: hessdetk = simplify(diff(kx, x)*diff(ky, y) - diff(kx, y)^2) hessdetk = -4*y^2*exp(2*x^2)*(-1+2*x^2) Och tar fram hessiandeterminanten samt andraderivatan med avseende på x för de båda punkterna: double(subs(hessdetk, [x,y], [0.2348, 1.4195])) double(subs(diff(kx, x), [x,y], [0.2348, 1.4195])) double(subs(hessdetk, [x,y], [1.3406, 0.2486])) double(subs(diff(kx, x), [x,y], [1.3406, 0.2486])) Sedan sätter vi in punkterna samt deras hessiandeterminanter och andraderivata med avseende på x: x-värde y-värde Hessiandeterminant '' k xx Typ av punkt 0.2348 1.4195 8.0072 4.7279 Sadelpunkt 1.3406 0.2486-23.3420 3.4259 Minimipunkt Den första punkten (0.2348, 1.4195) har positiv hessiandeterminant och positiv andraderivata med avseende på x, vilket betyder lokalt min. Den andra punkten (1.3406, 0.2486) har negativ hessiandeterminant, vilket betyder att det är en sadelpunkt där. På nästa sida kollar vi grafiskt.

2d-graf i närheten av punkt1: ezcontour(k, [0.2, 0.27, 1.39, 1.45]) Och i närheten av punkt2: ezcontour(k, [1.3, 1.4, 0.2, 0.3]) Egna kommentarer: Lösningarna som vi har fått ut stämmer med grafen. Även i grafen ser vi att det är ett lokalt minimum i (0.2348, 1.4195) och en sadelpunkt i (1.3406, 0.2486).

Problem 6: Find and classify all critical points of the function h(x, y) = y^2*exp(x) - x - 3*y. Use both the analytical and the graphical/numerical methods to find the critical points, and compare the results. Matlabkoden för problem6: Grafiskt: syms x y k = y^2*exp(x) - x - 3*y kx=diff(k,x) ky=diff(k,y) kx = y^2*exp(x)-1 ky = 2*y*exp(x)-3 Använder den grafiska metoden igen: Plottar båda partialderivatorna=0 och kollar var dessa skär varandra: [x1,y1]=meshgrid(-4:.1:6,-6:.1:6); kxfun=inline(vectorize(kx)); kyfun=inline(vectorize(ky)); contour(x1,y1,kxfun(x1,y1),[0,0],'r'), hold on contour(x1,y1,kyfun(x1,y1),[0,0],'b'), hold off Punkter utlästa ur graf: (0.9,0.8) och (6.0,0.0)

Newtons tar fram mer exakta värden: [xsol,ysol]=newton2d(kx, ky, 0.9, 0.8); [xsol,ysol] [xsol,ysol]=newton2d(kx, ky, 6.0, 0.1); [xsol,ysol] ans = 0.8109 0.6667 ans = 0.8109 0.6667 Båda är samma punkt, finns alltså bara en punkt. Tar fram hessiandeterminanten: hessdetk = simplify(diff(kx, x)*diff(ky, y) - diff(kx, y)^2) hessdetk = -2*y^2*exp(2*x) Tar fram hessiandeterminanten och andraderivatan med avseende på x för punkten: double(subs(hessdetk, [x,y], [0.8109, 0.6667])) double(subs(diff(kx, x), [x,y], [0.8109, 0.6667])) Vi sätter sedan in punkten och dess hessiandeterminant I en tabell: x-koord. y-koord. Hessiandeterminant Typ av extrempunkt ln(9/4) 2/3-4.5002 Sadelpunkt Punktens Hessiandeterminant är negativ, alltså är det en sadelpunkt. Andraderivatan är överflödig här. Vi tittar grafiskt: ezcontour(k, [0.75, 0.88, 0.62, 0.71])

Analytiskt: syms x y f 2 y^2*exp(x) - x - 3*y Tar fram första och andra partiella derivatorna mha. kommandot jacobian två gånger: gradf2=jacobian(f2,[x,y]) hessmatf2=jacobian(gradf2,[x,y] gradf2 = [ y^2*exp(x)-1, 2*y*exp(x)-3] hessmatf2 = [ y^2*exp(x), 2*y*exp(x)] [ 2*y*exp(x), 2*exp(x)] Tar fram punkter där förstaderivatorna är 0 mha. kommandot solve : [xcr2,ycr2]=solve(gradf2(1),gradf2(2)); a= [xcr2,ycr2] a = [ log(9/4), 2/3] Det finns alltså en extrempunkt. Tar fram numeriska värden för punktens koordinater: Double(a) ans= [0.8109 0.6667] Evaluerar hessianmatrisen i extrempunkten: H1=subs(hessmatf2,[x,y], [xcr2(1),ycr2(1)]) H1 = [ 1, 3] [ 3, 9/2] Tar fram egenvärdena: eig(h1) ans = 11/4+1/4*193^(1/2) 11/4-1/4*193^(1/2) Tar fram numeriska värden för egenvärdena: double(eig(h1)) ans = 6.2231-0.7231 Vi ser att extrempunkten är en sadelpunkt (ena egenvärdet >0, andra <0) Egna kommentarer: Här ser vi klart och tydligt att man kan göra på två helt olika sätt (numerisk/grafisk och analytisk) och erhålla samma resultat. I detta problem tycker vi analytiska metoden var betydligt smidigare, bl.a. eftersom man slipper approximera med ögonmått var derivatorna = 0 och sedan använda newton-filen. Det som är positivt med den grafiska är dock att man lättare kan se vad man gör den analytiska metoden är ju mer teori utan praktik, så det gäller att man vet vad man gör.