搜索
bottom↓
回复: 17

一般的单片机开方都有什么方法哪

[复制链接]

出0入0汤圆

发表于 2008-3-23 10:11:37 | 显示全部楼层 |阅读模式
如题
楼下的看错了,我说开方运算

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2008-3-23 10:17:55 | 显示全部楼层
1、花钱请人开发;
2、买现成方案;
3、从ourdev找开源资料照抄;
4、自己动手。

出0入0汤圆

发表于 2008-3-23 14:50:51 | 显示全部楼层
牛顿迭代
   牛顿法是方程求根的一个有力方法,常常能快速求出其他方法求不出或者难以求出的解。
假定有一个函数y=f(x),方程f(x)=0在 x = r 处有一个根,对于此根,我们先估计
个初始值 Xo(可以是猜测的)。我们现在来得到一个更好的估计值X1。为此趚=Xo处作该曲线的切线,并将其延长与 x 轴相交。切线与x轴的交点通常很接近 r ,我们用它作为下一个估计值X1,求出X1后,用X1代替Xo。重复上述过程,在x=X1处作曲线的另一条切线,并将其延长至与x轴相交,用切线的x轴截距作为下一个近似值X2……这样继续下去,所得出的这个x轴截距的序列通常迅速接近根r

    现在再让我们从代数角度看上述过程,我们知道,在初始值Xo处,切线的斜率是f'(x),切线方程为
   
                      y - f(xo) = f'(xo)(x - xo)

    在此切线与x轴相交处,有y=0 ,x=x1,因而有
  
                     0 - f(xo) = f'(xo)(x1 - xo)

    只要f'(xo)不为0,可解出x1,得
                                      f(xo)     
                     x1 = x0 - ---------
                                     f'(xo)

     重复该过程,可得下一近似值为
                                     f(x1)     
                     x2 = x1 -  --------
                                    f'(x1)
     
     总结n = 0,1,2,……的情形得出下述结果

         _______________________________________________   
         |  牛顿法:                                   
         |                                             
         |              只要f'(xn) ≠ 0,则有         
         |                                      f(Xn)           
         |              X(n+1) = Xn -   --------        
         |                                      f'(Xn)         
         |_____________________________________________|

      注意:牛顿法也有不成功的时候,若f(x)无根,则,序列不收敛。另外,一些函

数图像可能形成随即序列,这就需要其他的辅助条件。   

      附注:f'(x)表示函数f(x)的导函数,f'(xo)则表示函数f(x)在x = xo处的导数

出0入0汤圆

发表于 2008-3-23 14:52:21 | 显示全部楼层
http://www.fjtu.com.cn/fjnu/courseware/0329/course/_source/web/lesson/char2/j4.htm
这里更详细

出0入0汤圆

发表于 2008-3-23 15:15:03 | 显示全部楼层
呃,明明看到“单片机开发”啊

出0入0汤圆

发表于 2008-3-23 16:39:27 | 显示全部楼层
查表,用电脑做一个table查表便是。最好是整数。

出0入0汤圆

 楼主| 发表于 2008-3-23 21:08:26 | 显示全部楼层
谢谢大家

出0入0汤圆

发表于 2013-8-12 20:35:47 | 显示全部楼层
我也在寻找呀!

出0入0汤圆

发表于 2013-8-13 08:05:48 来自手机 | 显示全部楼层
搜索  卡马克

出0入0汤圆

发表于 2013-8-13 08:14:28 | 显示全部楼层
搜索  卡马克


:)

google "doom fast inverse square root"

and let me post it here:

  1. float Q_rsqrt( float number )
  2. {
  3.         long i;
  4.         float x2, y;
  5.         const float threehalfs = 1.5F;

  6.         x2 = number * 0.5F;
  7.         y  = number;
  8.         i  = * ( long * ) &y;                       // evil floating point bit level hacking
  9.         i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
  10.         y  = * ( float * ) &i;
  11.         y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
  12. //      y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

  13.         return y;
  14. }
复制代码
This is probably the most fascinating piece of code anyone has written over the last 50 years. Bar none.

and we still don't know who exactly wrote it, and how s/he came up with the magic number.

enjoy.

出0入0汤圆

发表于 2013-8-13 08:56:12 | 显示全部楼层
这个必须mark,记得以前也看过,是一个大神创造的那个magic number。

出0入8汤圆

发表于 2013-8-13 08:58:30 | 显示全部楼层
数学课逃课的人伤不起啊

出0入0汤圆

发表于 2013-9-5 10:57:57 | 显示全部楼层
整形还是浮点数?

出0入0汤圆

发表于 2014-1-24 09:09:10 | 显示全部楼层
论坛里面有整形开方算法,挺好

出0入85汤圆

发表于 2014-1-24 09:15:45 | 显示全部楼层
使用标准库函数

出0入54汤圆

发表于 2014-1-24 09:26:20 | 显示全部楼层
这个需要记下 以后用的到的,归根结底不是单片机开方,而是人开方

出0入0汤圆

发表于 2014-7-5 08:51:15 | 显示全部楼层
xjj123456789 发表于 2014-1-24 09:09
论坛里面有整形开方算法,挺好

能给个链接吗?现在找不到了

出0入0汤圆

发表于 2014-7-7 22:12:46 | 显示全部楼层
好像math.h头文件里面有现成的函数吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 12:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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