matlab中solve函数求解隐函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 13:32:22
qi=solve('qi-bet*detm/(bet/(B*0.018526^0.2*qi^0.6/di^0.6)+0.7*10^(-3)*2*ft/(ft+fi)/203+r0+1/aj)=0','qi')
其中除了qi外,其他参数的值都在前边的程序中算出来了,不知道是哪里出错了,运行总是出现Error using ==> solve
' qi-bet*detm/(bet/(B*0.018526^0.2*qi^0.6/di^0.6)+0.7*10^(-3)*2*ft/(ft+fi)/203+r0+1/aj)=0 ' is not a valid expression or equation.

不知道是不是solve不能调用前面的值,如何解决??
请高手指点,谢谢!
参数是和我输入的变量值有关的,会变化的,
或者有没有其他的办法来解这个方程。

>> a=3;
>> solve('a*x-3=0','x')
得到的结果是
ans =

3/a
也就是说,solve里面将a当成符号,而没有把你a=3代入。
试着改成
>> subs(solve('a*x-3=0','x'))
就得到ans=1的结果了。

你的问题也可以这样弄。
solve再加一个subs()

另外你也可以自己将方程中的变量先将值代入,然后再解方程
比如:
clear
>> a=3;
>> equ=sprintf('a*x-3=0');
>> equ=subs(equ); %这一步就是将a=3代入
>> solve(equ,x)

没有把其他参数值传入方程里面,要先用subs代参数值算一下
再用solve函数解