明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4724|回复: 41

通过程序计算出来的数值和手动计算的数值不一样,是不是我的程序写错了?

  [复制链接]
发表于 2011-10-22 10:59:37 | 显示全部楼层 |阅读模式
本帖最后由 gprspda 于 2011-10-22 14:57 编辑

公式是r2=3431*tan(α)/(π t1).我自己写的程序是(setq r2 (/(* 3431 (/(sin(* pi (/ α 180))) (cos(* pi (/ α 180))))) (* pi t1)))

程序运算出的结果,和我手动计算的结果不一样,但是我手动计算的应该是正确的
请各位高人帮忙看一下程序哪里出错误了

 楼主| 发表于 2011-10-22 11:26:29 | 显示全部楼层
刚才有个地方错误,现在已经改好了,还请各位多多帮忙啊
发表于 2011-10-22 13:27:12 | 显示全部楼层
LISP没有TAN吗?你用的SIN*COS

/(π t1)你公式是这个,你写的这个(* pi t1))),除,乘?
发表于 2011-10-22 14:24:41 | 显示全部楼层
本帖最后由 highflybir 于 2011-10-22 14:27 编辑

我觉得你可能出错在(/ α 180)这个地方,譬如你输入 (/ 25 180)  和(/ 25 180.0)是不一样的,正确的应该是后者。
你应该 (/ α 180.0)

发表于 2011-10-22 14:27:08 | 显示全部楼层
本帖最后由 Andyhon 于 2011-10-22 19:54 编辑

(defun dtr (x)  (* pi (/ x 180.0)))

(defun tan (z / cosz) ; [fixed]
   (setq *INFINITY* 1.7e308)                 ; largest double
   (if (zerop (setq cosz (cos z)))
     *INFINITY*
     (/ (sin z) cosz)
   )
)

;;; 公式是r2=3431*tan(25°)/(π t1).
(setq r2 (/ (* 3431 (tan (dtr α)))  pi t1))
发表于 2011-10-22 14:28:50 | 显示全部楼层
是我看错了.LISP的这个运算符号放前面真是不习惯
 楼主| 发表于 2011-10-22 14:46:59 | 显示全部楼层
highflybir 发表于 2011-10-22 14:24
我觉得你可能出错在(/ α 180)这个地方,譬如你输入 (/ 25 180)  和(/ 25 180.0)是不一样的,正确的应该是后 ...

改了一下,还是一样,这个不正确....
 楼主| 发表于 2011-10-22 14:56:24 | 显示全部楼层
Andyhon 发表于 2011-10-22 14:27
(defun dtr (x)  (* pi (/ x 180.0)))

(defun tan (z / cosz) ; [fixed]

这个经过运算后,结果和原来的程序一样...
发表于 2011-10-22 15:18:44 | 显示全部楼层
给出变量值+您要的正确值...
用以核校.....
 楼主| 发表于 2011-10-22 16:03:09 | 显示全部楼层
Andyhon 发表于 2011-10-22 15:18
给出变量值+您要的正确值...
用以核校.....

不太明白啊,我把程序发给你,你帮我看一下,应该怎么弄,可以吗?

(defun c:flx(/ p p0 p1 p2 p3 p4 p5 p6 v c h w r1 r2 b1 b2 b3 α e t1)
(setq v (getint"\n输入指示空速"))
(setq c (getint"\n输入与ISA的差值"))
(setq h (getint"\n输入高度(米)"))
(setq w (getint"\n输入风速"))
(setq p (getpoint"\n确定起始点"))
(setq α(getangle"\n输入转弯坡度角"))
(setq t1 (/(* v 171233 (expt(-(+ 288 c) (* 0.006496 h))0.5)) (expt(- 288 (* 0.006496 h))2.628)))
(setq r2 (/(* 3431 (/(sin(* pi (/ α 180.0))) (cos(* pi (/ α 180.0))))) (* pi t1)));;r2=3431*tan(α)/(π t1)
(if (> r2 3)(setq r2 3))
(setq r1 (/ t1 (* 20 pi r2)))
      (setq p0 (polar p 0 r1))
(setq e (/ w (* 40 r2)))
(setq p1 (polar p0 (/ pi 2) e))
(setq p2 (polar p0 0 e))
(setq p3 (polar p0 (/ (- pi) 2) e))
(setq b1 (expt(+(* r1 r1)(* e e)) 0.5))
(setq b2 (+ r1 e))
(setq b3 (+ r1 (* 2 e)))
(setq p4 (polar p1 (/ pi 2) b1))
(setq p5 (polar p2 0 b2))
(setq p6 (polar p3 (/ (- pi) 2) b3))
(command "arc" "c" p1 p4 p)
(command "arc" "c" p2 p5 p4)
(command "arc" "c" p3 p6 p5)
(setq fn(open (getfiled "将文件保存为:" "gc.txt" "txt" 1) "w"))
(write-line (strcat "t1=" (rtos t1)) fn)
(write-line (strcat "r2=" (rtos r2)) fn)
(write-line (strcat "r1=" (rtos r1)) fn)
(write-line (strcat "b1=" (rtos b1)) fn)
(write-line (strcat "b2=" (rtos b2)) fn)
(write-line (strcat "b3=" (rtos b3)) fn)
(close fn)
   (command "_zoom" "0.5X")
  (princ)
      )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-10 22:54 , Processed in 0.182719 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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