Interpolation av funktioner med hjälp av en spline. Spline-interpolation

Interpolationsformler för Lagrange, Newton och Stirling, etc. när man använder ett stort antal interpolationsnoder på hela segmentet [ a, b] ofta leder till en dålig approximation på grund av ackumulering av fel under beräkningsprocessen. Dessutom, på grund av divergensen i interpolationsprocessen, leder ökning av antalet noder inte nödvändigtvis till ökad noggrannhet. För att minska fel, hela segmentet [ a, b] är uppdelad i partiella segment och på vart och ett av dem ersätts funktionen ungefär av ett polynom av låg grad. Det kallas styckvis polynominterpolation.

En av metoderna för interpolation över hela segmentet [ a, b] är spline interpolation.

Splineär en bitvis polynomfunktion definierad på intervallet [ a, b] och har ett visst antal kontinuerliga derivat på detta segment. Fördelarna med spline-interpolation jämfört med konventionella interpolationsmetoder är konvergensen och stabiliteten hos beräkningsprocessen.

Låt oss överväga ett av de vanligaste fallen i praktiken - interpolation av en funktion kubisk spline.
Låt på segmentet [ a, b] anges en kontinuerlig funktion. Låt oss presentera en partition av segmentet:

och beteckna, .

En spline som motsvarar en given funktion och interpolationsnoder (6) är en funktion som uppfyller följande villkor:

1) på varje segment är funktionen ett kubiskt polynom;

2) funktionen, liksom dess första och andra derivator, är kontinuerliga på intervallet [ a, b] ;

Det tredje villkoret kallas interpolationsvillkor. En spline definierad av villkor 1) – 3) anropas interpolerande kubisk spline.

Låt oss överväga en metod för att konstruera en kubisk spline.

På vart och ett av segmenten, Vi kommer att leta efter en splinefunktion i form av ett tredjegradspolynom:

(7)

Var de erforderliga koefficienterna.

Låt oss skilja (7) tre gånger med avseende på X:

varifrån följer

Från interpolationsvillkor 3) får vi:

Det följer av villkoren för kontinuitet i funktionen.

2.2 Interpolation med kubisk spline

En kubisk interpolationsspline som motsvarar en given funktion f(x) och givna noder x i är en funktion S(x) som uppfyller följande villkor:

1. På varje segment, i = 1, 2, ..., N, är funktionen S(x) ett tredjegradspolynom,

2. Funktionen S(x), såväl som dess första och andra derivator, är kontinuerliga på intervallet,

3. S(xi) = f(xi), i = 0, 1, ..., N.

På vart och ett av segmenten, i = 1, 2, ..., N, kommer vi att leta efter funktionen S(x) = Si (x) i form av ett tredjegradspolynom:

Si (x) = ai + bi (x - x i - 1) + ci (x - x i - 1) 2 + d i (x - 1) 3,

x i - 1 Ј x Ј x i,

där a i, bi, c i, d i är koefficienter som ska bestämmas på alla n elementära segmenten. För att ett system av algebraiska ekvationer ska ha en lösning måste antalet ekvationer vara exakt lika med antalet okända. Därför bör vi få 4n-ekvationer.

Vi får de första 2n ekvationerna från villkoret att grafen för funktionen S(x) måste passera genom de givna punkterna, d.v.s.

Si (xi - 1) = y i - 1, Si (xi) = y i.

Dessa villkor kan skrivas som:

Si (x i - 1) = ai = y i - 1,

S i (x i) = a i + b i h i + c i h + d i h = y i,

h i = x i - x i - 1, i = 1, 2, ..., n.

Följande 2n - 2 ekvationer följer av kontinuitetstillståndet för första och andra derivatan vid interpolationsnoderna, d.v.s. villkoret för jämnhet hos kurvan vid alla punkter.

Si + 1 (xi) = Si (xi), i = 1, ..., n - 1,

Si (x) = bi + 2 ci (x - x i - 1) + 3 di (x - x i - 1),

Si + 1 (x) = bi + 1 + 2 ci + 1 (x - x i) + 3 di + 1 (x - x i).

Genom att likställa vid varje intern nod x = x i värdena för dessa derivator, beräknade i intervallen till vänster och höger om noden, får vi (med hänsyn till h i = x i - x i - 1):

b i + 1 = bi + 2 h i c i + 3h d i, i = 1, ..., n - 1,

Si (x) = 2 ci + 6 di (x - x i - 1),

Si + 1 (x) = 2 ci + 1 + 6 d i + 1 (x - x i),

om x = x i

ci + 1 = ci + 3 h i di, i = 1,2, ..., n - 1.

