9789144176826

Page 1

FLERVARIABELANALYS MED

FLERVARIABELANALYS MED PYTHON EN INTRODUKTION

EN INTRODUKTION

STAFFAN LUNDBERG

STAFFAN LUNDBERG

PYTHON
PYTHON PYTHON
PYTHON

KOPIERINGSFÖRBUD

Detta verk är skyddat av upphovsrättslagen. Kopiering, utöver lärares och studenters begränsade rätt att kopiera för undervisningsändamål enligt

Bonus Copyright Access kopieringsavtal, är förbjuden. För information om avtalet hänvisas till utbildningsanordnarens huvudman eller Bonus Copyright Access.

Vid utgivning av detta verk som e-bok, är e-boken kopieringsskyddad.

Den som bryter mot lagen om upphovsrätt kan åtalas av allmän åklagare och dömas till böter eller fängelse i upp till två år samt bli skyldig att erlägga ersättning till upphovsman eller rättsinnehavare.

Studentlitteratur har både digital och traditionell bokutgivning. Studentlitteraturs trycksaker är miljöanpassade, både när det gäller papper och tryckprocess.

Art.nr 46620

ISBN 978-91-44-17682-6

Upplaga 1:1

©Författaren och Studentlitteratur 2023

studentlitteratur.se

Studentlitteratur AB, Lund

Formgivning omslag: Francisco Ortega

Printed by Latgales Druka, Latvia 2023

INNEHÅLL

Förord5

KAPITEL 1 Di erentialkalkyl7

1.1Funktioneravtvåvariabler7

1.2Attplottafunktionsytor8

1.3Partielladerivator16

1.4Någratillämpningar22

1.5Taylorsformel28

1.6Blandadeövningsuppgi er29

KAPITEL 2 Extremvärden31

2.1Lokalamaximaochminima31

2.2Störstaochminstavärde40

2.3Extremvärdesproblemmedbivillkor42

2.4*Tillämpadoptimering–SteepestDescent47

2.5Blandadeövningsuppgi er50

KAPITEL 3 Integralkalkyl53

3.1Dubbelintegraler53

3.2Variabelbyteidubbelintegraler55

3.3Generaliseradedubbelintegraler61

3.4Trippelintegraler63

3.5Variabelbyteitrippelintegraler65

3.6Blandadeövningsuppgi er67

KAPITEL 4 Vektoranalys71

4.1Fältbegreppet71

4.2Kurvintegraler76

4.3Ytorpåparameterform83 © FÖRFATTARENOCHSTUDENTLITTERATUR

3

4.4Ytintegraleravskalärfält86

4.5Ytintegraleravvektorfält90

4.6Di erentialoperatorer94

4.7Vektoranalysiplanet97

4.8Divergenssatsen(Gausssats)104

4.9Stokessats108

4.10Blandadeövningsuppgi er113

KAPITEL 5 Svartilludda

övningsuppgifter117

BILAGA A Omkurvorskrökning121

A.1Krökningochkrökningsradie121

BILAGA B Omnumeriskametoder125

B.1Numeriskintegration125

BILAGA C Omandrakoordinatsystem129

C.1Inledning129

C.2Basvektorer130

C.3Specialfall130

Litteraturförteckning137

Sakregister139

innehåll
4 © FÖRFATTARENOCHSTUDENTLITTERATUR

Integralkalkyl

Idettakapitelskaviägnaossåtintegralkalkylav ervariablafunktioner, därviinågraexempelpresenterarhurvimedhjälpavPythonbehandlar dennaproblemtyp.

3.1Dubbelintegraler

Närvistuderadeintegralkalkylienvariabelanalysen,möttevienviktig geometrisktolkningidetfalldåfunktionen f ( x ) ≥ 0.Integralenav f ( x ) påettintervall I svarademot arean avområdetmellan x -axeln ochfunktionskurvan y = f ( x ).Idettakapitelskavigöramotsvarande geometriskatolkningavendubbelintegralöverettområdei xy -planet då f ( x , y ) ≥ 0.Dennaintegraltolkarvisom volymen avdenkroppsom liggermellan xy -planetochfunktionsytan z = f ( x , y ).

