MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]求个高手都下面程序每步解释一下!(急用) (https://www.labfans.com/bbs/showthread.php?t=6020)

pgxy2000 2008-12-25 11:52

[求助]求个高手都下面程序每步解释一下!(急用)
 
function result=tintergrate()
clear re_n re_2n;
n=1;
eps=0.00001;
x=linspace(0,1,n+1);
h=1/n;
y=x./(4+x.^2);
re_n=(y(1)+y(n+1))*h/2;
for i=2:n
re_n=re_n+y(i)*h;
end
xx=x(1:n)+h/2;
y=x./(4+x.^2);
re_2n=re_n/2;
for i=1:n
re_2n=re_2n+y(i)*h/2;
end
h=h/2;
n=1/h;
x=linspace(0,1,n+1);
while abs(re_2n-re_n)>eps
re_n=re_2n;
xx=x(1:n)+h;
y=x./(4+x.^2);
re_2n=re_n/2;
for i=1:n
re_2n=re_2n+y(i)*h/2;
end
h=h/2;
n=1/h+1;
x=linspace(0,1,n+1);
end
result=re_2n;
%the end

mathjiang 2008-12-25 21:54

回复: [求助]求个高手都下面程序每步解释一下!(急用)
 
function result=tintergrate() %定义函数:函数名tintergrate,函数计算后输出结果为result,没有输入项。
clear re_n re_2n; % 清除workspace中的变量re_n,re_2n。
n=1;
eps=0.00001; % n,eps两个常数
x=linspace(0,1,n+1); %生成一个n+1维行向量,该向量元素是0开头、1结尾的等差数列。
h=1/n;
y=x./(4+x.^2); %计算向量x对应的函数值向量y
re_n=(y(1)+y(n+1))*h/2;
for i=2:n
re_n=re_n+y(i)*h; %for循环
end
xx=x(1:n)+h/2;
y=x./(4+x.^2);
re_2n=re_n/2;
for i=1:n
re_2n=re_2n+y(i)*h/2;
end
h=h/2;
n=1/h;
x=linspace(0,1,n+1);
while abs(re_2n-re_n)>eps %while循环
re_n=re_2n;
xx=x(1:n)+h;
y=x./(4+x.^2);
re_2n=re_n/2;
for i=1:n
re_2n=re_2n+y(i)*h/2;
end
h=h/2;
n=1/h+1;
x=linspace(0,1,n+1);
end
result=re_2n; %输出结果result.

mathjiang 2008-12-25 21:57

回复: [求助]求个高手都下面程序每步解释一下!(急用)
 
该程序中的两处 xx 均应为 x。
计算结果为 0.1116。


所有时间均为北京时间。现在的时间是 12:41

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.