声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1255|回复: 10

[编程技巧] 关于循环迭代的出错问题

[复制链接]
发表于 2007-12-27 14:09 | 显示全部楼层 |阅读模式

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

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

x
题目:用循环迭代求取c点的轨迹,和移动的g点轨迹
假设xA为已知,先取xC1=xA;
k=[sqrt(R0^2+(e^2-1)*xC1^2)]/xC1;此为c点的法线斜率,
xC2=xA-r/sqrt(1+k^2);
zC2=[R0-sqrt(R0^2+(e^2-1)xC2^2)] /(e^2-1);
zA=zC2+k(Xa- xC2)
xG=xA+q;
zG= zA+L
已知
R0=8000;e^2=1.1;r=2.5;q=125;l=300;i=1;

下面是我编的程序,可是对循环迭代不是很清楚,所以无法得出想要的结果,希望各位帮我看看有什么问题,谢谢!!

clc;clear;
F1=kongkong(i,6);
R0=8000;
e2=1.1;
r=2.5;
q=125;
l=300;
i=1;
xA=1;
xC(i)=xA;
while(abs(b)>=10^(-8))  % while(abs(b)>=1e-8)
    i=i+1;% 放在后面
    k(i)=sqrt(R0^2+(e2-1)*xC(i)^2)./xC(i);
    xC(i+1)=xA-r/sqrt(1+k(i)^2);
    zC(i+1)=(R0-sqrt(R0^2+(e2-1)*xC(i+1)^2))/(e2-1);
    zA(i)=zC(i+1)+k(i)*(xA-xC(i+1));
    xG(i)=xA+q;
    zG(i)=zA(i)+l;
    b=(xC(i)-xC(i-1));
end
F1(i,1)=xA;%这几个都没有循环
F1(i,2)=zA;%F1有什么用
F1(i,3)=xC;
F1(i,4)=zC;
F1(i,5)=xG;
F1(i,6)=zG;
plot(xC,zC)
plot(xA,zA)
plot(xG,zG)
hold on
end %这个对应哪个??
format short g,F1;


[ 本帖最后由 eight 于 2007-12-27 17:35 编辑 ]
nbdbgvdhnbtv.jpg
回复
分享到:

使用道具 举报

发表于 2007-12-27 14:20 | 显示全部楼层

回复 #1 juan0526 的帖子

??? Undefined function or method 'kongkong' for input arguments of type
'double'.

F1=kongkong(i,6);
这个是什么
 楼主| 发表于 2007-12-27 14:47 | 显示全部楼层

回复 #2 sigma665 的帖子

呵呵,首先感谢小西,其次很惭愧有那么多的问题。。。真是不好意思:@$
1、F1(i,6)是我定义的i行6列数组,因为最终还是希望输出数据的;(kongkong只是随便起的一个名字)
2、while(abs(b)>=1e-8)  不知道为什么可以这样写;
3、怎样让它循环下去,并输出呢
发表于 2007-12-27 15:20 | 显示全部楼层
原帖由 juan0526 于 2007-12-27 14:47 发表
呵呵,首先感谢小西,其次很惭愧有那么多的问题。。。真是不好意思:@$
1、F1(i,6)是我定义的i行6列数组,因为最终还是希望输出数据的;(kongkong只是随便起的一个名字)
2、while(abs(b)>=1e-8)  不知道 ...



kongkong()那个运行不了
while(abs(b)>=1e-8 这个跟你一样的

你程序不完整,没法运行,所以不好调试
 楼主| 发表于 2007-12-27 15:48 | 显示全部楼层
你说的不完整,或许是指我的程序无法循环起来吧
现在的问题就是这个呢,
抓狂中。。。
发表于 2007-12-27 16:08 | 显示全部楼层
原帖由 juan0526 于 2007-12-27 15:48 发表
你说的不完整,或许是指我的程序无法循环起来吧
现在的问题就是这个呢,
抓狂中。。。

不是啊
那你这句能运行吗
F1=kongkong(i,6);
发表于 2007-12-27 16:11 | 显示全部楼层
程序问题很多, 后面的注释不是已经讲得很清楚了吗?
先按照其修改,有问题再来讨论.
发表于 2007-12-27 17:35 | 显示全部楼层
原帖由 juan0526 于 2007-12-27 14:09 发表
题目:用循环迭代求取c点的轨迹,和移动的g点轨迹
假设xA为已知,先取xC1=xA;
k=[sqrt(R0^2+(e^2-1)*xC1^2)]/xC1;此为c点的法线斜率,
xC2=xA-r/sqrt(1+k^2);
zC2=[R0-sqrt(R0^2+(e^2-1)xC2^ ...

建议先阅读基础书,然后再慢慢调试
 楼主| 发表于 2007-12-29 09:39 | 显示全部楼层
谢谢各位!!
发表于 2008-1-3 21:10 | 显示全部楼层
这个论坛还是有很多热心人的
发表于 2008-1-4 11:29 | 显示全部楼层
建议你画一个框图,整理一下逻辑关系
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-5 10:54 , Processed in 0.113786 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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