我想建立一个 3D 图(基于pst-solides3d
),其中函数如下所示
x=u
,y=v
和z=\int_0^x \frac{\sin\left(\pi t \right)}{\pi t} - \frac{1}{3} \mathrm{d}t+\frac{1}{\pi^2}\sin\left(\pi \frac{x}{y}
。
我不知道如何在参数中定义这个函数(尤其是正弦积分)\defFunction
。这是一个Si
函数吗?提前致谢
答案1
该包pst-func
有一个 PostScript 宏 Si,它需要堆栈上的一个值并返回积分。有关更多信息,请参阅 的文档pst-func
。这里只是关于如何做到这一点的一个想法。不知道如何处理你的值,因为 PostScript 需要 sin 函数的度数,这可以在内部使用 完成DegtoRad
:
\listfiles
\documentclass{article}
\usepackage{pst-solides3d,pst-func}
\begin{document}
\psset{Decran=50,viewpoint=10 20 40 rtp2xyz,lightsrc=viewpoint}
\begin{pspicture}(-6,-4)(6,4)
\defFunction{func}(u,v)
{u}
{v}
{u tx@FuncDict begin Si end u 3 div sub u v Div RadtoDeg sin Pi dup mul div add }
\psSolid[object=surfaceparametree,base=-1 1 -1 1,function=func,
ngrid=40 40,hue=0 1]
\end{pspicture}
$x=u$, $y=v$ and
$z=\int_0^x \frac{\sin\left(\pi t \right)}{\pi t} -
\frac{1}{3} \mathrm{d}t+\frac{1}{\pi^2}\sin\left(\pi \frac{x}{y}\right)$
\end{document}
答案2
能够使用自适应辛普森积分计算从到Asymptote
的积分。但是,当使用 GNU 科学库 ( ) 配置时,它还包括函数。:f
a
b
GSL
Si(x) = int(sin(t)/t, t=0..x)
plot-si.tex
\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{asymptote}
\usepackage{lmodern}
\DeclareMathOperator{\Si}{Si}
\begin{document}
\begin{align}
z&=\int_0^x \frac{\sin\left(\pi t \right)}{\pi t} -
\frac{1}{3} \mathrm{d}t+\frac{1}{\pi^2}\sin\left(\pi \frac{x}{y}\right)
=\frac{\Si(\pi x)}{\pi}-\frac{x}3 +\frac{1}{\pi^2}\sin\left(\pi \frac{x}{y}\right)
\end{align}
\begin{asy}
size(200);
size3(200,200,50,IgnoreAspect);
import gsl;
import graph3;
import palette;
currentprojection=orthographic(camera=(3,5,4),up=(0,0,1),target=(0,0,0),zoom=0.9);
real f(pair p){return Si(pi*p.x)/pi-1/3*p.x+1/pi^2*sin(pi*p.x/p.y);}
real Arg(triple v) {return f((v.x,v.y));}
real ep=1e-7;
surface s=surface(f, (-1+ep,-1+ep),(1,1),nx=200);
s.colors(palette(s.map(Arg),Wheel()));
draw(s,render(merge=true));
\end{asy}
\end{document}
跑步latexmk -f pdf plot-si.tex
。