| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 556 人关注过本帖
标题:请教高手解决下面这题
只看楼主 加入收藏
ft4029928
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2008-12-14
结帖率:81.82%
收藏
 问题点数:0 回复次数:0 
请教高手解决下面这题
用(梯形)龙贝格求积公式近似计算I=(积分上限1,下限0)2e(-x)/根号(x)dx 注:由于这里输不了公式,我用文字代替了,使其精度达到1e-5  
我运行时出错,找不到原因,请各位高手帮助我,非常感激!

程序代码:
function [val,M]=Romberg(f,ab,dalt) 
% Romberg算法计 算积分
%  [val,M]=Romberg(f,ab,dalt) 
%       val    返回积分值
%       M  T数表 
%       f      被积函数,函数文件名
%       ab     积分区间  
%       dalt    精度 
if nargin<3 
   dalt=1e-7;                         %设置默认精度1e-7  
end 
i=1; h=ab(2)-ab(1); t=0; j=0; 
T(1,1)=(h/2)*(feval(f,ab)*ones(2,1)); 
while i<50                            %最大跌?0次
    i=i+1; h=h/2; 
    T=[T zeros(i-1,1);zeros(1,i)]; 
    x=ab(1)+h:2*h:ab(2)-h; 
    y=feval(f,x)*ones(size(x')); % feval(f,x)求f在x点值
    T(i,1)=T(i-1,1)/2+h*y;       % 细化区间,求得梯形值
    for t=2:i 
        j=t-1; 
        T(i,t)=(4^j*T(i,j)-T(i-1,j))/(4^j-1); %外推加速 
    end 
    if abs(T(i,i)-T(i-1,i-1))<=dalt     %控制精度
        break 
    end 
end 
if nargout==2 
   M=T;                                    %按需求返回T数表 
end 
val=T(i,i);                                %积分值

脚本文件:
y=inline('2*exp(-x).*(x.^(-1/2))');
[I,M]=Romberg(y,[0 1],1.0e-5)
搜索更多相关主题的帖子: 计算 
2011-12-19 23:17
快速回复:请教高手解决下面这题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028191 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved