找回密码
 注册
Simdroid-非首页
查看: 97|回复: 4

一个超级简单的程序,但是总报错,请高手给看一下~

[复制链接]
发表于 2013-4-12 09:37:21 | 显示全部楼层 |阅读模式 来自 美国
function HW4()
  
  sum=0;
  for d=0:6.28/360:6.28
   
    v=(-u0(d)*cos(d)-XTraction(d)*du(d)-YTraction(d)*dv(d))*0.01*(6.28/360);
    sum=sum+v;
  
  end
  
  
  
  
  
  
function U=u0(d)
%calculate energy according to stresses.

  U=(sigemax(d)^2+sigemay(d)^2+5*tau(d)^2)/(4*100*10^9);
  
function sigema=sigemax(d)
%calculate x stress

  sigema=10*cos(d/2)*(1-sin(d/2)*sin(3*d/2))/sqrt(2*3.14);
  
function sigema=sigemay(d)
%calculate y stress

  sigema=10*cos(d/2)*(1+sin(d/2)*sin(3*d/2))/sqrt(2*3.14);
  
function tau=tau(d)
%calculate tau stress
  
  tau=10*cos(d/2)*sin(d/2)*cos(3*d/2)/sqrt(2*3.14);
  
function x=du(d)
%calculate derivative of u to x
%du=2.5*cos(d/2)*(1+2*sin(d/2)^2)/(4*100000)/cos(d)+0.25/(4*100000*sqrt(2*3.14))*(-sin(d/2)*(1+2*sin(d/2)^2)+4*cos(d/2)*sin(d/2)*cos(d/2))/(-0.01*sin(d));

  
  
  [x,y]=solve('2.49e-5*cos(d/2)*(1+2*sin(d/2)^2)=cos(d)*x+y*sin(d)','0.0249e-5*(-sin(d/2)*(1+2*sin(d/2)^2)+4*cos(d/2)*sin(d/2)*cos(d/2))=-x*0.01*sin(d)+y*0.01*cos(d)','x,y');
  x=subs(x);
  
function x=dv(d)
%calculate derivative of v to x
  
  [x,y]=solve('2.49e-5*sin(d/2)*(3-2*cos(d/2)^2)=x*cos(d)+y*sin(d)','0.0249e-5*(cos(d/2)*(3-2*cos(d/2)^2))+4*sin(d/2)*cos(d/2)*sin(d/2)=-x*0.01*sin(d)+y*0.01*cos(d)','x,y');
  x=subs(x);
  
function tx=XTraction(d)
%claculate traction of x-direction
  
  tx=-sigemax(d)*cos(d)-tau(d)*sin(d);
  
function ty=YTraction(d)
%claculate traction of y-direction
  
  ty=-tau(d)*cos(d)-sigemay*sin(d);
发表于 2013-4-12 22:16:09 | 显示全部楼层 来自 吉林
Simdroid开发平台
do循环的参数能不是正整数么
回复 不支持

使用道具 举报

 楼主| 发表于 2013-4-12 23:00:53 | 显示全部楼层 来自 美国
hongtianwenduo 发表于 2013-4-12 22:16
do循环的参数能不是正整数么

我没用do循环,用的for循环。出错提示
Error using HW4>sigemay (line 29)
Not enough input arguments.

Error in HW4>YTraction (line 59)
  ty=-tau(d)*cos(d)-sigemay*sin(d);

Error in HW4 (line 6)
    v=(-u0(d)*cos(d)-XTraction(d)*du(d)-YTraction(d)*dv(d))*0.01*(6.28/360);
回复 不支持

使用道具 举报

发表于 2013-4-13 20:58:54 | 显示全部楼层 来自 吉林
ty=-tau(d)*cos(d)-sigemay*sin(d);应更改为
ty=-tau(d)*cos(d)-sigemay(d)*sin(d);
回复 不支持

使用道具 举报

 楼主| 发表于 2013-4-14 22:28:01 | 显示全部楼层 来自 美国
hongtianwenduo 发表于 2013-4-13 20:58
ty=-tau(d)*cos(d)-sigemay*sin(d);应更改为
ty=-tau(d)*cos(d)-sigemay(d)*sin(d);

啊啊啊,捂脸
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-7-1 09:27 , Processed in 0.029032 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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