Find skæringspunktet mellem to kurver er én måde at finde løsningen på et system af ligninger . Excel kan plotte et system af ligninger på én graf. Skæringspunktet mellem de to kurver er løsningen på ligningssystemet . Mens der ikke er en indbygget funktion til at beregne skæringspunktet mellem to kurver i Excel , kan du bruge Visual Basic for Applications ( VBA ) for at finde løsningen. Instruktioner
1
Klik på " Udvikler "-fanen og derefter klikke på "Visual Basic " for at åbne Visual Basic Editor.
2
Klik på " Indsæt " og derefter klik på " modul " for at åbne en tom modul vindue
3
Kopier og indsæt følgende kode i modulet vinduet : . 'Find det punkt, hvor to segmenter intersect.Public Sub FindLineIntersection ( _ByVal x11 som single , ByVal Y11 Som Single, _ByVal x12 Som Single, ByVal y12 Som Single, _ByVal x21 Som Single, ByVal Y21 Som Single, _ByVal x22 Som Single, ByVal Y22 Som Single, _ByRef inter_x Som Single, ByRef inter_y Som Single, _ByRef inter_x1 Som Single, ByRef inter_y1 Som Single, _ByRef inter_x2 Som Single, ByRef inter_y2 Som Single) Dim DX1 Som SingleDim DY1 Som SingleDim DX2 Som SingleDim DY2 Som SingleDim t1 Som SingleDim t2 Som SingleDim nævneren Som Single
' Få segmenter parameters.dx1 = x12 - x11dy1 = Y12 - y11dx2 = x22 - x21dy2 = Y22 - Y21
' Løs for t1 og t2.On Fejl Genoptag Nextdenominator = ( DY1 * DX2 - DX1 * DY2 ) t1 = ( ( x11 - x21 ) * DY2 + ( Y21 - Y11 ) * DX2 ) /_denominatorIf Err.Number < > 0 Then ' linjerne er parallel.inter_x = 1E +38 : inter_y = 1E +38 inter_x1 = 1E +38 : inter_y1 = 1E +38 inter_x2 = 1E +38 : inter_y2 = 1E +38 Exit SubEnd IfOn Fejl GoTo 0t2 = (( x21 - x11 ) * DY1 + ( Y11 - Y21 ) * DX1 ) /_ - nævner
'Find det punkt intersection.inter_x = x11 + DX1 * t1inter_y = Y11 + DY1 * t1
'Find de nærmeste punkter på segments.If t1 <0 Thent1 = 0ElseIf t1 > 1 Thent1 = 1End Hhvis t2 <0 Thent2 = 0ElseIf t2 > 1 Thent2 = 1End Ifinter_x1 = x11 + DX1 * t1inter_y1 = Y11 + DY1 * t1inter_x2 = x21 + dx2 * t2inter_y2 = Y21 + DY2 * t2End Sub
4
Press " F5 " for at køre rutinen.