guosheyang 发表于 2022-6-2 21:29:11

分享个解二元一次方程组的函数

本帖最后由 guosheyang 于 2022-6-3 08:51 编辑

给大家分享个用交点函数求解二元一次方程组的代码,x y取值为无区段限制实数
;用交点法解二元一次方程组 ygs-羊羊羊                              
;函数名 ygs-bi-L-eqgr                                             
;参数 a b c d e f分别为二元一次方程组的系数(ax+by+c=0 ;dx+ey+f=0)
;返回值:如果有解,则返回值 二元一次方程组的解                     
;测试(ygs-bi-L-eqgr 1 -2 -1 -2 3 -3)对应方程组x-2y-1=0 ;-2x+3y-3=0
(defun ygs-bi-L-eqgr (a b c d e f / P1 P2 P3 P4)
(if(and a b c d e f)
    (if(or (and (= a 0) (= b 0)) (and (= d 0) (= e 0)))
       (princ "\n 你输入的系数不是规范的二元一次方程组,请重输系数")
      (progn
      (setq p1 (if (/= b 0)
                   (list 0 (/ (- c) (float b)))
                   (list (/ (- c) (float a)) 10)
               )
            p2 (if (/= a 0)
                   (list (/ (- c) (float a)) 0)
                   (if (/= b 0)
                     (list 10 (/ (- c) (float b)))
                   )
               )
            p3 (if (/= e 0)
                   (list 0 (/ (- f) (float e)))
                   (list (/ (- f) (float d)) 10)
               )
            p4 (if (/= d 0)
                   (list (/ (- f) (float d)) 0)
                   (if (/= e 0)
                     (list 10 (/ (- f) (float e)))
                   )
               )
      )
      (inters p1 p2 p3 p4 nil)
      )
    )
)
)

xyp1964 发表于 2022-6-3 22:38:19


;; (abc 1 -2 -1 -2 3 -3)
(defun abc(a b c d e f)
(if(and a b c d e f)
    (if(and(/= a b 0)(/= d e 0))
      (inters
        (if(= b 0)(list(/ c a -1.)1)(list 0(/ c b -1.)))
        (if(= a 0)(if(/= b 0)(list 1(/ c b -1.)))(list(/ c a -1.)0))
        (if(= e 0)(list(/ f d -1.)1)(list 0 (/ f e -1.)))
        (if(= d 0)(if(/= e 0)(list 1(/ f e -1.)))(list(/ f d -1.)0))
        nil
      )
    )
)
)

guosheyang 发表于 2022-6-7 13:11:17

革天明 发表于 2022-6-7 10:35
楼主不必气馁,主要这个个需求太小众了,我以前写的支持2元N次,其实XYZ3元也没问题,只是这样复杂的不会 ...

大神 牛 !我写这个纯粹还是因为不想用矩阵相关的东西,那些代码太长了 ,这个简洁

革天明 发表于 2022-6-7 10:35:45


楼主不必气馁,主要这个个需求太小众了,我以前写的支持2元N次,其实XYZ3元也没问题,只是这样复杂的不会在CAD中用,用户直接上三维画图软件了。


guosheyang 发表于 2022-6-3 08:37:44

免费分享代码竟没有一个人回复支持下      不知道如何设置回复才可见

434939575 发表于 2022-6-3 09:23:42

感谢分享,不知道什么地方用。

pxt2001 发表于 2022-6-3 09:31:47

编程源于需求,可能是很少人有这样的需求。喜欢研究算法的纯粹lisper可能没有此看到帖。

自贡黄明儒 发表于 2022-6-3 10:12:48

东西是好东西,点赞。但是要的人少。

tigcat 发表于 2022-6-3 11:01:58

这个是好代码,不过不知道何时会用到,谢谢黄总分享!

guosheyang 发表于 2022-6-3 19:48:51

感谢各位的支持!

guosheyang 发表于 2022-6-4 12:12:52

xyp1964 发表于 2022-6-3 22:38


谢谢院长的优化!

逍遥无声 发表于 2022-6-4 13:21:05

:handshake:handshake:handshake:handshake:handshake:handshake
页: [1] 2
查看完整版本: 分享个解二元一次方程组的函数