24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1644  |  回复: 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的回帖

robert2020

银虫 (著名写手)

★ ★
ctgu_zheng(金币+2):辛苦了。。。 2010-10-12 07:52:23
chuzhenhui(金币+6):多谢!! 2010-10-12 15:04:01
求解程序:
引用回帖:
clear all
syms x
w=0.0378;c=9.992;k=0.9247;y=0.026;
f=(w*c*k*x)/((1-k*x)*(1-k*x+c*k*x))-y;
x=vpa(solve(f))

验证程序:
引用回帖:
solve('0.026-(0.0378*9.992*0.9247*x)/((1-0.9247*x)*(1-0.9247*x+9.992*0.9247*x))=0')

结果:
引用回帖:
x =

-.926322075415857
  .140404159021461

Truthfulness,Compassion,Tolerance,Beauty
2楼2010-10-11 22:18:04
已阅   回复此楼   关注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的回帖

chuzhenhui

金虫 (小有名气)

引用回帖:
Originally posted by robert2020 at 2010-10-11 22:18:04:
求解程序:


验证程序:


结果:

多谢指教,如果我要取x>0 的解,怎么弄?有专门设定方程解范围的函数可以用吗。。直接设定x>0好像不可以,我用y=max(x)也不行,请再指导一下吧,谢谢!
找到自己。
4楼2010-10-12 17:00:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chuzhenhui

金虫 (小有名气)

引用回帖:
Originally posted by lijinfeng042 at 2010-10-12 13:50:45:
[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值是中间值,我后面的程序中还要调用x值,我要的是x的正解,怎么弄啊,想了一些办法,行不通。。。希望大侠再指导下!谢谢

[ Last edited by chuzhenhui on 2010-10-12 at 17:07 ]
找到自己。
5楼2010-10-12 17:04:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chuzhenhui

金虫 (小有名气)


nono2009(金币+1):鼓励分享。 2010-10-13 06:20:34
我暂时解决了,主要是因为x是sym型数据,我整成double型,再用 y=max(x)就可以得到x>0的解了,但这个方法有点投机,如果x有两个以上大于0的解,这样就行不通了,所以还是要请教正统的解决方法。
找到自己。
6楼2010-10-12 17:16:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

robert2020

银虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
x=[-1 -2 -3 4 2 4 0];
m=find(x>0);
x(m)

7楼2010-10-12 17:38:43
已阅   回复此楼   关注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

金虫 (小有名气)

就是直接加个>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  ... [/quote]

非常谢谢,又多了一些知识,关于这块我自己也再去捣鼓捣鼓!
找到自己。
9楼2010-10-18 15:18:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 chuzhenhui 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿 江南大学 085602 化工专硕 338分求调剂 +12 路痴小琪 2026-04-05 12/600 2026-04-05 21:50 by 醉翁wl
[考研] 生物与医药求调剂 +3 heguanhua 2026-04-05 3/150 2026-04-05 21:31 by 学员8dgXkO
[考研] 一志愿北京化工085600 310分求调剂 +12 0856材料与化工3 2026-04-04 14/700 2026-04-05 19:00 by 蓝云思雨
[考研] 0703化学321分求调剂 +17 三dd. 2026-03-30 18/900 2026-04-05 18:07 by 蓝云思雨
[考研] 一志愿华北电力大学(北京),材料科学与工程学硕265,求调剂 +11 yelck 2026-04-03 12/600 2026-04-04 19:52 by dongzh2009
[考研] 321求调剂 +6 认真求上学 2026-04-03 6/300 2026-04-04 19:51 by dongzh2009
[考研] 272求调剂 +4 松柏常青5 2026-04-03 4/200 2026-04-04 17:03 by babysonlkd
[考研] 土木304求调剂 +4 兔突突突, 2026-03-31 4/200 2026-04-04 13:34 by 1753564080
[考研] 一志愿中国石油大学化学工程323分求调剂 +4 化工专硕323分 2026-04-03 6/300 2026-04-03 22:12 by dongzh2009
[考研] 311求调剂 +20 zchqwer 2026-04-01 22/1100 2026-04-03 22:09 by lglzsd
[考研] 08工科,295,接受跨专业调剂 +8 lmnlzy 2026-03-30 8/400 2026-04-03 13:08 by nalakaiqi
[考研] 土木水利328分求调剂 +6 疾风知劲草666 2026-04-02 6/300 2026-04-03 11:38 by znian
[考研] 一志愿山东大学,085600,344 +7 魏子per 2026-04-02 8/400 2026-04-02 21:12 by 百灵童888
[考研] 08开头看过来!!! +4 wwwwffffff 2026-03-31 6/300 2026-04-02 11:42 by 均值回归
[考研] 348环境工程调剂 +3 吴彦祖24k 2026-04-01 3/150 2026-04-02 09:14 by nanaliuyun
[考研] 310分求调剂 +4 成功上岸wang 2026-04-01 4/200 2026-04-01 20:35 by liu823948201
[考研] 求0861交通运输专硕or材料专硕调剂 +4 勒布朗@ 2026-03-31 4/200 2026-04-01 09:54 by 一只好果子?
[考研] 一志愿西交大080500材料学硕349 +6 jqx1258 2026-03-31 7/350 2026-03-31 21:08 by yuq
[考研] 考研调剂求助 +7 13287130938 2026-03-31 7/350 2026-03-31 16:39 by 690616278
[考研] 吉大生物学326分求调剂 +3 sunnyupup 2026-03-31 3/150 2026-03-31 09:28 by longlotian
信息提示
请填处理意见