Exempel3.1 Beräknavolymenavdenkroppsomliggerunderytan z = 1 + x 3 ochovanförområdet D i xy -planetmellankurvan y = 1 x 2 och x -axeln.

#Ex31.py from sympy import * x,y=symbols("xy")

f=x**3+1

volym=integrate(f,(y,0,1 x**2),(x, 1,1)) print(volym)

#Körning: 4/3

Exempel3.2 Antaatt D ärrektangeln

D = {( x , y ) ∶ 0 ≤ x ≤ 1, 0 ≤ y ≤ 2} . ©

K APITEL3
53
FÖRFATTARENOCHSTUDENTLITTERATUR

påtvåsätt.

# Ex32 py

from sympy import *

x,y=symbols("xy")

f=(1+x ** 2+y ** 2)

int1=integrate(f,(y,0,2),(x,0,1))

# Ändra integrationsordning

int2=integrate(f,(x,0,1),(y,0,2)) print(int1,’\n’,int2)

# Körning: 16/3 16/3

ochberäknadäre erintegralen.Senedanstående gur.

# Ex33.py

from sympy import * x,y=symbols(’xy’)

f=x**3

integral=integrate(f,(x,y/2,sqrt(y)),(y,0,4))

3integralkalkyl Beräkna ∫∫ D (1 + x 2 + y 2 ) d x d y
∫ 2 0 ( ∫ 2 x x 2 x 3 d y ) d x .
Exempel3.3 Ändraintegrationsordningeni
1 0 1 2 0 2 4 6
FIGUR3.1 Linjen y = 2x samtparabeln y = x 2
54 © FÖRFATTARENOCHSTUDENTLITTERATUR

print(integral)

# Körning: 32/15

Exempel3.4 Beräknadubbelintegralen

# Ex34.py from sympy import * x,y=symbols("xy") f=sin(x)/x integral=integrate(f,(y,0,x),(x,0,1)) print(integral)

# Körning: 1 cos(1)

3.2Variabelbyteidubbelintegraler ATTAVBILDAPÅENKLAREOMRÅDEN

Viskainågraexempelåskådliggöravariabelbyteidubbelintegraler.Det rörsigomettkoordinatbytemellanett uv -planochett xy -plan.Vi uttryckerdettakoordinatbytesomeninverterbar(bijektiv)avbildning

x = x (u ,v ), y = y (u ,v )

frånettområde D ′ i uv -planettillettområde D i xy -planet. Funktionerna x och y antasvarakontinuerligtderiverbara.Vianvänder resultatetfrånenvälkändsats,ochviskriver

kallas Jacobianen alternativt funktionaldeterminanten.

3integralkalkyl
1 ∫ 0 ⎛ ⎜ ⎝ 1 ∫ y sin x x d x ⎞ ⎟ ⎠ d y .
∫∫ D f ( x , y ) d x d y = ∫∫ D ′ д (u ,v )∣ J ∣ du dv ,
J = ∣ x u x v y u y v ∣
därdeterminanten
© FÖRFATTARENOCHSTUDENTLITTERATUR 55

Exempel3.5 Beräknaintegralen

# Ex35.py from sympy import * x,y,u,v=symbols("xyuv")

ekv1=u (2*x y)/2

ekv2=v y/2

f=(2*x y)/2 eqns=[ekv1,ekv2]

# Uttryck x och y i u och v sol=solve(eqns,(x,y))

A=Matrix([[sol[x]],[sol[y]]])

JM=A.jacobian([u,v]) # Jacobimatris

J=JM.det() # Jacobian f=f.subs(x,sol[x]).subs(y,sol[y])

integral=integrate(f*abs(J),(u,0,1),(v,0,2))

print(integral)

# Körning: 2

Exempel3.6 Beräknaintegralen

där D ärdettrianguläraområdetmedhörnipunkterna (0,0), (0,1) och (1,0).

