mahuan1279 发表于 2022-9-23 16:01:45

飞的鱼儿 发表于 2022-9-23 15:40
是的,当年我好象是就是做到一元四次方程,解不出来了。,其实这也是来自一个应用实例,就是在一定的矩 ...

要想得到精确解,可网上搜一元四次方程求根公式。

mahuan1279 发表于 2022-9-23 16:09:20

highflybird 发表于 2022-9-23 15:34
这个最后的解是一元四次方程,所以无法通过作图法实现。这个题目应该和晓东多年前的作图题类似,就是筷子放 ...

一元四次方程不是无法做图的充分条件吧,特殊的一元四次方程或许可以作图呢。

Source_Liu 发表于 2022-9-23 16:59:34

你说的内接小矩形是否指大矩形每条边一个顶点的矩形,不考虑一个边有2个顶点的情况

Source_Liu 发表于 2022-9-23 17:10:21

按图, 标记1—4的四个三角形黄色标记的角的角度相同,还有一个直角,因此这几个三角形成比例。考虑1和3斜边相同,三角形必定相同,因此 y2=H-y1,同理 x2=W-X1,图片更新如下

highflybird 发表于 2022-9-23 17:10:24

mahuan1279 发表于 2022-9-23 16:09
一元四次方程不是无法做图的充分条件吧,特殊的一元四次方程或许可以作图呢。
嗯,不是所有的一元四次方程都无法几何作图。但这个题目的确无法几何作图。

liuhe 发表于 2022-9-23 17:23:17

highflybird 发表于 2022-9-23 17:10
嗯,不是所有的一元四次方程都无法几何作图。但这个题目的确无法几何作图。

可以作图,先画里面的矩形,再画外面的矩形,用参数化作图

Source_Liu 发表于 2022-9-23 17:40:47

接上图,要求的边长长度A,可以通过大矩形减4个三角新面积计算,即:A*B=W*H-三角形1的面积*2-三角形2的面积*2 --> A*B=W*H-x1*y1/2*2-(W-x1)*(H-y1)*/2*2--> A=(W*y1+H*x1-2*x1*y1)/B
上面公式有2个变量 x1、y1 需要代入,依靠下面2公式计算

1:三角形1的是直角三角形:B*B=x1*x1+y1*y1;
2:三角形1、2成比例:y1/x1=(W-x1)/(H-y1)

highflybird 发表于 2022-9-23 19:07:03

本帖最后由 highflybird 于 2022-9-23 19:10 编辑

这个题目我应该是有在哪儿回复过,但没查找到链接。

我把其解再贴一遍。
假设:矩形宽w,高h,小矩形一边长为b,那么如下图所示:
求出x,就可以求出小矩形的另外一边长。


关于求解一元四次方程,可以参考我的lisp程序:
【飞鸟集】一元二次,三次,四次方程求解和复数的运算(2013.1.3更新)

highflybird 发表于 2022-9-23 19:14:37

本帖最后由 highflybird 于 2022-9-23 19:16 编辑

这个是lisp求解示例代码:
这个解是精确解,不是迭代法。
(defun c:test (/ A B C D H HP L M N P0 P1 P2 P3 P4 P5 P6 P7 S W X Y)
(initget 9)
(setq W (getdist "\n宽:"))
(initget 9)
(setq H (getdist "\n高:"))
(initget 9)
(setq L (getdist "\n边:"))
(setq m (/ W L))
(setq n (/ H L))
(setq A (* -4 n))
(setq B (+ (* n n) (* m m) -4))
(setq C (+ n n))
(setq D (- 1 (* m m)))

(setq S nil)
(foreach n (Math:quartic_Equation 4 A B C D)
    (setq x (car n))
    (setq y (cadr n))
    (if(and (equal y 0 1e-6) (> x 0))
      (setq s (cons (* x L) s))
    )
)
(princ "\n解是:")
(princ s)
(initget 9)
(setq HP (* 0.5 pi))
(setq p0 (getpoint "\n插入点:"))
(setq p1 (polar p0 pi W))
(setq p2 (polar p0 HP H))
(setq p3 (polar p2 pi W))
(Ent:Make_LWPoly (list p0 p1 p3 p2) T)
(foreach x S
    (setq y (sqrt (- (* L L) (* x x))))
    (setq p4 (polar p0 HP x))
    (setq p5 (polar p0 pi y))
    (setq p6 (polar p3 HP (- x)))
    (setq p7 (polar p3 0 y))
    (Ent:Make_LWPoly (list p4 p5 p6 p7) T)
)
(princ)
)

(defun Ent:Make_LWPoly (pts closed /)
(entmakeX                                             
    (vl-list*
      '(0 . "LWPOLYLINE")
      '(100 . "AcDbEntity")
      '(100 . "AcDbPolyline")
      (cons 90 (length pts))                                        ;顶点个数
      (cons 70 (if closed 1 0))                                        ;闭合的
      (mapcar (function (lambda (x) (cons 10 x))) pts)          ;多段线顶点
    )
)
)


mahuan1279 发表于 2022-9-23 19:46:16

highflybird 发表于 2022-9-23 19:14
这个是lisp求解示例代码:
这个解是精确解,不是迭代法。

形如X^4+a*X^2+b*X+c=0(X有正实数根),可以几何作图吗?
页: 1 [2] 3
查看完整版本: 大矩形内接小矩形,已知小矩形一条边长,求另一条边长。