I detta skede har vi 4n okända och 4n - 2 ekvationer. Därför måste ytterligare två ekvationer hittas.

När ändarna är löst säkrade kan linjens krökning vid dessa punkter nollställas. Av villkoren för nollkrökning i ändarna följer att andraderivatan vid dessa punkter är lika med noll:

S 1 (x 0) = 0 och S n (x n) = 0,

ci = 0 och 2 cn + 6 d n h n = 0.

Ekvationerna utgör ett system av linjära algebraiska ekvationer för att bestämma 4n-koefficienter: a i, bi, c i, d i (i = 1, 2, . . ., n).

Detta system kan bringas till en mer bekväm form. Från villkoret kan du omedelbart hitta alla koefficienter a i.

i = 1, 2, ..., n - 1,

Om vi ​​ersätter får vi:

bi = - (ci + 1 + 2c i), i = 1,2, ..., n - 1,

b n = - (h n c n)

Vi exkluderar koefficienterna b i och d i från ekvationen. Slutligen får vi följande ekvationssystem endast för koefficienter med i:

c 1 = 0 och c n + 1 = 0:

h i - 1 c i - 1 + 2 (hi - 1 + h i) c i + h i c i + 1 = 3,

i = 2, 3, ..., n.

Från de hittade koefficienterna med i är det lätt att beräkna d i,b i.

Beräkning av integraler med Monte Carlo-metoden

Denna mjukvaruprodukt implementerar möjligheten att ställa in ytterligare begränsningar för integrationsområdet med två tvådimensionella splineytor (för en integrerad funktion av dimension 3)...

Funktionsinterpolation

Låt en tabell med funktionsvärden f(xi) = yi () ges, där de är ordnade i stigande ordning av argumentvärden: x0< x1 < … < xn. Чтобы построить кубический сплайн, требуется определить коэффициенты ai0, ai1, ai2, ai3...

Spline-interpolation

Spline-interpolation

Spline-interpolation

Låt oss bekanta oss med programmets algoritm. 1. Beräkna värdena och 2. Baserat på dessa värden, beräkna löpande koefficienter och o. 3. Baserat på erhållen data beräknar vi koefficienterna 4...

Matematisk modellering av tekniska objekt

Inbyggda MathCAD-funktioner tillåter interpolation för att rita kurvor av varierande grad av komplexitet genom experimentella punkter. Linjär interpolation...

Funktionsapproximationsmetoder

På varje segment är interpolationspolynomet lika med en konstant, nämligen funktionens vänstra eller högra värde. För vänster bitvis linjär interpolation F(x)= fi-1, om xi-1 ?x

Funktionsapproximationsmetoder

På varje intervall är funktionen linjär Fi(x)=kix+li. Koefficientvärdena hittas genom att uppfylla interpolationsvillkoren i ändarna av segmentet: Fi(xi-1)=fi-1, Fi(xi-1)=fi. Vi får ett ekvationssystem: kixi-1+ li= fi-1, kixi+ li= fi , varifrån vi hittar ki=li= fi- kixi...

Metoder för att lösa ett system av linjära ekvationer. Interpolation

Redogörelse för interpolationsproblemet. Ett system av punkter (interpolationsnoder) xi, i=0,1,...,N specificeras på intervallet; a? x jag? b, och värdena för den okända funktionen vid dessa noder fn i=0,1,2,...,N. Följande uppgifter kan ställas in: 1) Konstruera funktionen F (x)...

Konstruktion av en matematisk modell som beskriver processen för att lösa en differentialekvation

3.1 Konstruktion av Lagrange-interpolationspolynomet och kondensering av värden Den uppenbara metoden för att lösa detta problem är att beräkna värdena för ѓ(x) med hjälp av de analytiska värdena för funktionen ѓ. För detta ändamål - enligt den första informationen...

Om de är potenser (1, x, x2, ..., xn), så talar vi om algebraisk interpolation, och funktionen kallas ett interpolationspolynom och betecknas som: (4) Om () (5), så kan vi konstruera ett interpolationspolynom av grad n och dessutom bara ett...

Praktisk tillämpning av interpolering av smidiga funktioner

Låt oss överväga ett exempel på interpolation för uppsättningselement. För enkelhetens skull och korthetens skull, låt oss ta =[-1;1], . Låt punkterna skilja sig från varandra. Låt oss ställa följande problem: (12) konstruera ett polynom som uppfyller dessa villkor...

Tillämpning av numeriska metoder för att lösa matematiska problem

Numeriska metoder

