| 查看: 1154 | 回复: 6 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
gaojinggigi新虫 (正式写手)
|
[求助]
求助matlab写循环
|
|
|
各位大侠,我现在有以下程序,不知道怎么写循环,能不能帮我看一下? a=0.8; n=1.45; f=100; x0=a;y0=0; gamma1=atan((x0+a)/(y0+f)) alpha1=gamma1/(n-1) beta1=alpha1*n l1=2*a*sin(alpha1)/cos(beta1) x1=x0+(2*a+l1*cos(gamma1)) y1=y0+(l1*sin(gamma1)) gamma2=atan((x1+a)/(y1+f)) alpha2=gamma2/(n-1) beta2=alpha2*n l2=2*a*sin(alpha2)/cos(beta2) x2=x1+(2*a+l2*cos(gamma2)) y2=y1+(l2*sin(gamma2)) gamma3=atan((x2+a)/(y2+f)) alpha3=gamma3/(n-1) beta3=alpha3*n l3=2*a*sin(alpha3)/cos(beta3) x3=x2+(2*a+l3*cos(gamma3)) y3=y2+(l3*sin(gamma3)) 在x<20,y<0.5时要一直算出xn,yn来,最后得出一组(x,y)的数据,请问怎么写循环语句啊?这么多变量我已经完全晕掉了,求赐教~ |
» 猜你喜欢
🌟 比利时新鲁汶大学(UCLouvain)诚邀CSC博士加入Pascal Gehring教授团队
已经有0人回复
第一性原理计算方向2026级博士申请 PRB*1,四级484
已经有1人回复
物理学I论文润色/翻译怎么收费?
已经有199人回复
求助VISSIM破解版软件
已经有0人回复
求2026年在台湾举行的物理和材料领域国际学术会议信息
已经有0人回复
求国际会议网站
已经有1人回复
求取一些关于纳米材料和纳米技术相关的英文PPT。
已经有0人回复
【复旦大学】二维材料方向招收2026年博士研究生1名
已经有0人回复
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有2人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab循环计算转为矩阵 30金币求助
已经有7人回复
求助 MATLAB解方程组-fslove
已经有7人回复
matlab画图求助
已经有11人回复
求助 matlab交点问题
已经有19人回复
求助matlab编程
已经有13人回复
【求助】MATLAB、Mathematica和Maple这三大数学软件的优缺点
已经有41人回复
【求助】matlab 中,几个m文件调用
已经有14人回复
【求助】一个matlab窗口占25%CPU,如何提高?
已经有11人回复
【求助】关于matlab循环
已经有6人回复
【求助】matlab 积分的问题
已经有5人回复
【求助】问一个关于matlab中legend的问题
已经有11人回复
【求助】 求MAtlab求解程序!!!
已经有20人回复
【求助】matlab中保存计算数据的问题
已经有8人回复


6楼2012-12-21 16:32:44

2楼2012-12-21 09:25:31
gaojinggigi
新虫 (正式写手)
- 应助: 3 (幼儿园)
- 金币: 820.7
- 散金: 186
- 红花: 2
- 帖子: 513
- 在线: 80.5小时
- 虫号: 2124879
- 注册: 2012-11-13
- 性别: MM
- 专业: 激光
|
大侠,我后来发现每计算一次出来y>0.4,需要改变x(i)和y(i)和a的初值,x(i)和a的初值是下面程序的值,y(i)=0,再进行之前的循环,再求出y>0.4,改变x(i)和y(i)和a,一直计算到x>20结束。可是我加上if条件之后不知道怎么让它返回继续循环,还有x>20停止循环的命令怎么加? 我不会加循环,每次计算完了找到y>0.4的值再用公式求出a和x再代入,发现做了十几步还没做完~愁死我了~ a0=0.8; a=-0.8; n=1.411; f=100; x(1)=a;y(1)=0; for ii=2:1:100 gamma(ii)=atan((x(ii-1)-a)/(y(ii-1)+f)); alpha(ii)=atan(sin(gamma(ii)/(n-cos(gamma(ii))))); beta(ii)=asin(sin(alpha(ii))*n); l(ii)=(a0-a)*sin(alpha(ii))/cos(beta(ii)); x(ii)=x(ii-1)+(a0-a+l(ii)*sin(gamma(ii))) y(ii)=y(ii-1)+(l(ii)*cos(gamma(ii))) if y(ii)>0.4 x(ii)=(0.4-y(ii-1))/tan(alpha(ii)); a=x(ii)-(f+0.4)*tan(gamma(ii)); y(ii)=0; ii=ii+1; end end |

3楼2012-12-21 15:59:13

4楼2012-12-21 16:13:44













回复此楼