Lập hàm tự tạo giúp nội suy với 3 điều kiện??? (1 người xem)

  • Thread starter Thread starter lsxinh
  • Ngày gửi Ngày gửi
Liên hệ QC

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

lsxinh

Thành viên chính thức
Tham gia
29/11/08
Bài viết
93
Được thích
62
Nhờ anh chị em trong diễn đàn giúp đỡ giải quyết bài toán nôi suy sau:
Cho trước các giá trị: Bc, m, H0: giả sử: Bc = 175, m = 10, H0 = 10.5;
Hãy lập hàm tự tạo kiểu Function(Bc,m,H0) để xác định Vth khi biết 3 giá trị trên.

Cảm ơn rất rất nhiều!!!
lsxinh@gmail.com



Vui lòng mở file đính kèm để xem chi tiết.
 

File đính kèm

Nhờ anh chị em trong diễn đàn giúp đỡ giải quyết bài toán nôi suy sau:
Cho trước các giá trị: Bc, m, H0: giả sử: Bc = 175, m = 10, H0 = 10.5;
Hãy lập hàm tự tạo kiểu Function(Bc,m,H0) để xác định Vth khi biết 3 giá trị trên.

Cảm ơn rất rất nhiều!!!
lsxinh@gmail.com



Vui lòng mở file đính kèm để xem chi tiết.
Nếu bạn nội suy "bằng tay" thì kết quả khi Bc = 175, m = 10, H0 = 10.5 là bao nhiêu và nó được tính như thế nào?
 
Nếu bạn nội suy "bằng tay" thì kết quả khi Bc = 175, m = 10, H0 = 10.5 là bao nhiêu và nó được tính như thế nào?
-------------------------------------------------------------------------------------------------------------
Gửi bạn huuthang_bd:
Sẽ bằng 6,5. Cách tính như sau:
Với Bc = 175 sẽ là giá trị gần với Bc = 150 và 200 nhất.
Với m = 10 thì sẽ là giá trị gần với m = 8 và 12 nhất.
Với H0 = 10,5 thì sẽ là giá trị gần với H0 = 10 và 11 nhất.

Để tính bằng tay thì sẽ phải nội suy 1 chiều 03 lần:
Lần 1: Nội suy cho H0 = 10,5 theo H0=10 và 11 được:
Vth ứng với: Bc = 150 và 200, m = 8 và 12 và H0 = 10,5.
Lần 2: Nội suy cho Bc = 175 theo 150 và 200 được:
Vth ứng với: Bc=175, m=8,m=12,H0=105.
Lần 3: Nội suy cho m=10 theo theo 8 và 12 được:
Vth ứng với: Bc = 175,H0=10,5 và m=10.


huuthang_bd xem thêm giải thích trong file đính kèm giúp mình với nhé, cảm ơn nhiều!!!
Hy vọng những thuật ngữ chuyên môn lạ lẫm này không làm bạn khó hiểu.
 

File đính kèm

Tôi dùng cách là dùng kết hợp 02 hàm Nội suy 1 chiều và nội suy 2 chiều tham khảo trên diễn đàn.
Bước 1: Dùng hàm 1 chiều nội suy theo giá trị H0=10,5 trước, lúc này kết quả sẽ là một bảng 02 chiều là Bc và m
Bước 2: dùng hàm nội suy 02 chiều là OK.

Nhưng như thế thì vẫn chưa thuận tiện lắm, và mỗi lần tính toán lại phải nhập các giá trị Bc,m,H0, chưa phải dạng Function (Bc,m,H0).


Tôi có một thắc mắc không hiểu tại sao khi ta dùng hàm sum(B1,B2,B3,C1,C2,C3,D1,D2,D3) thì Excel hiểu như là sum(B1:D3)
Nhưng khi tôi dùng hàm NS2(DataRange,GiaTriX,GiatriY) khai báo NS2(B1:D3,E4,E5) thì được nhưng khai báo NS2((B1,B2,B3,C1,C2,C3,D1,D2,D3),E4,E5) thì lại báo lỗi #Value.
Có ai biết giải thích giúp tôi với?
Sau đây là nội dung của hàm NS2(tham khảo từ một tác giả la thành viên của diễn đàn):
Function NS2(Data_Range As Range, GiaTri_X, GiaTri_Y)
Dim A(), xMax, yMax, xMin, yMin
Dim Nx, Ny, i, J, k1, k2, k3, k4, k12, k34
'Get the data
Nx = Data_Range.Columns.Count
Ny = Data_Range.Rows.Count
ReDim A(Nx, Ny)
For i = 1 To Nx
For J = 1 To Ny
A(i, J) = Data_Range(J, i)
Next J
Next i
'Check data
xMax = A(2, 1)
xMin = A(2, 1)
For i = 2 To Nx
If xMax < A(i, 1) Then xMax = A(i, 1)
If xMin > A(i, 1) Then xMin = A(i, 1)
Next i
yMax = A(1, 2)
yMin = A(1, 2)
For J = 2 To Ny
If yMax < A(1, J) Then yMax = A(1, J)
If yMin > A(1, J) Then yMin = A(1, J)
Next J
If GiaTri_X < xMin Or GiaTri_X > xMax Or GiaTri_Y < yMin Or GiaTri_Y > yMax Then
NS2 = "Out of range"
Exit Function
End If
'Do linear interpolation
For i = 2 To Nx - 1
If (A(i, 1) <= GiaTri_X And GiaTri_X <= A(i + 1, 1)) Or (A(i, 1) >= GiaTri_X And GiaTri_X >= A(i + 1, 1)) Then
For J = 2 To Ny - 1
If (A(1, J) <= GiaTri_Y And GiaTri_Y <= A(1, J + 1)) Or (A(1, J) >= GiaTri_Y And GiaTri_Y >= A(1, J + 1)) Then
k1 = A(i, J)
k2 = A(i + 1, J)
k3 = A(i, J + 1)
k4 = A(i + 1, J + 1)
If (A(i + 1, 1) - A(i, 1)) = 0 Then
k12 = k1
k34 = k3
Else
k12 = k1 + (k2 - k1) * (GiaTri_X - A(i, 1)) / (A(i + 1, 1) - A(i, 1))
k34 = k3 + (k4 - k3) * (GiaTri_X - A(i, 1)) / (A(i + 1, 1) - A(i, 1))
End If
If (A(1, J + 1) - A(1, J)) = 0 Then
NS2 = k12
Else
NS2 = k12 + (k34 - k12) * (GiaTri_Y - A(1, J)) / (A(1, J + 1) - A(1, J))
End If
Exit Function
End If
Next J
End If
Next i
End Function
 
Web KT

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

Back
Top Bottom