Kvadratur och interpolation
Matlabs integral är en
bra rutin, men den har svårt med
ändpunkts-singulariteter.
>> integral(@(x) 1 ./ x.^0.7,
0,
1)
Warning: Infinite or Not-a-Number value encountered.
> In funfun/private/integralCalc>iterateScalarValued at 350
In funfun/private/integralCalc>vadapt at 133
In funfun/private/integralCalc at 76
In integral at 88
ans =
Inf
Man tvinga fram ett svar genom att öka den absoluta toleransen. Jag
har subtraherat det exakta svaret, 1/0.3.
>> integral(@(x) 1 ./ x.^0.7,
0, 1, 'AbsTol', 1e-4) - 1 / 0.3
ans =
-3.0286e-05
För att klara av svåra fall kan man
använda variabelsubstitution eller partiell integration för
att bli av med singulariteten och få en snäll integrand som integral kan hantera. I
följande uppgift får du träna på denna teknik.
Integrationsintervallet är [0, 1] i samtliga tre fall.
|
a) Använd partiell
integration följd av integral
för att approximera den bestämda integralen av cos(x) /
x^0.9. b) Använd variabelsubstitution följd av integral för att approximera den bestämda integralen av cos(x) / x^0.9. Ledning: testa ansatsen t = x^p där p är ett reellt tal. c) Frivillig: Använd variabelsubstitution följd av integral för att approximera den bestämda integralen av log(x) / (x^0.85 + x^0.9 + x^0.95). Ledning: testa ansatsen t = x^p där p är ett reellt tal. |
|
Vi råkar ha en tjusig,
4.25 m lång, kantlist
till bordet. Använd parameterframställningen ovan och
bestäm q så att epicykloidens omkrets blir 4.25 m.
Rita också upp formen på det resulterande bordet (glöm
inte axis equal, annars
får bordet fel form). Ledning: Låt om(q) vara bordets omkrets (epicykloidens kurvlängd) som funktion av q. Då består problemet i att lösa ekvationen om(q) = 4.25. Använd fsolve för att lösa ekvationen där du använder integral för att beräkna kurvlängden. |
|
Använd Matlabrutinen interp1
för att testa de tre interpolationsmetoderna. Skapa ett plotfönster
vardera för de två dataserierna. I varje plotfönster skall
datapunkterna och de tre interpolaterna ritas ut.
Datapunkterna skall ritas med ringar och interpolaterna skall ritas som
kurvor på ett finare grid (använd 100 punkter). Använd slutligen legend-funktionen. I den första dataserien vet du vilken funktion vi försöker approximera. Räkna ut maximala avvikelsen (på det finare gridet) för varje interpolant. Slutligen: drag slutsatser och analysera dina resultat. |