声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1747|回复: 10

[编程技巧] 关于符号函数syms

[复制链接]
发表于 2009-9-6 19:41 | 显示全部楼层 |阅读模式

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

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

x
我的程序段是这样的:
clear; g=0.01; n=24; cei=0.01; omga=1; bata=4.5; afa=0.1;
v=0.8; b=0.005*v^2; lame=[1.875 4.694 7.855];
syms x
for t=1:3
    fai(t)=cosh(lame(t)*x)-cos(lame(t)*x)-(cosh(lame(t))+cos(lame(t)))*(sinh(lame(t)*x)-sin(lame(t)*x))/(sinh(lame(t))+sin(lame(t)));
end
for i=1:3,  for j=1:3
        mm(i,j)=int(fai(j)*fai(i), x, 0, 1);
        cc(i,j)=cei*int(fai(j)*diff(fai(i), 4), x, 0, 1)/omga;
        kk(i,j)=(int(fai(j)*diff(fai(i), 4), x, 0, 1)-bata^2*afa*int((1-x)*fai(j)*diff(fai(i), 2), x, 0, 1)-1/2*bata^2*int((1-x^2)*fai(j)*diff(fai(i), 2), x, 0, 1))/omga^2;
        m(i,j)=double(mm(i,j)); c(i,j)=double(cc(i,j)); k(i,j)=double(kk(i,j));
end; end

运行之后一直提示这样的错误:
??? Error using ==> reshape
To RESHAPE the number of elements must not change.

Error in ==> sym.maple at 94
      result = reshape(result,size(varargin{3}));

Error in ==> sym.int at 51
   r = reshape(maple('map','int',f(:),[x.s '=(' a.s ')..(' b.s ')']),size(f));

怎么回事呢,我改了好久也不行。。太着急了,请大家帮帮忙~~

[ 本帖最后由 ChaChing 于 2009-10-27 20:02 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-9-6 20:01 | 显示全部楼层

回复 楼主 dongdongme 的帖子

这种问题很常见,可能是输入或某个量是向量或矩阵形式,而计算的函数不能直接对矩阵运算,所以出现元素数量不符的情况,找一下出错的位置,再向前找,对矩阵运算用点乘,所有的都要乘,
 楼主| 发表于 2009-9-6 21:25 | 显示全部楼层

回复 沙发 lxy04123 的帖子

不是啊,,都是对元素的运算啊。。
发表于 2009-9-7 08:49 | 显示全部楼层

可能

应该是第二十行int(fai(j)*fai(i), x, 0, 1)出的问题
发表于 2009-9-7 09:08 | 显示全部楼层
单步执行第一步是通的,之后一直busy。
我的版本是2008a
发表于 2009-9-7 09:32 | 显示全部楼层
当i=1,j=2时,20行int积分的函数表达式中含有/x项,即分母有x,若积分的话x=0时则为无穷大,可以使初始值设为非零试试
 楼主| 发表于 2009-9-7 15:49 | 显示全部楼层

回复 5楼 friendchj 的帖子

恩,我那个,busy了很长时间以后出现的提示错误~~
 楼主| 发表于 2009-9-7 16:02 | 显示全部楼层

回复 地板 lxy04123 的帖子

恩,是int的问题。。
 楼主| 发表于 2009-9-7 16:29 | 显示全部楼层

回复 6楼 lxy04123 的帖子

不是分母的问题。。
难道是j=2的时候,数字太大了没办法积分?。。
omg..
发表于 2009-9-7 17:16 | 显示全部楼层
把int改成quad试试,这样会加快运算速度。例如:
K>> ss=fai(2)*fai(1);
K>> ss=feval(@char,ss);
K>> quad(@(x)ss,0,1)
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In shiyan at 26
ans =
   90.2424
K>>

[ 本帖最后由 friendchj 于 2009-9-7 17:17 编辑 ]

评分

1

查看全部评分

发表于 2009-10-28 12:53 | 显示全部楼层

回复 楼主 dongdongme 的帖子

我也遇到了相似的问题,你的问题是怎么解决的啊?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-22 04:04 , Processed in 0.061316 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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