1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
Sub au()
mu = Range("B22").Value
mi = Range("B21").Value
Dim ta As Range
Dim Z As Double, AA As Double, BB As Double, CC As Double
Dim C2 As Double, D2 As Double, delta As Double, delta2 As Double, delta3 As Double
Dim W As Double, U As Double, T As Double, R As Double, S As Double
Dim Decal As Double, Partie1 As Double, Partie2 As Double, Partie3 As Double, Partie4 As Double
Dim X1 As Double, X2 As Double, X3 As Double, X4 As Double
If mu = "A1" Then
A = 15
B = -900
C = (20 - 4 * mi)
D = 8 * mi
E = -4 * mi
Z = B / (2 * A)
AA = C / A - 3 * Z ^ 2 / 2
BB = D / A + Z ^ 3 - C * Z / A
CC = E / A - 3 * Z ^ 4 / 16 + C * Z ^ 2 / (4 * A) - D * Z / (2 * A)
D2 = -2 * AA ^ 3 / 27 - BB ^ 2 + 8 * AA * CC / 3
C2 = -(AA ^ 2 + 12 * CC) / 3
delta = (C2 / 3) ^ 3 + (D2 / 2) ^ 2
Select Case delta
Case Is > 0
W = (-D2 / 2 + delta ^ 0.5) ^ (1 / 3)
U = W - C2 / 3 / W
Case Is = 0
U = 3 * D2 / C2
Case Is < 0
U = 2 * (-C2 / 3) ^ 0.5 * Cos(ArcCos(-D2 / 2 / (-C2 / 3) ^ (3 / 2)) / 3)
End Select
T = AA / 3 + U
R = (T - AA) ^ 0.5
S = ((T / 2) ^ 2 - CC) ^ 0.5
Decal = -B / (4 * A)
delta2 = R ^ 2 - 2 * T - 4 * S
If BB > 0 Then
Partie1 = R / 2
Else
Partie1 = -R / 2
End If
Partie2 = Abs(delta2) ^ 0.5 / 2
Select Case delta2
Case Is >= 0
X1 = Partie1 + Partie2 + Decal
X2 = Partie1 - Partie2 + Decal
Case Is < 0
X1 = Partie1 + Decal & "+i" & Partie2
X2 = Partie1 + Decal & "-i" & Partie2
End Select
delta3 = R ^ 2 - 2 * T + 4 * S
If BB > 0 Then
Partie3 = -R / 2
Else
Partie3 = R / 2
End If
Partie4 = Abs(delta3) ^ 0.5 / 2
Select Case delta3
Case Is >= 0
X3 = Partie3 + Partie4 + Decal
X4 = Partie3 - Partie4 + Decal
Case Is < 0
X3 = Partie3 + Decal & "+i" & Partie4
X4 = Partie3 + Decal & "-i" & Partie4
End Select
Range("G22") = X1
Range("G23") = X2
Range("G24") = X3
Range("G25") = X4
End If
If mu = "A2" Then
A = 1 - (1 - (7 + 100 * mi) / 57) ^ (1 / 2)
Range("B23") = A
B = (16 * A - 1) / 15
Range("B24") = B
End If
If mu = "B" Then
A = 119 / 99 * (1 - (1 - 6 * 99 * mi / (17 ^ 2)) ^ (1 / 2))
Range("B23") = A
B = 17 * A / 21
Range("B24") = B
End If
End Sub |
Partager