yuanping09 发表于 2009-10-29 18:53

solve解方程的问题

我用solve函数解方程为什么返回值不能给出小数表示的结果呢?
如:给定a=3,b=4,c=1,d=1,
clear; syms x; syms y; syms z; syms w;
a=input('please input a= '); b=input('please input b= ');
c=input('please input c= '); d=input('please input d= ');
eq1=(x+y+z)*w/(x+y+z+w)-a; eq2=(x+y+w)*z/(x+y+z+w)-b;
eq3=(x+w+z)*y/(x+y+z+w)-c; eq4=(w+y+z)*x/(x+y+z+w)-d;
= solve(eq1,eq2,eq3,eq4,x,y,z,w)
这样一个简单的程序解得的结果是这样表示的:
solvx =

11/4+1/4*17^(1/2)
11/4-1/4*17^(1/2)
            -1/2
            -1/2
怎么转换成一个小数来表示最终的结果啊,请大家帮帮忙啊?

[ 本帖最后由 ChaChing 于 2009-10-30 21:22 编辑 ]

ChaChing 发表于 2009-10-29 21:39

help double

yuanping09 发表于 2009-10-30 18:06

回复 沙发 ChaChing 的帖子

问题解决了,谢谢版主!这个论坛真是太好了!继续学习!

yuanping09 发表于 2009-10-31 12:28

回复 楼主 yuanping09 的帖子

大家好,还是这个程序,在这里还想请教两个问题:
1.实际中只要x,y,z,w都为正数的那组解,怎么在显示的结果中只保留x,y,z,w同时都为正数的那组解啊?
   因为要用这组解来计算e=(x+z)*(y+w)/(x+y+z+w); f=(x+w)*(y+z)/(x+y+z+w);
2.而且直接计算e,f会提示错误??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> abcd1 at 19
e=(x+z)*(y+w)/(x+y+z+w);
应该怎么修改啊?
谢谢!

[ 本帖最后由 ChaChing 于 2009-10-31 12:51 编辑 ]

ChaChing 发表于 2009-10-31 12:49

回复 地板 yuanping09 的帖子

a=3;b=4;c=1;d=1;
syms x y z w;
eq1=(x+y+z)*w/(x+y+z+w)-a; eq2=(x+y+w)*z/(x+y+z+w)-b;
eq3=(x+w+z)*y/(x+y+z+w)-c; eq4=(w+y+z)*x/(x+y+z+w)-d;
= solve(eq1,eq2,eq3,eq4,x,y,z,w);
x1=double(solvx); y1=double(solvy); z1=double(solvz); w1=double(solvw);
Sol=; ii=all(Sol>0,2);
x1=x1(ii); y1=y1(ii); z1=z1(ii); w1=w1(ii);
e=(x1+z1)*(y1+w1)/(x1+y1+z1+w1)
f=(x1+w1)*(y1+z1)/(x1+y1+z1+w1)

[ 本帖最后由 ChaChing 于 2009-10-31 12:52 编辑 ]

yuanping09 发表于 2009-10-31 14:10

回复 5楼 ChaChing 的帖子

ChaChing真的是很厉害啊,谢谢你!

ChaChing 发表于 2009-10-31 14:33

回复 6楼 yuanping09 的帖子

客气! 个人并不厉害, 仅是分享我会的!
亦希望楼主能与会员们一起分享

zhaozhao0726 发表于 2009-11-9 20:37

俺也遇到了这个问题 谢谢chaching
页: [1]
查看完整版本: solve解方程的问题