2017-11-04 Sa
$ P(-3, 0) $ 在圆C $ (x-3)^2 + y^2 = 8^2 $ 内,动圆M与圆相切且过P点,求M点轨迹。
设切点 $ A(a, b) $,圆心 $M(x, y)$,则有 $R_M = MA = MP = R_C-MC$:
$$ \left{ \begin{aligned}
(a-3)^2 + b^2 &= 8^2 \
\sqrt{(x-a)2+(y-b)2} &= \sqrt{(x+3)2+y2} \
&= 8-\sqrt{(x-3)2+y2}
\end{aligned} \right. $$
Maxima:
solve([(a-3)^2 + b^2 = 8^2, sqrt((x-a)^2+(y-b)^2) = sqrt((x+3)^2+y^2), sqrt((x+3)^2+y^2) = 8-sqrt((x-3)^2+y^2)],[x]);
solve([(a-3)^2 + b^2 = 8^2], [a])
(%i4) solve([(a-3)^2 + b^2 = 8^2], [a]);
2 2
(%o4) [a = 3 - sqrt(64 - b ), a = sqrt(64 - b ) + 3]
solve([sqrt((x+3)^2+y^2) = 8-sqrt((x-3)^2+y^2)], [x])
解不出来……
UPD 2017-11-10 Fr 10:39PM
周一在学校的时候想了一下,由 $ (a-3)^2 + b^2 = 8^2 $ 可知$a$ $b$关系,由 $ \sqrt{(x+3)2+y2} = 8-\sqrt{(x-3)2+y2} $ 可知 $x$ $y$ 关系,这样就只剩下两个未知数,然后再带入最后一个方程就行了。
I simplfied in hand but the last step involved a polynomial with too much terms. So I decided to go to Maxima at weekend.
Maxima:
Maxima 5.25.0 http://maxima.sourceforge.net
using Lisp Clozure Common Lisp Version 1.7-r14925M (WindowsX8632)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) solve([(a-3)^2 + b^2 &= 8^2], [a])
Maxima 5.25.0 http://maxima.sourceforge.net
using Lisp Clozure Common Lisp Version 1.7-r14925M (WindowsX8632)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) solve([(a-3)^2 + b^2 = 8^2], [a])
;
2 2
(%o1) [a = 3 - sqrt(64 - b ), a = sqrt(64 - b ) + 3]
(%i2) a
;
(%o2) a
(%i3) a;
(%o3) a
(%i4) solve([sqrt((x-a)^2+(y-b)^2) = 8-sqrt((x-3)^2+y^2)], [y])
;
2 2 2 2 2 2
(%o4) [sqrt(y - 2 b y + x - 2 a x + b + a ) = 8 - sqrt(y + x - 6 x + 9)]
(%i5) solve([sqrt((x-a)^2+(y-b)^2) = 8-sqrt((x-3)^2+y^2)], [y]);
2 2 2 2 2 2
(%o5) [sqrt(y - 2 b y + x - 2 a x + b + a ) = 8 - sqrt(y + x - 6 x + 9)]
(%i6) solve([(x-a)^2+(y-b)^2 = 64 + (x-3)^2+y^2 - 16*sqrt((x-3)^2+y^2)], [y])
;
2 2 2 2
16 sqrt(y + x - 6 x + 9) - 2 a x + 6 x + b + a - 73
(%o6) [y = -------------------------------------------------------]
2 b
(%i7)
Seems I don't know how to use Maxima to solve equation correctly...
I gave it the wrong equation in %i4.. 'a' should not be involved. Try again:
Maxima 5.25.0 http://maxima.sourceforge.net
using Lisp Clozure Common Lisp Version 1.7-r14925M (WindowsX8632)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) solve([sqrt((x+3)^2+y^2) = 8-sqrt((x-3)^2+y^2)], [y]);
2 2 2 2
(%o1) [sqrt(y + x + 6 x + 9) = 8 - sqrt(y + x - 6 x + 9)]
(%i2) solve([(x+3)^2+y^2 = 64 + (x-3)^2+y^2 - 16*sqrt((x-3)^2+y^2)], [y]);
Is 3 x - 16 positive, negative, or zero?
negative
;
2 2
sqrt(7) sqrt(16 - x ) sqrt(7) sqrt(16 - x )
(%o2) [y = - ---------------------, y = ---------------------]
4 4
(%i3)
Well.. let's do it step by step.
$$ \left{ \begin{aligned}
(a-3)^2 + b^2 &= 8^2 \
\sqrt{(x-a)2+(y-b)2} &= \sqrt{(x+3)2+y2} \
8-\sqrt{(x-3)2+y2} &= \sqrt{(x+3)2+y2}
\end{aligned} \right. $$
Maxima 5.25.0 http://maxima.sourceforge.net
using Lisp Clozure Common Lisp Version 1.7-r14925M (WindowsX8632)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) load(itensor);
;Compiler warnings for "C:/PROGRA~2/MAXIMA~1.0/share/maxima/5.25.0/share/tensor/itensor.lisp" :
; In $LC_L: Unused lexical variable L2
;Compiler warnings for "C:/PROGRA~2/MAXIMA~1.0/share/maxima/5.25.0/share/tensor/itensor.lisp" :
; In $LC_U: Unused lexical variable L1
(%o1) C:/PROGRA~2/MAXIMA~1.0/share/maxima/5.25.0/share/tensor/itensor.lisp
(%i2) load(tentex);
(%o2) C:/PROGRA~2/MAXIMA~1.0/share/maxima/5.25.0/share/tensor/tentex.lisp
(%i3) expand((a-3)^2+b^3-64)
;
3 2
(%o3) b + a - 6 a - 55
(%i4) solve([%o3],[b]);
2 1/3
(sqrt(3) %i - 1) (- a + 6 a + 55)
(%o4) [b = -------------------------------------,
2
2 1/3
(sqrt(3) %i + 1) (- a + 6 a + 55) 2 1/3
b = - -------------------------------------, b = (- a + 6 a + 55) ]
2
(%i5) solve([%o3], [a]);
3 3
(%o5) [a = 3 - sqrt(64 - b ), a = sqrt(64 - b ) + 3]
(%i6) tentex(%o5)
;
$$\left[ a=3-\sqrt{64-b^3} , a=\sqrt{64-b^3}+3 \right] $$
(%o6) false
(%i7) solve([%o3=0], [a]);
3 3
(%o7) [a = 3 - sqrt(64 - b ), a = sqrt(64 - b ) + 3]
(%i8) expand(sqrt((x+3)^2+y^2)-8+sqrt((x-3)^2+y^2))
;
2 2 2 2
(%o8) sqrt(y + x + 6 x + 9) + sqrt(y + x - 6 x + 9) - 8
(%i9) solve([%o8], [y])
;
2 2 2 2
(%o9) [sqrt(y + x + 6 x + 9) = 8 - sqrt(y + x - 6 x + 9)]
(%i10) solve([%o8], [x]);
2 2 2 2
(%o10) [sqrt(y + x + 6 x + 9) = 8 - sqrt(y + x - 6 x + 9)]
(%i11) %o8^2
;
2 2 2 2 2
(%o11) (sqrt(y + x + 6 x + 9) + sqrt(y + x - 6 x + 9) - 8)
(%i12) expand(%o11);
2 2 2 2
(%o12) 2 sqrt(y + x - 6 x + 9) sqrt(y + x + 6 x + 9)
2 2 2 2 2 2
- 16 sqrt(y + x + 6 x + 9) - 16 sqrt(y + x - 6 x + 9) + 2 y + 2 x
+ 82
(%i13) solve([sqrt((x-a)^2+(y-b)^2)=sqrt((x+3)^2+y^2), (a-3)^2+b^2=64, 8=sqrt((x+3)^2+y^2)+sqrt((x-3)^2+y^2)], [x])
;
(%o13) []
(%i14) contour_plot ((x-3)^2+y^2-64)$
plot3d: Usage.
To plot a single function f of 2 variables v1 and v2:
plot3d (f, [v1, min, max], [v2, min, max], options)
A parametric representation of a surface with parameters v1 and v2:
plot3d ([f1, f2, f3], [v1, min, max], [v2, min, max], options)
Several functions depending on the two variables v1 and v2:
plot3d ([f1, f2, ..., fn, [v1, min, max], [v2, min, max]], options)
-- an error. To debug this try: debugmode(true);
(%i15) contour_plot ((x-3)^2+y^2-64, [x,-5,8])
;
plotting: range must be of the form [variable, min, max]; found: [palette, false]
-- an error. To debug this try: debugmode(true);
(%i16) contour_plot ((x-3)^2+y^2-64, [x,-5,8], [y,-8,8]);
(%o16)
(%i17) contour_plot ([(x-3)^2+y^2-64,x,y], [x,-5,8], [y,-8,8]);
(%o17)
(%i18) contour_plot ((x-3)^2+y^2-64, [x,-5,8], [y,-8,8], [box, false]);
(%o18)
(%i19) contour_plot ((x-3)^2+y^2-64, [x,-5,8], [y,-8,8], [box, false], [plot_format, xmaxima]);
contour_plot: plot_format = xmaxima not recognized; must be a gnuplot format.
(%o19) false
(%i20)
11:17 PM Go to sleep.