function I=trapezia(a,b,eps)
h=b-a;
T1=h*(f(a)+f(b))/2;
while 1
u=h/2;
x=a+u;
H=0;
while x<b
H=H+f(x);
x=x+h;
end
T2=(T1+h*H)/2;
if abs(T2-T1)<eps
I=T2+(T2-T1)/3;
break
end
h=u;
T1=T2;
end
function c=dichotomy(a,b,eps)
aa=a;
bb=b;
I=trapezia(a,b,eps);
err=b-a;
while err>=eps
c=(a+b)/2;
if I-f(c)*(bb-aa)==0
break
end
if(I-f(a)*(bb-aa)* (I-f(c)*(bb-aa))<0)
b=c;
else
a=c;
end
err=b-a;
end
a=input('a=');
b=input('b=');
eps=input('eps=')
c=dichotomy(a,b,eps);
fill([a,a,b,b],[0,f(c),f(c),0],'y')
hold on
x=a:0.001:b;
y=f(x);
plot(x,y,'b')
plot([c,c],[0,f(c)],'r:')
string=['c=',num2str(c)];
text(c,0.03,string)
title('定积分中的几何意义')
hold off
显示出来是这个错误 不知道什么意思
Error in ==> C:\MATLAB6p5\work\trapezia.m
On line 2 ==> h=b-a;
请问怎么定义啊
我没学过matlab
这种函数形式的我也不太清楚,感觉是个问题,你在问问吧