پذیرش تبلیغات در سایت پرسش و پاسخ پارسی‌لاتک--> شرایط پلن‌ها و قیمت
اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

محبوب‌ترین برچسب‌ها

رفع خطا جدول مراجع ریاضی‌نویسی شکل xepersian شماره‌گذاری فهرست مطالب منابع فونت bidi parsilatex تک‌لایو اسلاید پانویس زی‌پرشین بیمر بیب‌تک پاورقی نماد tikz biditexmaker ویرایشگر سربرگ هدر bibtex قالب رسم شکل واژه‌نامه اندازه فونت texstudio ارجاع‌دهی beamer ماتریس bidipresentation رسم جدول عنوان فصل عنوان شکل اسلاید فارسی حاشیه فرمول‌نویسی گراف محیط قضیه زیرنویس شکل حروف‌چینی کد اعمال نشدن تغییرات در پی‌دی‌اف عدم اجرا متن لاتین و فارسی رنگ مکان شکل شماره صفحه شماره فصل tabriz_thesis فارسی‌تک align نیم‌فاصله فهرست اشکال listings tikzpicture بسته فرمول enumerate خروجی فاصله‌گذاری itemize نمایه biditools کادر texlive2015 biditufte-book سوال امتحانی فرمول چندضابطه‌ای نمودار شماره‌گذاری صفحات glossaries فونت فارسی و انگلیسی کپشن texmaker الگوریتم texlive2016 hyperref تصویر شماره پاورقی خطا پیوست‌ دیاگرام lollipop چپ‌چینی فصل‌نویسی تنظیم جدول ماکرونویسی میک‌تک subfigure اندیس لاتک شماره فرمول فاصله بین خطوط تک لایو 2015 به‌روزرسانی بسته aimc46 kashida سوال چهارگزینه‌ای texworks کاما حروف‌چینی چندستونی xindy iust-thesis قالب پایان‌نامه جستجوی معکوس تورفتگی پوستر فرمول طولانی tex-programming قرآن multicol فهرست جداول pdf زیرنویس عنوان بخش فاصله سطرها اعداد فارسی میکروسافت ورد header winedt آکولاد فلش نوشتافت شکست خط صفر توخالی کمک مالی بیرون‌زدگی شمارنده فصل اوبونتو tabriz-thesis محیط ریاضی جایابی تصویر caption شمارنده شماره گذاری فاصله خطوط فهرست نمادها غلط‌گیری املایی رسم کادر fancyhdr عکس پانویس پاراگرافی جداکننده شماره قسمت شماره‌گذاری فرمول bidihl neveshtuft قالب کتاب پاراگراف‌بندی pgfplots وسط‌چینی افقی هایپرلینک الگوریتم‌ شعر پیکان equation جدول افقی قلم قسمت نصب تک‌لایو رسم نمودار توابع فونت ایتالیک شکستن جدول رسم گراف پانویس افقی فونت اعداد بازیابی اطلاعات algorithm2e فونت بولد زیرشکل قاب بولد bidipoem xelatex fontspec متلب tabular extrafootnotefeatures text baselineskip tex computeautoilg متن فارسی و انگلیسی رسم نمودار tcolorbox فرمول چندخطی آپدیت texlive ایتالیک cite لوگو sumatra geometry matlab eps texlive2014 زیرنویس لاتین
2 نفر آنلاین
0 عضو و 2 مهمان در سایت حاضرند
بازدید امروز: 4463
بازدید دیروز: 7533
بازدید کل: 4096931

رسم نمودار تابع y=x+[x] و وارون آن

0 رای
2,000 بازدید

با سلام
رسم نمودار تابع y=x+[x] و وارون آن
در این پرسش نمودار تابع y=[x] رسم شده، از کد سر در نیاوردم که چطور رسم کنم.
ممنون میشم با توضیح نمودار تابع y=x+[x] و وارون آنرا قرار دهید.
قسمت دایره توخالی و پر و خط چین در نمودار باشد.

