Bonjour à tous,
Je découvre scilab depuis hier soir, j'essaye de faire un peu d'analyse numérique pour me familiariser avec la syntaxe...
Quand je fais
Scilab se ferme et j'ai un segfault ( wtf ?? !!!)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 x=poly(0, "x") p=2*x+1 integrate(p, 'x', 0, 1)
Alors je veux bien croire que la syntaxe n'est peut-être pas la bonne, mais je trouve Scilab un peu susceptible et sa réaction disproportionnée !
Bref, j'ai deux questions :
- Comment faire pour que mon code marche. J'ai besoin de rentrer la fonction ou le polynome avant dans une variable, p par exemple
- Comment se fait-il que Scilab plante ainsi ? J'ai bossé 2h hier soir j'ai du avoir 2-3 segfaults... Je tourne sous linux debian, ok j'avoue j'ai une debian testing avec un noyau perso.
Pour info, voici le code d'origine, c'est sur la fin, à simpson que ça déconne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 a=0; b=1; deff('y=f(x)', 'y=sin(x)-x'); val1 = integrate('f(x)', 'x', a, b); print(%io(2), val1) val2=0; pas=0.01; for i=a:pas:(b-pas) val2 = val2+f(i)*pas; end; print(%io(2), "Riemann") print(%io(2), val2) val3=0 for i=a:pas:(b-pas) val3 = val3+f(i+pas/2)*pas; end; print(%io(2), "Point milieu") print(%io(2), val3) val4=0 for i=a:pas:(b-pas) val4 = val4 + ((f(i)+f(i+pas))/2)*pas; end print(%io(2), "Trapèzes") print(%io(2), val4) val5=0 for i=a:pas:(b-pas) a1=i a2=i+pas/2 a3=i+pas b1=f(a1) b2=f(a2) b3=f(a3) p = b1*((s-a2)*(s-a3)/((a1-a2)*(a1-a3)))+ b2*((s-a1)*(s-a3)/((a2-a1)*(a2-a3)))+ b3*((s-a2)*(s-a1)/((a3-a2)*(a3-a1))) val4 = val4 + integrate(p, 's', a1, a3) end print(%io(2), "simpson") print(%io(2), val4)
Partager