loveisaking1998
Thành viên mới

- Tham gia
- 21/12/17
- Bài viết
- 15
- Được thích
- 0
- Giới tính
- Nam
hình như đây là họ biểu đồ tương tác của cộtGIÚP em với các bác ạ
Em có điểm giống trong biểu đồ khi điểm đó giống đó gần đường cong nào nhất thì giá trị đó em cần tìm
Ví dụ như trong hình là điểm đó gần đường cong 0.4 thì giá trị điểm đó em cần tìm là 0.4
Đúng rồi đó anh ạhình như đây là họ biểu đồ tương tác của cột
Làm sao mà tìm đc tọa độ gần 1 với M anhmình cũng ko biết excel có cung cấp chức năng đó không , nhưng thực ra thì dựa vào số liệu của bạn thì cũng tính ra được rồi , dựa vào 1 ít kiến thức toán lớp 9 hay 10 gì đó ^^ , bạn để ý các đồ thị của bạn là các đoạn thẳng liên tiếp nhau , ví dụ có 1 điểm M , thì mình sẽ tìm điểm M' nằm trên các đoạn thẳng , đoạn thẳng (M, M') là hình chiếu vuông góc với các đoạn thẳng của các đồ thị , sau đó tính độ dài các đoạn thẳng (M,M') , đoạn thẳng (M,M') ngắn nhất sẽ thuộc về đồ thị gần điểm M nhất !^^
Cái này nếu chấp nhận nội suy tuyến tính trong từng đoạn số lieu nguồn trên cột thì có thể tìm được bạn.GIÚP em với các bác ạ
Em có điểm giống trong biểu đồ khi điểm đó giống đó gần đường cong nào nhất thì giá trị đó em cần tìm
Ví dụ như trong hình là điểm đó gần đường cong 0.4 thì giá trị điểm đó em cần tìm là 0.4
Thì em cũng biết là nội suy anh ạ, nếu vậy phải tìm 1 điểm gần với tọa độ đã cho so với tọa độ đã tính nếu ra A's,ví dụ A's 1 số k có trong Công thức thì xác định điểm gần với M như thế nào ạCái này nếu chấp nhận nội suy tuyến tính trong từng đoạn số lieu nguồn trên cột thì có thể tìm được bạn.
Điểm M có tọa độ X, Y:Thì em cũng biết là nội suy anh ạ, nếu vậy phải tìm 1 điểm gần với tọa độ đã cho so với tọa độ đã tính nếu ra A's,ví dụ A's 1 số k có trong Công thức thì xác định điểm gần với M như thế nào ạ
Điểm M có tọa độ X, Y:
1./Lấy tọa độ X, so sánh vơi tưng côt chứa tọa độ x cua các đồ thị.
Mỗi cột, ấy ra 2 giá trị x : lien kề lớn hơn X và lien nhỏ hơn X ( x1>X & x2<X )
Dung x1 & x2, dựa vào cột y tương ứng nội suy ra giá trị y của đồ thi đang xét.
Lấy trị tuyệt đối abs(y-Y) của đồ thi đang xét.
Làm như vậy với 7 đồ thị
2./Lây tọa độ Y và tìm abs(x-X) của của 7 đồ thị. Tương tự trên
3./Tìm min của các trị tren, suy ra đô thị cần tìm
Khong hiểu sao máy tôi gõ bàn phím khi được khi không
Nó giống như là tam giác đồng dạng vậy. Tui sẽ code thử xem có được không nhé.Em bó tay với cái này rồi làm sao mà nội suy ra đc A's chứ anh
Dùng cột phụ.GIÚP em với các bác ạ
Em có điểm giống trong biểu đồ khi điểm đó giống đó gần đường cong nào nhất thì giá trị đó em cần tìm
Ví dụ như trong hình là điểm đó gần đường cong 0.4 thì giá trị điểm đó em cần tìm là 0.4
Em cảm ơn anh ạDùng cột phụ.
Xem file kèm.
Thân
Giải thuật trong bài không dùng "Nội suy tuyến tính" gì cả, chỉ đơn thuần là so sánh giữa các tọa độ điểm theo trục tung và trục hoành.Em cảm ơn anh ạ
Ví dụ như thế này nè anh, điểm M nằm giữa 0.3 và 0.4 thì nội suy như thế nào cho chính xác ạ
V2=IFERROR(1/(1/LOOKUP($Q$23,OFFSET($E$2:$E$13,,ROW(A1)))),"")
W2=(U2*(1-U2/2)+(1-$D$2)*($C2-0.5*$Q$23))
Vâng anh ạ cảm ơn anh đã quan tâm tới bài viết của em, hiện em đang cần cái tọa độ điểm đó chính xác là bao nhiêu chứ k phải là gần nhất 1 với tọa độ đó, ví dụ nằm giữa 0.3 và 0.4 là 0.35 đó anh ạGiải thuật trong bài không dùng "Nội suy tuyến tính" gì cả, chỉ đơn thuần là so sánh giữa các tọa độ điểm theo trục tung và trục hoành.
Thân
- Giả sử tại ô P23 và Q23 là tọa độ điểm M( 0.15 , 1.5 )
- Đầu tiên tìm tọa đô y= 1.5 sẽ nằm ở khoảng nào của từng đồ thị n1-n7 bằng:
Mã:V2=IFERROR(1/(1/LOOKUP($Q$23,OFFSET($E$2:$E$13,,ROW(A1)))),"")
- Dựa vào cận trên của từng tọa độ vừa tìm được, quy về y=1.5 để tìm tọa độ x của các đồ thị tương ứng bằng công thức tại cột W
Sau đó đem so sánh với x của điểm M là 0.15, lấy giá trị x của đồ thị nào gần 0.15 nhất sẽ báo ra kết quả.Mã:W2=(U2*(1-U2/2)+(1-$D$2)*($C2-0.5*$Q$23))
Public Sub DOTHIGANNHAT_KHOANGCACH()
Dim MangX
Dim MangY
Dim dXx
Dim dYy
Dim dKxy
Dim HsGoc
Dim HsB
Dim Diem, Xd, Yd
Dim GD1
Dim GD2
Dim dX
Dim dY
Dim dK
Dim dXh
Dim dYh
Dim Kc1
Dim Kc2
Dim KcH
Dim KcDiem_Pd
Dim ThongkeKcPd
Dim KcMin()
Dim k, DoThiGanNhat
Dim i As Integer, j As Integer
Dim x As Double, y As Double
With Sheet4
MangY = .Range("f2:l13")
MangX = .Range("m2:s13")
Diem = .Range("p23:q23") 'THAY DOI DIEM KHAO SAT TAI DAY
End With
Xd = Diem(1, 1)
Yd = Diem(1, 2)
ReDim ThongkeKcPd(1 To UBound(MangX), 1 To UBound(MangX, 2))
ReDim KcMin(1 To UBound(MangX, 2))
k = 1000
For j = 1 To UBound(MangX, 2)
KcMin(j) = 1000
For i = 2 To UBound(MangX)
dXx = Abs(MangX(i, j) - MangX(i - 1, j))
dYy = Abs(MangY(i, j) - MangY(i - 1, j))
dKxy = (dXx ^ 2 + dYy ^ 2) ^ 0.5
Kc1 = ((Xd - MangX(i - 1, j)) ^ 2 + (Yd - MangY(i - 1, j)) ^ 2) ^ 0.5
Kc2 = ((Xd - MangX(i, j)) ^ 2 + (Yd - MangY(i, j)) ^ 2) ^ 0.5
If Abs(MangX(i, j) - MangX(i - 1, j)) = 0 Then
If Yd > MangY(i - 1, j) And Yd < MangY(i, j) Then
KcDiem_Pd = Abs(Xd - MangX(i, j))
Else
KcDiem_Pd = Application.Min(Kc1, Kc2)
End If
Else
HsGoc = (MangY(i, j) - MangY(i - 1, j)) / (MangX(i, j) - MangX(i - 1, j))
HsB = MangY(i, j) - HsGoc * MangX(i, j)
x = (Yd - HsB) / HsGoc
GD1 = Array(x, Yd)
y = Xd * HsGoc + HsB
GD2 = Array(Xd, y)
If x = Xd And y = Yd Then
If x >= MangX(i - 1, j) And x <= MangX(i, j) Then
KcDiem_Pd = 0
Else
KcDiem_Pd = Application.Min(Kc1, Kc2)
End If
Else
dX = Abs(x - Xd)
dY = Abs(y - Yd)
dK = (dX ^ 2 + dY ^ 2) ^ 0.5
KcH = dX * dY / dK
dXh = (dX / dKxy * dXx) / dKxy * dXx + GD1(0)
If dXh >= MangX(i - 1, j) And dXh <= MangX(i, j) Then
KcDiem_Pd = KcH
Else
KcDiem_Pd = Application.Min(Kc1, Kc2)
End If
End If
End If
ThongkeKcPd(i, j) = KcDiem_Pd
If KcMin(j) > KcDiem_Pd Then KcMin(j) = KcDiem_Pd
Next i
If k > KcMin(j) Then
k = KcMin(j)
DoThiGanNhat = j
Else
If k = KcMin(j) Then
DoThiGanNhat = DoThiGanNhat & " " & j
End If
End If
Next j
MsgBox "Gan nhat la do thi so " & DoThiGanNhat & " - " & "Khoang cach la " & k
End Sub