Академический Документы
Профессиональный Документы
Культура Документы
Funes em Matlab
O comando function permite cri-las. Uma funo deve ser definida da seguinte
forma:
function y=nomefuncao(par1,par2,par3....)
% o cdigo da funo escrito aqui
y=par1+sqrt(par2)+....% o(s) valor(es) da funo deve(m) ser associado(s)
% ao(s) parmetro(s) de sada
A funo pode ter vrios parmetros de entrada e de sada (no exemplo anterior
apenas h um parmetro de sada. Caso houvesse mais do que um parmetro de
sada, em vez de function y= seria function [y1,y2,y3, ]=)
O cdigo relativo funo deve ser gravado num ficheiro .m e a directoria onde o
mesmo gravado deve fazer parte do path do matlab
Srgio Cruz
53
Funes em Matlab
A funo pode depois ser chamada a partir da janela de comando do
matlab ou a partir do interior de um ficheiro .m, tal como se tratasse de
uma funo pr-definida do matlab
NOTAS IMPORTANTES:
Caso o nome dado funo seja diferente do nome do ficheiro .m criado
aquando da definio da mesma, este ltimo nome que deve ser usado para
invocar a funo!!!
As variveis definidas no interior da funo no sero acessveis a partir do
espao de trabalho do matlab (workspace)
Tenha em mente que uma funo no atribui nenhum valor a nenhuma
varivel
A excepo a esta regra acontece se definir variveis globais no corpo da
funo (faa help global para mais informao)
A execuo da funo pode ser interrompida com o comando return
Srgio Cruz
54
Funes em Matlab
Eis um exemplo de uma funo definida pelo utilizador, que recebe como
parmetro de entrada um vector e representa uma espiral a trs
dimenses:
function [x,y,z] = spir3(t)
x = cos(20*t).*exp(-t.^2);
y = sin(20*t).*exp(-t.^2);
z = exp(-t.^2);
plot3(x,y,z);
Srgio Cruz
55
Polinmios em Matlab
Embora o matlab no permita trabalhar directamente com polinmios,
dispe de um conjunto de comandos destinados sua manipulao
No matlab, os polinmios so representados por vectores linha cujos
elementos so os coeficientes das sucessivas potncias do polinmio,
ordenadas por ordem decrescente. Por exemplo, o polinmio p(s)=4s^55s^3+10s^2+9s-3 representa-se por p=[4 0 -5 10 9 -3]
Por outro lado, dada uma matriz B, quadrada, pode-se obter o polinmio
caracterstico associado a esta matriz com o comando poly. Um exemplo:
>> B=[1 3 5;2 4 6;1 2 3]
B=
1 3 5
2 4 6
1 2 3
>> p=poly(B)
% p(s)=det(sI-B)
p=
1.0000 -8.0000 -4.0000
0
Srgio Cruz
56
Polinmios em Matlab
As razes de um polinmio podem ser obtidas com o comando roots.
Considerando o polinmio anterior vir:
>> r=roots(p)
r=
0
8.4721
-0.4721
Srgio Cruz
57
Polinmios em Matlab
O seu produto e diviso so iguais a
>> produto=conv(a,b)
produto =
8 32 82 112 101 33
>> [quociente,resto]=deconv(a,b)
quociente =
0.5000
0
% q(s)=0.5s
resto =
0
0 1.5000 3.0000 % r(s)=1.5s+3
Srgio Cruz
58
Polinmios em Matlab
Nestas situaes, o matlab com o comando polyfit, fornece-nos os
coeficientes do polinmio que melhor se ajusta aos dados fornecidos
A sintaxe a seguinte: polyfit(x,y,n) , onde x e y so vectores que
contm as coordenadas dos pontos a interpolar e que serviro para gerar
os coeficientes do polinmio, que ter grau n
Um exemplo: vamos admitir que queremos arranjar um polinmio de grau
5 que permita obter valores idnticos queles fornecidos pela funo raiz
quadrada. Isto pode ser conseguido da seguinte forma:
x=0:0.01:5;
y=sqrt(x);
p=polyfit(x,y,5);
59
60
Srgio Cruz
61
Preciso
Descrio
ode45
Mdia
ode23
Pequena
ode113
Pequena at
elevada
ode15s
Pequena at mdia
ode23s
Pequena
ode23t
Pequena
ode23tb
Pequena
Srgio Cruz
62
Srgio Cruz
63
Srgio Cruz
64
Srgio Cruz
65
66