声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1448|回复: 8

[图像处理] 编程模拟遇到的一个问题

[复制链接]
发表于 2008-5-26 21:54 | 显示全部楼层 |阅读模式

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

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

x
编程模拟碰到的一个问题,我对两个程序进行了对比,程序一是没有问题的:
程序一:
clear;
x=2.5;y=25;a=0.1;b=0.2;i=1;
while x>0
    z=a*y+b*x;
    x=x-a*z;
    y=b*(y-z+y;
    X(i)=x;
   Y(i)=y;
    i=i+1;
end
plot(X,Y)
但是程序二却不知道该怎么解决,该程序中第一个等式必须要先求出z,下面的运算才能进行下去,我尝试过用solve求z,但是不行,请求达人给予指点,可以联系我邮箱robinforever@zju.edu.cn  真是感激不尽!
程序二:
clear;
x=2.5;y=25;a=0.1;b=0.2;i=1;
while x>0
    z=a*y+b*x+log(z);
    x=x-a*z;
    y=b*(y-z+y;
    X(i)=x;
   Y(i)=y;
    i=i+1;
end
回复
分享到:

使用道具 举报

发表于 2008-5-26 22:07 | 显示全部楼层

回复 楼主 的帖子

y=b*(y-z+y;
你确定你能运行吗,第一个
 楼主| 发表于 2008-5-26 22:17 | 显示全部楼层
我输入失误,括号少了半边,应该是y=b*(y-z)+y
发表于 2008-5-27 07:41 | 显示全部楼层
先给个z初值
然后迭代呢
发表于 2008-5-27 09:39 | 显示全部楼层
你的程序一貌似是死循环啊,还是你没有把变量给全
 楼主| 发表于 2008-5-27 14:07 | 显示全部楼层
程序一应该不是死循环啊,我自己也运行过,可以的;
程序二我笔算了一下应该也不是死循环,但是我不知道怎么把z求出来,相当于 z=a*y+b*x+log(z) 要循环求解了,用solve不行的,楼上说的用迭代我也试过了,没有成功,很烦啊,弄了很久了,貌似一个很简单的程序,就是不知道该怎么办…… 求达人详解迷津,不胜感激啊!
 楼主| 发表于 2008-5-27 19:02 | 显示全部楼层
我已经找到程序二的解决方法了,我一个初学者为这个问题真是破费周折,最后一个朋友帮我解决了,现贴出来以饷和我一样的初学者,同时感谢对我的帖子表示关心的楼友!
clear;
x=2.5;y=25;a=0.1;b=0.2;i=1;
while x>0
   syms z
    z=a*y+b*x+log(z)-z;
    z=solve(z);
    z=eval(z);
    x=x-a*z;
    y=b*(y-z)+y;
    X(i)=x;
   Y(i)=y;
    i=i+1;
end
plot(X,Y)
发表于 2008-5-27 19:21 | 显示全部楼层
原帖由 robinforever 于 2008-5-27 19:02 发表
我已经找到程序二的解决方法了,我一个初学者为这个问题真是破费周折,最后一个朋友帮我解决了,现贴出来以饷和我一样的初学者,同时感谢对我的帖子表示关心的楼友!
clear;
x=2.5;y=25;a=0.1;b=0.2;i=1;
while x ...


请问您运行7楼的程序时,有没有报错?
 楼主| 发表于 2008-5-27 23:20 | 显示全部楼层
抱歉,7楼程序y的赋值我弄错了,y=25导致程序没有解析解所以报错;程序本身没有问题
比如将赋值改为y=3,程序是可以运行的。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-23 09:34 , Processed in 0.062162 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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