Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de Scilab - UFOP
Apostila de Scilab - UFOP
=
(
(
(
=
Que, no ambiente do Scilab, so digitadas da seguinte maneira:
--> x = [x
i
x
i
; x
s
x
s
; x
s
x
i
]
--> y = [y
i
y
i
; y
i
y
s
; y
s
y
s
]
A figura a seguir ilustra a diviso da regio de integrao em dois tringulos, T1 e T2, e a
sequncia de leitura dos vrtices para a montagem das matrizes x e y.
Depto de Computao Instituto de Cincias Exatas e Biolgicas Universidade Federal de Ouro Preto
Prof. Jos lvaro Tadeu Ferreira - Notas de aulas de Clculo Numrico - Scilab
32
x
i
, y
s
x
s
, y
s
x
i
, y
i
x
s
, y
i
Exemplo
(a) Sendo
y x
sen(x.y)
) y , x ( f
2
+
= estime
} }
=
9 , 0
1 , 0
5 , 0
2 , 0
dydx ) y , x ( f I .
Definio da funo
--> deff(y=f(x,y),y=sin(x*y)/(x^2 + y))
Entrada das matrizes x e y
-->x=[.1 .1;.9 .9;.9 .1];
-->y=[.2 .2;.2 .5;.5 .5];
Estimativa da integral
-->[v erro]=int2d(x,y,f)
erro =
4.886D-11
v =
0.0601534
(b) Sendo
2
) y (x
1
) y , x ( f
+
= estime
} }
=
4
3
2
1
dydx ) y , x ( f I .
Definio da funo
--> deff(y=f(x,y),y = 1/(x + y)^2)
Entrada das matrizes x e y
--> x=[3 3;4 4;4 3];
--> y=[1 1;1 2;2 2];
Estimativa da integral
-->[v erro]=int2d(x,y,f)
erro =
1.236D-11
v =
0.0408220
T2
T1
Depto de Computao Instituto de Cincias Exatas e Biolgicas Universidade Federal de Ouro Preto
Prof. Jos lvaro Tadeu Ferreira - Notas de aulas de Clculo Numrico - Scilab
33
(c) Sendo
2 2
y x ) y x ( x ) y , x ( f + + = estime
} }
=
1
0
3
0
dydx ) y , x ( f I .
Definio da funo
--> deff(y=f(x,y),y = x^2*(x + y)*sqrt(x + y^2))
Entrada das matrizes x e y
--> x=[0 0;1 1;1 0];
--> y=[0 0;0 3;3 3];
Estimativa da integral
-->[v erro]=int2d(x,y,f)
erro =
9.268D-11
v =
4.6744419
(d) Sendo
2
2
y 1
x
) y , x ( f
+
= estime
} }
=
1
0
25 , 1
5 , 0
dydx ) y , x ( f I .
Definio da funo
--> deff(y=f(x,y),y = x^2/(1 + y^2))
Entrada das matrizes x e y
-->x=[0 0;1 1;1 0];
-->y=[0.5 0.5;0.5 1.25;1.25 1.25];
Estimativa da integral
-->[v erro]=int2d(x,y,f)
erro =
1.435D-11
v =
0.1441359
Depto de Computao Instituto de Cincias Exatas e Biolgicas Universidade Federal de Ouro Preto
Prof. Jos lvaro Tadeu Ferreira - Notas de aulas de Clculo Numrico - Scilab
34
8 Resoluo de Equaes No Lineares
8.1 Polinmios
Nesta seo abordado o uso do Scilab para efetuar algumas operaes polinomiais.
8.1.1 Definio de um polinmio
Um polinmio definido utilizando-se a funo poly. Para tanto, existem trs maneiras.
(a) Definindo um polinmio com base em uma varivel polinomial
Inicialmente, utilizando-se a funo poly, define-se a varivel polinomial x.
Sintaxe
-->x=poly(0,"x")
x =
x
Para definir, por exemplo, o polinmio p(x) = x
2
+ x + 6, utiliza-se a varivel polinomial
x, conforme mostrado a seguir.
-->p=x^2-5*x+6
p =
2
6 - 5x + x
(b) Definindo um polinmio com base nos seus coeficientes
Sintaxe
--> p = poly([coeff, var, c)
Onde c um vetor que contm os coeficientes do polinmio em ordem crescente de grau e
var o nome da varivel.
Seja, por exemplo, definir o polinmio p(x) = x
2
+ x + 6.
-->p=poly([6 1 1],"x","c")
p =
2
6 + x + x
Mais um exemplo, seja o polinmio p(x) = x
3
x.
-->p=poly([0 -1 0 1],"x","c")
p =
3
- x + x
(c) Definindo um polinmio com base nas suas razes
Sintaxe
--> p = poly([raiz, var, r)
Onde raiz um vetor que contm as razes do polinmio.
Depto de Computao Instituto de Cincias Exatas e Biolgicas Universidade Federal de Ouro Preto
Prof. Jos lvaro Tadeu Ferreira - Notas de aulas de Clculo Numrico - Scilab
35
Seja, por exemplo, definir o polinmio p(x) = x
2
5.x + 6.
-->p=poly([2 3],"x","r")
p =
2
6 - 5x + x
8.1.2 Clculo do valor numrico de um polinmio
utilizada a funo horner.
Sintaxe
--> valor = horner(polinmio, x)
Onde polinmio o nome do polinmio e x o ponto no se deseja avali-lo. Observe-
se que x pode ser um escalar ou um vetor.
Seja o polinmio p(x) = x
2
5.x + 6 avaliado no ponto x = 5.
-->valor = horner(p, 5)
valor =
6.
8.1.3 Operaes com polinmios
(a) Operaes algbricas
Sejam os polinmios, p1 = x
5
- 2.x
4
7.x
3
+ 9.x
2
+ 8.x - 6 e p2 = x
3
- x
2
4.x + 4.
-->p1=poly([-6 8 9 -7 -2 1],"x","c")
p1 =
2 3 4 5
- 6 + 8x + 9x - 7x - 2x + x
-->p2=poly([4 -4 -1 1],"x","c")
p2 =
2 3
4 - 4x - x + x
Soma
-->ps = p1 + p2
ps =
2 3 4 5
- 2 + 4x + 8x - 6x - 2x + x
Da mesma forma pode ser feita a subtrao.
Depto de Computao Instituto de Cincias Exatas e Biolgicas Universidade Federal de Ouro Preto
Prof. Jos lvaro Tadeu Ferreira - Notas de aulas de Clculo Numrico - Scilab
36
Multiplicao
-->pm = p1 * p2
pm =
2 3 4 5 6 7 8
- 24 + 56x + 10x - 78x + 19x + 28x - 9x - 3x + x
Diviso
Para esta operao utilizada a funo pdiv, cuja sintaxe a mostrada a seguir.
--> [r q] pdiv(poli1, poli2)
Onde:
r o resto da diviso;
q o quociente;
pol1 o nome do polinmio dividendo e
poli2 o nome do polinmio divisor.
Seja dividir o polinmio p1 por p2.
-->[r q]=pdiv(p1,p2)
q =
2
- 4 - x + x
r =
2
10 - 4x - 3x
(b) Derivada de um polinmio
Para obter a derivada de um polinmio basta utilizar a funo derivat(.), sua sintaxe
d= derivat(poli)
Onde d a varivel para receber o resultado e poli o nome do polinmio. Seja obter a
primeira derivada de p1.
-->dp1 = derivat(p1)
dp1 =
2 3 4
8 + 18x - 21x - 8x + 5x
Observe-se que para as operaes soma, subtrao, multiplicao e diviso os polinmios
devem ser da mesma varivel.
Depto de Computao Instituto de Cincias Exatas e Biolgicas Universidade Federal de Ouro Preto
Prof. Jos lvaro Tadeu Ferreira - Notas de aulas de Clculo Numrico - Scilab
37
8.1.4 Zeros de polinmios
Para calcular todos os zeros de um polinmio, de grau menor ou igual a 100, com coefici-
entes reais ou complexos, utilizada a funo roots, cuja sintaxe a apresentada a seguir.
--> raiz = roots(poli)
Onde raiz o vetor para receber o resultado e poli o nome do polinmio.
Seja determinar os zeros de p1.
-->r=roots(p1)
r =
0.5664957
- 1.0543445
- 2.1377228
1.5066762
3.1188954
Seja, agora, o clculo dos zeros do polinmio p(x) = x
4
12.x
3
+ 22.x
2
20.x.
-->p=poly([0 -20 22 -12 1],"x", c)
p =
2 3 4
- 20x + 22x - 12x + x
-->roots(pc)
ans =
0
1. + i
1. - i
10.
8.2 Funes
Na seo anterior foi abordado um caso particular de funes, as polinomiais. Nesta, tra-
tado do clculo de zeros de funes genricas.
8.2.1 Determinao dos zeros de uma funo
Para a determinao dos xeros de uma funo qualquer, o Scilab disponibiliza a funo
pr-definida fsolve, cuja sintaxe :
[zero valorfunc] = fsolve(x0, nomefunc, prec)
Onde
x0 a estimativa inicial da raiz;
nomefunc o nome da funo (deve ser definida anteriormente);
prec a preciso desejada (opcional, se no for especificado tomado como 1.D-10);
Depto de Computao Instituto de Cincias Exatas e Biolgicas Universidade Federal de Ouro Preto
Prof. Jos lvaro Tadeu Ferreira - Notas de aulas de Clculo Numrico - Scilab
38
zero a estimativa obtida para um zero da funo e
valorfunc o valor numrico da funo em x = zero.
Esta funo baseada no mtodo iterativo de Newton-Raphson.
Exemplo 8.1
Seja obter estimativas para os zeros da funo f(x) = 25 4.x 10.e
- 0,4.x
. O grfico 8.1
mostra que esta funo tem dois zeros, um prximo de (- 4) e outro prximo de 6.
Grfico 8.1: Zeros da funo f(x) = 25 -4.x 10.exp(-0,4.x)
A seguir, so obtidas estimativas para os dois zeros da funo.
-->[x v] = fsolve(-4,f)
v =
0.
x =
- 3.3684919
-->[x v] = fsolve(6,f)
v =
- 3.331D-16
x =
6.0255073
Depto de Computao Instituto de Cincias Exatas e Biolgicas Universidade Federal de Ouro Preto
Prof. Jos lvaro Tadeu Ferreira - Notas de aulas de Clculo Numrico - Scilab
39
Referncias
http://www.lenep.uenf.br/~nivaldo/disciplinas/softLivre/turma2008/apresentacoes/LucasPr
iscila/scilab.pdf - Acessado em 13 de maio de 2009.
http://www.ing.una.py/DIREC_PPAL/ACADEMICO/APOYO/calculo%20numerico/Scila
b/CURSO%20DE%20SCILAB.pdf Acessado em 12 de maio de 2009.
http://www.mat.ufmg.br/~regi/topicos/intmatl.pdf - Acessado em 12 de maio de 2009.
http://www.lee.eng.uerj.br/~elaine/aula1_2007.pdf - Acessado em 12 de maio de 2009.
http://www.ceit.com.br/download/MatScilab_01.pdf - Acessado em 17 de maio de 2009.
www.scilab.org/publications/SBScilab/livroSci.pdf - Acessado em 10 de abril de 2009.
http://www.dca.fee.unicamp.br/~moraes/softII/aulas/Exerc2.pdf - Acessado em 20 de maio
de 2009.
http://www.dca.ufrn.br/~pmotta/sciport-3.0.pdf - Acessado em 27 de maio de 2009.