i=1:0.01:pi;
x=1:0.01:pi;
N1=13;
N2=15;
for i=1:pi+1
if 0.4*pi+1<=x(i)+1 && x(i)+1<=0.6*pi+1
phi_2(i)=(N2-N1)*x(i)+1/2;
end
if 0.0*pi+1<=x(i)+1 && x(i)+1<=0.2*pi+1
phi_2(i)=((N2-N1)*x(i)+1+pi)*0.5;
end
end
syms i;
Er=1-abs(exp(1j*(phi_2(i)-((N1+N2)/2)*i)).*cos(((N2-N1)/2)*i-phi_2(i) )).^2;
s=int((Er),0.4*pi,0.6*pi);
f=@(x);%积分函数
y0=f(0);%定积分初值
y1=f(2);%定积分终值
s=0;%积分结果
n=1;%将定积分区间分成了n份
while abs(s-pi)>=0.0001%确定精度为万分之一
n=n+1;%精度不满足的话份数就加1
s=0;%每次判断精度满足与否进行下一次循环,设定积分结果的初始值为0
h=2/n;%分成n份后的步长
for x=h:h:2-h%积分循环
s=s+h*f(x);
end
s=2*(s+(y0+y1)*h/2);%积分结果
end
disp('梯形公式积分得到圆的面积为'),s
你这代码看得有点乱,我帮你改了。。。
N1=13;
N2=15;
% 以下为分段函数,匿名函数
phi_2 = @(x)((N2-N1)*x+1/2) .* (0.4*pi+1<=x+1 & x+1<=0.6*pi+1) +...
(((N2-N1)*x+1+pi)*0.5) .* (0.0*pi+1<=x+1 & x+1<=0.2*pi+1);
% 被积函数
Er=@(x)1-abs(exp(1j*(phi_2(x)-((N1+N2)/2)*x)).*cos(((N2-N1)/2)*x-phi_2(x) )).^2;
%integral为匿名函数的积分,int为符号函数的积分
s=integral(Er,0.4*pi,0.6*pi);