Gnuplot生成菲涅耳方程的奇异图

Gnuplot生成菲涅耳方程的奇异图,gnuplot,physics,Gnuplot,Physics,我试图为菲涅耳系数生成图形,但图形是错误的 #! /usr/bin/gnuplot -p #Gnuplot script Fresnel equation set term postscript eps enhanced color lw 2 "Arial" 20 set title "Fresnel do ar para vidro" #set name for file set output "fresnel.eps" #Define refractive index middle 1 n

我试图为菲涅耳系数生成图形,但图形是错误的

#! /usr/bin/gnuplot -p

#Gnuplot script Fresnel equation
set term postscript eps enhanced color lw 2 "Arial" 20
set title "Fresnel do ar para vidro"
#set name for file
set output "fresnel.eps"
#Define refractive index middle 1
ni = 1
#Define refractive index middle 2
nt =  3/2
#Define constant
k = ni/nt
#Define conversion
TRAD = pi/180.0
#define cos, sin conversion
sind(x) = sin(x*TRAD)
cosd(x) = cos(x*TRAD)
#Define sqrt
sq(x) = sqrt( 1 - k**2 * sind(x)*sind(x) )
sqd(x) = sq(x*TRAD)
#R perpendicular
ri(x) = (ni*cosd(x) - nt*sqd(x)) / (ni*cosd(x) + nt * sqd(x))
#R paralelo
rii(x) = - (nt*cosd(x) - ni*sqd(x)) / (ni*sqd(x) + nt*cosd(x))
#Function
p(x) = (ri(x) - rii(x)) / (ri(x) + rii(x))

set ylabel "ress"
set xlabel "Angulo de incidencia"
set yrange [-1:2.5]
set autoscale x
#ploting graph
plot p(x), ri(x) with line, rii(x) w line

我需要一个像链接这样的图表:


这不是一个完整的解决方案,但有几点需要注意:

  • nt=3/2
    使用整数除法并产生
    nt=1
    。您想要的是
    nt=3.0/2.0
    nt=1.5
  • 角度参数乘以
    TRAD
    。这是从度到弧度的转换。因此,应将xrange设置为类似于
    set xrange[0:90]
  • 你有
    sqd(x)=…sq(x*TRAD).
    sq(x)=…sind(x).
    ,和
    sind(x)=sin(x*TRAD)
    。此链将初始参数乘以
    TRAD*TRAD
    。很可能您希望将
    sq(x)=…sind(x).
    更改为
    sq(x)=…sin(x).
我们离期望的图形越来越近,但还没有完成。我想你应该仔细检查一下源方程