作业帮 > 综合 > 作业

matlab用solve解方程

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/08 15:01:03
matlab用solve解方程
syms x y c en fai;
[x,y]=solve('log(y.*(1-x)/(x.*(1-y)))+en','y.*(1-c.*sum((k.*(y./x).^k)/sum(((y./x).*exp(en-2.*pi)).^k)))+x.*c.*sum((k.*(y./x).^k/sum(((y./x)*exp(en-2.*pi)).^k))-fai')
Error using ==> solve
' log(y.*(1-x)/(x.*(1-y)))+en ' is not a valid expression or equation.
这可能是什么方面的问题?
[x,y]=solve('log(x+x.*y)-2','x+2.*y-2')
Error using ==> solve
' log(x+x.*y)-2 ' is not a valid expression or equation.
为什么log(x+x.*y)-2中的小数点去掉就可以了呢?
首先检查solve中第二个式子:
,'y*(1-c*sum((k*(y/x)^k)/sum(((y/x)*exp(en-2*pi))^k)))+x*c*sum((k*(y/x)^k/sum(((y/x)*exp(en-2*pi))^k))-fai'
是否存在括号匹配的问题(好像有问题输入Maple后,提示有误),请楼主检查后再试试,、楼主要想清楚x,y到底是标量还是矩阵,或者是向量,如果是矩阵或向量是需要加小数点的,为什么会出现sum()函数呢?matlab符号求和是用symsum指令使用方法是:symsum(f,k,0,inf))
在Matlab中直接那样声明出来的x,y是标量符号变量.
再问: 呵呵,很谢谢你的解答。x,y是标量。 并且sum()里面的k是从0到80,我在这个solve前面用k=0:80定义了,这样子可以么?
再答: 不可以这么写啊。符号求和用的是symsum(f,k,0,80)这样的形式,其中f为求和的通项式,你换成这种写法试试。像这种复杂的符号运算我建议你使用Maple符号处理系统,使用方便直观,而且功能更强大。