matlab solve函数的问题

我用solve函数解方程式组
>> [p l]=solve('p=392*((exp(0.05*l/1.45)-1)/(0.05*l/1.45))','l=sqrt((270*0.7)+(0.00304*p)^2)+0.00304*p')
p =
15.410089307701804081663142824888
l =
517.33507337966367748035832215663

所得的结果,p和l显示是颠倒的!实际用迭代的方法求得的p和l的值更符合实际,和用solve所得的值颠倒,也就是说实际情况是p =517.3,l=15.4,这是为什么呀呀呀,纠结中。。。。。。。

第1个回答  2012-11-29
应该这样才对。
>> s=solve('p=392*((exp(0.05*l/1.45)-1)/(0.05*l/1.45))','l=sqrt((270*0.7)+(0.00304*p)^2)+0.00304*p')
s =
l: [1x1 sym]
p: [1x1 sym]
>> s.l
ans =

15.410089307701804081663142824888
>> s.p

ans =

517.33507337966367748035832215663
第2个回答  2012-11-29
>> an=solve('p=392*((exp(0.05*l/1.45)-1)/(0.05*l/1.45))','l=sqrt((270*0.7)+(0.00304*p)^2)+0.00304*p');
>> disp(an.p)
517.33507337966367748035832215662
>> disp(an.l)
15.410089307701804081663142824888

%或者改变输出顺序
>> [l p]=solve('p=392*((exp(0.05*l/1.45)-1)/(0.05*l/1.45))','l=sqrt((270*0.7)+(0.00304*p)^2)+0.00304*p')
l =
15.410089307701804081663142824888
p =
517.33507337966367748035832215662本回答被提问者采纳
相似回答
大家正在搜