24小时热门版块排行榜    

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

chuzhenhui

金虫 (小有名气)

[交流] 【求助】请教一个关于解方程的问题 已有3人参与

问题描述:

在做一个gui程序,需要根据输入的数值,进行相应的计算。比如这样一个方程:

y=(w*c*k*x)/((1-k*x)*(1-k*x+c*k*x))

其中w,c,k,y为常数,x是变量。程序需要根据w,c,k,y的输入,代入方程中计算x的值,后面程序再用x进行其他的运算。

假如输入的常数分别是:w=0.0378;c=9.992;k=0.9247;y=0.026,我这么编:

w=0.0378;c=9.992;k=0.9247;y=0.026;

x=solve('(w*c*k*x)/((1-k*x)*(1-k*x+c*k*x))-y');

-------------------------
matlab出现错误如下:

??? Error using ==> solve>getEqns at 182
' w1*c1*k1*awi)/((1-k1*awi)*(1-k1*awi+c1*k1*awi))=in ' is not a valid expression or equation.

Error in ==> solve at 67
[eqns,vars] = getEqns(varargin{:});

Error in ==> solvetest at 3
solve('w1*c1*k1*awi)/((1-k1*awi)*(1-k1*awi+c1*k1*awi))=in');
-----------------------------------------------------------------------------------
直接用输入的数字代入方程,用solve是可以算出来的,x值有两个解,我要取正解。但是像以上的程序,先对符号赋值,再用符号代入方程中用solve就不能用了。

我想解决的就是如果要算以上方程中的x,我应该用什么方法?这样用solve和fsolve都不行。望大侠赐教!谢谢~~~
回复此楼
找到自己。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab


hiqun(金币+1):感谢应助,辛苦了 2010-10-12 13:58:42
chuzhenhui(金币+4):多谢!! 2010-10-12 15:04:13
CODE:
>> [result,status] = evalin(symengine,'w:=0.0378;c:=9.992;k:=0.9247;y:=0.026;solve((w*c*k*x)/((1-k*x)*(1-k*x+c*k*x))-y)')

result =

[ [x = 0.14040415902146110092877008088218], [x = -0.92632207541585789273828437767426]]


status =

     0

方法还有不少 符号计算subs代换也可以 vpa的内部也是调用了计算引擎mupadengine
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
3楼2010-10-12 13:50:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
hiqun(金币+1):感谢应助 2010-10-13 16:18:48
引用回帖:
Originally posted by chuzhenhui at 2010-10-12 17:16:29:
我暂时解决了,主要是因为x是sym型数据,我整成double型,再用 y=max(x)就可以得到x>0的解了,但这个方法有点投机,如果x有两个以上大于0的解,这样就行不通了,所以还是要请教正统的解决方法。

就是直接加个>0的条件 assuming>0
CODE:
>> result= evalin(symengine,'w:=0.0378;c:=9.992;k:=0.9247;y:=0.026;solve((w*c*k*x)/((1-k*x)*(1-k*x+c*k*x))-y) assuming x>0') result = [x = 0.14040415902146110092877008088218]

工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
8楼2010-10-13 14:16:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 chuzhenhui 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见