• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab实现的嵌套乘法、高精度、二分法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

嵌套乘法的计算:

\[P(x) = 1 - x + x^2 - x^3 + ...+ x ^ {98} - x^{99} \]

function y = nest( d, c, x, b )
    if nargin < 4, b = zeros(d, 1); end
    y = c(d + 1);
    for i = d : -1 : 1
        y = y.*(x - b(i)) + c(i);
    end
end

等比数列的实现方式:

\[P(x) = \frac{1 - (-x)^{100} } {1 - (-x)} \]

function y = nestup(x, n, a)
    if nargin < 3, a = 1;   end
    q = -1 * x;
    y = (a * (1 - q ^ n)) / (1 - q);
end

高精度计算的处理

\[\sqrt{c^2 + d} - c \]

转换为下述形式

\[\frac{c^2}{\sqrt{c^2 + d} + c} \]

 c = 246886422468;
 d = 13579;
 
 x = sqrt(c * c + d) - c;   % x = 0     wrong answer
 % x must equals to y
 y = d / (sqrt(c * c + d) + c) % y = 2.7500e-08

二分法的实现:

function xc = CalDetBisect(f, a, b, tol)
   fa = f(a);
   fb = f(b);
   if sign(fa) * sign(fb) >= 0
       error(\'f(a)f(b)<0  not satisified!\')
   end
   while (b - a) / 2 > tol
       c = (a + b) / 2;
       fc = f(c);
       if fc == 0
           break;
       end
       if sign(fc) * sign(fa) < 0
            b = c;
            fb = fc;
       else
            a = c;
            fa = fc;
       end
   end
   xc = (a + b) / 2;
end

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap