解決一個作業中的實際演算法
已知:m、ω、ω0、ε、ε0是常數,hi也是固定值
隨著i的變化,ε、ε0的冪會變化,求和項Bi、Ci對應的演算法如下,如何編程實作??


跪謝大佬!!!
uj5u.com熱心網友回復:
差分?遞回
uj5u.com熱心網友回復:
無非就是回圈,Math.pow再累加就是了。uj5u.com熱心網友回復:
已自我解決
Imports System
Module Program
Sub Main()
Dim A(35), B(35), B1(35), Q(35), W(35), C(35) As Double
Dim H = {37.8, 85, -7, 11.5, 11.8, 61.9, 7.7, -62.5, -10.9, -92.9, 13.8}
Dim n As Integer = 10
Dim m As Integer = 3
Dim T_t As Integer = 35000
Dim ε As Single = 1.012
Dim ε0 As Single = 1.015
Dim ω As Single = 2.604 * 9.807
Dim ω0 As Single = 2.8 * 9.807
Dim j As Integer '走板位
Dim y, t As Integer 'H(i)前面的系數
Dim k As Integer 'H(i)的腳標
Dim Sum1, Sum2 As Double
For j = 1 To n + 1
A(j) = m * Math.Pow(ε, j) * Math.Pow(ε0, n - j) * T_t '求A(j)
B1(j) = m * ω * Math.Pow(ε0, n - j) '求B(j)前面的第一項
'======以下為求B(j)的第二項=====================================
Sum1 = 0
For k = 1 To n + 1
If k > j Then y = 0 Else y = 1
Q(k) = Math.Pow(ε, (j - k + 1)) * y * H(k - 1)
Sum1 += Q(k)
Next k
B(j) = B1(j) * Sum1
'======以下為求C(j)的數值======================================
Sum2 = 0
For k = 2 To n + 1
If k - 1 < j Then t = 0 Else t = 1
W(k) = Math.Pow(ε0, n - j - k + 2) * t * H(k - 1)
Sum2 += ω0 * W(k)
Next k
Console.WriteLine("走板到達第" & j & "基塔,牽引力為:" & Math.Round(B(j) + A(j) + Sum2, 0) & "N(=" & Math.Round((B(j) + A(j) + Sum2) / 1000 / 9.807, 1) & "t);")
Next j
End Sub
End Module
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/19478.html
標籤:VB.NET