# Ex36 py from sympy import * x,y,u,v=symbols("xyuv")

ekv1=u (x+y)

ekv2=v (y 2*x)

f=sqrt(x+y)*(y 2*x)**2

eqns=[ekv1,ekv2]

3integralkalkyl
4 ∫ 0 x = y /2+1 ∫ x = y /2 2 x y 2 d x d y
u = 2 x y 2 , v = y 2 .
medhjälpavvariabelbytet
∫∫ D √x + y ( y 2 x )2 d x d y ,
56 © FÖRFATTARENOCHSTUDENTLITTERATUR

sol=solve(eqns,(x,y))

A=Matrix([[sol[x]],[sol[y]]])

JM=A.jacobian([u,v])

J=JM.det()

f=f.subs(x,sol[x]).subs(y,sol[y])

integral=integrate(f*abs(J),(v, 2*u,u),(u,0,1))

print(integral)

# Körning: 2/9

Exempel3.7

∫∫ D

x x + 2 y d x d y ,

där D ärområdetsombegränsasavlinjerna 2 x y = 0, 2 x y = 2, x + 2 y = 1 och x + 2 y = 2.

# Ex37 py from sympy import * x,y,u,v=symbols("xyuv")

ekv1=u (2*x y)

ekv2=v (2*y+x)

f=x/(x+2*y)

eqns=[ekv1,ekv2]

sol=solve(eqns,(x,y))

A=Matrix([[sol[x]],[sol[y]]])

JM=A.jacobian([u,v])

J=JM.det()

f=f.subs(x,sol[x]).subs(y,sol[y])

integral=integrate(f*abs(J),(v,1,2),(u,0,2))

integral=simplify(integral)

print(integral)

# Körning: 2/25+4*log(2)/25

Exempel3.8

∫∫ D ( x y ) sin(2 x + y ) d x d y ,

där D ärtriangelnmedhörniorigo, (1,0) och (0,2).

3integralkalkyl
Beräknaintegralen Beräknaintegralen
57
© FÖRFATTARENOCHSTUDENTLITTERATUR

# Ex38 py

from sympy import * x,y,u,v=symbols("xyuv")

ekv1=u (x y)

ekv2=v (2*x+y)

f=(x y)*sin(2*x+y)

eqns=[ekv1,ekv2]

sol=solve(eqns,(x,y))

A=Matrix([[sol[x]],[sol[y]]])

JM=A.jacobian([u,v])

J=JM.det()

f=f.subs(x,sol[x]).subs(y,sol[y])

integral=integrate(f*abs(J),(u, v,v/2),(v,0,2)) print(integral)

# Körning: sin(2)/2+cos(2)/4+1/4

POLÄRAKOORDINATER

Härnästskavibehandlaettviktigtvariabelbyte, polärakoordinater .

Polärakoordinateräranvändbaraomintegranden/integrationsområdetlättarekanuttryckasipolärakoordinateränikartesiskakoordinater.

Exempel3.9 Beräknavolymenavdetområde,sombegränsasav xyplanetochparaboloiden z = 1 x 2 y 2 .

Paraboloidenskär xy -planetlängskurvan(sätt z = 0) 0 = 1 x 2 y 2 , dvs.encirkel.Söktvolym:

3integralkalkyl
2
2 58
FIGUR3.2 Paraboloiden z = 1 x
y
© FÖRFATTARENOCHSTUDENTLITTERATUR

V =

(1 x 2 y 2 ) d x d y

# Ex39 py from sympy import *

x,y,r,theta=symbols("xyrtheta")

# Polära koordinater

x=r*cos(theta)

y=r*sin(theta)

f=1 (x**2+y**2)

f=simplify(f)

A=Matrix([[x],[y]])

JM=A.jacobian([r,theta])

J=simplify(JM.det())

integral=integrate(f*abs(J),(r,0,1),(theta,0,2*pi)) print(integral)

# Körning: pi/2

Exempel3.10 Bestämareanavcirkelskivan

