24小时热门版块排行榜    

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

zhs4276689

木虫 (正式写手)

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

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

lurencyj

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
zhs4276689: 金币+25, ★★★很有帮助, 好吧,我先自己学学,有问题再来请教,谢谢 2012-04-21 07:49:49
你得先解决隐变量问题在开始自恰计算。
隐变量问题怎么解,这个要具体问题具体分析,数值计算教科书里很多方法。

[ 发自手机版 http://muchong.com/3g ]
很女子很弓虽大
11楼2012-04-20 19:18:29
已阅   回复此楼   关注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的回帖
信息提示
请填处理意见