سوال شده اردیبهشت 16, 1395 توسط marjan (47 امتیاز)
ویرایش شده تیر 3, 1395 توسط وحید دامن‌افشان
وفا و هاشمی: دستتون درد نکنه
بابت منفی دستت درد نکنه هاشمی!
@marjan: من ندادم.

3 پاسخ

0 رای
 
بهترین پاسخ

سلام
ادامه ی پاسخ:
روش سوم: نمودار y=x+[x]

\documentclass[12pt,a4paper]{report}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}[>=latex] 
\draw[step=1cm,gray,very thin] (-3,-5) grid (3,4);
\draw[red,very thick,domain=-2:2,samples=1000] plot (\x,{\x+floor(\x)});
\draw [thick,->] (-3,0) -- (3,0);
\draw [thin,->](0,-5) -- (0,4);
\end{tikzpicture}
\end{center}
\end{document}

توجه: برای رسم نمودار تابع دستور زیر:

\draw[red,very thick,domain=-2:2,samples=1000] plot (\x,{\x+floor(\x)});

خروجی:
enter image description here
روش چهارم: رسم نمودار y=x+[x] و وارون آن:

\documentclass[a4paper,12pt]{report} 
\usepackage{tikz,amsmath,color}
\usepackage{xepersian}
\settextfont{Yas}
\setdigitfont{Yas}

\begin{document}
\begin{center}
\begin{tikzpicture}[>=latex] 
\draw[step=1cm,gray,very thin] (-5,-5) grid (5,5);
\draw (-5,0)--(-1.07,0);
\draw [->](-.93,0)--(5,0)node[below left]{$x$};
\draw (0,-5)--(0,-1.07);
\draw [->] (0,-.93)--(0,5)node[below left]{$y$};
\foreach \x/\xtext in {-4,...,-1,1,2,3,4}
\draw (\x,-.4) node{$\xtext$}; 
\foreach \x in {-4,...,-2,1,1,2,3,4}
\draw (\x,-.1)--(\x,.1);
\foreach \y/\ytext in {-4,...,-1,1,2,3,4}
\draw (-.4,\y) node{$\ytext$}; 
\foreach \y in {-4,-3,-2,1,2,3,4}
\draw (-.1,\y)--(.1,\y); 
%
\foreach \x in {-2,-1,0,1,2}
\draw [blue,fill=blue](\x,2*\x) circle (0.07cm);
\foreach \x in {-1,0,1,2}
\draw [blue](\x,2*\x-1) circle (0.07cm);
\foreach \x in {-1,0,1,2}
\draw [dashed,blue,thick](\x,2*\x-.93)--(\x,2*\x);
\foreach \x in {-2,-1,0,1}
\draw [very thick,blue] (\x,2*\x)--(\x+.96,2*\x+.96);
\node [blue] at (2.2,4.5) {$f(x)=x+[x]$};
%
\foreach \x in {-2,-1,0,1,2}
\draw [red,fill=red](2*\x,\x) circle (0.07cm);
\foreach \x in {-1,0,1,2}
\draw [red](2*\x-1,\x) circle (0.07cm);
\foreach \x in {-1,0,1,2}
\draw [dashed,red,thick](2*\x-.93,\x)--(2*\x,\x);
\foreach \x in {-2,-1,0,1}
\draw [red,thick] (2*\x,\x)--(2*\x+.96,\x+.96);
\node [red] at (3.4,.7) {\fontsize{10}{10} $f^{-1}(x)=x-\frac{1}{2}[x]$};
\end{tikzpicture}
\end{center}
\end{document}

خروجی:
enter image description here

پاسخ داده شده اردیبهشت 22, 1395 توسط مهدی هاشمی (1,115 امتیاز)
انتخاب شده اردیبهشت 22, 1395 توسط marjan
دستتون درد نکنه.
خروجی ۴ واقعا شکیل هست! من که از دیدن این توانایی های تک لذت می‌برم.
0 رای

سلام

روش اول: با استفاده از GeoGebra

\documentclass[12pt,a4paper]{report}
\usepackage{pgf,tikz}
\usetikzlibrary{arrows}

