need to find to root of equation

2 次查看(过去 30 天)
% need to find the value of x for different values of y
y=0.00:0.001:0.08;
dEv=25 meV;
dEvbm=x.*(1.6)+y.*(-0.52);
C=1.05;
V=C.*sqrt(y);
dEv=(((dEvbm-1.0)+sqrt(((dEvbm+1.0).*(dEvbm+1.0))+(4.V.*V)))/2);
% how to find the value of x

采纳的回答

Walter Roberson
Walter Roberson 2020-9-20
syms x y real
syms delta_x delta_y delta_C real
assume(y >= 0);
assume(delta_x >= -5/100 & delta_x < 5/100);
assume(delta_y >= -5/1000 & delta_y < 5/1000);
assume(delta_C >= -5/1000 & delta_C < 5/1000);
dEv = 25;
dEvbm = x.*(16/10 + delta_x) + y.*(-52/100 + delta_y);
C = 105/100 + delta_C;
V = C .* sqrt(y);
eqn = dEv == (((dEvbm - 1) + sqrt(((dEvbm + 1) .* (dEvbm + 1)) + (4 .* V.*V)))/2);
sol = solve(eqn, x, 'returnconditions', true);
sol.x
sol.conditions
Y = 0.00:0.001:0.08;
X = subs(sol.x, y, Y);
disp(X)
You will get answers similar to
-(delta_C^2/26000 + (21*delta_C)/260000 + delta_y/1000 - 260004967/10400000)/(delta_x + 8/5)
Here, delta_C reflects the undercertainty in the value of C: when you write C = 1.05 then in science that stands in for C being a unknown value that is in the range 1045/1000 (inclusive) and 1055/1000 (exclusive.) It makes no sense to ask for exact solutions to equations that have coefficients that are not exactly known, so I have converted to exact solutions by quantifying the uncertainties.
Does it really make a difference? Yes, it does. For X(2), if you examine over the entire range of uncertainties, the results come out between 15.1518013280886 and 16.1293438703474, which is a quite noticable difference.
I assumed here that dEv = 25 was an exact figure, and that the + 1.0 and - 1.0 were intended to be exact 1's and the 4 multiplying the V^2 was intended to be an exact 4 and the division by 2 was intended to be an exact 2.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by