~rhcarvalho/+junk/racket

« back to all changes in this revision

Viewing changes to demo/plot-functions.rkt

  • Committer: Rodolfo Carvalho
  • Date: 2011-11-13 17:57:27 UTC
  • Revision ID: rhcarvalho@gmail.com-20111113175727-rgbsxle9k9e9mluf
Add plot example

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#lang racket
 
2
 
 
3
;; This script plots a Lagrange interpolation in a rectangular region.
 
4
 
 
5
(require version/utils)
 
6
(when (version<? (version) "5.2")
 
7
  (error "This script requires Racket 5.2 or newer"))
 
8
 
 
9
(require plot) ; PLoT from Racket 5.2
 
10
 
 
11
;; v1 through v4 are the values at the corners of the rectangle.
 
12
(define-values (v1 v2 v3 v4) (values 3 1 4 9))
 
13
;; L1 and L2 are the dimensions of the rectangle.
 
14
(define-values (L1 L2) (values 2 2))
 
15
 
 
16
;; Returns for each (x,y) the interpolated value.
 
17
(define (z x y)
 
18
  (let ([x/L1 (/ x L1)]
 
19
        [y/L2 (/ y L2)])
 
20
    (+ (* (+ 1/2 x/L1) (+ 1/2 y/L2) v1)
 
21
       (* (- 1/2 x/L1) (+ 1/2 y/L2) v2)
 
22
       (* (+ 1/2 x/L1) (- 1/2 y/L2) v4)
 
23
       (* (- 1/2 x/L1) (- 1/2 y/L2) v3))))
 
24
 
 
25
(plot3d (contour-intervals3d z -1 1 -1 1)
 
26
        #:title "x, y interpolation using Lagrange polynomials"
 
27
        #:x-label "x" #:y-label "y" #:z-label "z")
 
 
b'\\ No newline at end of file'