MATLAB求解方程组出错 80

当我用四个方程组,四个未知数来求解时,可以顺利得到结果。命令如:clc;clearall;closeall;symsXYWUS=solve('X=Y*exp((76789... 当我用四个方程组,四个未知数来求解时,可以顺利得到结果。命令如:clc;clear all;close all;syms X Y W US=solve('X=Y*exp((76789-43.8*723.15-(169105-120.4*723.15)*X)/8.310/723.15)','W*(1-X)=exp(-0.011*(120-25))*(1-0.0182)','U*Y+W*X=0.0182','U+W=1');S.XS.YS.WS.U可是,当我想对其中一个值,比如120-25中的25用一个未知数T代替。并且给T赋值(T=0:5:120)就无法得到对应的XYWU,而我手动把这个25在0到120范围内改时,却可以求出每个XYWU。错误命令如下:clc;clear all;close all;syms X Y W UT=0:10:120S=solve('X=Y*exp((76789-43.8*723.15-(169105-120.4*723.15)*X)/8.310/723.15)','W*(1-X)=exp(-0.011*(120-T))*(1-0.0182)','U*Y+W*X=0.0182','U+W=1');S.XS.YS.WS.U 展开
 我来答
飞跃梦想华
2017-10-14 · TA获得超过333个赞
知道小有建树答主
回答量:388
采纳率:89%
帮助的人:108万
展开全部
clc;clear all;close all;
syms X Y W U
% S=solve('X=Y*exp((76789-43.8*723.15-(169105-120.4*723.15)*X)/8.310/723.15)',...
% 'W*(1-X)=exp(-0.011*(120-25))*(1-0.0182)',...
% 'U*Y+W*X=0.0182','U+W=1');
T = 0:10:120;
result = zeros(length(T),4);
for i = 1:length(T)
Temp = T(i);
f1 = X-Y*exp((76789-43.8*723.15-(169105-120.4*723.15)*X)/8.310/723.15);
f2 = W*(1-X) - exp(-0.011*(120-Temp))*(1-0.0182);
f3 = U*Y+W*X - 0.0182;
f4 = U+W - 1;
S=solve(f1, f2, f3, f4);

result(i,1) = eval(S.X);
result(i,2) = eval(S.Y);
result(i,3) = eval(S.W);
result(i,4) = eval(S.U);
end
按上面代码求解,result存放你要的结果;
说明几点:solve是只能解单个方程组,方程组系数涉及向量或者矩阵无能为力;
原本可以将T看成一个符号,可以用solve求解其符号解,这样你可以把你的T(向量或者矩阵带入,用上述的eval函数求值),但是这里解不出来符号解,可能是solve本身的问题;
所以这里没有办法,只能将T挨个值带入,利用循环求解。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上海华然企业咨询
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步... 点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式