声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2699|回复: 16

那位大虾帮帮忙阿?

[复制链接]
发表于 2006-3-14 16:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
这是我的程序,很简单的,都是矩阵的加碱,积分,求导什么的。为什么一算就很长时间,然后自动退出呢?第一个积分命令int前的程序都能运行,到int就不行了,怎么回事呢?那位大虾帮忙看看,谢谢了先!!<BR>syms z<BR>a=[z^2/34^2,z^3/34^3,z^4/34^4]<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 =[1/578,3/19652*z,3/334084*z^2]<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>
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-3-14 19:54 | 显示全部楼层
并求一个解决方法。不胜感激。。。
发表于 2006-3-15 09:19 | 显示全部楼层

回复:(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>
发表于 2006-3-15 15:59 | 显示全部楼层
我倒是很快能算出kesi来,但是bl,b2较长时间也没有计算出来,我就没有算了。建议你把复杂的计算结果先vpa一下后在进行后续计算,是不是好一点。
 楼主| 发表于 2006-3-15 17:27 | 显示全部楼层
<FONT color=#61b713 face=Verdana><B>kevinhcj:<BR>谢谢你,这么认真地对待我的问题,好感动阿。。。谢谢!<BR>我上次的问题没有表达清楚,请再帮帮忙吧!见下贴</B></FONT>
 楼主| 发表于 2006-3-15 17:29 | 显示全部楼层
<P>还是上次的源代码,当执行到b1=int(2*w,t,0,8)这个语句时,前面都可以执行,这句需要很长时间(几个小时吧),然后要么退出,要么就出现ans=NaN。改用数值积分b1=quadl(2*w,t,0,8),就出现了下面的信息:<BR>??? Error using ==&gt; fcnchk<BR>If FUN is a MATLAB object, it must have an feval method.</P>
<P>Error in ==&gt; quadl at 54<BR>f = fcnchk(funfcn);<BR>怎么回事呀?<BR><BR>源程序:<BR>syms z<BR>a=[z^2/34^2,z^3/34^3,z^4/34^4]<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 =[1/578,3/19652*z,3/334084*z^2]<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>[em03]
发表于 2006-3-15 17:52 | 显示全部楼层
你在查查帮助把,quadl的格式如下<BR>q = quadl(fun,a,b)<BR>被积函数fun需要定义成一个函数<BR>
发表于 2006-3-15 17:54 | 显示全部楼层
quadl和int不一样,前者是做数值积分的,后者做符号积分
 楼主| 发表于 2006-3-15 19:29 | 显示全部楼层
kevinhcj:<BR><BR>function怎么定义函数阿?你能告诉我么?<BR>今天我和我同学试了一天也不行,不知道为什么?<BR>很着急,帮帮忙吧!真的很感谢你。。。
发表于 2006-3-15 19:55 | 显示全部楼层
function定义函数随便找本书看看就行了
发表于 2006-3-15 20:18 | 显示全部楼层

回复:(hanxiao)kevinhcj:function怎么定义函数阿?...

% for example &amp; good luck!<BR><BR>function y = myfun(x)<BR>a=1; b=2; c=3;<BR>y = a*x^2+b*x+c;
 楼主| 发表于 2006-3-16 09:09 | 显示全部楼层
我用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.
发表于 2006-3-16 09:33 | 显示全部楼层

回复:(hanxiao)我用function定义函数,为什么出来这...

 楼主| 发表于 2006-3-16 12:42 | 显示全部楼层
我用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>
发表于 2006-3-16 12:56 | 显示全部楼层
如果你的主程序不是m函数,而只是m文件,你定义的函数就要另外保存,而且最后文件名和函数名相同。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-11 22:37 , Processed in 0.071672 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表