2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Пересечение осей координат в нулевой точке в Mathematica
Сообщение14.11.2019, 00:54 
Аватара пользователя


17/03/17
683
Львів
Здравствуйте. Пытаюсь построить график функции $f(x)$ - первообразной, полученной численным интегрированием. Проблема в том, что в некоторой точке $x_0$ функция $f(x)$ терпит разрыв (при численном интегрировании в этой точке происходит деление на ноль) и соответственно при попытке построить график этой функции на отрезке, включающем $x_0$ возникает ошибка. Поэтому я хочу построить график функции на отрезке, не включающем $x_0$, но чтобы при этом область значения самой абсциссы эту точку включала. Если эти области не совпадают, то оси координат, вообще говоря, пересекаются не в нулевой точке, а нужно чтобы было именно так. Что-то вроде

Изображение

В этом примере я использую Plot[{ConditionalExpression[Sin[x],2<x<7],ConditionalExpression[3,0<=x<=9]},{x,0,9},PlotRange->{-2,2}].

 Профиль  
                  
 
 Re: Пересечение осей координат в нулевой точке в Mathematica
Сообщение14.11.2019, 06:45 


08/03/11
186
Посмотрите на опцию Exclusions.
Или можете сами генерировать таблицу данных и использовать ListPlot

Код:
Clear[f] ;
f[x_?NumericQ] := NIntegrate[Sin[t]/(x-1),{t,0,x}]
Plot[f[x],{x,0,2},Exclusions->{1}]

 Профиль  
                  
 
 Re: Пересечение осей координат в нулевой точке в Mathematica
Сообщение14.11.2019, 13:36 
Аватара пользователя


17/03/17
683
Львів
sithif, спасибо. Попробовал Exclusions, набор точек получается исключить, можно ли исключить целый отрезок значений? Нашёл ещё RegionFunction, задать отрезок, на котором рисуется график получается, но значение функции все равно вычисляется также и в точках, диапазон которых указывается во втором аргументе функции Plot: Plot[Sin[x],{x,0,10}]. Может возможно указать вроде Plot[Sin[x],{x,5,10}], но при этом значения абсциссы на графике будут от 5 до 10, а нужно чтобы от 0 до 10. То есть ещё бы как-то отдельно указать "диапазон отрисовки" осей.

От генерирования таблицы данных пока пытаюсь увернуться :)

 Профиль  
                  
 
 Re: Пересечение осей координат в нулевой точке в Mathematica
Сообщение14.11.2019, 14:20 


27/10/17
56
Можно, например, так:
Код:
d = 0.3;
Plot[Tan[x], {x, Pi, 2*Pi},RegionFunction ->Function[{x, y}, 3*Pi/2 - d >= x || 3*Pi/2 + d <= x],PlotRange -> {{0, 2*Pi}, All}, AxesOrigin -> {0, 0}]

 Профиль  
                  
 
 Re: Пересечение осей координат в нулевой точке в Mathematica
Сообщение14.11.2019, 17:18 
Аватара пользователя


17/03/17
683
Львів
optimist, спасибо, AxesOrigin пригодился. А можно ли в Plot[{f[f],g[x]},{x,a,b}] задавать {x,a,b} отдельно для функций $f$, $g$? Тогда, кажется, моя проблема решена.

Просто функции RegionFunction и ConditionalExpression решают проблему с отображением графика функции на определенном отрезке, но сам {x,a,b} включает точку, в которой у моей функции есть особенность и хочется чтобы в этой точке функция вообще не считалась. Проблема в том, что нужно нарисовать несколько кривых (с особенностями в разных точках) на одном графике.

 Профиль  
                  
 
 Re: Пересечение осей координат в нулевой точке в Mathematica
Сообщение14.11.2019, 17:26 


27/10/17
56
Код:
Show[Plot[x, {x, 0, 1}, PlotRange -> All],  Plot[Sin[x], {x, Pi/2, Pi}]]

 Профиль  
                  
 
 Re: Пересечение осей координат в нулевой точке в Mathematica
Сообщение14.11.2019, 18:11 
Аватара пользователя


17/03/17
683
Львів
optimist, спасибо! Получилось! Вопрос решён.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group