Så, som nämnts ovan, är uppgiften med interpolation att hitta ett polynom vars graf passerar genom de givna punkterna. Låt funktionen y=f(x) specificeras med hjälp av en tabell (tabell 1)...

Numeriska metoder för att lösa matematiska problem

RYSKA FEDERATIONENS UTBILDNINGSMINISTERIET OCH VETENSKAP

Federal State autonoma utbildningsinstitution

högre yrkesutbildning

"Ural Federal University uppkallad efter Rysslands första president B.N. Jeltsin"

Institutet för radioelektronik och informationsteknik - RTF

Avdelning Automation och informationsteknik

Spline-interpolation

METODOLOGISKA INSTRUKTIONER FÖR laboratoriearbete INOM DISCIPLINEN "Numeriska metoder"

Sammanställt av I.A.Selivanova, senior lärare.

INTERPOLATION MED SPLINES: Riktlinjer för praktiska lektioner inom disciplinen "Numeriska metoder"

Instruktionerna är avsedda för studenter inom alla studieformer i riktningen 230100 - "Informatik och datavetenskap".

Ó Federal State Autonomous Educational Institute of Higher Professional Education "Ural Federal University uppkallad efter Rysslands första president B.N. Jeltsin", 2011

1. INTERPOLATION MED SPLINES. 4

1.1. Kubiska splines. 4

1.2. En speciell form av att skriva en spline. 5

1.3. Kvadratiska splines. 13

1.4. Övningsuppgift. 18

1.5. Alternativ för uppgifter. 19

Referenser 21

1. Spline-interpolation.

I de fall där intervallet [ a,b] där du vill ersätta funktionen f(x) är stor, kan spline-interpolation tillämpas.

1.1. Kubiska splines.

Interpolationssplines 3:a ordning - det här är funktioner som består av bitar av polynom 3 th beställa. Vid gränssnittsnoderna säkerställs kontinuiteten för funktionen och dess första och andra derivator. Approximationsfunktionen är sammansatt av individuella polynom, vanligtvis av lika liten grad, var och en definierad på sin egen del av segmentet.

Låt på segmentet [ a, b] verklig axel x ett rutnät anges, i vars noder värdena bestäms
funktioner f(x). Det krävs att konstruera på segmentet [ a, b] kontinuerlig splinefunktion S(x), som uppfyller följande villkor:



För att konstruera önskad spline måste du hitta koefficienterna
polynom
,i=1,… n, dvs. 4 n okända koefficienter som uppfyller 4 n-2 ekvationer (1), (2), (3). För att ekvationssystemet ska ha en lösning läggs ytterligare två (gräns)villkor till. Tre typer av randvillkor används:

Villkor (1), (2), (3) och ett av villkoren (4), (5), (6) utgör en SLAE för beställningen 4 n. Systemet kan lösas med den Gaussiska metoden. Men genom att välja en speciell form för att skriva det kubiska polynomet kan du avsevärt minska ordningen på ekvationssystemet som löses.

1.2. En speciell form av att skriva en spline.

Tänk på segmentet
. Låt oss introducera följande variabelnotationer:

Här
- segmentets längd
,

,
- hjälpvariabler,

x– mellanpunkt på segmentet
.

När x går igenom alla värden i intervallet
, variabel varierar från 0 till 1, och
varierar från 1 till 0.

Låt det kubiska polynomet
på segmentet
har formen:

Variabler Och
bestäms i förhållande till ett specifikt interpolationssegment.

Låt oss hitta värdet på spline
i slutet av segmentet
. Punkt
är utgångspunkten för segmentet
, Det är därför =0,
=1 och i enlighet med (3.8):
.

I slutet av segmentet
=1,
=0 och
.

För intervall
punkt
är ändlig, alltså =1,
=0 och från formel (9) får vi:
. Därmed är villkoret för kontinuitet för funktionen uppfyllt S(x) vid kopplingspunkterna för kubiska polynom, oavsett val av tal  i.

För att bestämma koefficienterna  i, i=0,… n Låt oss skilja (8) två gånger som en komplex funktion av x. Sedan

Låt oss definiera den andra derivatan av spline
Och
:

För ett polynom
punkt är början på interpolationssegmentet och =0,
=1 alltså

Av (15) och (16) följer att på intervallet [ a,b]spline-funktionen, "sammanlimmad" från bitar av 3:e ordningens polynom, har en kontinuerlig 2:a ordningens derivata.

För att erhålla kontinuitet för den första derivatan av en funktion S(x), Låt oss kräva att följande villkor är uppfyllda i de interna interpolationsnoderna:

För en naturlig kubisk spline
, därför kommer ekvationssystemet att se ut så här:

