在CAD内解方程,一个极为实用的程序
本帖最后由 作者 于 2006-9-8 12:04:32 编辑 <br /><br /> <P>刚刚学了点LISP 程序,就要卖弄了:</P><P>这是一个解方程的LISP程序,很简短。</P>
<P>用法:1解压文件得到solve.lsp程序。</P>
<P>2,在CAD中用AP命令加载此lisp程序。</P>
<P>3,在CAD中输入solve按照提示输入表达式和初始值。(你可以先估计一个解作为初始值)。</P>
<P>4,最后出现的数字为解。</P>
<P>另外注明:</P>
<P>1,方程只接受x为一元变量,多元方程还在研究中。</P>
<P>2,方程接受CAD中认可的表达式,如x^5+x^3-3*sin(x)+1;(如不清楚的请参考CAL命令帮助中的语法和函数)注意了,方程只需写成多项式,无须写成f(x)=0式。</P>
<P>3,方程解题精度可达16位,只是表达实数根。</P>
<P>4,程序并没有检错判断,有可能无解现象出现,或其他错误出现。也没有用到对话框。</P>
<P>我把源代码发布上来,请各位大侠帮忙斧正,如要转载程序到他处,为尊重本人劳动成果见,请注明来源与原作者。</P> <P>这里是源代码:</P>
<P>(defun func (/ dx dy y1 y2 y3 y4)<BR> (setq y1 (cal p))<BR> (setq dx 0.00000000000001)<BR> (setq x (+ x dx))<BR> (setq y2 (cal p))<BR> (setq dy (- y2 y1))<BR> (setq y3 (/ dy dx))<BR> (setq x (- x dx))<BR> (setq y4 (- x (/ y1 y3)))<BR> )<BR>(defun C:solve (/ p x y)<BR> (arxload "geomcal.arx")<BR> (setq p (getstring "\n请输入函数表达式: "))<BR> (setq x (getreal "\n请输入初始值: "))<BR> (setq y (func))<BR> (while (> (abs (- y x)) 0.000000000000001)<BR> (setq x y)<BR> (setq y (func))<BR> )<BR> (rtos y 2 20)<BR> )</P> <P>要力争实现解方程和画图的“无缝”连接。</P> 希望能解联立方程式的LISP早日出现,如此几何解题法当会更加为大众接受。 顶 hehe 谢谢了!!
页:
[1]