matlab中solve函数求解隐函数的问题
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)/20...
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不能调用前面的值,如何解决??
请高手指点,谢谢!
参数是和我输入的变量值有关的,会变化的,
或者有没有其他的办法来解这个方程。 展开
其中除了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不能调用前面的值,如何解决??
请高手指点,谢谢!
参数是和我输入的变量值有关的,会变化的,
或者有没有其他的办法来解这个方程。 展开
2个回答
展开全部
>> 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)
>> 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函数解
再用solve函数解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询