声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1033|回复: 3

[编程技巧] 好心人帮我看看这个程序的结果如何输出

[复制链接]
发表于 2006-8-28 20:28 | 显示全部楼层 |阅读模式

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

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

x
这个程序是关于两条曲线求交点的,我能画出图来,但不知道交点的横坐标如何输出,请好心人指点一下,谢谢
A=0.33*4/3*pi*(0.7e-3)^3/5e-9
h=1/20
r=0.7e-3
e=0.5
p=586.8
a=0.0001:0.01:1000;
y1=cot(a);
y2=(h*e*A*3)./(pi*4*r^3*a*p);
plot(a,y1,'r.'),axis([0 1000 -1000 1000])
axis normal, grid on,
hold on
plot(a,y2,'b.'),axis([0 1000 -1000 1000])
axis normal, grid on,
hold off
pause
j=1;
for i=1:0.00001:5
    if abs(cot(i)-(h*e*A*3)/(pi*4*r^3*a*p))<1e-4
        k(j)=i
        j=j+1;
    end
end
i=k
f=cot(i)-((h*e*A*3)./(pi*4*r^3*(i)*p))

[ 本帖最后由 ahqiu198357 于 2006-8-28 21:04 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-8-28 21:12 | 显示全部楼层
发表于 2006-8-28 21:43 | 显示全部楼层
不说怎么求交点,就你的代码说一下。
我觉得数组k里就是交点的横坐标,但是实际上我怀疑你的程序执行完后会不会有数组k。
因为  if abs(cot(i)-(h*e*A*3)/(pi*4*r^3*a*p))<1e-4  这句代码里(h*e*A*3)/(pi*4*r^3*a*p)  是一个标量矩阵除一个横向量,维数是不对的。即使用点除恐怕也不行,因为cot(i)为标量,但另一个操作数是数组,那么运算后结果也是一个一维数组,也就是说if 语句的后面是一个数组,如果要执行k(j)=i   j=j+1;   就要求这个数组里的元素全不为零,如果有一个元素为零则不会执行,显然这个数组里的元素不会同时都不为零。
另外你这个程序不需要用循环语句,下面的语句即可:
k=[1:0.00001:5];
t=find(abs(cot(k)-(h*e*A*3)./(pi*4*r^3*k*p))<1e-4);
k(t) 即为横坐标。
再就,代码中不要对i、j赋值,特别是循环语句中容易像c语言一样用到i、j。因为matlab中i、j是代表虚单位,随意修改是不好的习惯。

评分

1

查看全部评分

发表于 2006-8-29 11:27 | 显示全部楼层

收获一些知识
谢谢你们
谢谢振动论坛
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-25 07:19 , Processed in 0.058913 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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