Come calcolare Curve Intersezioni in Excel

May 1

Come calcolare Curve Intersezioni in Excel


Trovare l'intersezione delle due curve è un modo per trovare la soluzione ad un sistema di equazioni. Excel può tracciare un sistema di equazioni in un unico grafico. L'intersezione delle due curve è la soluzione del sistema di equazioni. Anche se non vi è una funzione incorporata per calcolare l'intersezione di due curve in Excel, è possibile utilizzare Visual Basic, Applications Edition (VBA) per trovare la soluzione.

istruzione

1 Fare clic sulla scheda "Sviluppatore" e poi cliccare su "Visual Basic" per aprire l'editor di Visual Basic.

2 Fai clic su "Inserisci" e poi cliccare su "modulo" per aprire una finestra del modulo vuota.

3 Copia e incolla il seguente codice nella finestra del modulo:
'Trovare il punto in cui due segmenti si intersecano.
FindLineIntersection Public Sub (_

ByVal x11 As Single, ByVal y11 As Single, _
ByVal x12 As Single, ByVal y12 As Single, _
ByVal x21 As Single, ByVal y21 As Single, _
ByVal x22 As Single, ByVal y22 As Single, _
ByRef inter_x As Single, ByRef inter_y As Single, _
ByRef inter_x1 As Single, ByRef inter_y1 As Single, _
ByRef inter_x2 As Single, ByRef inter_y2 As Single)

DX1 Dim As Single
DY1 Dim As Single
DX2 Dim As Single
DY2 Dim As Single
t1 Dim As Single
t2 Dim As Single
Dim denominatore As Single

' Get the segments' parameters.
dx1 = x12 - x11
dy1 = y12 - y11
dx2 = x22 - x21
dy2 = y22 - y21

'Risolvere per T1 e T2.
On Error Resume Next
denominatore = (DY1 * DX2 - DX1 * DY2)
t1 = ((x11 - x21) * DY2 + (Y21 - Y11) * DX2) / _
denominatore
Se Err.Number & lt;> 0 Then
'Le linee sono parallele.
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 Sub
Finisci se
On Error GoTo 0
t2 = ((x21 - x11) * DY1 + (Y11 - Y21) * DX1) / _
-denominatore

'Trovare il punto di intersezione.
inter_x = x11 + DX1 * t1
inter_y = Y11 + DY1 * t1

'Trova i punti più vicini sui segmenti.
Se t1 & lt; 0 Then
t1 = 0
ElseIf t1> 1 Poi
t1 = 1
Finisci se
Se t2 & lt; 0 Then
t2 = 0
ElseIf t2> 1 Poi
t2 = 1
Finisci se
inter_x1 = x11 + DX1 * t1
inter_y1 = Y11 + DY1 * t1
inter_x2 = x21 + dx2 * t2
inter_y2 = Y21 + DY2 * t2

End Sub

4 Premere il tasto "F5" per eseguire la routine.

Consigli e avvertenze

  • Se la scheda sviluppo non è visualizzato, potrebbe essere necessario attivarlo. Fare clic sul pulsante "Windows" e poi su "Opzioni di Excel." Fare clic sulla scheda "Popular", quindi su "Mostra Developer scheda nella barra multifunzione" casella di controllo e quindi fare clic su "OK".