Algorithm Maple:如何插入命令强制我的代码选择随机整数值来查找我的值?

Algorithm Maple:如何插入命令强制我的代码选择随机整数值来查找我的值?,algorithm,maple,Algorithm,Maple,我的第一个问题是:使用牛顿-拉斐逊算法的多变量版本来查找两个圆的所有4个(实的和复杂的)交点 2 (x-7)+(y-2)=100 及 2 (x-11)+(y-5)=75 精确到25位。用两种颜色绘制这两个圆,显示它们的两个实际交点 我的代码很好地找到了这两个圆交点的实际值点。但是,我是用这两个圆圈的图像来确定我的猜测值的。现在对于复杂的交点,我必须简单地猜测并检查可能的解决方案。然而,这是愚蠢乏味的 我想知道的是如何创建一个循环,生成一对复数,运行下面的算法/for循环,如果它与以前的解决方案匹

我的第一个问题是:使用牛顿-拉斐逊算法的多变量版本来查找两个圆的所有4个(实的和复杂的)交点 2
(x-7)+(y-2)=100 及 2
(x-11)+(y-5)=75 精确到25位。用两种颜色绘制这两个圆,显示它们的两个实际交点

我的代码很好地找到了这两个圆交点的实际值点。但是,我是用这两个圆圈的图像来确定我的猜测值的。现在对于复杂的交点,我必须简单地猜测并检查可能的解决方案。然而,这是愚蠢乏味的

我想知道的是如何创建一个循环,生成一对复数,运行下面的算法/for循环,如果它与以前的解决方案匹配,则再次启动循环

f := (x-7)^2+(y-2)^2-100;
                          2          2      
                   (x - 7)  + (y - 2)  - 100
g := (x-11)^2+(y-5)^2-75;
                           2          2     
                   (x - 11)  + (y - 5)  - 75
with(plots);
plotf := implicitplot(f, x = -25 .. 25, y = -25 .. 25, color = blue, thickness = 1);
plotg := implicitplot(g, x = -25 .. 25, y = -25 .. 25, color = red, thickness = 1);
display(plotg, plotf);

x[0] := 5.0;
                              5.0
y[0] := 11.0;
                              11.0
X[0] := [x[0], y[0]];
                          [5.0, 11.0]
with(linalg);
G := unapply(convert(evalm((Vector(2, {(1) = x, (2) = y}))-1/jacobian([f, g], [x, y]) . (Vector(2, {(1) = f, (2) = g}))), list), x, y);
                   [        /       2          2      \
                   [(y - 5) \(x - 7)  + (y - 2)  - 100/
         (x, y) -> [-----------------------------------
                   [        2 (3 x - 4 y - 13)         

                      /        2          2     \      
              (y - 2) \(x - 11)  + (y - 5)  - 75/      
            - ----------------------------------- + x, 
                      2 (3 x - 4 y - 13)               
                    /       2          2      \
           (x - 11) \(x - 7)  + (y - 2)  - 100/
         - ------------------------------------
                    2 (3 x - 4 y - 13)         

                      /        2          2     \    ]
              (x - 7) \(x - 11)  + (y - 5)  - 75/    ]
            + ----------------------------------- + y]
                      2 (3 x - 4 y - 13)             ]
for K to 10 while `and`(evalf(abs(X[K-1][1]-X[K-2][1]), 25) <> 0, evalf(abs(X[K-1][2]-X[K-2][2]), 25) <> 0) do X[K] := evalf(G(X[K-1][1], X[K-1][2]), 25) end do;
    [5.749999999999999999999999, 12.00000000000000000000000]
    [5.803571428571428571428572, 11.92857142857142857142857]
    [5.803847569955817378497791, 11.92820324005891016200295]
    [5.803847577293368114236941, 11.92820323027550918101742]
    [5.803847577293368119417657, 11.92820323027550917410978]
    [5.803847577293368119417661, 11.92820323027550917410978]
X[0] := [17, -2];
                            [17, -2]
for K to 20 while `and`(evalf(abs(X[K-1][1]-X[K-2][1]), 25) <> 0, evalf(abs(X[K-1][2]-X[K-2][2]), 25) <> 0) do X[K] := evalf(G(X[K-1][1], X[K-1][2]), 25) end do;
   [16.21739130434782608695652, -1.956521739130434782608696]
   [16.19619565217391304347826, -1.928260869565217391304346]
   [16.19615242288645448220352, -1.928203230515272642938024]
   [16.19615242270663188058545, -1.928203230275509174113935]
   [16.19615242270663188058234, -1.928203230275509174109784]
   [16.19615242270663188058234, -1.928203230275509174109785]
X__0 := [170.0-1.*I, 270.0*I];
                    [170.0 - 1. I, 270.0 I]
