matlab 解符号方程组
S1='x^2+a*x+b*x+1';S2='x^2+3*b*x+2*a*x';S11=diff(S1,'x',1);S21=diff(S2,'x',1);S22='x-...
S1 = 'x^2 + a*x + b*x + 1';
S2 = 'x^2 + 3*b*x + 2*a*x';
S11 = diff(S1,'x',1);
S21 = diff(S2,'x',1);
S22 = 'x-c';
[x,a,b] = solve(S22,S21,S11)
我希望得到的结果是x = c ; a = -4c ; b = 2c
但是结果却是
x =-a/2
a =-a/4
b =-a/4
这事为啥?? 展开
S2 = 'x^2 + 3*b*x + 2*a*x';
S11 = diff(S1,'x',1);
S21 = diff(S2,'x',1);
S22 = 'x-c';
[x,a,b] = solve(S22,S21,S11)
我希望得到的结果是x = c ; a = -4c ; b = 2c
但是结果却是
x =-a/2
a =-a/4
b =-a/4
这事为啥?? 展开
3个回答
展开全部
你只要把这句
[x,a,b] = solve(S22,S21,S11)
改为
[x,a,b] = solve(S22,S21,S11,'x,a,b')
就可以了,加的东西就是说明,x,a,b是未知数,剩下的c就是当已知数了。
[x,a,b] = solve(S22,S21,S11,'x,a,b')
x =
-4*c
a =
2*c
b =
c
[x,a,b] = solve(S22,S21,S11)
改为
[x,a,b] = solve(S22,S21,S11,'x,a,b')
就可以了,加的东西就是说明,x,a,b是未知数,剩下的c就是当已知数了。
[x,a,b] = solve(S22,S21,S11,'x,a,b')
x =
-4*c
a =
2*c
b =
c
更多追问追答
追问
谢谢 我再问一个问题 就是我现在用的等式加了一句:S3 = '2*a';
S = solve(S22 - S3,S21,S11,'x,a,b');
这样会提示错误 而用下面这句就没错
S = solve(S22,S21 - S3,S11,'x,a,b');
错误提示:
??? Error using ==> minus
Matrix dimensions must agree.
这个怎么破?
追答
S22 - S3 相当于 x-c=0-2*a=0 你说要不要出错。
东莞大凡
2024-11-14 广告
2024-11-14 广告
标定板认准大凡光学科技,专业生产研发厂家,专业从事光学影像测量仪,光学投影测量仪.光学三维测量仪,光学二维测量仪,光学二维测量仪,光学三维测量仪,光学二维测量仪.的研发生产销售。东莞市大凡光学科技有限公司创立于 2018 年,公司总部坐落于...
点击进入详情页
本回答由东莞大凡提供
展开全部
他解的其实是
b=-a/2
c=-a/4
x=-a/4
他可没这么聪明你写了[x,a,b]就分别求解x、a、b,他是把解出来的b、c和x赋值给了x、a和b,
所以你要告诉他求解的是什么变量,并且最好输出为一个结构体,以免他又赋错值,像下面这样既可:
f = solve(S22,S21,S11,'x','a','b')
f.a、f.b、f.x就是你要的解
b=-a/2
c=-a/4
x=-a/4
他可没这么聪明你写了[x,a,b]就分别求解x、a、b,他是把解出来的b、c和x赋值给了x、a和b,
所以你要告诉他求解的是什么变量,并且最好输出为一个结构体,以免他又赋错值,像下面这样既可:
f = solve(S22,S21,S11,'x','a','b')
f.a、f.b、f.x就是你要的解
追问
你说的很对 谢谢 我再问一个问题 就是我现在用的等式加了一句:S3 = '2*a';
S = solve(S22 - S3,S21,S11,'x,a,b');
这样会提示错误 而用下面这句就没错
S = solve(S22,S21 - S3,S11,'x,a,b');
错误提示:
??? Error using ==> minus
Matrix dimensions must agree.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
S1 = 'x^2 + a*x + b*x + 1';
S2 = 'x^2 + 3*b*x + 2*a*x';
S11 = diff(S1,'x',1);
S21 = diff(S2,'x',1);
S22 = 'x-c';
t = solve(S21,S11,S22,'a','x','b');
x=t.x;
a=t.a;
b=t.b;
S2 = 'x^2 + 3*b*x + 2*a*x';
S11 = diff(S1,'x',1);
S21 = diff(S2,'x',1);
S22 = 'x-c';
t = solve(S21,S11,S22,'a','x','b');
x=t.x;
a=t.a;
b=t.b;
追问
谢谢 我再问一个问题 就是我现在用的等式加了一句:S3 = '2*a';
S = solve(S22 - S3,S21,S11,'x,a,b');
这样会提示错误 而用下面这句就没错
S = solve(S22,S21 - S3,S11,'x,a,b');
错误提示:
??? Error using ==> minus
Matrix dimensions must agree.
这个怎么破?
追答
是x、a、b两边均加引号
即应该是'a','x','b'
而不是'x,a,b'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询