用matlab解超越方程
- 超越方程是什么
- matlab求解超越方程
- 运行结果
超越方程是什么
当一元方程ƒ(z)=0的左端函数ƒ(z)不是z的多项式时,称之为超越方程。如指数方程、对数方程、三角方程、反三角方程等。
matlab求解超越方程
例如:已知超越方程如下
I o ∗ R e = = [ V T ∗ l n ( I r e f / I o ) ] ; I_o * R_e == [V_T * ln(I_{ref}/I_o)]; Io∗Re==[VT∗ln(Iref/Io)];
我们要求得 I 0 I_0 I0的值,其他值都已知。
利用matlab中的fzero函数求解该超越方程,编写代码如下
syms I_o; %定义变量I_o
V_T = 25.8*10^-3;
I_ref = (30-1.4) / (39*10^3);
R_e = 5*10^3;
I_o * R_e == [V_T * log(I_ref/I_o)];
fun = @(Io) Io * R_e - V_T * log(I_ref ./ Io);
Io_initial_guess = [1e-5, 7e-4];
Io_solution = fzero(fun, Io_initial_guess);
disp(Io_solution);
其中 Io_initial_guess 是最终 I o I_o Io结果值的估计范围,只要范围合理就不会报错
运行结果
结果为
1.8882
∗
1
0
−
5
1.8882*10^{- 5}
1.8882∗10−5