- 在线时间
- 7 小时
- 最后登录
- 2012-5-21
- 注册时间
- 2012-5-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 27 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 17
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 14
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 15
升级   12.63% TA的每日心情 | 难过 2012-5-21 09:45 |
---|
签到天数: 2 天 [LV.1]初来乍到
- 自我介绍
- 不光是数学,各个方面都是白痴啊!
 |
本帖最后由 半日妖 于 2012-5-18 00:18 编辑
x=0:0.001:3;
da=0.00012;
a=0:da:0.36;J0=bessel(0,x);
a1=cosh(7.85.*x.*cos(a)).*J0.*(7.85.*x.*sin(a)).*cos(a).*sin(a);
a2=sinh(7.85.*x.*cos(a)).*J0.*(7.85.*x.*sin(a)).*cos(a).*sin(a);
A1=sum(a1(1:length(a)-1)).*da;
A2=sum(a2(1:length(a)-1)).*da;
y=74185.14.*(A1+A2);
![]()
想要生成这个函数的函数图
出来的结果是个和x无关的常数,一个伟大的同学发现了问题,它每次都在对同一个x算的。如果输入不同的x值可以算出不同的y,但一个数组就不行了。
用了循环之后得到了大概不对的图像(和自己手动输入x值时得到的y不符合的)……
n=length(x);
for i=1:n;
J0(i)=bessel(0,x(i));
da=0.00012;
a=0:da:0.36;
a1=cosh(7.85.*x(i).*cos(a)).*J0(i).*(7.85.*x(i).*sin(a)).*cos(a).*sin(a);
a2=sinh(7.85.*x(i).*cos(a)).*J0(i).*(7.85.*x(i).*sin(a)).*cos(a).*sin(a);
A1(i)=sum(a1(1:length(a)-1))*da;
A2(i)=sum(a2(1:length(a)-1))*da;
y(i)=74185.14*(A1(i)+A2(i));
end
plot(x,y)
求助……请告诉我sum算积分怎么样才能对不是一直算相同的x……或者循环不能用吗?写错了吗?
顺便,换过其他的方法算积分,但是报错报得很疯狂……相比较而已还是sum好一点…… |
zan
|