- まず、あなたのヘヴィサイド関数の式を、私が正しいと思う形に変更しました。
- 次に、mu と T の定義を明示的に導入しました。
- 第三に、積分を次のように 4 つの要素に分解し、それらを個別に評価しました (Fraukje が提案した方法に沿って)。
- 第四に、
quadl
これは問題ですが、私は を使用します。重要度は低い。
- (編集) の範囲を変更しました
ff
変更を加えたコードは次のとおりです。
fstep=1;
ff=[1:fstep:265 275:fstep:1000];
T = 3;
mu = 135;
df = 0.01;
xmax = 10;
K1=(2*T/pi)*log(2*cosh(mu/(2*T)));
theta1=ones(size(ff));
theta1(ff-2*mu<0)=0;
I1=zeros(size(ff));
for n = 1:numel(ff)
f = ff(n);
sigm1 = @(x) sinh(x/T)./((f^2-4*x.^2).*(cosh(mu/T)+cosh(x/T)));
sigm2 = @(x) -theta1(n)./(f^2-4*x.^2);
I1(n) = K1/f + (f/pi)*quadl(sigm1,0,f/2-df); % term #1
% I1(n) = I1(n) + (f/pi)*quadl(sigm1,f/2+df,xmax); % term #2
% I1(n) = I1(n) + (f/pi)*quadl(sigm2,0,f/2-df); % term #3
% I1(n) = I1(n) + (f/pi)*quadl(sigm2,f/2+df,xmax); % term #4
end
x=f/2
明らかに特異点 (0 による除算) があるため、積分を分割することを選択しました。しかし、項 #2 と #4 で追加の問題が発生します。これはx>f/2
、おそらくすべての三角項が原因で、 について積分が評価されるときです。
項 1 と 3 のみを保持すると、表示するプロットにかなり似たものが得られます。

ただし、おそらく関数をより詳しく調べて、 の積分を評価するために何ができるかを確認する必要がありますx>f/2
。
編集
コードを再度調べて、補助積分を再定義しました。
I1=zeros(size(ff));
I2=zeros(size(ff));
I3=zeros(size(ff));
for n = 1:numel(ff)
f = ff(n);
sigm3 = @(x) sinh(x/T)./((f^2-4*x.^2).*(cosh(mu/T)+cosh(x/T))) -theta1(n)./(f^2-4*x.^2);
I1(n) = K1/f + (f/pi)*quadl(sigm3,0,f/2-df);
I2(n) = (f/pi)*quadl(sigm3,f/2+df,10);
end
I3=I2;
I3(isnan(I3)) = 0;
I3 = I3 + I1;
出力は次のようになります。

緑色の線は関数の積分で、問題0<x<f/2
ないようです。赤い線は積分オーバーInf>x>f/2
であり、周囲で明らかに失敗していf=270
ます。NaN
青い曲線は、 を積分したときの寄与分を除いた合計 (総積分)Inf>x>f/2
です。
私の結論は、あなたが期待するように曲線に何か問題があるかもしれないということです。