Pertanyaan Bagaimana saya mendefinisikan fungsi di bagian untuk merencanakan?


Saya menggunakan gnuplot untuk merencanakan fungsi. Ini adalah naskah saya saat ini:

set terminal png xffffff x222222
set output "Ausgleichszahlungen.png"
set title "Ausgleichszahlungen"
set xlabel 'F_MZ / A_MZ'
set ylabel 'Faktor F'
set xrange [0.5:1]
set yrange [0:1]
set key off
set xzeroaxis linetype -1 linewidth 0.5
set yzeroaxis linetype -1 linewidth 0.5
set xtics 0.1
set ytics 0.1
f(x) =                        0.75   * (1-x) -  317.0 /  20000
g(x) = 5.0/26 * (1-x) ** 2 + 35.0/52 * (1-x) - 2121.0 / 260000.0
h(x) = 13.0/7 * (1-x) ** 2 + 11.0/25 * (1-x)
plot f(x), g(x), h(x)

f (x), g (x) dan h (x) adalah satu fungsi:

-infinity <x <0,8: f (x)

0,8 <= x <0,93: g (x)

0,93 <= x <+ tak terhingga: h (x)

Bagaimana saya bisa melakukan ini?


6
2018-01-26 16:34


asal




Jawaban:


Ubah baris terakhir menjadi

plot f(x)*(x<0.8) +  g(x) * (x>=0.8)*(x<0.93) + h(x)*(x>=0.93)

Saya menemukan bahwa mudah dibaca, tetapi memiliki kerugian bahwa semua f (x), g (x) dan h (x) akan selalu dievaluasi. Anda juga dapat menggunakan operator kondisional terner:

condition ? case1 : case2

akan dievaluasi case1 jika condition itu benar dan nyata case2 jika condition salah. Anda bisa menumpuknya, jadi

plot x < 0.8 ? f(x) : x < 0.93 ? g(x) : h(x)

akan melakukan pekerjaan untuk Anda.


9
2018-01-26 16:39



Hai Jan, ini berfungsi dengan baik, terima kasih. gnuplot.info/docs_4.2/gnuplot.html cukup menarik jika orang lain mencari masalah dasar di gnuplot. - Martin Thoma