\begin{document}
\definecolor{ffffff}{rgb}{1.,1.,1.}
\definecolor{ffqqtt}{rgb}{1.,0.,0.2}
\begin{tikzpicture}[>=triangle 45,x=1.0cm,y=1.0cm]
\draw[->,color=black] (-3.,0.) -- (3.,0.);
\foreach \x in {-2,-1,1,2}
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};
\draw[->,color=black] (0.,-5.) -- (0.,5.);
\foreach \y in {-4,...,-1,1,2,3,4}
\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
\draw[color=black] (0pt,-10pt) node[right] {\footnotesize $0$};
\draw [color=ffqqtt,thick] (0.,0.)-- (1.,1.);
\draw [color=ffqqtt,thick] (1.,2.)-- (2.,3.);
\draw [color=ffqqtt,thick] (-1.,-2.)-- (0.,-1.);
\draw [color=ffqqtt,thick] (-2.,-4.)-- (-1.,-3.);
\draw [dash pattern=on 3pt off 3pt,color=ffqqtt,thick] (-1.,-3.) -- (-1.,-2.);
\draw [dash pattern=on 3pt off 3pt,color=ffqqtt,thick] (0.,-1) -- (0.,0);
\draw [dash pattern=on 3pt off 3pt,color=ffqqtt,thick] (1.,1) -- (1.,2);
\begin{scriptsize}
\draw [red,fill=ffqqtt,thick] (-2.,-4.) circle (2.5pt);
\draw [red,fill=ffffff,thick] (-1.,-3.) circle (2.5pt);
\draw [red,fill=ffqqtt,thick] (-1.,-2.) circle (2.5pt);
\draw [red,fill=ffffff,thick] (0.,-1.) circle (2.5pt);
\draw [red,fill=ffqqtt,thick] (0.,0.) circle (2.5pt);
\draw [red,fill=ffffff,thick] (1.,1.) circle (2.5pt);
\draw [red,fill=ffqqtt,thick] (1.,2.) circle (2.5pt);
\draw [red,fill=ffffff,thick] (2.,3.) circle (2.5pt);
\end{scriptsize}
\end{tikzpicture}
\end{document}

توجه: بعد از رسم نمودار در GeoGebra، مسیر زیر رو برو:

File-->Export-->Graphics viwe as PGF/TikZ

خروجی:
enter image description here
روش دوم:

\documentclass[a4paper,12pt]{report} 
\usepackage{tikz,amsmath,color}
\usepackage{xepersian}
\settextfont{Yas}
\setdigitfont{Yas}

\begin{document}
\begin{center}
\begin{tikzpicture}[>=latex,thick] 
\draw [thick,->](-3,0)--(3,0);
\draw (0,-5)--(0,-1.07);
\draw[->] (0,-.93)--(0,5);
\foreach \x/\xtext in {-2,-1,1,2,}
\draw (\x,-.4) node{$\xtext$}; 
\foreach \x in {-2,-1,1,2}
\draw (\x,-.1)--(\x,.1);
\foreach \y/\ytext in {-4,...,-1,1,2,3,4}
\draw (-.4,\y) node{$\ytext$}; 
\foreach \y in {-4,-3,-2,1,2,3,4}
\draw (-.1,\y)--(.1,\y); 
\foreach \x in {-2,-1,0,1}
\draw [blue,fill=blue](\x,2*\x) circle (0.07cm);
\foreach \x in {-1,0,1,2}
\draw [blue](\x,2*\x-1) circle (0.07cm);
\foreach \x in {-1,0,1}
\draw [dashed,blue](\x,2*\x-.93)--(\x,2*\x);
\foreach \x in {-2,-1,0,1}
\draw [blue] (\x,2*\x)--(\x+.96,2*\x+.96);
\node at (0,5.2) {$y=x+[x]$};
\end{tikzpicture}
\end{center}
\end{document}

توضیح:
برای رسم دایره توپر از دستور زیر:

    \foreach \x in {-2,-1,0,1}
\draw [blue,fill=blue](\x,2*\x) circle (0.07cm);

برای رسم دایره تو خالی از دستور:

\foreach \x in {-1,0,1,2}
\draw [blue](\x,2*\x-1) circle (0.07cm);

برای رسم خط چین:

