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
då
# 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