明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2486|回复: 9

解方程ax3+bx2+cx+d=0

[复制链接]
发表于 2005-7-4 19:59:00 | 显示全部楼层 |阅读模式
解方程ax<SUP>3</SUP>+bx<SUP>2</SUP>+cx+d=0


如何用LISP编一个解1元3次方程的,只要求要它的正数根


精确到小数点后4位!
发表于 2005-7-4 20:52:00 | 显示全部楼层
就把X的通用求解公式做成LISP就行了啊.应该不麻烦的.
发表于 2005-7-4 22:23:00 | 显示全部楼层
三元的可能有些麻烦
发表于 2005-7-5 08:19:00 | 显示全部楼层
相当于做函数y=ax3+bx2+cx+d与x轴的交点,用迭代法很容易做的
 楼主| 发表于 2005-7-5 10:46:00 | 显示全部楼层
帮我做一个程序出来吧!
发表于 2005-7-5 10:56:00 | 显示全部楼层
第一次写这种类型的程序,精度控制也不知道对不对,见笑了:
  1. (defun c:test( / a b c d step dir m x y)
  2.    (setq a (getreal "输入a:"))
  3.    (setq b (getreal "输入b:"))
  4.    (setq c (getreal "输入c:"))
  5.    (setq d (getreal "输入d:"))
  6.    (setq step 10)
  7.    (setq dir 1)
  8.    (setq m t)
  9.    (setq i 0 x -100)
  10.    (while m
  11.        (setq x (+ x (* i dir step)))
  12.        (setq y (+ (* a (expt x 3)) (* b (expt x 2)) (* c x) d))
  13.        (if (> (* y dir) 0)
  14.            (progn
  15.   (if (< step 0.00001) (setq m nil))
  16.   (setq dir (* dir -1))
  17.   (setq step (/ step 2.0))
  18.            )
  19.        )      
  20.        (setq i (1+ i))
  21.    )
  22.    (princ x)
  23.    (princ)
  24. )
发表于 2005-7-5 11:54:00 | 显示全部楼层
楼主应给出a、b、c、d的具体值,不然很有可能是该函数在x&gt;0的范围内无解
发表于 2005-7-5 15:27:00 | 显示全部楼层
从0开始,往两边同时搜索就可以了吧
发表于 2005-7-5 17:10:00 | 显示全部楼层
可是楼主只要正解,所以要楼主给出具体的参数值
 楼主| 发表于 2005-7-5 17:19:00 | 显示全部楼层
a         b         c         d 没有确定值,但是它们之间的关系应该满足此方程拥有实根时判别式的要求!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 17:50 , Processed in 0.175175 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表