Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2011-09-08
住址: 上海
年龄: 37
帖子: 1
声望力: 0 ![]() |
![]()
现在在做一个东西,运用多次迭代计算一个被积函数。我在Matlab中定义了:syms kp,
想计算出关于kp的多项式后,转化为函数然后积分。但是今天,遇到了一个让我很郁闷的事情。计算的结果,在积分时运用feval函数时会报错: Undefined function or variable 'I'。 我看了一下,被积函数是: fKzx = @(kp)1/kp^2*(exp((0.00061512385228351196611584761342328-1.0*kp^2*(1/2)*(-1.0*I))。。。。。。(后面很长不贴出来了) 我看了就不懂了,我只定义了kp,为什么会出现这个 I 啊。 我继续查,fKzx是从fKzx=str2func(['@(kp)' char(SKzx)])来的,结果看到SKzx是: SKzx =1/kp^2*(exp((0.00061512385228351196611584761342328 - 1.0*kp^2)^(1/2)*(-1.0*I))。。。。。。(依旧很长,不贴出来了),就是发现里面也有 I。 继续查,Skzx是从SKzx=((k(m)^2)*Wie/(kz(m)^2)-Wih)/(kp^2)来的,然后我发现了一件很郁闷的事情。我计算((k(m)^2)*Wie/(kz(m)^2)-Wih)结果是: ans =exp((0.00061512385228351196611584761342328 - 1.0*kp^2)^(1/2)*(-1.0*I))。。。。。。。依旧有这个 I 但是我把减号分开来,前面的(k(m)^2)*Wie/(kz(m)^2)结果是: (3.9489819655623694055740118840808*i(( 11234.67804748527200260299023838*( 0.00070299868832401392337860812631334 - 1.0*kp^2)^(1/2) - 9986.3804866535757461374892490029*(0.00079087352436451566380093414210251 - 1.0*kp^2)^(1/2))/。。。。。。。。 后面的Wih是: -(3.9489819655623701007475427327823*i*((0.1266149109720726617095336224125*(0.00070299868832401392337860812631334 - 1.0*kp^2)^(1/2) - 0.1266149109720726617095336224125*(0.00079087352436451566380093414210251 - 1.0*kp^2)^(1/2))/(exp(1.0*i*(0.00070299868832401381495839087776289 - 1.0*kp^2)^(1/2))*(0.1266149109720726617095336224125*(0.00070299868832401392337860812631334 - 1.0*kp^2)^。。。。。。。。 总之这两项都只是kp的多项式。 所以我就郁闷了,为什么两个只是kp的多项式的式子相减,结果会出来一个有大写字母I 的参量的式子啊。而且之后这个 I 怎么都弄不掉,到了积分时又说我没有定义,而此时也无法给I任务赋值和定义。 求救啊,这是为什么啊???????? 补充一点:我的计算涉及复数计算,但是我使用的所有复数描述方式都是 1i 。而计算的结果中也有 i 出现以表示复数,实在不知道这个大写的 I 到底是什么情况。 此帖于 2011-09-08 20:32 被 ReallyLin 编辑。 原因: 补充一点 |
![]() |
![]() |