matalab求符号定积分
各位大佬,请教一下,我对函数 f(r)=int((- a*(r - b/r) - T/K)^(1/n), r)求积分,但是没有积出来,下面是我的代码,谢谢
syms a b r T K n;
>> kkk=int((- a*(r - b/r) - T/K)^(1/n), r)
kkk =
int((- a*(r - b/r) - T/K)^(1/n), r)
其实,你仔细观察一下会发现,用第二种方法得到xk表达式之后再subs代入的结果有这样的特点:
1、大部分项的值都很小,量级在10^(-16),可以看作0;
2、对应于第一种方法得到的非零项的结果是Inf或NaN。
这有两个原因:
1、第1种情况由数值计算误差导致;
2、第2种情况是因为,求出的xk表达式中,分母有因式(k^4 - 5*k^2 + 4),也就是对于k=±2,±1来说会出现被0除的情况。
解决这个问题可以用极限:
123456syms t kxk1=int((cos(2*pi*t)+sin(4*pi*t))*exp(-i*2*pi*k*t),t,-0.5,0.5);K=-10:1:10;for ii=1:length(K) xk2(ii)=limit(xk1,k,K(ii));end这样得到的结果就和第一种方法相同了。
上一篇:数学题求解
热门标签: