Escolar Documentos
Profissional Documentos
Cultura Documentos
M-Ficheiros – são ficheiros do MATLAB com extensão “.m” que contêm programas (scripts) e funções
que podem ser chamados e executados na janela de comandos do MATLAB.
Janela de comandos:
3. Traço do programa
diary <filename> → redirecciona a informação de saída para um ficheiro
diary on/off → activa/ desactiva o traço do programa
4. Ajuda
>> x = 2;
>> y = x^2 -3*x + 2;
7. Programação em MATLAB
Programas (script) - um conjunto de comandos e instruções em MatLab armazenadas
num M-Ficheiro
% <program-name>
{<specification-statements>}
{<executable-statements>}
Funções
Example 7.1 : Implemente a função sroot para determinar as raízes de um número pelo
método de Newton. Grave esta função no M-ficheiro sroot.m
function r = sroot(A)
% Método de Newton para determinar A
p0 = 1; % valor inicial
for k=1:50,
p1 = (p0+A/p0)/2;
disp(p1);
if abs(p1-p0)/p1 < eps, break, end;
p0 = p1;
end
» sroot(5)
3
2.33333333333333
2.23809523809524
2.23606889564336
2.23606797749998
2.23606797749979
2.23606797749979
function y = f(x)
y = exp(-x./10) + sin(x);
» f(pi/2)
ans =
1.85463599915323
» G([2 1])
ans =
3 4
8. Matrizes
Todas as variáveis em MATLAB são tratadas como matrizes (arrays). Um escalar é considerado uma
matriz de um por um.
8.1. Inicialização: uma matriz (array) pode ser inicializado com zeros, uns ou com valores aleatórios
Z=
0 0 0 0 0
W=
0
0
0
M=
1 1 1 1
1 1 1 1
ans =
2 4
8.2. Vectores: podem ser entrados e armazenados como uma matriz de uma linha ou uma coluna
» V = [1,2,3,4]
V=
1 2 3 4
ans =
4
ans =
10
ans =
2.5000
ans =
100 121 144 169 196 225 256 289 324 361 400
x=
1 5 9 13 17
8.3. Matrizes
» A = [1 2 3 4,
5 6 7 8,
9 10 11 12];
ans =
3
ans =
5 6
9 10
♦ inv → inversa
♦ A’ → transposta
♦ rank → característica
♦ det → determinante
♦ eig → valores e vectores próprios
♦ norm → norma
♦ rand → elementos aleatórios
♦ eye → matriz de identidade
♦ rot90 → rotação dos elementos da matriz
♦ fliplr → inverter matrix left-to-right
♦ flipud → inverter matrix up-and-down
» A = [1 2,
3 4];
» C = inv(A) % determina a matriz inversa
C=
-2.0000 1.0000
1.5000 -0.5000
9. Operadores
Operadores aritméticos
+ Adição
- Subtracção
* Multiplicação
/ Divisão
^ Potência
» A = [1 2,
3 4];
» A^2 % o quadrado da matriz
ans =
7 10
15 22
Operadores Relacionais
== → igual a
~= → não igual a
< → menor que
> → maior que
<= → menor ou igual a
>= → maior ou igual a
Operadores Lógicos
~ → Not
& → And
| → Or
Valores booleanos
1 True
0 False
if (<expresão-lógica#1>),
{<instruções executáveis>}
elseif (<expresão-lógica#2>),
{<instruções executáveis>}
….
else
{<instruções executáveis>}
end
Ciclos
FOR
Exemplo 10.1:
for k=1:100,
x=sqrt(k);
if x>5, break, end
end
Exemplo 10.2:
For loop
sum1 = 0;
for k = 1:1:10000,
sum1 = sum1 + 1/k;
end
» sum1
sum1 =
9.78760603604434
Exemplo 10.3:
sum2 = 0;
for k = 10000:-1:1,
sum2 = sum2 + 1/k;
end
» sum2
sum2 =
9.78760603604439
Exemplo 10.4:
for j = 1:5,
for k = 1:5,
A(j,k) = 1/(j+k-1);
end
end
while <expressão>
{ <instruções executáveis>}
end
Exemplo 10.5:
m = 10;
k = 0;
while k<=m
x = k/10;
disp([x, x^2, x^3]); % uma tabela de valores vai ser visualizada
k = k+1;
end
11. Gráficos
Por exemplo, plot(x1,y1,’r*’, x2,y2, ‘g’, x2,y2,’:’) → desenha três gráficos com
diferentes cores e formatos de linhas.
Example 11.1: Escreva um programa em MatLab que construa o gráfico da função y=sin(x), para
x ∈ [0, Π] com passo Π /8 . Grave o programa num ficheiro com o nome PlotSin.m
O Matlab permite rapidamente avaliar funções num largo conjunto de dados. Por exemplo, se
X=[-1 0 1], então sin(X) produz o resultado [sin(-1) sin(0) sin(-1)]. Similarmente se
X=0:pi/8:pi então Y=sin(X) produz uma matriz Y da mesma dimensão que X com os
correspondentes valores de sin(x).
X = 0:pi/16:pi;
Y = sin(X);
figure(1); clf;
hold on;
axis([-0.2 3.2 -0.1 1.1]); % define os eixos de coordenadas
plot([-0.2 3.2],[0,0],[0,0],[-0.1 1.1]); % desenha os eixos
plot(X,Y); % desenha o gráfico
xlabel('x');
ylabel('y');
title('Graph of y = sin(x)');
grid;
hold off;
X=
0 0.3927 0.7854 1.1781 1.5708 1.9635 2.3562 2.7489 3.1416
Y=
0 0.3827 0.7071 0.9239 1.0000 0.9239 0.7071 0.3827 0.0000
p(x) = x5 – 10 x4 + 35 x3 – 50 x2 + 24.
figure(1);clf;
C = [1 -10 35 -50 24]; % define um vector com os coeficientes do
polinómio
X=-0.2:0.1:4.2; % define as abcissas
Y=polyval(C,X); % polyval - função que avalia um polinómio
Sugestão: A função f pode ser definida como texto, por exemplo, se f=’sin(x)’, então pode ser usado o
comando:
Funções Matemáticas
Bibliografia:
NUMERICAL METHODS using MATLAB Programs, (c) John H. Mathews, Kurtis D. Fink,Prentince
Hall, 1999