Visual Basic - rozwinięcie sinus w szereg

0

Witam
Potrzebuję wzoru na rozwinięcie funkcji sinus(x) w szereg - prawdopodobnie rekurencyjnego.

Mam gotowy program napisany do funkcji e^x, muszę go jedynie zmodyfikować. Oto kod:

 
Option Explicit
Dim Xp As Double, Xk As Double
Dim N As Long, I As Long, J As Long, Dx As Double
Dim F1 As Double, F2 As Double
Dim W As Double, E1 As Double, E2 As Double
Dim X As Double, Eps As Double
Sub Tanlicowanie()
Range(Cells(5, 1), Cells(1005, 8)).Clear
Xp = 0
[A1] = Xp
Xk = 5
[A2] = Xk
N = 100
[A3] = N
Eps = 0.001
[A4] = Eps
Dx = (Xk - Xp) / CInt(N)
For J = 0 To N Step 1

    X = Xp + CDbl(J) * Dx
    F2 = 1#
    W = 1#
    I = 0
    Do
    I = I + 1
    W = W * X / CDbl(I)
    F2 = F2 + W
    Loop Until Abs(W) < Eps
    F1 = Exp(X)
    E1 = Abs(F1 - F2)
    E2 = E1 / Abs(F1) * 100

    Cells(5 + J, 1).Value = J
    Cells(5 + J, 2).Value = X
    Cells(5 + J, 3).Value = F1
    Cells(5 + J, 4).Value = F2
    Cells(5 + J, 5).Value = E1
    Cells(5 + J, 6).Value = E2
    Cells(5 + J, 7).Value = I
    Next J

End Sub

Z góry proszę o pomoc.

0

Wzór na rozwinięcie w szereg masz tutaj http://pl.wikipedia.org/wiki/Wz%C3%B3r_Taylora#Funkcje_trygonometryczne_i_cyklometryczne. Teraz dopisz do niego tylko kod.

0

Udało mi się zmodyfikować kod tak,że liczy dla sinus, ale wynik podaje w radianach.
Czy mógłby mi ktoś pomóc i powiedzieć co powinienem zmienić aby wynik był w stopniach ? Znam wzór itd ale nie wiem co dokładnie mam zmienić :)

Oto kod :

Private Sub CommandButton1_Click()

Dim Xp, Xk, Dx, K, F1, F2, W, E1, E2, X, I, J, Eps As Double
Dim N As Integer

Range(Cells(5, 1), Cells(1005, 8)).Clear

Xp = [B1]
Xk = [B2]
N = [B3]
Eps = [B4]
Dx = (Xk - Xp) / N
For J = 0 To N Step 1

    X = Xp + J * Dx
    
    F2 = 1#
    W = 1#
    I = 0
    Do
    I = I + 1
    W = W * (X * X) / (2 * I * (2 * I + 1))
    F2 = F2 + W
    Loop Until Abs(W) < Eps
    F1 = Sin(X)
    E1 = Abs(F1 - F2)
    E2 = E1 / Abs(F1) * 100

    Cells(5 + J, 1).Value = J
    Cells(5 + J, 2).Value = X
    Cells(5 + J, 3).Value = F1
    Cells(5 + J, 4).Value = F2
    Cells(5 + J, 5).Value = E1
    Cells(5 + J, 6).Value = E2
    Cells(5 + J, 7).Value = I
    Next J



End Sub

 
0

Wynik nie jest ani w stopniach, ani w radianach, ale w liczbach.
Tobie chodzi pewnie o to, że argument jest w radianach a chciałbyś, że by był w stopniach. Pomnóż X przez PI.

1 użytkowników online, w tym zalogowanych: 0, gości: 1