matlab 三角函数积分,这个三角函数积分结果为复数,为什么?

博客探讨了使用matlab进行三角函数积分时出现复数结果的情况。通过展示具体的积分过程,包括使用替换变量和部分分数展开,发现在某些区间内,积分结果包含复数部分。分析了可能的原因,如计算精度问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

icon1.gif 回复: 这个三角函数积分结果为复数,为什么?

我也觉得有意思.

In[1]:= fs[x_] :=

Integrate[

Sin[t]/((Cos[t] + 0.015*Cos[t]/1.2 - (Cos[t])^2))^5, {t, 0, x}]

In[2]:= {Cos[t] -> u, -Sin[t] DifferentialD[t] -> DifferentialD[u]}

integrand = -1/(u + .015 u/1.2 - u^2)^5

Out[2]= {Cos[t] -> u, -DifferentialD[t] Sin[t] -> DifferentialD[u]}

Out[3]= -(1/(1.0125 u - u^2)^5)

In[4]:= fs[x_] := Integrate[integrand, {u, 1, Cos[x]}]

In[5]:= Apart[integrand]

Out[5]= 0.939777/(-1.0125 + u)^5 - 4.64087/(-1.0125 +

u)^4 + 13.7507/(-1.0125 + u)^3 - 31.6889/(-1.0125 +

u)^2 + 62.5954/(-1.0125 +

u) - 0.939777/u^5 - 4.64087/u^4 - 13.7507/u^3 - 31.6889/u^2 - \

62.5954/u

In[6]:= {Integrate[%[[1]], {u, 1, Cos[x]}],

Integrate[%[[2]], {u, 1, Cos[x]}], Integrate[%[[3]], {u, 1, Cos[x]}],

Integrate[%[[4]], {u, 1, Cos[x]}],

Integrate[%[[5]], {u, 1, Cos[x]}], Integrate[%[[6]], {u, 1, Cos[x]}],

Integrate[%[[7]], {u, 1, Cos[x]}],

Integrate[%[[8]], {u, 1, Cos[x]}], Integrate[%[[9]], {u, 1, Cos[x]}],

Integrate[%[[10]], {u, 1, Cos[x]}]}

Out[6]= {0.939777 If[

Re[Cos[x]] <= 1.0125 || Cos[x] \[NotElement] Reals,

1.024*10^7 - 0.25/(-1.0125 + Cos[x])^4,

Integrate[1/(-1.0125 + u)^5, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] <= 1.0125 ||

Cos[x] \[NotElement] Reals)]], -4.64087 If[

Re[Cos[x]] <= 1.0125 || Cos[x] \[NotElement] Reals, -170667. -

0.333333/(-1.0125 + Cos[x])^3,

Integrate[1/(-1.0125 + u)^4, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] <= 1.0125 ||

Cos[x] \[NotElement] Reals)]],

13.7507 If[Re[Cos[x]] <= 1.0125 || Cos[x] \[NotElement] Reals,

3200. - 0.5/(-1.0125 + Cos[x])^2,

Integrate[1/(-1.0125 + u)^3, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] <= 1.0125 ||

Cos[x] \[NotElement] Reals)]], -31.6889 If[

Re[Cos[x]] <= 1.0125 || Cos[x] \[NotElement] Reals, -80. -

1./(-1.0125 + Cos[x]),

Integrate[1/(-1.0125 + u)^2, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] <= 1.0125 ||

Cos[x] \[NotElement] Reals)]],

62.5954 If[

Re[Cos[x]] <= 1.0125 ||

Cos[x] \[NotElement] Reals, (4.38203 - 3.14159 I) +

Log[-1.0125 + Cos[x]],

Integrate[1/(-1.0125 + u), {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] <= 1.0125 ||

Cos[x] \[NotElement] Reals)]], -0.939777 If[

Re[Cos[x]] >= 0 || Cos[x] \[NotElement] Reals, 1/4 - Sec[x]^4/4,

Integrate[1/u^5, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] >= 0 ||

Cos[x] \[NotElement] Reals)]], -4.64087 If[

Re[Cos[x]] >= 0 || Cos[x] \[NotElement] Reals, 1/3 - Sec[x]^3/3,

Integrate[1/u^4, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] >= 0 ||

Cos[x] \[NotElement] Reals)]], -13.7507 If[

Re[Cos[x]] >= 0 || Cos[x] \[NotElement] Reals, -(1/2) Tan[x]^2,

Integrate[1/u^3, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] >= 0 ||

Cos[x] \[NotElement] Reals)]], -31.6889 If[

Re[Cos[x]] >= 0 || Cos[x] \[NotElement] Reals, 1 - Sec[x],

Integrate[1/u^2, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] >= 0 ||

Cos[x] \[NotElement] Reals)]], -62.5954 If[

Re[Cos[x]] >= 0 || Cos[x] \[NotElement] Reals, Log[Cos[x]],

Integrate[1/u, {u, 1, Cos[x]},

Assumptions -> ! (Re[Cos[x]] >= 0 || Cos[x] \[NotElement] Reals)]]}

In[7]:= % /. x -> 1

Out[7]= {9.62331*10^6, 792028., 43971.5, 2468.01,

227.326 + 0. I, 2.52193, 8.26076, 16.6763, 26.9615, 38.5354}

In[8]:= Apply[Plus, %]

Out[8]= 1.04621*10^7 + 0. I

In[9]:= %%% /. x -> 0

Out[9]= {0., 0., 0., 0., 0. + 0. I, 0, 0, 0, 0, 0}

In[10]:= %%%% /. x -> .5

Out[10]= {9.62261*10^6, 791413., 43624.7, 2300.24,

148.91 + 0. I, 0.161163, 0.741877, 2.05193, 4.42042, 8.17398}

In[11]:= Apply[Plus, %]

Out[11]= 1.04601*10^7 + 0. I

这样,在虚数符号前的系数就是0.了,是不是计算精度的问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值