och ekvationssystemet (17) kommer att se ut så här:

Exempel.

Initial data:

Byt ut funktion
en interpolerande kubisk spline, vars värden vid givna nodpunkter (se tabell) sammanfaller med funktionens värden vid samma punkter. Tänk på olika randvillkor.

    Låt oss beräkna värdet på funktionen vid nodpunkterna. För att göra detta, ersätt värdena från tabellen i den givna funktionen.

    För olika randvillkor (4), (5), (6) hittar vi koefficienterna för kubiska splines.

    1. Låt oss överväga de första gränsvillkoren.

I vårat fall n=3,
,
,
. Att hitta
vi använder ekvationssystemet (3.18):

Låt oss räkna Och , med formlerna (7) och (11):


Låt oss ersätta de erhållna värdena i ekvationssystemet:

.

Systemlösning:

Med hänsyn till de första randvillkoren är splinekoefficienterna:

      Låt oss överväga definitionen av splinekoefficienter med hänsyn till randvillkor (3.5):

Låt oss hitta derivatan av funktionen
:

Låt oss räkna
Och
:

Låt oss ersätta värdena i ekvationssystemet (21). Och :

Med formeln (20) bestämmer vi  0 och  3:

Med hänsyn till specifika värden:

och vektor av koefficienter:

    Låt oss beräkna värdena för den kubiska spline S(x) vid mittpunkterna av interpolationssegmenten.

Mittpunkter för segment:

För att beräkna värdet på den kubiska spline i mitten av interpolationssegmenten använder vi formlerna (7) och (9).

3.1.

Vi hittar Och
:

I formel (3.9) ersätter vi koefficienterna

3.2.

Vi hittar Och
:


, för randvillkor (4), (5), (6):

3.3.

Vi hittar Och
:

I formel (9) ersätter vi koefficienterna
, för randvillkor (4), (5), (6):

Låt oss göra en tabell:

(1 cr.cond.)

(2 poäng)

(3 poäng)

Låt en tabell med funktionsvärden ges y i i noder X 0 < х 1 < ... < х п .Beteckna h i = x i – x i -1 , i= 1, 2, ... , P.

Spline– en jämn kurva som går genom givna punkter ( x i, y i), jag = 0, 1, ... , P. Spline-interpolation är det på varje segment [ x i -1 , x i]ett polynom av en viss grad används. Tredjegradspolynomet används oftast, mer sällan det andra eller fjärde. I detta fall, för att bestämma koefficienterna för polynom, används villkoren för kontinuitet för derivator vid interpolationsnoder.

Interpolation med kubiska splines representerar lokal interpolation, när på varje segment [ x i -1 , x i], jag = 1, 2, ... , P en kubisk kurva används som uppfyller vissa jämnhetsvillkor, nämligen kontinuiteten för själva funktionen och dess första och andra derivator vid nodpunkter. Användningen av den kubiska funktionen beror på följande överväganden. Om vi ​​antar att interpolationskurvan motsvarar en elastisk linjal fixerad vid punkter ( x i, y i), sedan från kursen om materialstyrka är det känt att denna kurva definieras som en lösning till differentialekvationen f(IV) ( x) = 0 på intervallet [ x i -1 , x i](för enkelhetens skull tar vi inte hänsyn till frågor relaterade till fysiska dimensioner). Den allmänna lösningen till en sådan ekvation är ett polynom av grad 3 med godtyckliga koefficienter, som bekvämt skrivs i formen
S i(x) = och jag + b i(X - x i -1) +med i(x - x i -1) 2 + d i(x - x i -1) 3 ,
x i-1 £ X £ x i, jag = 1, 2, ... , P.(4.32)

Funktionskoefficienter S i(x)bestäms utifrån villkoren för kontinuitet för funktionen och dess första och andra derivator vid interna noder x i,i= 1, 2,..., P - 1.

Från formler (4.32) kl X = x i-1 får vi

S i(x jag- 1) = y i -1 = ai, jag = 1, 2,..., P,(4.33)

och när X = x i

S i(x i) = och jag + b i h i +med i h i 2 + d i h i 3 ,(4.34)

i= 1, 2,..., n.

Kontinuitetsvillkoren för interpolationsfunktionen skrivs som S i(x i) = S i -1 (x i), i= 1, 2, ... , n- 1 och av villkoren (4.33) och (4.34) följer att de är tillfredsställande.

Låt oss hitta derivatorna av funktionen S i(x):

S" i(x) =b i + 2med i(X - x i -1) + 3di(Xx i -1) 2 ,

