MATLAB:用数值方法求解非多项式方程

时间:2017-08-16 15:48:30

标签: matlab equation solver

我有一个等式:

9.73*10^(3)*(x-y)/log((296-y)/(296-x)) - 15 = 0

1/(1+((x^2-3^2)*(x-3))^(-1))((x-y)/(log((x-3)/(y-3)))

我尝试用y来解决x问题。我尝试使用函数solve,fsolve和vpasolve进行符号和数字操作。两者都失败了(符号解算器返回一个条件解决方案,数字解决方案返回一个空对象)。

有关解决方程式的任何提示吗?

编辑:

实际代码(注意方程中的一些额外常数,但方程的整体结构保持不变)和输出:

syms T_i T_o
eqn1 = (9.73*10^(3))*(T_o - T_i)/(log((296-T_i)/(296-T_o))) - 15 == 0;
eqn2 = 1/(1.65*10^(-5)+1/(0.9*5.67*10^(-8)*0.01*(T_o^3-3^3)*(T_o-3)))*...
       ((T_o-T_i)/log((T_o-3)/(T_i-3))) - 15 == 0;

S = vpasolve([eqn1,eqn2],[T_o,T_i])

输出:

S = 

T_o:   [0x1 sym]
T_i:   [0x1 sym]

即。没有找到解决方案。我尝试解决一个变量,然后将其插入第二个等式,但这也失败了(给出一个条件解决方案):

syms T_i T_o
eqn  = (T_o - T_i)/(log((296-T_i)/(296-T_o))) == 15;
solT = solve(eqn,T_i);

输出:

Warning: The solutions are valid under the following conditions:
15*wrightOmega(T_o/15 - log(15/(T_o - 296)) - 296/15) + 296 ~= T_o.
To include parameters and conditions in the solution,
specify the 'ReturnConditions' option. 
> In solve>warnIfParams (line 507)
  In solve (line 356)

0 个答案:

没有答案