2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Верхний предел численного интегрирования как функция
Сообщение10.02.2021, 01:26 
Аватара пользователя
Здравствуйте.
Пытаюсь в Mathematica сделать следующее. Пусть есть функция $f(r,M)=M-r+\int\limits_1^r2xdx=M-r+r^2-1$. Из условия $f(r,M)=0$ получаем квадратное уравнение $r^2-r+M-1=0$. Допустим нас интересует корень со знаком "плюс", то есть $r=\displaystyle\frac{1+\sqrt{5-4M}}{2}$. Рассмотрим функцию $r(M)=\displaystyle\frac{1+\sqrt{5-4M}}{2}$ и [нет не будем подставлять её в верхний предел интеграла функции $f(r,M)$] построим график $r(M)$ например на отрезке $M\in[0,5/4]$.
------------------------------------------
Теперь я пытаюсь запрограммировать этот пример в Mathematica, но так, чтобы она вычисляла интеграл $\int\limits_1^r2xdx$ численно. Но похоже у меня ошибка в коде, вот он:
f[r_, M_] := M - r + NIntegrate[2*x, {x, 1, r}] (задаю функцию $f(r,M)$);
Plot[f[r, 1], {r, 0, 2}] (строю график $f(r,M)$ при $M=1$, просто чтобы проверить, численное интегрирование в первой строчке кода);
r[M_] := r /. Solve[f[r, M] == 0, r][[1]] (определяю функцию $r(M)$ и в двойных квадратных скобках указываю первый корень, потом также проверяю и для второго);
Plot[r[M], {M, 0, 5/4}] (на этом этапе выдает, что x=r is not a valid limit of integration),
значит Mathematica не понимает, что я от нее хочу. А я лишь хочу получить график фукции $r(M)=\displaystyle\frac{1+\sqrt{5-4M}}{2}$ интегрируя $\int\limits_1^r2xdx$ численно.
Можно ли совершить задуманное?

(Это конечно просто пример, чтобы пояснить техническую часть вопроса.)

-- 10 фев 2021, 01:04 --

Есть предположения, что поскольку график строится поточечно, то возможно вместо Solve нужно что-то вроде FindRoot и ещё может из-за неоднозначности $r$ и двойные квадратные скобки там не работают, или нужно ещё указать малый интервал-погрешность для $r$, поскольку точное равенство функции $f(r,M)$ нулю может не быть из-за дискретных значений $r$...

 
 
 
 Re: Верхний предел численного интегрирования как функция
Сообщение10.02.2021, 02:06 
Код:
f[r_, M_] := M - r + Integrate[2*x, {x, 1, r}]
ContourPlot[f[r, M] == 0, {M, 0, 5/4}, {r, 0, 2}]

 
 
 
 Re: Верхний предел численного интегрирования как функция
Сообщение10.02.2021, 22:35 
Аватара пользователя
Спасибо, теперь буду знать ContourPlot. Я правда, сначала хотел что-то для NIntegrate, т.е. для численного интегрирования, когда подынтегральная функция сложная и просто Integrate не справляется, но пока решил попробовать другую идею.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group