S" i(x) = 2c i+ 6d i(x - xi -1).

x = x i-1, det har vi S" i(x i -1) = b i, S" (x i -1) = 2med i, och när X = x i vi får

S" i(x i) = b i+ 2med i h i+ 3dih jag 2 , S" (x i) = 2med i+ 6d i h i.

Villkoren för kontinuitet för derivat leder till ekvationerna

S" i(x i) =S" i +1 (x i) Þ b i+ 2med i h i+ 3dih jag 2 = b i +1 ,

i= l, 2,... , P - 1. (4.35)

S" i (x i) = S" i +1 (x i) Þ 2 med i+ 6d i h i= 2c i +1 ,

i= l, 2,..., n- 1. (4.36)

Totalt har vi 4 n– 2 ekvationer för att bestämma 4 n okänd. För att erhålla ytterligare två ekvationer används ytterligare randvillkor, till exempel kravet att interpolationskurvan har nollkurvatur vid ändpunkterna, dvs att andraderivatan är lika med noll i segmentets ändar [ A, b]A = X 0 , b= x n:

S" 1 (x 0) = 2c 1 = 0 Þ Med 1 = 0,

S"n(x n) = 2med n + 6d n h n = 0 Þ med n + 3d n h n = 0. (4.37)

Ekvationssystemet (4.33)–(4.37) kan förenklas och återkommande formler för beräkning av splinekoefficienter kan erhållas.

Från villkor (4.33) har vi explicita formler för att beräkna koefficienterna ett i:

ett i = y i -1 , i= 1,..., n. (4.38)

Låt oss uttrycka d i genom c i använder (4.36), (4.37):

; i = 1, 2,...,n; .

Låt oss sätta med n+1 = 0, sedan för d i vi får en formel:

, i = 1, 2,...,n. (4.39)

Låt oss ersätta uttryck med och jag Och d i till jämlikhet (4,34):

, i= 1, 2,..., n.

och uttrycka b i, genom med i:

, i= 1, 2,..., n. (4.40)

Låt oss exkludera koefficienterna från ekvationerna (4.35) b i Och d i med (4.39) och (4.40):

i= 1, 2,..., n -1.

Härifrån får vi ett ekvationssystem för bestämning med i:

Ekvationssystemet (4.41) kan skrivas om som

Här introduceras beteckningen

, i =1, 2,..., n- 1.

Låt oss lösa ekvationssystemet (4.42) med svepmetoden. Från den första ekvationen uttrycker vi Med 2 genom Med 3:

c 2 = en 2 c 3 + b 2 , , . (4,43)

Låt oss ersätta (4.43) i den andra ekvationen (4.42):

h 2 (en 2 c 3 + b 2) + 2( h 2 + h 3)c 3 +h 3 c 4 = g 2 ,

och uttrycka Med 3 genom Med 4:

Med 3 = en 3 Med 4 + b 3 , (4,44)

Antar det med i-1 = a i -1 c i+b i-1 av i ekvationen (4.42) får vi

c i=a jag med i+1+b i

, i = 3,..., n– 1, a n= 0, (4,45) cn +1 = 0,

c i=a jag med i+1+b i, i= n, n -1,..., 2, (4.48)

c 1 = 0.

3. Beräkning av koefficienter och jag, b i,d i:

ett i = y i -1 ,

i= 1, 2,..., n.

4. Beräkna värdet på en funktion med hjälp av en spline. För att göra detta, hitta följande värde i, att variabelns givna värde X tillhör segmentet [ x i -1 , x i] och beräkna

S i(x) = och jag + b i(X - x i -1) +med i(x - x i -1) 2 + d i(x - x i -1) 3 . (4.50)

Huvuduppgiften interpolation- hitta värdet på en tabellspecificerad funktion vid de punkter inom ett givet intervall där det inte är specificerat. De initiala tabelldata kan erhållas både experimentellt (i detta fall finns det i princip inga mellanliggande data utan extra arbete) eller genom beräkning med komplexa beroenden (i detta fall är det lättare att hitta värdet av en komplex funktion med interpolation än genom direkt beräkning med en komplex formel)

Interpolation koncept

Lösningen på interpolations- och extrapolationsproblem säkerställs genom att konstruera en interpolationsfunktion L(x), ungefär ersätter originalet f(x), specificerade i en tabell och passerar genom alla givna punkter - interpolationsnoder. Med den här funktionen kan du beräkna önskat värde för den ursprungliga funktionen när som helst.

Tre huvudproblem beaktas i samband med interpolering.

1) val av interpolationsfunktion L(x);

2) uppskattning av interpolationsfel R(x);

