Hỏi về hàm nội suy (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Đây là topic nội suy mà bebo, đâu phải tìm số cận dưới, mà là tính giá trị trong khoảng giữa cận dưới và cận trên.
Có 2 cách tính:

1. Tuyến tính:
- Tìm cận trên và cận dưới của X
- Tìm cận trên và cận dưới của Y
- Tính bằng công thức nội suy tuyến tính.

2. Phi tuyến:
- Vẽ đồ thị XY tương ứng
- Vẽ trendline, thể hiện hàm hồi quy y = f(x)
- Tính y0 theo x0: y0 = f(x0)
 

File đính kèm

gửi anh PMXD

anh PMXD ơi cái code nội suy hai chiều của anh viết hay quá .. nhưng có chỗ khi giá trị nội suy của hàng được chia nhỏ hơn 1 ví dụ từ 0.7 đến 0.8, thì khi chọn nội suy ở giá trị 0.75 thì lại bị trả về không.. anh có thế khác phục được không ạ.. em cảm ơn anh nhiều!!!
 
Noi suy tuyen tinh 1 chieu va 2 chieu

Bảng nội suy tuyến tính 1 chiều và 2 chiều hàng loạt bằng file excel, các bạn tham khảo nhen!
 

File đính kèm

Các bạn dùng thử hàm nội suy 2 chiều
'======================================================
Function TraBang2Chieu(ByVal GiaTriCot, ByVal GiaTriHang, VungChon As Range)
Dim i As Long, j As Long
Dim TangAnPha
Dim NoiSuy1 As Double, NoiSuy2 As Double

For i = 1 To UBound(VungChon.Value, 2) ' Theo phuong ngang
If GiaTriCot = VungChon(1, i) Then
For j = 1 To UBound(VungChon.Value, 1) - 1
If (GiaTriHang - VungChon(j, 1)) * (GiaTriHang - VungChon(j + 1, 1)) <= 0 Then
TangAnPha = (VungChon(j + 1, i) - VungChon(j, i)) / (VungChon(j + 1, 1) - VungChon(j, 1))
TraBang2Chieu = VungChon(j, i) + (GiaTriHang - VungChon(j, 1)) * TangAnPha
GoTo Thoat:
End If
Next j
ElseIf (GiaTriCot - VungChon(1, i)) * (GiaTriCot - VungChon(1, i + 1)) < 0 Then
For j = 1 To UBound(VungChon.Value, 1) - 1
If (GiaTriHang - VungChon(j, 1)) * (GiaTriHang - VungChon(j + 1, 1)) < 0 Then
TangAnPha = (VungChon(j, i + 1) - VungChon(j, i)) / (VungChon(1, i + 1) - VungChon(1, i))
NoiSuy1 = VungChon(j, i) + (GiaTriCot - VungChon(1, i)) * TangAnPha

TangAnPha = (VungChon(j + 1, i + 1) - VungChon(j + 1, i)) / (VungChon(1, i + 1) - VungChon(1, i))
NoiSuy2 = VungChon(j + 1, i) + (GiaTriCot - VungChon(1, i)) * TangAnPha

TangAnPha = (NoiSuy2 - NoiSuy1) / (VungChon(j + 1, 1) - VungChon(j, 1))
TraBang2Chieu = NoiSuy1 + (GiaTriHang - VungChon(j, 1)) * TangAnPha
GoTo Thoat:
End If
Next j
End If
Next i

Thoat:
'TraBang = UBound(VungChon.Value, 2)
End Function
Chào các bác.xin lỗi vì em đã đào mộ.trước tiên em cảm ơn bác PMXD đã viết code để em có thể copy sử dụng.nhưng trong quá trình làm việc em tiếp xúc nhiều với nội suy thì thấy hàm của bác trong trường hợp cột hoặc hàng trùng với giá trị nội suy thì hàm lại trả về giá trị "0"
bác có thể fix dùm em không ạ.vì em khá là thích cái code này
 
Chào các bác.xin lỗi vì em đã đào mộ.trước tiên em cảm ơn bác PMXD đã viết code để em có thể copy sử dụng.nhưng trong quá trình làm việc em tiếp xúc nhiều với nội suy thì thấy hàm của bác trong trường hợp cột hoặc hàng trùng với giá trị nội suy thì hàm lại trả về giá trị "0"
bác có thể fix dùm em không ạ.vì em khá là thích cái code này

Ngày xưa do việc tính toán thủ công là nhiều nên người ta tính sẵn từ công thức để lập bảng nội suy. Bây giờ công nghệ máy tính và tin học, dần bảng nội suy sẽ đi vào quá khứ. --=0
Ban cứ sử dụng công thức gốc mà tính, đỡ phải nhập bảng CSDL rồi nội suy lằng nhằng %#^#$
 
Ngày xưa do việc tính toán thủ công là nhiều nên người ta tính sẵn từ công thức để lập bảng nội suy. Bây giờ công nghệ máy tính và tin học, dần bảng nội suy sẽ đi vào quá khứ. --=0
Ban cứ sử dụng công thức gốc mà tính, đỡ phải nhập bảng CSDL rồi nội suy lằng nhằng %#^#$
nhọ nỗi em làm việc với nhiều bảng số liệu cần "thử dần-nội suy-thử dần-........" bác ạ.chủ yếu trên nền excel
 
Bạn thử tải file này về nghiên cứu xem, có 3 cách đó. NGoài ra có thể dễ dàng lập khi dùng VB.
Cho mình hỏi trong công thức bác viết các giá trị "YVals,MatchIdx,targetVal" là như thế nào vậy? Cái này mình có thể học từ đâu?
Thanks.
 
Lần chỉnh sửa cuối:
Cho mình hỏi trong công thức bác viết các giá trị "YVals,MatchIdx,targetVal" là như thế nào vậy? Cái này mình có thể học từ đâu?
Thanks.

Chủ yếu là tôi tổng hợp lại từ nhiều người viết. Họ không có comment thì tự luận để hiểu thôi. Hiểu thuật toán là làm ngon.
 
Web KT

Bài viết mới nhất

Back
Top Bottom