\foreach \x in {-1,0,1}
\draw [dashed,blue](\x,2*\x-.93)--(\x,2*\x);

برای رسم خط :

\foreach \x in {-2,-1,0,1}
\draw [blue] (\x,2*\x)--(\x+.96,2*\x+.96);

توجه: دامنه ها با دستور زیر مشخص کردم:

\foreach \x in { }

خروجی:
enter image description here

توجه: وارون تابع را در صورت وجود، خودتان رسم کنید!

پاسخ داده شده اردیبهشت 19, 1395 توسط مهدی هاشمی (1,115 امتیاز)
ویرایش شده اردیبهشت 19, 1395 توسط مهدی هاشمی
ممنون برای توضیحاتی که در مورد دستورهای رسم نمودار نوشتید.
کوثر: ببخشید در سوال قبلی آیا به جواب نرسیده اید که بهترین پاسخ رو انتخاب نکرده اید.
با تشکر
آقای مهدی هاشمی:  روشی که شما برای رسم نمودار به کار برده بودید دقیقا شکل مورد نظر من بود که درجواب هم نوشتم ولی بهترین جواب رو علامت نزده بودم. بهترین پاسخ رو تازه انتخاب کردم، ممنون از تذکرتون
0 رای

نمودار شما را می‌توان به راحتی با metapost رسم کرد اما از آن‌جایی که من وقت کافی ندارم، نمونه دیگری به شما می‌دهم که قبلاً آن را انجام داده‌ام. یک فایل به نام test.tex ایجاد کنید با محتویات زیر:

\documentclass{article}
\usepackage{mpgraphics}
\usepackage{xepersian}
\settextfont{Yas}
\begin{mpdefs}
input latexmp; setupLaTeXMP(textextlabel=enable, mode=rerun);

vardef dot expr z =
  image(filldraw fullcircle scaled 3bp shifted z;)
enddef;

vardef emptydot expr z = 
  save circle; path circle; circle = fullcircle scaled 3bp shifted z;
  unfill circle; circle
enddef;
\end{mpdefs}
\begin{document}
\begin{figure}
\configure[mpggraphic][width=\textwidth]
\begin{mpdisplay}
n := 200;
u := 8cm;
xmax := 1.1; ymax := xmax;
drawarrow -(u*xmax, 0) -- (u*xmax, 0);
drawarrow -(0, u*ymax) -- (0, u*ymax);
label.bot("$x$", (u*xmax, 0)); label.lft("$y$", (0, u*ymax));

drawoptions(withcolor red);
draw (-xmax*u, -u) -- (-u, -u);
for i = 1 upto n:
  draw ((u/(i+1), u/i) -- (u/i, u/i)); draw (-u/i, -u/(i+1)) -- (-u/(i+1), -u/(i+1));
endfor;

drawoptions(withcolor black);
draw (u, 0) -- (u, u) dashed evenly; draw (0, u) -- (u/2, u) -- (u/2, 0) dashed evenly;
draw dot(u, u) withcolor red; draw emptydot(u/2, u) withcolor red;
label.bot("$1$", (u, 0)); label.bot ("$\frac{1}{2}$", (u/2, 0)); label.lft("$1$", (0, u));

draw (-u, 0) -- (-u, -u) -- (0, -u) dashed evenly;
draw dot(-u, -u) withcolor red;
label.top("$-1$", (-u, 0)); label.rt("$-1$", (0, -u)); 

for i = 2 upto 5:
  draw (u/(i+1), 0) -- (u/(i+1), u/i) -- (0, u/i) dashed evenly;
  draw dot(u/i, u/i) withcolor red; draw emptydot(u/(i+1), u/i) withcolor red;
  label.bot("$\frac{1}{" & decimal (i+1) & "}$", (u/(i+1), 0));
  label.lft("$1/" & decimal i & "$", (0, u/i));
  %
  draw (-u/i, 0) -- (-u/i, -u/i) -- (0, -u/i) dashed evenly;
  draw dot(-u/i, -u/i) withcolor red; draw emptydot(-u/(i-1), -u/i) withcolor red;
  label.top("$\frac{-1}{" & decimal i & "}$", (-u/i, 0));
  label.rt("$-1/" & decimal i & "$", (0, -u/i));
