katex -> mathjax
[exercicis-automatics-matematiques.git] / sistemes-de-equacions.conTeXt.erb
blob83835f4623228573ca261d11614e41e9f3e699c4
1 \environment entorn
3 <%
4 # Funció per a implementar el signe dels nombres: +n o -n segons si n és positiu o negatiu
5 # https://stackoverflow.com/a/63552871
6 class Numeric
7   def to_ss   # to signed string
8     self.negative? ? self.to_s : "+#{self.to_s}"
9   end
10 end
13 \starttext
15 \startsubject[title={Sistemes d'equacions lineals $2\times 2$}]
17 \startsubsubject[title={Preguntes}]
21 exercicis = Hash.new
25 <%# Exercici 1 %>
27 exercicis[1] = Array.new
29 for i in (1...3)
30   parametres = Hash.new
32   # Les solucions
33   parametres['x'] = rand(-10..10)
34   parametres['y'] = rand(-10..10)
35   
36   # Els paràmetres del sistema
37   parametres['a'] = rand(-10..10)
38   parametres['c'] = parametres['a'] + rand(1..10)  
39   
40   ## M'assegur que ni 'a' ni 'c' són 0
41   if parametres['a'] == 0
42      parametres['a'] = 2
43   end
45   if parametres['c'] == 0
46      parametres['c'] = 3
47   end
48   
49   # Calculam b i d en funció de tot l'anterior
50   parametres['b'] = parametres['y'] - parametres['a']*parametres['x']  
51   parametres['d'] = parametres['y'] - parametres['c']*parametres['x']
53   exercicis[1].push(parametres)
54 end
57 \startexercici[reference=exercici-1, title={aïllats}] Resoleu els sistemes següents:
58 \startitemize[a,columns]
59 <% exercicis[1].each do |par| %>
60 \item \startformula \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
61 \NC y \NC = <%=par['a']%> x  <%=par['b'].to_ss%> \NR
62 \NC y \NC = <%=par['c']%> x  <%=par['d'].to_ss%> \NR
63 \stopmatrix \stopformula
64 <% end %>
65 \stopitemize
66 \stopexercici
68 <%# Exercici 2 %>
70 exercicis[2] = Array.new
72 for i in (1...3)
73   parametres = Hash.new
75   # Les solucions
76   parametres['x'] = rand(-10..10)
77   parametres['y'] = rand(-10..10)
79   # Els paràmetres del sistema
80   delta = [1,-1]
81   
82   parametres['a'] = rand(2..10)
83   ## b i d són -1 o 1
84   parametres['b'] = delta[rand(0..1)]
85   parametres['d'] = rand(2..10)
86   parametres['e'] = delta[rand(0..1)]
87   
88   if parametres['a'] == parametres['d']
89     parametres['d'] = parametres['a'] + 1
90   end
91   
92   # Calculam c i f en funció de tot l'anterior
93   parametres['c'] = parametres['a']*parametres['x']+parametres['b']*parametres['y']
94   parametres['f'] = parametres['d']*parametres['x']+parametres['e']*parametres['y']
96   exercicis[2].push(parametres)
97 end
102 \startexercici[reference=exercici-2, title={tipus $\pm y$}] Resoleu els sistemes següents:
103 \startitemize[a, columns]
104 <% exercicis[2].each do |par| %>
105 \item \startformula \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
106 \NC <%=par['a']%> x <%=par['b'].to_ss%>y \NC = <%=par['c']%> \NR
107 \NC <%=par['d']%> x <%=par['e'].to_ss%>y \NC =  <%=par['f']%> \NR
108 \stopmatrix \stopformula
109 <% end %>
110 \stopitemize
111 \stopexercici
114 <%# Exercici 3 %>
116 exercicis[3] = Array.new
118 for i in (1...3)
119   parametres = Hash.new
121   # Les solucions
122   # M'assegur que les solucions són nombres sencers
123   parametres['x'] = rand(-10..10)
124   parametres['y'] = rand(-10..10)
126   # Els paràmetres del sistema
127   parametres['a'] = rand(2..10)
128   parametres['b'] = rand(2..10)
129   parametres['d'] = rand(2..10)
130   parametres['e'] = rand(2..10)
131   
132   if parametres['a'] == parametres['d']
133     parametres['d'] = parametres['a'] + 1
134   end
135   
136   # Calculam c i f en funció de tot l'anterior
137   parametres['c'] = parametres['a']*parametres['x']+parametres['b']*parametres['y']
138   parametres['f'] = parametres['d']*parametres['x']-parametres['e']*parametres['y']
140   exercicis[3].push(parametres)
146 \startexercici[reference=exercici-3, title={estàndard}] Resoleu els sistemes següents:
147 \startitemize[a, columns]
148 <% exercicis[3].each do |par| %>
149 \item \startformula \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
150 \NC <%=par['a']%> x + <%=par['b']%>y \NC = <%=par['c']%> \NR
151 \NC <%=par['d']%> x - <%=par['e']%>y \NC =  <%=par['f']%> \NR
152 \stopmatrix \stopformula
153 <% end %>
154 \stopitemize
155 \stopexercici
157 \stopsubsubject
159 <%# ----------------------- Solucions ------------------------ %>
160 \page[yes]
161 \startsubsubject[title={Solucions}]
163 \startitemize
164 \sym{\in[exercici-1]}
165 \startitemize[a, text]
166 <% exercicis[1].each do |par| %>
167 \item $x = <%=par['x']%>$, $y = <%=par['y']%>$
168 <% end %>
169 \stopitemize
171 \sym{\in[exercici-2]}
172 \startitemize[a, text]
173 <% exercicis[2].each do |par| %>
174 \item $x = <%=par['x']%>$, $y = <%=par['y']%>$
175 <% end %>
176 \stopitemize
178 \sym{\in[exercici-3]}
179 \startitemize[a, text]
180 <% exercicis[3].each do |par| %>
181 \item $x = <%=par['x']%>$, $y = <%=par['y']%>$
182 <% end %>
183 \stopitemize
186 \stopitemize
189 \vfill
190 Les solucions d'aquests exercicis s'han calculat automàticament usant programari lliure: encara que totes les expressions són correctes, potser algunes es poden simplificar més.
192 \stopsubsubject
194 <%# ----------------------- Resolució ------------------------ %>
195 \page[yes]
196 \startsubsubject[title={Resolució}]
198 \startitemize
199 \sym{\in[exercici-1]}
200 \startitemize[a, text]
201 <% exercicis[1].each do |par| %>
202 <% a = par['a']
203    b = par['b']
204    c = par['c']
205    d = par['d']
206    x = par['x']
207    y = par['y']
210 \item Igualem les dues expressions de les $y$ i obtenim l'equació següent:
211 \startformula
212 <%=a%>x <%=b.to_ss%> = <%=c%>x  <%=d.to_ss%>,
213 \stopformula
214 que resolem:
215 \startformula \startalign
216  \NC <%=a%>x <% if c > 0%> <%=(-c).to_ss%> <% else%> <%=(+c).to_ss%> <%end %>x \NC = <%=d.to_ss%> <% if b > 0%> <%=(-b).to_ss%> <% else%> <%=(+b).to_ss%> <%end %> \NR
217  \NC <%=a -c%>x \NC = <%=d - b%> \NR
218  \NC x \NC = \frac{<%=d - b%>}{<%=a -c%>} \NR
219  \NC x \NC = <%=x%> \NR
220 \stopalign \stopformula
222 Ara procedim a substituir la $x$ en qualsevol de les dues expressions de les $y$. Ara bé, si ho feim en ambdues, llavors podem comprovar que tenim el sistema ben resolt quan els dos resultats coincideixen:
224 $y = <%=a%>\cdot (<%=x%>) + (<%=b%>) = <%= a*x %> + (<%=b%>) = <%=a * x + b%>$
226 $y = <%=c%>\cdot (<%=x%>) + (<%=d%>) = <%= c*x %> + (<%=d%>) = <%=c * x + d%>$
228 \medskip
229 Per tant, les solucions del sistema són $x = <%=x%>$ i $y = <%=y%>$.
231 <% end %>
232 \stopitemize
234 \sym{\in[exercici-2]}
235 \startitemize[a, text]
236 <% exercicis[2].each do |par| %>
238 \item En primer lloc, hem d'aïllar una de les incògnites, per exemple la $y$:
239 \startformula \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
240 \NC <%=par['a']%> x <%=par['b'].to_ss%>y \NC = <%=par['c']%> \NR
241 \NC <%=par['d']%> x <%=par['e'].to_ss%>y \NC =  <%=par['f']%> \NR
242 \stopmatrix
243 \Rightarrow
244 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
245 \NC  <%=par['b']%>y \NC = <%=par['c']%> - <%=par['a']%> x \NR
246 \NC  <%=par['e']%>y \NC =  <%=par['f']%> - <%=par['d']%> x \NR
247 \stopmatrix
248 \Rightarrow
249 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
250 \NC  y \NC = <%=par['c']/par['b']%> <%=(-par['a']/par['b']).to_ss%> x  \NR
251 \NC  y \NC =  <%=par['f']/par['e']%>  <%=(-par['d']/par['e']).to_ss%> x \NR
252 \stopmatrix
253 \stopformula
254 Igualem les darreres expressions de les $y$, obtenint una equació:
255 \startformula
256 <%=par['c']/par['b']%> <%=(-par['a']/par['b']).to_ss%> x  = <%=par['f']/par['e']%>  <%=(-par['d']/par['e']).to_ss%> x
257 \stopformula
258 que resolem tot seguit: $<%=par['c']/par['b']%> <%=(-par['a']/par['b']).to_ss%> x  = <%=par['f']/par['e']%>  <%=(-par['d']/par['e']).to_ss%> x$ $\Rightarrow$ $<%=(-par['a']/par['b']).to_ss%> x   <%=(par['d']/par['e']).to_ss%> x= <%=par['f']/par['e']%> <%=(-par['c']/par['b']).to_ss%>$ $\Rightarrow$  $<%=(-par['a']/par['b']) + (par['d']/par['e'])%> x  = <%=par['f']/par['e'] - par['c']/par['b']%>$ $\Rightarrow$ $x = <%=par['x']%>$.
260 Ara substituïm el valor de la $x$ a les expressions de la $y$:
261 \startformula
262 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
263 \NC  y \NC = <%=par['c']/par['b']%> <%=(-par['a']/par['b']).to_ss%> \cdot (<%=par['x']%>)  \NR
264 \NC  y \NC =  <%=par['f']/par['e']%>  <%=(-par['d']/par['e']).to_ss%> \cdot (<%=par['x']%>) \NR
265 \stopmatrix
266 \Rightarrow
267 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
268 \NC  y \NC = <%=par['c']/par['b']%> <%=(-par['a']/par['b'] * par['x']).to_ss%>  \NR
269 \NC  y \NC =  <%=par['f']/par['e']%>  <%=(-par['d']/par['e'] * par['x']).to_ss%> \NR
270 \stopmatrix
271 \Rightarrow
272 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
273 \NC  y \NC = <%=par['y']%> \NR
274 \NC  y \NC =  <%=par['y']%>\NR
275 \stopmatrix
276 \stopformula
277 <% end %>
278 \stopitemize
280 \sym{\in[exercici-3]}
281 \startitemize[a, text]
282 <% exercicis[3].each do |par| %>
284 solucio_x = Rational((-par['f']*par['b']-par['c']*par['e']), (-par['a']*par['e'] - par['d']*par['b']))
287 \item En primer lloc, aïllem la $y$ a les dues equacions:
288 \startformula
289 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
290 \NC <%=par['a']%> x + <%=par['b']%>y \NC = <%=par['c']%> \NR
291 \NC <%=par['d']%> x - <%=par['e']%>y \NC =  <%=par['f']%> \NR
292 \stopmatrix
294 \Rightarrow
296 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
297 \NC  <%=par['b']%>y \NC = <%=par['c']%> - <%=par['a']%> x \NR
298 \NC - <%=par['e']%>y \NC =  <%=par['f']%> - <%=par['d']%> x \NR
299 \stopmatrix
301 \Rightarrow
303 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
304 \NC  y \NC = \frac{<%=par['c']%>}{<%=par['b']%>} - \frac{<%=par['a']%> x}{<%=par['b']%>} \NR
305 \NC y \NC =  -\frac{<%=par['f']%>}{<%=par['e']%>} + \frac{<%=par['d']%> x}{<%=par['e']%>} \NR
306 \stopmatrix
307 \stopformula
308 Per tant, 
309 $y = \frac{<%=par['c']%>}{<%=par['b']%>} - \frac{<%=par['a']%> x}{<%=par['b']%>}$ i  $y =  -\frac{<%=par['f']%>}{<%=par['e']%>} + \frac{<%=par['d']%> x}{<%=par['e']%>}$. Ara igualem les expressions i obtenim una equació:
310 \startformula
311 \frac{<%=par['c']%>}{<%=par['b']%>} - \frac{<%=par['a']%> x}{<%=par['b']%>} = -\frac{<%=par['f']%>}{<%=par['e']%>} + \frac{<%=par['d']%> x}{<%=par['e']%>}
312 \stopformula
313 Resolem aquesta equació:
314 $\frac{<%=par['c']%>}{<%=par['b']%>} - \frac{<%=par['a']%> x}{<%=par['b']%>}  = -\frac{<%=par['f']%>}{<%=par['e']%>} + \frac{<%=par['d']%> x}{<%=par['e']%>}$ $\Rightarrow$ $<%=par['c']*par['e']%> <%=-(par['a']*par['e']).to_ss%> x  = <%=(-par['f']*par['b']).to_ss%>  <%=(par['d']*par['b']).to_ss%> x$ $\Rightarrow$ $<%=(-par['a']*par['e'] - par['d']*par['b'])%> x  = <%=(-par['f']*par['b']-par['c']*par['e'])%>$ $\Rightarrow$ $x  = \frac{<%=(-par['f']*par['b']-par['c']*par['e'])%>}{<%=(-par['a']*par['e'] - par['d']*par['b'])%>}$ $\Rightarrow$ $x  = \frac{<%=solucio_x.numerator%>}{<%=solucio_x.denominator%>} = <%=par['x']%>$.
316 Posteriorment substituïm la $x$ en les expressions de les $y$:
317 \startformula
318 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
319 \NC y \NC = \frac{<%=par['c']%>}{<%=par['b']%>} - \frac{<%=par['a']%> \cdot (<%=par['x']%>)}{<%=par['b']%>} \NR
320 \NC y  \NC = -\frac{<%=par['f']%>}{<%=par['e']%>} + \frac{<%=par['d']%> \cdot (<%=par['x']%>)}{<%=par['e']%>} \NR
321 \stopmatrix
322 \Rightarrow
323 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
324 \NC y \NC = \frac{<%=par['c']%>}{<%=par['b']%>} - \frac{<%=par['a'] * par['x']%>}{<%=par['b']%>} \NR
325 \NC y  \NC = -\frac{<%=par['f']%>}{<%=par['e']%>} + \frac{<%=par['d'] * par['x']%>}{<%=par['e']%>} \NR
326 \stopmatrix
327 \Rightarrow
328 \startmatrix[left={\left\{ \, }, right={\, \right. }, align={left}]
329 \NC y \NC = \frac{<%=par['c'] - (par['a'] * par['x'])%>}{<%=par['b']%>} \NR
330 \NC y  \NC = \frac{<%=-par['f'] + (par['d'] * par['x'])%>}{<%=par['e']%>} \NR
331 \stopmatrix
332 \stopformula
333 Per tant, $y = <%=par['y']%>$.
334 <% end %>
335 \stopitemize
338 \stopitemize
340 \vfill
341 La resolució d'aquests exercicis s'ha calculat automàticament usant programari lliure: encara que totes les expressions són correctes, potser algunes es poden simplificar més.
343 \stopsubsubject
345 \stopsubject
347 \stoptext