for K to 20 while `and`(evalf(abs(X[K-1][1]-X[K-2][1]), 25) <> 0, evalf(abs(X[K-1][2]-X[K-2][2]), 25) <> 0) do X[K] := evalf(G(X[K-1][1], X[K-1][2]), 25) end do;
   [16.21739130434782608695652, -1.956521739130434782608696]
   [16.19619565217391304347826, -1.928260869565217391304346]
   [16.19615242288645448220352, -1.928203230515272642938024]
   [16.19615242270663188058545, -1.928203230275509174113935]
   [16.19615242270663188058234, -1.928203230275509174109784]
   [16.19615242270663188058234, -1.928203230275509174109785]
f:=(x-7)^2+(y-2)^2-100;
2          2      
(x-7)+(y-2)-100
g:=(x-11)^2+(y-5)^2-75;
2          2     
(x-11)+(y-5)-75
有(情节);
plotf:=隐式绘图(f,x=-25..25,y=-25..25,颜色=蓝色,厚度=1);
plotg:=隐式绘图(g,x=-25..25,y=-25..25,颜色=红色,厚度=1);
显示(plotg、plotf);
x[0]:=5.0;
5
y[0]:=11.0;
11
X[0]:=[X[0],y[0]];
[5.0, 11.0]
与(linalg);
G:=unapply(转换(evalm((向量(2,{(1)=x,(2)=y}))-1/jacobian([f,G],[x,y])(向量(2,{(1)=f,(2)=G}))),列表),x,y;
[        /       2          2      \
[(y-5)\(x-7)+(y-2)-100/
(x,y)->[-----------------------------------
[2(3x-4y-13)
/        2          2     \      
(y-2)\(x-11)+(y-5)-75/
---------------------------------------+x,
2(3X-4Y-13)
/       2          2      \
(x-11)\(x-7)+(y-2)-100/
- ------------------------------------
2(3X-4Y-13)
/        2          2     \    ]
(x-7)\(x-11)+(y-5)-75/]
+--------------------------------------+y]
2(3X-4Y-13)]
对于K到10,而`和`(evalf(abs(X[K-1][1]-X[K-2][1]),25)0,evalf(abs(X[K-1][2]-X[K-2][2]),25)0)do X[K]:=evalf(G(X[K-1][1],X[K-1][2]),25)end do;
[5.749999999999999999999999, 12.00000000000000000000000]
[5.803571428571428571428572, 11.92857142857142857142857]
[5.803847569955817378497791, 11.92820324005891016200295]
[5.803847577293368114236941, 11.92820323027550918101742]
[5.803847577293368119417657, 11.92820323027550917410978]
[5.803847577293368119417661, 11.92820323027550917410978]
X[0]:=[17,-2];
[17, -2]
对于K到20,而`和`(evalf(abs(X[K-1][1]-X[K-2][1]),25)0,evalf(abs(X[K-1][2]-X[K-2][2]),25)0)do X[K]:=evalf(G(X[K-1][1],X[K-1][2]),25)end do;
[16.21739130434782608695652, -1.956521739130434782608696]
[16.19619565217391304347826, -1.928260869565217391304346]
[16.19615242288645448220352, -1.928203230515272642938024]
[16.19615242270663188058545, -1.928203230275509174113935]
[16.19615242270663188058234, -1.928203230275509174109784]
[16.19615242270663188058234, -1.928203230275509174109785]
X_uu0:=[170.0-1.*I,270.0*I];
[170.0-1.I,270.0 I]
对于K到20,而`和`(evalf(abs(X[K-1][1]-X[K-2][1]),25)0,evalf(abs(X[K-1][2]-X[K-2][2]),25)0)do X[K]:=evalf(G(X[K-1][1],X[K-1][2]),25)end do;
[16.21739130434782608695652, -1.956521739130434782608696]
[16.19619565217391304347826, -1.928260869565217391304346]
[16.19615242288645448220352, -1.928203230515272642938024]
[16.19615242270663188058545, -1.928203230275509174113935]
[16.19615242270663188058234, -1.928203230275509174109784]
[16.19615242270663188058234, -1.928203230275509174109785]

请稍后查看我对您的问题的回答

在这个答案中,我创建了一个程序,为给定的范围生成随机浮动。我不知道为什么您可能会坚持整数起点,但您可以轻松地修改我答案中的代码来实现这一点。您可以这样简单地定义过程
fgen

fgen := proc(a::numeric,b::numeric,i::nonnegint:=1)
  seq(RandomTools:-Generate(integer('range'=a..b)),
      ii=1..i);
end proc:

fgen(-100, 100); # Usage example, a random point

                           15

fgen(-100, 100, 8);

           81, 64, -7, 91, -87, -81, -66, 19