![]() |
[求助]求个高手都下面程序每步解释一下!(急用)
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 |
回复: [求助]求个高手都下面程序每步解释一下!(急用)
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. |
回复: [求助]求个高手都下面程序每步解释一下!(急用)
该程序中的两处 xx 均应为 x。
计算结果为 0.1116。 |
所有时间均为北京时间。现在的时间是 03:44。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.