Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
senão faça a = p.
SAÍDA (‘ ’,
max);
Aula 10 – MATLAB - Zeros de funções
( Cálculo Numérico
). 4/47
INTRODUÇÃO
Workspace
Window
Local onde as
operações podem ser Command
diretamente feitas History
Window
Lista de comandos
realizados, organizados
por data de execução,
Command Window permitindo o comando ser
realizado novamente com
Aula 10 – MATLAB - Zeros de funções
Cálculo Numérico
duplo clique 6/47
Editor – Script File
New Script
% no MATLAB
Comando clear:
Limpa a memória.
Operação Símbolo
Igualdade ==
Desigualdade ~=
Maior ou igual >=
Menor ou igual <=
>> syms x
>> syms a, b, c
>> diff(f(x),x,n)
>> x = -5:0.5:5;
>> y = x.^3 – 9 * x + 3;
>> plot(x,y);
>> hold on
>> fplot(‘log10(x)’, [0.1,6]
>> fplot(‘1/x’, [0.1,6])
>> hold off
& E lógico
|| OU lógico
~ NÃO lógico
Exemplo:
>> if(abs(f(p))<erro || abs(b – a)<erro)
>> if <condição>
>> <comandos>
>> end
Exemplo:
>> cf = input ('Entre com a função: ');
>> f = inline(cf);
Exemplo:
>> disp('Insira a função');
>> f = input('','s');
>> p = (a+b)/2;
Função: f
Precisão: erro
A cada iteração: p
senão faça b = p.
SAÍDA (‘ ’, max);
( ).
PARE.
Aula 10 – MATLAB - Zeros de funções
Cálculo Numérico 41/47
Implementação
clear, clc
disp('Insira a função');
f = input('','s');
k = 1;
while (k < max)
p = (a+b)/2;
if ( subs(f,p) == 0 || abs(b – a) < erro )
abs(subs(f,p))<
fprintf('A erro
raiz é: %d\n', p);
fprintf('O número de iterações foi:
%i', k);
break
end
Aula 10 – MATLAB - Zeros de funções
Cálculo Numérico 43/47
Implementação
k = k + 1;
(subs(f,p))*(subs(f,b)) <
if (subs(f,p))*(subs(f,a)) > 0
a = p;
else
b = p;
end
end
Passo 1: Faça k = 1;
Passo 2: Enquanto k < N0 , execute os passos 3 a 6.
Passo 3: Faça x = x0 – f (x0) / f’ (x0); (Calcula xi)
Passo 4: Se |x – x0| < e, então:
SAÍDA (x); (Procedimento concluído com sucesso).
PARE.
Passo 5: Faça k = k + 1.
derivada = diff(cf);
df = inline(derivada);
k = 0;
disp(' k x(k) erro’)
while (k < max)
fprintf('\t%i\t%3.8f\t%f\n', k, x, erro);
p = x;
x = x - f(x)/df(x);
erro = abs(x - p);
tol=input('insira o erro');
k=k+1;
fprintf('\t%i \t%3.8f \t%f \n',k,x2,erro);
break
end
k=k+1;
end