-
Notifications
You must be signed in to change notification settings - Fork 0
/
ConjuntoProhibidoEDR.wxm
123 lines (104 loc) · 3.05 KB
/
ConjuntoProhibidoEDR.wxm
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/
/* [ Created with wxMaxima version 22.04.0 ] */
/* [wxMaxima: input start ] */
/* Título: Conjunto prohibido de una EDR de orden 2 con
invariante */
/* Descripción: cálculo numérico y gráfico de la expresión
explícita de un conjunto prohibido determinado mediante el
uso de un invariante algebraico */
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
/* Carga del paquete "draw" */
load("draw")$
/* Parámetro B */
B:2$
/* Número de elementos en el segundo y tercer conjuntos */
nElem:100$
/* Número de elementos "D" */
nElemD:100$
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
/* Primer conjunto */
conjUno:[0,-1/B]$
/* Segundo conjunto */
conjDos:makelist([-(k+1)/(B*k),-1/B],k,1,nElem)$
/* Tercer conjunto */
conjTres:makelist([-1/B,-(k+1)/(B*k)],k,1,nElem)$
/* Cuarto conjunto; para su construcción necesitamos tres
funciones auxiliares que a su vez dependen de un
parámetro "D" */
conjAuxUno(D,k):=-2/B*(
((1+sqrt(1-4/D))^(k-1)-(1-sqrt(1-4/D))^(k-1))/
((1+sqrt(1-4/D))^(k)-(1-sqrt(1-4/D))^(k))
)+(D-1)/B$
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
conjAuxDos(D,k):=-D/B*(
1-sqrt(4/D-1)/tan(k*acos(sqrt(D)/2))
)+(D-1)/B$
conjAuxTres(k):=-2/B*(k-1)/k+3/B$
conjCuatro:[]$
/* Valores de D en (-infty,4) */
for k:1 thru nElem do (
for j:0 thru nElemD do (
D:-0.1-j,
a:conjAuxUno(D,k),
conjCuatro:append([[a,(D*B*a-B*a-1)/(B^2*a+B)]],conjCuatro)
)
)$
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
/* Valores de D en (4,infty) */
for k:1 thru nElem do (
for j:0 thru nElemD do (
D:4.1+j,
a:conjAuxUno(D,k),
conjCuatro:append([[a,(D*B*a-B*a-1)/(B^2*a+B)]],conjCuatro)
)
)$
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
/* Valores de D en (0,4) */
for k:1 thru nElem do (
for j:0 thru nElemD-1 do (
D:0.1+j*3.9/nElemD,
a:conjAuxDos(D,k),
conjCuatro:append([[a,(D*B*a-B*a-1)/(B^2*a+B)]],conjCuatro)
)
)$
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
/* Caso D=0,4 */
for k:1 thru nElem do (
a:conjAuxTres(k),
conjCuatro:append([[a,(3*B*a-1)/(B^2*a+B)]],conjCuatro)
)$
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
/* Área de dibujo */
xRango:5$
yRango:5$
/* Representación gráfica */
draw2d(
title="B=2",
xrange=[-xRango,xRango],
yrange=[-yRango,yRango],
point_type=0, /* bullet=7, dot=0 */
color=green,
points(conjCuatro),
color=red,
point_size=1,
point_type=7,
points(conjUno),
color=blue,
points(conjDos),
color=yellow,
points(conjTres)
)$
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
/* Salida a fichero */
draw_file(terminal=jpg)$
/* [wxMaxima: input end ] */
/* Old versions of Maxima abort on loading files that end in a comment. */
"Created with wxMaxima 22.04.0"$