用matlab解方程组,结果不正确!向大家求教,多谢!

 我来答
PeriShare
2018-04-04 · 分享PD理论最新研究成果和进展
PeriShare
采纳数:2408 获赞数:36827

向TA提问 私信TA
展开全部
clc;clear
syms f d;
F1 = d+1-d/f-0.6;
F2 = 0.34*f/(0.34+f)+0.6-2*d;
[d0,f0] = solve(F1,F2,'d','f');
fprintf('解为\nd1=%s\nf1=%s\n或\nd2=%s\nf2=%s\n',(d0(1,1)),f0(1,1),d0(2,1),f0(2,1))
% 校验误差,可以知道误差计算为0
err1 = simplify((subs(F1,[d,f],([d0(1,1),f0(1,1)]))));
err2 = simplify((subs(F2,[d,f],([d0(1,1),f0(1,1)]))));
err3 = simplify((subs(F1,[d,f],([d0(2,1),f0(2,1)]))));
err4 = simplify((subs(F2,[d,f],([d0(2,1),f0(2,1)]))));
fprintf('解的计算误差分别为\n%s\n%s\n%s\n%s\n',err1,err2,err3,err4)

结果为

解为
d1=109/670 - 25549^(1/2)/670
f1=2/15 - 25549^(1/2)/435

d2=25549^(1/2)/670 + 109/670
f2=25549^(1/2)/435 + 2/15
解的计算误差分别为
0
0
0
0
追问
你好,你上面的结果是对的,我验证过了。可是我的程序错在哪里?(d、f数据值交换了)
追答
你应该用[d,f] = solve();
因为matlab对未知数的顺序有一套自己的规则,一般来说x优先,然后是y、z然后字母按照排序来算
研载生物科技(上海)有限公司_
2023-04-12 广告
研载生物可以提供环状RNA成环验证实验服务,欢迎咨询!1.琼脂糖凝胶电泳实验分别用Divergent primer 和Convergent Primer 检测cDNA样品和gDNA样品。对照组为GAPDH,分别使用Diveraent Pri... 点击进入详情页
本回答由研载生物科技(上海)有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式