Работа над аппроксимацией ряда для cos(x)
Я работал над проектом VB, который дает пользователю аппроксимацию ряда и правильное значение cos(x) при задании первых N членов ряда Маклорина. Как вы, вероятно, можете догадаться, функция cos(x) в VB работает нормально, и я чувствую, что сам код в порядке. Однако функция series approx постоянно дает мне символ NaN или бесконечности. Я полагаю, что может быть проблема с функцией, которую я построил, но я не совсем уверен.
Что я уже пробовал:
Код:
Private Sub btnGo_Click(sender As Object, e As EventArgs) Handles btnGo.Click Const cstPi As Single = 3.1415927 Dim intn As Integer, inti As Integer Dim sngAngleDegrees As Single, sngAngleRad As Single, sngSeriesApprox As Single, sngCorrectValue As Single Dim sngSum As Single, sngC As Single sngAngleDegrees = CSng(txtAngleDegrees.Text) sngAngleRad = 2 * cstPi * sngAngleDegrees / 360 intn = CInt(txtAngleRad.Text) sngSum = 0 sngC = 1 For inti = 1 To intn sngSum = sngSum + sngC * sngAngleRad ^ (2 * inti - 1) / LngFactorial(2 * inti - 1) sngC = -1 * sngC Next sngSeriesApprox = sngSum sngCorrectValue = Math.Cos(sngAngleRad) lblSA.Text = CStr(sngSeriesApprox) lblCV.Text = CStr(sngCorrectValue) End Sub
Функция:
Function LngFactorial(ByVal X As Integer) As Long For i = X To 1 Step -1 LngFactorial = i * LngFactorial Next i Return LngFactorial End Function