gnuplot에 내장되지 않은 수학 함수를 사용하는 방법


3

나는 항상 gnuplot매우 유용 하다고 생각 했으며, tikzL A T E X 문서 에서 사용하기 때문에 훨씬 더 중요합니다 . 불행히도, 핵심 구현 함수의 수 gnuplot는 매우 적으며 수정 된 베셀 함수 K ν 및 I ν 와 같은 특수 함수가 종종 필요합니다 . 이 기능은 gnuplot에서 사용 가능한 기존 기능을 사용하여 작성할 수 없습니다. gnuplot과 gsl라이브러리 를 바인딩하는 방법이 있습니까? 나는 gnuplotting.orggnuplotbu 전용 웹 사이트를 탐색하고 있는데이 문제에 관한 단어를 찾지 못했습니다. 누군가 단서가 있다면 감사하겠습니다.

답변:


2

필요한 기능을 계산할 수있는 명령을 작성할 수 있으면 다음과 같이 완료됩니다.

gnuplot> f(x) = real(system(sprintf("echo %f", x)))
gnuplot> plot f(x)

(참조 help system)

예를 들어 옥타브를 사용하여 값을 계산할 수 있습니다. 예를 들어, 시스템이 Linux 인 경우 직접 가질 수 있습니다.

gnuplot> bJ(a,x) = real(system(sprintf("echo 'besselj(%f,%f)' | octave | grep ^ans | cut -f 2 -d =", a,x)))
gnuplot> plot [0:20] bJ(1,x)

그래도 실행하는 데 약간의 시간이 걸립니다! 설정 sample은 플롯의 모든 세부 사항을 설정할 때까지 낮은 뭔가 값입니다. 여러 번 set term table다시 플롯 해야하는 경우 먼저 사용하여 함수를 표로 만든 다음 표로 표시된 값을 플로팅 할 수도 있습니다.


많은 감사합니다. 나는 생각하지 않았다 system. 필자가 자주 사용하는 함수의 경우 파이프 체인에서 여러 변환을 피하기 위해 GSL과 같은 수학 라이브러리를 인터페이스하는 작은 이진 파일을 컴파일하는 것이 좋습니다.
Tom-Tom

물론,이 경우 단일 값을 반환하는 대신 함수를 도표화 할 수있는 이진을 사용할 가치가 있습니다. 이 경우 포인트 단위의 시스템 요청이있는 분석 함수가 아닌 수정자를 사용하여 데이터 파일을 플로팅하게됩니다.
Joce
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.