随笔-21  评论-10  文章-21  trackbacks-0
牛顿迭代在方程 f(x) = 0的单根附近具有平方收敛(问题1 平方收敛到底有多快),很多方程没有求根公式,或很难求到其精确根 ,我们可以逼近它到我们要求的精度

问题2 在什么条件下牛顿迭代法才能使用?

1.给我一个一元方程,我能用牛迭帮你把根求出来

问题3 牛迭的初值如何选择


问题尚未解决,先看几道题目:

A Star not a Tree?
description: 二维平面给 n 个点(n<100),找出一点p,使得p到 各个点的距离之和最小

报告

求二元二次方程的最值 ,x, y偏导为0的时候此题存在最值,这样就转化为两个f(x)=0的求解了,牛迭出x,y的坐标就算出了答案
(证明to be continued..)

Expanding Rods
description:
有一块薄铁片原长 L ,受热它会膨胀,假设升温 n 度,热膨胀系数 C,则膨胀后的长度
L` = (1+n*C)*L; 假设铁片两端固定, 那么加热它会弯曲
现在给你 L , n, C 问你弯曲的铁片的中心偏移原来位置多少?

稍加分析就会发现推不出直接的公式,甚至一个直接的方程写起来也很繁琐,只能间接通过弯曲半径 r 求得,能得到方程 r*sin(L` / 2*r) - L/2=0;                 ...1
                                              x = r - sqrt(r*r - L * L *0.25);        ...2
这道题先根据方程 1 牛迭出 r ,再间接求出偏移位移 x
则道题的初值选择参考牛人代码:r = lp * lp * 0.25 / sqrt(lp * lp - l * l);
初值选择始终是个不好处理的问题。。。

posted on 2009-02-13 20:46 wangzhihao 阅读(951) 评论(2)  编辑 收藏 引用

评论:
# re: 牛顿迭代法在acm中的运用(不断完善中。。。) 2009-05-12 20:20 | 反对
r = lp * lp * 0.25 / sqrt(lp * lp - l * l);
这个狮子是什么东东  回复  更多评论
  
# re: 牛顿迭代法在acm中的运用(不断完善中。。。)[未登录] 2010-07-11 11:09 | 叶子
一般来说,牛迭适用于一切的连续函数求精确值。不知道计算机里用到的函数有哪些类,如果只是多元的线性函数,那都可以了。只是方法当然要稍微改动。
如果只是一元和二元线性函数,那一元的没问题,二元的如上面提到的a star not a tree,只要对x,y分别求导,计算出,极值点,这就化为两个二元一次的方程。

补充:上面a star not a tree,结论方法是,把x方向的所有坐标求出均值,y方向所有坐标求均值,就是所求点p,先记为S。如果要求p点是特殊条件的点,比如这100个点中的一个,或者整数点,那只需比较得出与S最近的整数点,或者那100个点中分布在S周围的几个点,那个满足条件。
        
                 严格的证明过程有,只是作为编程,我想就不需要了吧。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理