-2
(vgb-phy_s)^2=G^2*phy_t*((exp(-x)+x-1)+exp(-(2*phi_b/phi_t))*(exp(x)-x-1))

where

x=phy_s/phy_t
phy_t=0.0288; % phy_t=k*T/q; (k=1.3806503*10^-23, T=300 K, q=1.6*10^-19)
phy_b=0.5267; % phy_b=phy_t*ln(Na/ni)
G=(sqrt(2*q*es*Na)/cox);

Here I need to plot phy_s for different values of vgb.

I tried many ways but since I'm new to matlab I'm on my learning process, I'm not able to find a proper solution.

Few people suggested me to use fminsearch but its quite confusing and I'm getting lot of errors.

4

1 回答 1

0

fminsearch是一个函数,用于求函数的最小值,而不是求方程的解。此外,这里没有一个方程,而是一个至少包含 5 个方程的方程组。您可以solve用来求解方程和方程组。但是,下列方程 1-5 的方程组没有显式解。另一个问题是您提出的常数值似乎是不精确的值,如果您有多个舍入或其他不精确的值,即使方程组是可解的,您也找不到解(但是,这个方程组没有[一个明确的]解决方案))。

所以,我将展示解决这个问题的步骤,但这个方程组似乎有问题,即使 [可能不精确] 常量定义 ( phy_t=0.0288; phy_t=k*T/q; (k=1.3806503*10^-23; T=300; q=1.6*10^-19; phy_b=0.5267;`) 被排除在外。

方程(无常数定义):

1. (vgb-phy_s)^2 = G^2*phy_t*((exp(-x)+x-1)+exp(-(2*phi_b/phi_t))*(exp(x)-x-1))
2. x = phy_s/phy_t
3. phy_t = k*T/q
4. phy_b=phy_t*ln(Na/ni)
5. G=(sqrt(2*q*es*Na)/cox)

解决例如。方程组 1、2 和 3:

Solution = solve('(vgb-phy_s)^2 = G^2*phy_t*((exp(-x)+x-1)+exp(-(2*phi_b/phi_t))*(exp(x)-x-1))', 'x = phy_s/phy_t', 'phy_t = k*T/q');

Solution.q
ans =
(T*k)/phy_t
(T*k)/phy_t

Solution.vgb
ans =
phy_s + (G*phy_t^(1/2)*(exp((2*phi_b)/phi_t) - exp(phy_s/phy_t) + exp((2*phy_s)/phy_t) - exp((2*phi_b)/phi_t)*exp(phy_s/phy_t) - (phy_s*exp(phy_s/phy_t))/phy_t + (phy_s*exp((2*phi_b)/phi_t)*exp(phy_s/phy_t))/phy_t)^(1/2))/(exp((2*phi_b)/phi_t)^(1/2)*exp(phy_s/phy_t)^(1/2))
phy_s - (G*phy_t^(1/2)*(exp((2*phi_b)/phi_t) - exp(phy_s/phy_t) + exp((2*phy_s)/phy_t) - exp((2*phi_b)/phi_t)*exp(phy_s/phy_t) - (phy_s*exp(phy_s/phy_t))/phy_t + (phy_s*exp((2*phi_b)/phi_t)*exp(phy_s/phy_t))/phy_t)^(1/2))/(exp((2*phi_b)/phi_t)^(1/2)*exp(phy_s/phy_t)^(1/2))

Solution.x
ans =
phy_s/phy_t
phy_s/phy_t

请注意,此解仅对方程组 1-3 有效。例如方程组 1、2、4 或 1、2、5 给出不同的解。

要求解所有 5 个方程的方程组,您可以使用以下命令:

Solution = solve('(vgb-phy_s)^2 = G^2*phy_t*((exp(-x)+x-1)+exp(-(2*phi_b/phi_t))*(exp(x)-x-1))', 'x = phy_s/phy_t', 'phy_t = k*T/q', 'phy_b = phy_t*ln(Na/ni)', 'G = sqrt(2*q*es*Na)/cox');

但是,没有解决方案:

Warning: Explicit solution could not be found. 
In solve at 160 

Solution =
[ empty sym ]

所以,我建议你试着找出你的方程有什么问题,然后solve用更正的方程再试一次。

于 2012-05-01T20:15:43.213 回答