那位大虾帮帮忙阿?
这是我的程序,很简单的,都是矩阵的加碱,积分,求导什么的。为什么一算就很长时间,然后自动退出呢?第一个积分命令int前的程序都能运行,到int就不行了,怎么回事呢?那位大虾帮忙看看,谢谢了先!!<BR>syms z<BR>a=<BR>a1=diff(a)<BR>a2=diff(a1)<BR>m=int((212160-858*z)*a'*a,0,34)<BR>kesi=int((212160-858*z)*a',0,34)<BR>p=-kesi*2.383*10^-2<BR>r=int(2.1*10^11*(29.962-0.702*z)*a2'*a2,0,34)<BR>k2=-int(10^6*a1'*a1,0,34)<BR>k=r+k2<BR>syms t<BR>e=k-t^2*m<BR>d=-0.1*k<BR>i=d*d+e*e<BR>yi=inv(i)*d*p<BR>yr=inv(i)*e*p<BR>x=yr(1)+yr(2)+yr(3)<BR>y=yi(1)+yi(2)+yi(3)<BR>w=x^2+y^2<BR>b1=int(2*w,t,0,8)<BR>b2=int(2*t^2*w,t,0,8)<BR>double(b1)<BR>double(b2)<BR>z=34<BR>a2 =<BR>x1=a2(1)*yr(1)+a2(2)*yr(2)+a2(3)*yr(3)<BR>y1=a2(1)*yi(1)+a2(2)*yi(2)+a2(3)*yi(3)<BR>w1=x1^2+y1^2<BR>wj1=12.8*10^11*int(2*w1,t,0,8)<BR>wj2=12.8*10^11*int(2*t^2*w1,t,0,8)<BR>double(wj1)<BR>double(wj2)<BR> 并求一个解决方法。不胜感激。。。回复:(hanxiao)那位大虾帮帮忙阿?
<DIV class=quote><B>以下是引用<I>hanxiao</I>在2006-3-14 16:29:44的发言:</B><BR>kesi=int((212160-858*z)*a',0,34)<BR></DIV><P>这个积分不存在,换数值积分吧</P> 我倒是很快能算出kesi来,但是bl,b2较长时间也没有计算出来,我就没有算了。建议你把复杂的计算结果先vpa一下后在进行后续计算,是不是好一点。 <FONT color=#61b713 face=Verdana><B>kevinhcj:<BR>谢谢你,这么认真地对待我的问题,好感动阿。。。谢谢!<BR>我上次的问题没有表达清楚,请再帮帮忙吧!见下贴</B></FONT> <P>还是上次的源代码,当执行到b1=int(2*w,t,0,8)这个语句时,前面都可以执行,这句需要很长时间(几个小时吧),然后要么退出,要么就出现ans=NaN。改用数值积分b1=quadl(2*w,t,0,8),就出现了下面的信息:<BR>??? Error using ==> fcnchk<BR>If FUN is a MATLAB object, it must have an feval method.</P>
<P>Error in ==> quadl at 54<BR>f = fcnchk(funfcn);<BR>怎么回事呀?<BR><BR>源程序:<BR>syms z<BR>a=<BR>a1=diff(a)<BR>a2=diff(a1)<BR>m=int((212160-858*z)*a'*a,0,34)<BR>kesi=int((212160-858*z)*a',0,34)<BR>p=-kesi*2.383*10^-2<BR>r=int(2.1*10^11*(29.962-0.702*z)*a2'*a2,0,34)<BR>k2=-int(10^6*a1'*a1,0,34)<BR>k=r+k2<BR>syms t<BR>e=k-t^2*m<BR>d=-0.1*k<BR>i=d*d+e*e<BR>yi=inv(i)*d*p<BR>yr=inv(i)*e*p<BR>x=yr(1)+yr(2)+yr(3)<BR>y=yi(1)+yi(2)+yi(3)<BR>w=x^2+y^2<BR>b1=int(2*w,t,0,8)<BR>b2=int(2*t^2*w,t,0,8)<BR>double(b1)<BR>double(b2)<BR>z=34<BR>a2 =<BR>x1=a2(1)*yr(1)+a2(2)*yr(2)+a2(3)*yr(3)<BR>y1=a2(1)*yi(1)+a2(2)*yi(2)+a2(3)*yi(3)<BR>w1=x1^2+y1^2<BR>wj1=12.8*10^11*int(2*w1,t,0,8)<BR>wj2=12.8*10^11*int(2*t^2*w1,t,0,8)<BR>double(wj1)<BR>double(wj2)<BR><BR></P><BR> 你在查查帮助把,quadl的格式如下<BR>q = quadl(fun,a,b)<BR>被积函数fun需要定义成一个函数<BR> quadl和int不一样,前者是做数值积分的,后者做符号积分 kevinhcj:<BR><BR>function怎么定义函数阿?你能告诉我么?<BR>今天我和我同学试了一天也不行,不知道为什么?<BR>很着急,帮帮忙吧!真的很感谢你。。。 function定义函数随便找本书看看就行了
回复:(hanxiao)kevinhcj:function怎么定义函数阿?...
% for example & good luck!<BR><BR>function y = myfun(x)<BR>a=1; b=2; c=3;<BR>y = a*x^2+b*x+c; 我用function定义函数,为什么出来这些?<BR>我是新手,大家帮帮忙吧!!<BR>function y=myfun(t)<BR>??? function y=myfun(t)<BR> |<BR>Error: Function definitions are not permitted at the prompt or in scripts.回复:(hanxiao)我用function定义函数,为什么出来这...
老问题了,看帖子http://forum.vibunion.com/forum/viewthread.php?tid=5018吧 我用function定义函数,为什么或出现下面的情况?<BR>function y=myfun(x)<BR>??? function y=myfun(x)<BR> |<BR>Error: Function definitions are not permitted at the prompt or in scripts.<BR> 如果你的主程序不是m函数,而只是m文件,你定义的函数就要另外保存,而且最后文件名和函数名相同。
页:
[1]
2