Subversion Repositories wimsdev

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2071 zjchen 1
!goto $wims_read_parm
2
 
3
:def
4
title=Numerical solution
5
synonyme=solve numerically
6
input=equation
7
!exit
8
 
9
:proc
10
 
11
fml=!singlespace $formula
12
fml=!translate = to $\
13
$ in $fml
14
l=!linecnt $fml
15
!if $l>2
16
 error=bad_formula
17
 !exit
18
!endif
19
!distribute lines $fml into l1,l2
20
!default l2=0
21
fml=$l1 - ($l2)
22
fml=!rawmath $fml
23
var=!translate ,; to $    $ in $variable
24
var=!trim $var
25
var=!word 1 of $var
26
!default var=x
27
!default range1=-100
28
!default range2=100
29
range1=$[$range1]
30
range2=$[$range2]
31
!if NaN isin $range1 $range2 or Inf isin $range1 $range2 or \
32
	abs($range1-$range2)*1000000<abs($range1+$range2)
33
 error=bad_range
34
 !exit
35
!endif
36
!if $range1>$range2
37
 !exchange range1,range2
38
!endif
39
 
40
pari_precision=$precision
41
result=!exec pari print(solve($var=$range1,$range2,$fml))
42
 
43
result=!trim $result
44
!if $result=$empty
45
 error=solve_fail
46
!endif
47
 
48
!exit
49
 
50
:output
51
!set eq= =
52
!if $eq isin $formula
53
 Solution of
54
!else
55
 Root of
56
!endif
57
!htmlmath $formula
58
 for $var within [$range1,$range2]:
59
<p><center>
60
!insmath $result
61
</center> <p>
62
!exit
63