endfor;

draw emptydot(origin) withcolor red; label.lrt("$O$", origin);
\end{mpdisplay}
\caption{نمودار تابع $y=[x]$}
\end{figure}
\end{document}

سپس برای پردازش فایل و گرفتن خروجی pdf دستور زیر را اجرا کنید:

xelatex -shell-escape test.tex

خروجی بصورت زیر خواهد بود:

enter image description here

و اگر بخواهید اعداد را پارسی کنید:

\documentclass{article}
\usepackage{mpgraphics}
\usepackage{xepersian}
\settextfont{Yas}
\begin{mpdefs}
input latexmp; setupLaTeXMP(textextlabel=enable, mode=rerun,
packages="fontenc[T1,LFE,LAE],inputenc[utf8],babel[farsi]");

vardef dot expr z =
  image(filldraw fullcircle scaled 3bp shifted z;)
enddef;

vardef emptydot expr z = 
  save circle; path circle; circle = fullcircle scaled 3bp shifted z;
  unfill circle; circle
enddef;
\end{mpdefs}
\begin{document}
\begin{figure}
\configure[mpggraphic][width=\textwidth]
\begin{mpdisplay}
n := 200;
u := 8cm;
xmax := 1.1; ymax := xmax;
drawarrow -(u*xmax, 0) -- (u*xmax, 0);
drawarrow -(0, u*ymax) -- (0, u*ymax);
label.bot("$x$", (u*xmax, 0)); label.lft("$y$", (0, u*ymax));

drawoptions(withcolor red);
draw (-xmax*u, -u) -- (-u, -u);
for i = 1 upto n:
  draw ((u/(i+1), u/i) -- (u/i, u/i)); draw (-u/i, -u/(i+1)) -- (-u/(i+1), -u/(i+1));
endfor;

drawoptions(withcolor black);
draw (u, 0) -- (u, u) dashed evenly; draw (0, u) -- (u/2, u) -- (u/2, 0) dashed evenly;
draw dot(u, u) withcolor red; draw emptydot(u/2, u) withcolor red;
label.bot("$1$", (u, 0)); label.bot ("$\frac{1}{2}$", (u/2, 0)); label.lft("$1$", (0, u));

draw (-u, 0) -- (-u, -u) -- (0, -u) dashed evenly;
draw dot(-u, -u) withcolor red;
label.top("$-1$", (-u, 0)); label.rt("$-1$", (0, -u)); 

for i = 2 upto 5:
  draw (u/(i+1), 0) -- (u/(i+1), u/i) -- (0, u/i) dashed evenly;
  draw dot(u/i, u/i) withcolor red; draw emptydot(u/(i+1), u/i) withcolor red;
  label.bot("$\frac{1}{" & decimal (i+1) & "}$", (u/(i+1), 0));
  label.lft("$1/" & decimal i & "$", (0, u/i));
  %
  draw (-u/i, 0) -- (-u/i, -u/i) -- (0, -u/i) dashed evenly;
  draw dot(-u/i, -u/i) withcolor red; draw emptydot(-u/(i-1), -u/i) withcolor red;
  label.top("$\frac{-1}{" & decimal i & "}$", (-u/i, 0));
  label.rt("$-1/" & decimal i & "$", (0, -u/i));
endfor;

draw emptydot(origin) withcolor red; label.lrt("$O$", origin);
\end{mpdisplay}
\caption{نمودار تابع $y=[x]$}
\end{figure}
\end{document}

enter image description here

پاسخ داده شده اردیبهشت 20, 1395 توسط وفا (20,082 امتیاز)
ویرایش شده اردیبهشت 20, 1395 توسط وفا
ممنون، جای دایره توخالی و توپر برعکسه در تابع جز صحیح x!
این نمودار تابع y=1/floor(1/x) هست.
آها نوشته بودین نمودار y=[x] هست.
کد متاپست در
http://tex.stackexchange.com/questions/168404/plotting-greatest-integer-function-floor
هم دیدم.
دستتون درد نکنه
...