明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1045|回复: 1

[源码] Gauss-Legendre积分法

[复制链接]
发表于 2014-4-26 10:53:05 | 显示全部楼层 |阅读模式
本帖最后由 阿然 于 2014-4-26 10:55 编辑

学习lisp这么久以来,深感不是不能理解Lisp的各种函数使用方法,而是算法方面的知识缺失更加困扰我,痛定思痛,努力向各前辈学习各种算法,下面是刚学习的Gauss-legendre积分法,请各位指教,谢谢

  1. ;;;5阶Gauss-Legendre积分法
  2. ;;; a    下限
  3. ;;; b    上限
  4. ;;; eps  精度
  5. ;;; 其中函数fun为自定义被积函数计算式

  6. (defun gauss (a b eps / m i j s p ep h aa bb w x g tk c)
  7.   (setq  tk '(-0.9061798459 -0.5384693101 0.0 0.5384693101 0.9061798459)
  8.   c '(0.2369268851 0.4786286705 0.5688888889 0.4786286705
  9.       0.2369268851)
  10.   )
  11.   (setq  m  1
  12.   h  (- b a)
  13.   s  (abs (* 0.001 h))
  14.   p  1.0e+35
  15.   ep (+ eps 1.0)
  16.   )
  17.   (while (and (>= ep eps)
  18.         (> (abs h) s)
  19.    )
  20.     (setq g 0.0
  21.     i 1
  22.     )
  23.     (while (<= i m)
  24.       (setq aa (+ a (* (- i 1) h))
  25.       bb (+ a (* i h))
  26.       w  0.0
  27.       )
  28.       (setq j 0)
  29.       (repeat 5
  30.   (setq x  (/ (+ (* (- bb aa) (nth j tk)) bb aa) 2.0)
  31.         w  (+ w (* (fun x) (nth j c)))
  32.   )
  33.   (setq j (1+ j))
  34.       )
  35.       (setq g (+ g w)
  36.       i (1+ i)
  37.       )
  38.     )
  39.     (setq g  (* g h 0.5)
  40.     ep (/ (abs (- g p)) (+ 1.0 (abs g)))
  41.     p  g
  42.     m  (1+ m)
  43.     h  (/ (- b a) m)
  44.     )
  45.   )
  46.   g
  47. )
  48. (defun fun (x)
  49.   (setq y (+ (* x x) (sin x)))
  50. )

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-11-13 16:45:49 | 显示全部楼层
大佬,你好,这个http://bbs.mjtd.com/forum.php?mod=viewthread&tid=100248(批量相同组合图元关联修改)的帖子里的完整程序,可以提供一下吗,冲压模具上比较有用?谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-21 01:46 , Processed in 0.151606 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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