3) placering av interpolationsnoder för att säkerställa högsta möjliga noggrannhet av funktionsåterställning ( x 1 , x 2 ,…,x n).

Särskilda interpolationsmetoder låter dig bestämma önskat värde för en funktion utan att direkt konstruera en interpolationsfunktion. I princip ger alla interpolationsmetoder baserade på användningen av polynom som interpolationsfunktion samma resultat, men med olika kostnader. Detta förklaras av det faktum att polynomet n e graden innehållande n+1 parameter och passerar genom alla specificerade n+1 poäng, - den enda. Dessutom kan polynomet representeras som en trunkerad Taylor-serie till vilken den ursprungliga differentierbara funktionen expanderas. Detta är kanske en av de främsta fördelarna med polynomet som en interpolationsfunktion. Därför löses oftast det första interpolationsproblemet genom att välja ett polynom som interpolationsfunktion, även om andra funktioner kan användas (till exempel trigonometriska polynom, andra funktioner valda från de informella villkoren för det meningsfulla problemet).

Ris. 3.2 Interpolationsillustration

Att välja typ av interpolationsfunktion är generellt sett en viktig uppgift, speciellt om man kommer ihåg att valfritt antal funktioner kan dras genom givna punkter (fig. 3.2). Det bör noteras att det finns ett uppenbart sätt att konstruera en interpolationsfunktion: från tillståndet för funktionen som passerar genom alla punkter kompileras ett ekvationssystem, från vars lösning dess parametrar finns. Denna väg är dock långt ifrån den mest effektiva, särskilt med ett stort antal poäng.

Det är vanligt att skilja mellan lokal och global interpolation. I fallet när polynomet är detsamma för hela interpolationsområdet, sägs det att interpolationen global. I de fall där polynomen är olika mellan olika noder talar vi om bitvis eller lokal interpolation.

Linjär interpolation

Den enklaste och mest använda typen av lokal interpolation är linjär interpolation. Den består i att givna poäng M(x jag, y jag) (jag = 0, 1, ..., n) är förbundna med raka segment, och funktionen f(x) närmar sig en streckad linje med hörn vid dessa punkter (Fig. 3.3) .

Ris. 3.3 Linjär interpolation

Ekvationerna för varje segment av en streckad linje är i allmänhet olika. Eftersom det finns n intervaller (xi, xi+ 1), sedan för var och en av dem som en ekvation

Ett interpolationspolynom använder ekvationen för en rät linje som går genom två punkter. Särskilt för jag — intervall, kan vi skriva ekvationen för en rät linje som går genom punkterna ( x jag, y jag) Och ( x i + 1 , y i + 1), som:

(3.2)

När du använder linjär interpolation måste du därför först bestämma intervallet i vilket argumentvärdet faller x, och ersätt det sedan med formeln (3.2) och hitta det ungefärliga värdet av funktionerna vid denna punkt.

Figur 3.4 visar ett exempel på hur man använder linjär interpolation i MathCAD-programmet. För linjär interpolation, använd funktionen linterp (x,y,z). Här x, y- initiala data, z– den punkt där funktionens värde finns.

Ris. 3.4. Linjär interpolation

Kvadratisk interpolation

När kvadratisk interpolation som en interpolationsfunktion på segmentet ( x jag — 1 ,xi+ 1) ett kvadratiskt trinomium accepteras. Ekvationen för det kvadratiska trinomialet har formen

y = a i x 2 + b i x + c i , x i — 1 x x i + 1 , (3.3)

Interpolation för vilken punkt som helst x [x 0 ,xn] utförs på de tre närmaste punkterna.

Interpolering av kubisk spline

Under de senaste åren har en ny gren av modern beräkningsmatematik utvecklats intensivt - teorin splines. Splines gör det möjligt att effektivt lösa problem med att bearbeta experimentella beroenden mellan parametrar som har en ganska komplex struktur.

De lokala interpolationsmetoderna som diskuterats ovan är i huvudsak den enklaste spline av den första graden (för linjär interpolation) och den andra graden (för kvadratisk interpolation).

På grund av sin enkelhet har kubiska splines hittat den bredaste praktiska tillämpningen. Grundidéerna i teorin om kubiska splines bildades som ett resultat av försök att matematiskt beskriva flexibla lameller av elastiskt material (mekaniska splines), som länge har använts av ritare i de fall där det fanns ett behov av att rita en ganska jämn kurva genom givna poäng. Det är känt att en remsa av elastiskt material, fixerad vid vissa punkter och i ett jämviktsläge, tar en form där dess energi är minimal. Denna grundläggande egenskap gör det möjligt att effektivt använda splines för att lösa praktiska problem med att bearbeta experimentell information.

