⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 solve4.lsp

📁 autolisp编写的解决一元线性方程的程序
💻 LSP
字号:
(defun diff1 (/ y0 y1 dy y2 x2)
  (setq y0 (fun f x0))
  (setq y1 (fun f x1))
  (setq dy (- y1 y0))
  (setq y2 (/ (- x1 x0) (- y1 y0)))
  (setq x2 (- x1 (* y1 y2)))
  (setq x0 x1)
  (setq x1 x2)
)
;;;;;;;
(defun C:solve ()
  (VL-LOAD-COM)
  (defun fun (a x / a)
    (while (Wcmatch a "*x*")
      (setq a (vl-string-subst (rtos x 2 20) "x" a))
    )
    (vla-eval
      (vlax-get-acad-object)
      (strcat "ThisDrawing.SetVariable \"users1\",cstr(" a ")"))
    (read (getvar "users1"))
  )
  (setq f (getstring "\n请输入函数表达式(按空格或<Enter>会结束输入):"))
  (setq	x0 (getreal "\n请输入初始值: "))
  (setq n  (fix (abs (getreal "\n请输入精确度(不超过小数后15位否则以15精度计算):"))))
  (if (> n 15)(setq n 15))
  (setq dx 1e-2)
  (setq x1 (+ x0 dx))
  (setq x x0)
  (setq y (diff1))
  (while (> (abs (- y x)) (expt (/ 1.0 10.0) (1+ n)))
    (setq x y)
    (setq y (diff1))
  )
  (setq fy (rtos (- (abs y) (fix (abs y))) 2 n))
  (setq fy (vl-string-left-trim "0" fy))
  (setq inty (rtos y 2 0))
  (alert (strcat "方程的解为:\nX=" inty fy))
  (princ)
  (atof (strcat inty fy))
)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -