Visual Basic - rozwinięcie sinus w szereg

Odpowiedz Nowy wątek
2014-01-12 16:05
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.

Pozostało 580 znaków

2014-01-12 16:07
0

Wzór na rozwinięcie w szereg masz tutaj http://pl.wikipedia.org/wiki/[...]onometryczne_i_cyklometryczne. Teraz dopisz do niego tylko kod.

Pozostało 580 znaków

2014-01-15 10:20
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
edytowany 1x, ostatnio: RenegadeRob, 2014-01-15 10:20

Pozostało 580 znaków

2014-01-18 08:35
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.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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