I allmänhet för funktionen y = f(x) krävs det för att hitta en uppskattning y=j(x) På det sättet att f(x i)= j(x i) vid punkter x = x i , a vid andra punkter i segmentet [ a, b] värden

funktioner f(x) Och j(x) var nära varandra. Med ett litet antal experimentella punkter (till exempel 6-8) kan en av metoderna för att konstruera interpolationspolynom användas för att lösa interpolationsproblemet. Men med ett stort antal noder blir interpolationspolynom praktiskt taget oanvändbara. Detta beror på det faktum att graden av interpolationspolynomet bara är en mindre än antalet experimentella värden för funktionerna. Det är givetvis möjligt att dela upp segmentet på vilket funktionen är definierad i sektioner som innehåller ett litet antal experimentella punkter, och för var och en av dem konstruera interpolationspolynom. Men i det här fallet kommer den approximerande funktionen att ha punkter där derivatan inte är kontinuerlig, det vill säga grafen för funktionen kommer att innehålla "brytpunkter".

Kubiska splines har inte denna nackdel. Studier av strålteori har visat att en flexibel tunn stråle mellan två noder är ganska väl beskriven av ett kubiskt polynom, och eftersom den inte kollapsar måste den approximerande funktionen vara åtminstone kontinuerligt differentierbar. Det betyder att funktionerna j(x), j'(x), j"(x) måste vara kontinuerlig på segmentet [ a, b].

Kubisk interpolationsspline , motsvarande denna funktion f(x) och dessa noder xi, kallas funktion y(x), som uppfyller följande villkor:

1. på varje segment [ x jag — 1 xi], jag = 1, 2, ..., n fungera y(x) är ett tredje gradens polynom,

Fungera y(x), och även dess första och andra derivator är kontinuerliga på intervallet [ a,b],

Kubisk splineär sammanlimmad från polynom av tredje graden, som för i- avsnitt skrivs enligt följande:

Under hela intervallet blir det därefter P kubiska polynom som skiljer sig i koefficienter Ai, b i, c i, d i. Oftast placeras noder under spline-interpolation jämnt, d.v.s. Xi +1 -Xi = konst = h (även om detta inte är nödvändigt).

Det är nödvändigt att hitta fyra koefficienter förutsatt att varje polynom passerar genom två punkter (x i, y i) och (x i +1 , y i +1 ) , vilket resulterar i följande uppenbara ekvationer:

Det första villkoret motsvarar polynomets passage genom startpunkten, det andra - genom slutpunkten. Det är omöjligt att hitta alla koefficienter från dessa ekvationer, eftersom det finns färre villkor än de nödvändiga parametrarna. Därför kompletteras dessa villkor med villkoren för jämnhet hos funktionen (dvs. kontinuitet för den första derivatan) och jämnhet för den första derivatan (d.v.s. kontinuitet för den andra derivatan) vid interpolationsnoderna. Matematiskt skrivs dessa villkor som likheter för första- respektive andraderivatan i slutet i th och i början ( i+1 )-te tomter.

Eftersom , Den där