Anmärkning3.11 Areanavettområde E kanberäknassomdubbelintegralen

3integralkalkyl
E
∫∫
r = 2sin θ x y θ
1)2 ≤ 1
x 2 + ( y 1)2 ≤ 1.
FIGUR3.3 Cirkelskivan x 2 +
( y
A(E ) = ∫∫ E 1 d x d y © FÖRFATTARENOCHSTUDENTLITTERATUR 59

# Ex310 py from sympy import *

x,y,r,theta=symbols("xyrtheta")

x=r*cos(theta)

y=r*sin(theta)

f=1

A=Matrix([[x],[y]])

JM=A.jacobian([r,theta])

J=simplify(JM.det())

area=integrate(f*abs(J),(r,0,2*sin(theta)),(theta,0,pi))

print(area)

# Körning: pi

Exempel3.12 Beräkna

R y d x d y ,

där R ärområdetiförstakvadrantensomliggerutanförcirkeln r = 2

ochinnanförkardioiden r = 2(1 + cos θ ).

y

r

# Ex312.py from sympy import * x,y,r,theta=symbols("xyrtheta")

x=r*cos(theta)

y=r*sin(theta)

f=y

A=Matrix([[x],[y]])

3integralkalkyl
∫∫
x
FIGUR3.4 Områdetiförstakvadrantenutanförcirkeln r = 2 ochinnanförkardioiden = 2(1 + cos θ )
60 © FÖRFATTARENOCHSTUDENTLITTERATUR

JM=A.jacobian([r,theta])

J=simplify(JM.det())

integral=integrate(f*abs(J),\ (r,2,2*(1+cos(theta))),(theta,0,pi/2))

print(integral)

# Körning: 22/3

3.3Generaliseradedubbelintegraler

Hittillsharviförutsattattvårafunktionerärbegränsadepåettbegränsat område.Vadhänderomenellerbådaavdessaförutsättningarintegäller?

Analogtsomienvariabelfallet,hanterasdettamedhjälpav generaliserade

integraler.VilåterPythoninågraexempelundersökaeventuellkonvergens(ellerdivergens)avgeneraliseradedubbelintegraler.Noteraattvii dennaboknöjerossmedattbetraktaicke-negativafunktioner. OBEGRÄNSADINTEGRAND Exempel3.13

# Ex313.py from sympy import * x,y=symbols("xy")

f=1/(x+y)**2

integral=integrate(f,(y,0,x**2),(x,0,1))

print(integral)

# Körning: log(2)

Exempel3.14 Beräkna

T ärtriangelnmedhörnipunkternaorigo, (1,1) och (1,2). © FÖRFATTARENOCHSTUDENTLITTERATUR

3integralkalkyl
Beräkna ∫∫ R 1 ( x + y )2 d A, då R ärområdet 0 ≤ x ≤ 1, 0 ≤ y ≤ x 2 .
∫∫ T
x √ y d A,
61
1

# Ex314 py from sympy import * x,y=symbols("xy")

f=1/(x*sqrt(y))

integral=integrate(f,(y,x,2*x),(x,0,1)) print(integral)

# Körning: 4+4*sqrt(2)

OBEGRÄNSATOMRÅDE

Exempel3.15 Beräkna

R e x 2 d A,

då R ärområdet x ≥ 0, x ≤ y ≤ x .

# Ex315 py from sympy import * x,y=symbols("xy")

f=exp( x**2)

integral=integrate(f,(y, x,x),(x,0,oo)) print(integral)

# Körning: 1

Exempel3.16 Beräkna

y 1 + x 2 d A,

R

då R är”remsan” 0 < y < 1 i xy -planet.

# Ex316.py from sympy import * x,y=symbols("xy")

f=y/(1+x**2)

integral=integrate(f,(y,0,1),(x, oo,oo)) print(integral)

# Körning: pi/2

3integralkalkyl
∫∫
∫∫
62 © FÖRFATTARENOCHSTUDENTLITTERATUR

Exempel3.17 Beräkna ∫∫ D

1 x + y d A,

då D områdetovanför x -axeln,underkurvan y = 1/ x ochtillhögerom linjen x = 1.

# Ex317 py from sympy import * x,y=symbols("xy")

f=1/(x+y)

integral=integrate(f,(y,0,1/x),(x,1,oo))

# Körning: log(2)+pi/2

Exempel3.18 Undersökeventuellkonvergensav

# Ex318 py from sympy import * x,y=symbols("xy")

f=1/(1+x+y)

integral=integrate(f,(y,0,1),(x,0,oo)) print(integral)

# Körning: oo # Divergent 3.4Trippelintegraler

Exempel3.19 Beräkna

3integralkalkyl
∫∫ D 1 1 + x + y d A, där D = {( x , y ) ∶ 0 ≤ x < ∞, 0 < y < 1}.
∫∫∫ Ω
Ω ∶ {( x , y , z ) ∶−1 ≤ x ≤ 1, 0 ≤ y ≤ 3, 1 ≤ z ≤ 2
63
( x 2 y + yz 2 ) dV , där
}. © FÖRFATTARENOCHSTUDENTLITTERATUR

# Ex319 py from sympy import *

x,y,z=symbols("xyz")

f=x**2*y+y*z**2

int=integrate(f,(x, 1,1),(y,0,3),(z,1,2))

print(int)

# Körning: 24

Exempel3.20 Beräkna ∫∫∫ Ω y dV ,

där Ω ärtetraedernmedhörniorigo, (2,0,0), (0,2,0) och (0,0,2).

# Ex320 py from sympy import *

x,y,z=symbols("xyz")

f=y

int=integrate(f,(z,0,2 x y),(y,0,2 x),(x,0,2))

print(int)

# Körning

2/3

Exempel3.21 Bestämvolymenavområdet R sombegränsasavplanet z = 3 2 y ochparaboloiden z = x 2 + y 2

Området D i xy -planetärskärningenmellanparaboloidochplan.Vi undersökergeometrinavområdetsrand:

x 2 + y 2 (= z ) = 3 2 y .

Kvadratkompletteringgeross x 2 + ( y + 1)2 = 4,dvs. D utgörsavenen cirkelskivamedcentrumi (0, 1),radie 2.Vianvänderpolärakoordinater. Volymenavområdet R fårvigenomtrippelintegralen

V (R ) = ∫∫∫ R 1 ⋅ dV .

3integralkalkyl
64
© FÖRFATTARENOCHSTUDENTLITTERATUR

# Ex321 py from sympy import * x,yz,r,theta=symbols("xyzrtheta")

f=1

# polära koord

X=r*cos(theta)

Y= 1+r*sin(theta)

A=Matrix([[X],[Y]])

JM=A.jacobian([r,theta])

J=simplify(JM.det())

# integrering i z led

Iz=integrate(f,(z,x**2+y**2,3 2*y))

g=Iz

g=g.subs(x,X).subs(y,Y)

volym=integrate(abs(J)*g,(r,0,2),(theta,0,2*pi)) print(volym)

# Körning: 8*pi

Anmärkning3.22 Exempletärintetrivialt.Försökattlösadetmedpapperochpenna.

3.5Variabelbyteitrippelintegraler

Vårtresonemangliknardetsomvifördeisambandmedvariabelbytei dubbelintegraler.Viantaratt T ärenbijektivavbildningsomavbildar ettområde R ′ i uvw -rummettillettannatområde R i xyz -rummetmed ekvationerna

x , y och z antasvarakontinuerligtderiverbara.Ett typisktvariabelbyteientrippelintegralkannämligenbeskrivassomen bijektivavbildning T ∶ R3 ↦ R3 .

CYLINDRISKAKOORDINATER

Medhjälpavspeciellakoordinatsystemkanmano aförenklaintegraler somärbesvärligaatthanteraikartesiskakoordinater.

Cylindriskakoordinaterfårvifrånkartesiskakoordinatergenomatt

3integralkalkyl
x = x (u ,v ,w ), y = y (u ,v ,w ), z = z (u ,v ,w ), därfunktionerna
© FÖRFATTARENOCHSTUDENTLITTERATUR 65

ersätta x -och y -koordinaternamedpolärakoordinater r och θ och lämna z -koordinatenoförändrad.

x = r cos θ , y = r sin θ , z = z

Dettavariabelbytekanvimedfördelanvändadåintegrationsområdet ärnågontypavcylindriskgeometri.

Volymelementet dV bliricylindriskakoordinater

dV = r dr d θ dz .

Exempel3.23 Bestämmassan M avdeninhomogenacylindern T med radie R ochhöjd h ,varsdensitetvarierarmedavståndettillcylinderns axel.

Densitet: λ ( x , y , z ) = k √x 2 + y 2 .

# Ex323.py

from sympy import *

x,y,z,r,theta=symbols("xyzrtheta")

k,h,R=symbols("khR",positive=True)

# cylindriska koord

x=r*cos(theta)

y=r*sin(theta)

z=z

f=k*sqrt(x**2+y**2)

A=Matrix([[x],[y],[z]])

JM=A.jacobian([r,theta,z])

J=simplify(JM.det())

int=integrate(abs(J)*f,(z,0,h),(r,0,R),(theta,0,2*pi)) print(int)

# Körning 2*pi*R**3*h*k/3

SFÄRISKAKOORDINATER

Sfäriska(iblandbenämndarymdpolära)koordinaterbeståravtvåkoordinatersombeskrivervinklarochenkoordinatsombeskriveravståndetfrånorigotillenpunkt P irymden.Detärlämpligtattanvända

3integralkalkyl
66 © FÖRFATTARENOCHSTUDENTLITTERATUR

dettavariabelbytedåintegrationsområdetinnefattarnågontypavsfäriskgeometri.

Koordinatsamband:

x = ρ sin ϕ cos θ , y = ρ sin ϕ sin θ , z = ρ cos ϕ

Volymelementet dV blirdå

dV = ρ 2 sin ϕ d ρ d ϕ d θ .

Exempel3.24 Bestäm ∫∫∫ Ω z dV ,

då Ω = {( x , y , z ) ∶ x 2 + y 2 + z 2 ≤ 9, z ≥ 0}.

# Ex324.py from sympy import *

x,y,z,rho,theta,phi=symbols("xyzrhothetaphi")

# sfäriska koord

x=rho*sin(phi)*cos(theta)

y=rho*sin(phi)*sin(theta)

z=rho*cos(phi)

f=z

A=Matrix([[x],[y],[z]])

JM=A.jacobian([rho,phi,theta])

J=simplify(JM.det())

int=integrate(abs(J)*f,(rho,0,3),(phi,0,pi/2),(theta,0,2*pi)) print(int)

# Körning: 81*pi/4

3.6Blandadeövningsuppgi er

1. (a) Plottakurvorna y = cos x och y = x 2 + x isammakoordinatsystem.

(b) Bestämdenpositiva x -kooordinatenförskärningspunktenmellankurvorna.

3integralkalkyl
67
© FÖRFATTARENOCHSTUDENTLITTERATUR

Fil.dr Staffan Lundberg är f.d. universitetslektor i tillämpad matematik vid Luleå tekniska universitet. Han har mångårig erfarenhet av undervisning och forskning i matematik på högskolenivå.

FLERVARIABELANALYS MED PYTHON

EN INTRODUKTION

I föreliggande bok ska vi göra några strandhugg i den reella flervariabelanalysen och med ett flertal exempel visa hur vi kan använda Python för problemlösning inom detta intressanta område.

I slutet av varje kapitel finns ett antal övningsuppgifter.

Boken, som förutsätter dels grundläggande färdigheter i Python, dels kunskaper i flervariabelanalys, är tänkt att användas i civilingenjörsprogrammens kurser. Boken lämpar sig dessutom utmärkt för självstudier.

Art.nr 46620

PYTHONPYTHON

studentlitteratur.se
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.