CyRhmU.jpeg
查看: 2871  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhs4276689

木虫 (正式写手)

[求助] Matlab如何实现这样的计算:赋值——计算——判断结果——重复

以前没学过Matlab,最近急着计算一个数,才想起来看,但是入门难啊,所以想先问问大家。
如何实现赋值——计算——判断结果(合适则结束,不合适则重新赋值)这样的循环,比如说:
赋值A*,代入A=f(A*),获得A,若A=A*,则结束,不等则重新赋值A*=A*-x,反复循环,直到获得最终结果
请高手帮忙,程序写得尽量详细,我好学习,谢谢!
呵呵,这个过程应该叫迭代吧?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

楼主能不能表述的清楚一点呢? 大小写也区分一下。F1和f是不是一样?
很女子很弓虽大
8楼2012-04-20 17:55:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

ght1102

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhs4276689: 金币+5, 有点没看懂,呵呵 2012-04-20 17:28:40
你可以这样:
A* = ;
A = f(A*);
while A ~=A*
   A* = A*-x;
   A = f(A*);
end
2楼2012-04-20 15:11:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhs4276689: 金币+10, 谢谢,对于两个参数的怎么办?请再指点下 2012-04-20 17:29:31
“赋值A*,代入A=f(A*),获得A,若A=A*,则结束,不等则重新赋值A*=A*-x,反复循环,直到获得最终结果”

就把A看作一个数,不是一个矩阵。
[code]
ErrorA = 1E-3;   % 迭代的容忍误差
A = A0;                % A0是初始数值,一定程度上随便选择的一个数
A_pre = A0 + 10*ErrorA;             % 定义上次迭代的结果的变量。

while   abs(A - A_pre) > ErrorA
        A_pre = A;            %保存上次计算现场
        A = f(A + x);            %计算新的A数值
end

[code]
很女子很弓虽大
3楼2012-04-20 16:19:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

上面发的帖子格式没对,呵呵,故重复一下:


“赋值A*,代入A=f(A*),获得A,若A=A*,则结束,不等则重新赋值A*=A*-x,反复循环,直到获得最终结果”

就把A看作一个数,不是一个矩阵。
CODE:
ErrorA = 1E-3;   % 迭代的容忍误差
A = A0;                % A0是初始数值,一定程度上随便选择的一个数
A_pre = A0 + 10*ErrorA;             % 定义上次迭代的结果的变量。

while   abs(A - A_pre) > ErrorA
        A_pre = A;            %保存上次计算现场
        A = f(A + x);            %计算新的A数值
end

很女子很弓虽大
4楼2012-04-20 16:20:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见