(y(x i +1 ) i slutet i-tomten är lika med y'(Xi +1 ) i början ( i+1 )-th),

(y"(Xi +1 ) i slutet i-tomten är lika med y" (xi +1 ) i början ( i+1)th).

Resultatet är ett system av linjära ekvationer (för alla sektioner) som innehåller 4n - 2 ekvationer med 4n okända (okända a 1, a 2,..., a n, b 1,..., d n - splinekoefficienter). För att lösa systemet, lägg till två randvillkor av en av följande typer (oftast används 1):

Den gemensamma lösningen av 4n-ekvationer låter dig hitta alla 4n-koefficienter.

För att återställa derivator kan du särskilja motsvarande kubiska polynom i varje sektion. Om det är nödvändigt att bestämma derivator vid noder, finns det speciella tekniker som reducerar bestämningen av derivator till att lösa ett enklare system av ekvationer för de önskade derivatorna av andra eller första ordningen. Viktiga fördelar med kubisk spline-interpolation inkluderar att erhålla en funktion som har minsta möjliga krökning. Nackdelarna med spline-interpolation inkluderar behovet av att erhålla ett relativt stort antal parametrar.

Låt oss lösa interpolationsproblemet med hjälp av programmet MathCAD. För att göra detta kommer vi att använda den inbyggda funktionen interp(VS,x,y,z) . Variabler x Och y ange koordinaterna för nodpunkterna, z är ett funktionsargument, MOT definierar typen

randvillkor vid intervallets ändar.

Låt oss definiera interpolationsfunktioner för tre typer av kubisk spline

Här cspline (VX , VY) returnerar en vektor MOT andraderivator när man närmar sig ett kubiskt polynom vid referenspunkter;

pspline(VX, VY) returnerar en vektor MOT andraderivator när man närmar sig referenspunkter till en parabolisk kurva;

lspline(VX, VY) returnerar en vektor MOT andraderivator när man närmar sig linjens referenspunkter;

interp(MOT, VX, VY, x) returnerar värde y(x) för givna vektorer MOT, VX, VY och ställ in värde x.

Vi beräknar värdena för interpolationsfunktioner vid givna punkter och jämför resultaten med de exakta värdena

Observera att resultaten av interpolation med olika typer av kubiska splines är praktiskt taget desamma vid de inre punkterna i intervallet och sammanfaller med funktionens exakta värden. Nära intervallets kanter blir skillnaden mer märkbar, och när man extrapolerar bortom ett givet intervall ger olika typer av splines signifikant olika resultat. För större tydlighet, låt oss presentera resultaten i en graf (Fig. 3.5)

Ris. 3,5 kubisk spline interpolation

Om funktionen specificeras diskret, specificeras datamatriser för interpolering.

I global interpolation används oftast polynominterpolation. n-th grad eller Lagrange interpolation.

Det klassiska tillvägagångssättet bygger på kravet på strikt matchning av värderingar f(X) Och j(X) vid punkter x i(jag = 0, 1, 2, … n).

Vi kommer att leta efter interpolationsfunktionen j(X) i form av ett gradpolynom n.

Detta polynom har n+ 1 koefficient. Det är naturligt att anta det n+ 1 villkor

j(x 0) = y 0 , j(x 1) = y 1 , . . ., j(x n) = y n (3.4)

överlagrat på polynomet

göra det möjligt att entydigt bestämma dess koefficienter. Verkligen krävande för j(X) uppfyllande av villkor (3.4) , vi får ett system n+ 1 ekvationer med n+ 1 okänd:

(3.6)

Löser detta system för okända a 0 , a 1 , …, en får vi ett analytiskt uttryck för polynomet (3.5). System (3.6) har alltid en unik lösning , därför att dess avgörande

känd i algebra som Vandermonde determinant icke-noll . detta innebär , att interpolationspolynomet j(X) för funktion f(X), som anges i en tabell, finns och är unik.

Den resulterande kurvekvationen passerar exakt genom de givna punkterna. Utanför interpolationsnoderna kan den matematiska modellen ha ett signifikant fel

Lagrange-interpolationsformel

Låt värdena för någon funktion vara kända f(X) V n+ 1 olika godtyckliga poäng y i = f(x i) , i = 0,…, P. Att interpolera (återställa) en funktion när som helst X, tillhör segmentet [ x 0, x n], det är nödvändigt att konstruera ett n:te ordningens interpolationspolynom, som i Lagrangemetoden representeras enligt följande:

Dessutom är det lätt att märka det Qj(x i) = 0, Om i¹ j, Och Qj(x i) =1, Om i= j. Om vi ​​utökar produkten av alla parenteser i täljaren (i nämnaren är alla parenteser tal), får vi ett polynom av n:te ordningen i X, eftersom täljaren innehåller n första ordningens faktorer. Följaktligen är Lagrange-interpolationspolynomet inget annat än ett vanligt polynom av n:te ordningen, trots den specifika notationsformen.

Uppskatta interpolationsfelet vid en punkt X från [ x 0,xn] (dvs lös det andra

interpolationsproblem) kan göras med hjälp av formeln

I formeln - maximalt värde för (n+1):e derivatan av den ursprungliga funktionen f(X) på segmentet [ x 0,xn]. Därför, för att uppskatta interpolationsfelet, krävs ytterligare information om den ursprungliga funktionen (detta borde vara förståeligt, eftersom ett oändligt antal olika funktioner kan passera genom givna initiala punkter, för vilka felet kommer att vara annorlunda). Sådan information är n+1-ordningsderivatan, vilket inte är så lätt att hitta. Nedan visar vi hur man tar sig ur denna situation. Observera också att tillämpningen av felformeln endast är möjlig om funktionen är differentierbar n +1 gånger.

För att bygga Lagrange-interpolationsformel i MathCAD är det bekvämt att använda funktionen om.

om (kond, x, y)

Returnerar värdet på x om cond inte är 0 (sant). Returnerar värdet på y om cond är 0 (falskt) (Figur 3.6).



Liknande artiklar