Как я написал в заголовке, я пытаюсь найти точное расстояние (в данном случае безразмерное расстояние), когда две функции начинают отличаться друг от друга на 5% по оси Y. Две функции пересекаются при значении 1 по оси X, и мне нужно найти описанное расстояние до пересечения, а не после (т. е. оно должно быть меньше 1). Я написал код Matlab, чтобы вы могли увидеть форму функций и следующие вычисления, которые я пытаюсь заставить их работать, но они не работают, я не знаю, почему. "Явное решение не найдено".
Не знаю, понятно ли я объяснил. Пожалуйста, дайте мне знать, если вам нужно более подробное объяснение.
Я надеюсь, что вы можете пролить свет на этот вопрос.
Большое спасибо заранее.
r=0:0.001:1.2;
ro=0.335;
rt=r./ro;
De=0.3534;
k=2.8552;
B=(2*k/De)^0.5;
Fm=2.*De.*B.*ro.*[1-exp(B.*ro.*(1-rt))].*exp(B.*ro.*(1-rt));
A=5;
b=2.2347;
C=167.4692;
Ftt=(C.*(exp(-b.*rt).*((b.^6.*rt.^5)./120 + (b.^5.*rt.^4)./24 + (b.^4.*rt.^3)./6 + (b.^3.*rt.^2)./2 + b.^2.*rt + b) - b.*exp(-b.*rt).*((b.^6.*rt.^6)./720 + (b.^5.*rt.^5)./120 + (b.^4.*rt.^4)./24 + (b.^3.*rt.^3)./6 + (b.^2.*rt.^2)./2 + b.*rt + 1)))./rt.^6 - (6.*C.*(exp(-b.*rt).*((b.^6.*rt.^6)./720 + (b.^5.*rt.^5)./120 + (b.^4.*rt.^4)./24 + (b.^3.*rt.^3)./6 + (b.^2.*rt.^2)./2 + b.*rt + 1) - 1))./rt.^7 - A.*b.*exp(-b.*rt);
plot(rt,-Fm,'red')
axis([0 2 -1 3])
xlabel('Dimensionless distance')
ylabel('Force, -dU/dr')
hold on
plot(rt,-Ftt,'green')
clear rt
syms rt
%assume(0<rt<1)
r1=solve((Fm-Ftt)/Ftt==0.05,rt)
r2=solve((Ftt-Fm)/Fm==0.05,rt)
r
является ближайшим к 5%. Насколько это близко, это другая история, поэтому, если вы хотите, чтобы это было ближе, вам придется поиграть с размером шага. 27.07.2014