Buscar

Cálculo Numérico 2019-1

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Numerico/P1 2019-1/numerico.docx
q1 - 320400 ± 400
q2 - 2356 ± 50
q3 - 444.878160758
q7 - 1111011100
Numerico/P2 2019-1/numerico 2.docx
q5 - 6.50826D-05
Numerico/P2 2019-1/Q1.sce
//Dados os pontos x=1:0.1:3 e y=cos(11+2/x), encontre o polinômio P de grau 3 que melhor se ajusta a esses pontos.
//Calcule P(2.11)
clear
x=[1:0.1:3]';
y=cos(11+2./x);
n=size(x,1);
p=3; //ordem do polinomio
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2) )
 end
end
for i=1:p+1
 b(i)=sum(y.*x.^(i-1) )
end
a=inv(M)*b;
p = poly(a, 'x','c')
disp(p)
//0.0368270576700524540000+1.6802396791208594000000*x-0.9195681633682397700000*x^2+0.142107638722791310000*x^3
//0.823072
Numerico/P2 2019-1/Q10.sce
//Considere o conjunto de coordenadas V=[(5, 1.64);(6, 2.64);(7, 3.64);(8, 2.123)] Interpole o conjunto V em 6.64
clear
xi = [5 6 7 8]'; 
yi = [1.64 2.64 3.64 2.123]'; 
A = [xi.^0 xi.^1 xi.^2 xi.^3]; 
a = A\yi; 
p = poly(a,'x','c')
disp(p)
//aplica 6.64 em 84.735 -43.8865*x +7.551*x^2 -0.4195*x^3 
//3.438510592
Numerico/P2 2019-1/Q2.sce
//Encontre os pesos Ai da quadratura I=A1*f(0.1)+A2*f(1.2)+A3*f(2.1) tal que o erro seja o menor possível para aproximar a integral de f no intervalo 0 a 2. Forneça como resposta A1.
clear
//nós
t1=0.1
t2=1.2
t3=2.1
//limites
a=0
b=2
A=[1 1 1 
 t1 t2 t3
 t1^2 t2^2 t3^2]
 
b=[b-a ((b^2)-(a^2))/2 ((b^3)-(a^3))/3]'
w=inv(A)*b
disp(w(1))
//0.5030303030303030500000
Numerico/P2 2019-1/Q3.sce
//Seja u'=14/t com u(1)=14 Aproxime u(2) usando h=0.1 e o método de Euler.
clear
function y=f(t, u)
 y=14/t
endfunction
function [u]=euler(a, T, h)
//T tempo final
//Nint numero de intervalos
t(1)=1
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(euler(14,2,0.1)) //dados da pergunta e ja imprime resp.:0.3860892
//24.062799644455993000000
Numerico/P2 2019-1/Q4.sce
//Aproxime integral de 2 a 3 de sin(x+9/x) com 7 dígitos significativos.
clear
function S=simpson(a, b, n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x3=x(i+1) //extremo direito
 x2=x1+h/2 //ponto médio
 A1=1/6; A2=4/6; A3=1/6
 ds=(A1*f(x1)+A2*f(x2)+A3*f(x3))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=sin(x+9/x)
endfunction
//no scilab, entra com o comando "simpson(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
disp(simpson(2,3,1000000))
//-0.13261582302
Numerico/P2 2019-1/Q5.sce
//Seja p(x) o polinômio que interpola a função seno em 10 pontos uniformemente espaçados entre 0 e 2pi (inclusive). Determine o valor do erro absoluto cometido ao aproximarmos sin(6) por p(6):
xi = [0:0.62831:2*%pi]'; 
yi = sin(xi); 
A = [xi.^0 xi.^1 xi.^2 xi.^3 xi.^4 xi.^5 xi.^6 xi.^7 xi.^8 xi.^9]; 
a = A\yi; 
p = poly(a,'x','c')
disp(p)
//p6=0.000000000001875951178+0.999289035007789980000*6+0.0032854548977429691000*6^2-0.1728581076103972200000*6^3+0.0063689564521590795000*6^4+0.0043387208897505249000*6^5+0.0015985067332641948000*6^6-0.0006078055875138072400*6^7+0.0000638748994253027010*6^8-0.0000022591136212016898*6^9
//p7=sin(6)
//resposta -> p6-p7=0.000044
Numerico/P2 2019-1/Q6.sce
//encontre os coeficientes [c1,c2c3] do método do passo multiplo Un+1 = Un + h[ C1Fn+1 + C2Fn + C3Fn-2]
//forneça c1
x(1)=1
x(2)=0
x(3)=-2
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
disp(c(1))
//0.4444444444
Numerico/P2 2019-1/Q6-2.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un + H [ C1Fn+1 + C2Fn + C3Fn-2]
x(1)=1
x(2)=0
x(3)=-2
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
disp(c(1))
Numerico/P2 2019-1/Q7.sce
//Aproxime a área da região abaixo da curva h(x)=5*sin(x/4) em utilizando o método do trapézio com h=0.1.
clear
function S=trapezio(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x2=x(i+1) //extremo direito
 
 A1=1/2; A2=1/2
 ds=(A1*f(x1)+A2*f(x2))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=5*sin(x/4)
endfunction
//no scilab, entra com o comando "trapezio(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//calcula o numero de intervalos com h fixo
a=5
b=6
h=0.1 //h fixo
n=abs((a-b)/h)
disp(n)
disp(trapezio(5,6,10))
Numerico/P2 2019-1/Q7-2.sce
//Aproxime a área da região abaixo da curva h(x)=5*sin(x/4) em utilizando o método do trapézio com h=0.1.
clear
function S=trapezio(a, b, n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x2=x(i+1) //extremo direito
 
 A1=1/2; A2=1/2
 ds=(A1*f(x1)+A2*f(x2))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=x^3 -14 * x
endfunction
//no scilab, entra com o comando "trapezio(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//calcula o numero de intervalos com h fixo
a=5
b=6
h=0.1 //h fixo
n=abs((a-b)/h)
disp(n)
disp(trapezio(5,6,10))
//90.777500
Numerico/P2 2019-1/Q8.sce
//Encontre a reta c+dx que melhor se ajusta aos pontos com coordenadas x=[1,1.2,1.4,1.6,1.8,2] e y=exp(x-6)
//Forneça como respostas o coeficente 
clear
x=1:0.2:2;
function y=f(x)
 y=exp(x-6)
endfunction
n=size(x,1);
p=1;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(f(x).*x.^(i-1))
end
a=inv(M)*b;
p = poly(a,'x','c')
disp(p)
//-0.0054630113917696664000 +0.0114873504172930680000x
//0.0114873504172930680000
Numerico/P2 2019-1/Q9.sce
//Seja u'=sin(5*t-u) com u(4)=1. Aproxime u(6) com 6 dígitos significativos utilizando qualquer método.
clear
function y=f(t, u)
 y=sin(5*t-u) //função
endfunction
function [u]=euler(a, T, Nint)
//T tempo final
//Nint numero de intervalos
t(1)=4
u(1)=a //qdo u(0) troca por u(1) e acrescenta 1 ao T final exemplo u(2) fica u(3)
h=(T-t(1))/Nint
for n=1:Nint
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
end
ufinal=u(n+1);
//plot(t,u,'r.-');xgrid
endfunction
disp(euler(1,6,100000)) //dados da pergunta e ja imprime resp.: 2.658666
//1.601547
Numerico/P2 2019-1/Q9-2.sce
//Seja u'=sin(5*t-u) com u(4)=1. Aproxime u(6) com 6 dígitos significativos utilizando qualquer método.
clear
function y=f(t, u)
 y=sin(5*t-u)
endfunction
function y=ft(t, u)
 y=5*cos(5*t-u)
endfunction
function [u]=taylor(a, T, N)
u(1)=a; //cond inicial
t(1)=4; 
h=(T-t(1))/N
for n=1:N
 t(n+1)=t(n)+h;
 F=f(t(n),u(n));
 Ft=ft(t(n),u(n));
 u(n+1)=u(n)+h*F+(h^2/2)*Ft+(h^3/6)
end
ultimo=u(N+1);
//plot(t,u,'r.-');xgrid
endfunction
disp(taylor(1,6,100000))
//1.601547
Numerico/Programas/AREA 1/Bisseccao.sce
function y=f(x)
 y = (cos(x)+x^2-3*x)// coloca a função
endfunction
a=0 // coloca o intervalo
b=16
for i=1:100 //coloca de 1 até quantas vezes quer repetir
 m=(a+b)/2
 if f(a)*f(m)<0 then
 b=m
 else
 a=m
 end
 disp([a b]) //aparecer os resultados de a e b lado
a lado
end
//disp((b-a)/2) //ver o erro absoluto
Numerico/Programas/AREA 1/Bisseccao1.sce
function y=f(x)
 y = (sqrt(10*x)-exp(-x^2))// coloca a função
endfunction
a=0 // coloca o intervalo
b=1
for i=1:100 //coloca de 1 até quantas vezes quer repetir
 m=(a+b)/2
 if f(a)*f(m)<0 then
 b=m
 else
 a=m
 end
 disp([a b]) //aparecer os resultados de a e b lado a lado
end
Numerico/Programas/AREA 1/Exemplo Resolucao de Sistemas Triangulares Superiores.sce
M = [1 2 3 4
 0 5 6 7
 0 0 8 9
 0 0 0 10];
b = [5
 4
 4
 2]
x=solveA(M,b)
disp(x)
// fazer M*x para ver se realmente é a solução
Numerico/Programas/AREA 1/Fatoracao LU.sce
function [L,A] = fatoraLU(A)
n=size(A,1)
L=eye(n,n)
for j=1:n-1
 for i=j+1:n
 L(i,j)=A(i,j)/A(j,j)
 A(i,j+1:n)=A(i,j+1:n)-L(i,j)*A(j,j+1:n)
 A(i,j)=0
 end
end
endfunction
// coloca a matriz. ex: A=[1 2 3; 4 5 6; 7 8 9 ]
// [L,U]=fatoraLU(A) para mostrar as matrizes L e U
// L*U para saber se deu certo
Numerico/Programas/AREA 1/gauss_seidel.sce
function [x,deltax]=gauss_seidel(A,b,x,tol,N)
 n=size(A,1)
 xnew =x
convergiu=%F //FALSE;
k=1
while k<=N & ~convergiu
 xnew(1)= (b(1)-A(1,2:n)*x(2:n) )/A(1,1)
 for i=2:n-1
 xnew(i)= (b(i)-A(i,1:i-1)*xnew(1:i-1) - A(i,i+1:n)*x(i+1:n))/A(i,i)
 end
 xnew(n)= (b(n)-A(n,1:n-1)*xnew(1:n-1) )/A(n,n)
 
 deltax=max(abs(x-xnew))
 if deltax<tol then
 convergiu=%T //TRUE
 end
 k=k+1
 x=xnew; //atualiza x
 disp([k,x',deltax]) //depuração
end
if ~convergiu then
 error ('Nao convergiu')
end
 
endfunction
Numerico/Programas/AREA 1/jacobi.sce
function [x,deltax]=jacobi(A,b,x,tol,N)
 n=size(A,1)
 xnew =x
convergiu=%F //FALSE;
k=1
while k<=N & ~convergiu
 xnew(1)= (b(1)-A(1,2:n)*x(2:n) )/A(1,1)
 for i=2:n-1
 xnew(i)= (b(i)-A(i,1:i-1)*x(1:i-1) - A(i,i+1:n)*x(i+1:n))/A(i,i)
 end
 xnew(n)= (b(n)-A(n,1:n-1)*x(1:n-1) )/A(n,n)
 
 deltax=max(abs(x-xnew))
 if deltax<tol then
 convergiu=%T //TRUE
 end
 k=k+1
 x=xnew; //atualiza x
 disp([k,x',deltax]) //depuração
end
if ~convergiu then
 error ('Nao convergiu')
end
 
endfunction
Numerico/Programas/AREA 1/M_s/M4 - 3 - Newton.sce
function y=f(x)
 y=exp(8*x)+exp(-x)+8*x
endfunction
function y=fl(x)
 y=-8*exp(8*x)-exp(x)+8
endfunction
x=-10:0.1:10
plot(x,f(x),'r.-');
xgrid
x=-0.1
for n=1:10
 x = x - f(x)/fl(x)
 disp(x)
end
Numerico/Programas/AREA 1/M_s/M4 - 4.sce
x=1
for i=1:100 //coloca de 1 até quantas vezes quer repetir
 x=1/sin(x)
 disp(x)
end
Numerico/Programas/AREA 1/M_s/M4 - 5 - Newton.sce
function y=f(x)
 y=exp(2*cos(x)-1)-1
endfunction
function y=fl(x)
 y=-2*sin(x)*exp(2*cos(x)-1)
endfunction
x=-10:0.1:10
plot(x,f(x),'r.-');
xgrid
x=-0.1
for n=1:10
 x = x - f(x)/fl(x)
 disp(x)
end
Numerico/Programas/AREA 1/M_s/M4 - 6 - Newton.sce
function y=f(x)
 y=cos(sqrt(x^2+1))-sin(x)
endfunction
function y=fl(x)
 y=((-x*sin(sqrt(x^2+1)))/(sqrt(x^2+1)))-cos(x)
endfunction
x=-10:0.1:10
plot(x,f(x),'r.-');
xgrid
x=-3.8
for n=1:
 x = x - f(x)/fl(x)
 disp(x)
end
Numerico/Programas/AREA 1/M_s/M4 - 7 - Newton.sce
function y=f(x)
 y=exp(5*x)-26*sqrt(x)
endfunction
function y=fl(x)
 y=5*exp(5*x)-13*x^(-1/2)
endfunction
x=0.5
for n=1:3
 x = x - f(x)/fl(x)
 disp(x)
end
Numerico/Programas/AREA 1/M_s/M6 - 3 - Jacobi.sce
A=[6 1; -1 4]
b=[1 2]'
x1=[2 0]'
[x,deltax]=jacobi(A,b,x1,10^(-5),4)
Numerico/Programas/AREA 1/M_s/M6 - 4 - Norma.sce
x=[3141592,1414213]
y=[%pi,sqrt(2)]*10^6
z=x-y
disp(norm(z,2))
Numerico/Programas/AREA 1/M_s/M6 - 5 - Gauss_Seidel.sce
A=[6 1; -1 4]
b=[1 2]'
x1=[2 0]'
[x,deltax]=gauss_seidel(A,b,x1,10^(-25),10)
Numerico/Programas/AREA 1/M_s/M6 - 6 - Jacobi.sce
A=[6 1; -1 4]
b=[1 2]'
x1=[2 0]'
[x,deltax]=jacobi(A,b,x1,10^(-25),10)
Numerico/Programas/AREA 1/Newton.sce
function y=f(x)
 y=cos(10*x)-exp(-x)
endfunction
function y=fl(x)
 y=-10*sin(10*x)+exp(-x)
endfunction
x=-10:0.1:10
plot(x,f(x),'r.-');
xgrid
x=0.5
for n=1:10
 x = x - f(x)/fl(x)
 disp(x)
end
Numerico/Programas/AREA 1/Ponto Fixo.sce
A=5
x=2
for n=1:10
 x=x/2 + A/(2*x)
 disp(x)
end
Numerico/Programas/AREA 1/Ponto Fixo1.sce
x=2
for n=1:100
 x=log(10/x)
 disp(x)
end
Numerico/Programas/AREA 1/Resolucao de Sistemas Triangulares Inferiores.sce
function [x]=solveA (A,b)
n=size(A,1) // pra pegar o numero de linhas da matriz
x(n)=b(n)/A(n,n)
for i=2:n
x(i)=(b(i)-A(i,1:i-1)*x(1:i-1))/A(i,i)
end
endfunction
Numerico/Programas/AREA 1/Resolucao de Sistemas Triangulares Superiores.sce
function [x]=solveA (A,b)
n=size(A,1) // pra pegar o numero de linhas da matriz
x(n)=b(n)/A(n,n)
for i=n-1:-1:1
x(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i)
end
endfunction
Numerico/Programas/AREA 1/T_s/T4 - 1 - Babilonio.sce
x=0.9
for n=1:1000
 x=x^3-x^2+1
 disp(x)
end
Numerico/Programas/AREA 1/T_s/T4 - 2 - Babilonio.sce
x=1.1
for n=1:15
 x=x^3-x^2+1
 disp(x)
end
Numerico/Programas/AREA 1/T_s/T4 - 3 - Babilonio.sce
x=0
for n=1:10
 x=-1/(x^2-x-2)
 disp(x)
end
Numerico/Programas/AREA 1/T_s/T4 - 5 - Newton.sce
function y=f(x)
 y=x^2-6
endfunction
function y=fl(x)
 y=2*x
endfunction
x=1
for n=1:50
 x = x - f(x)/fl(x)
 disp(x)
end
Numerico/Programas/AREA 1/T_s/T4 - 6 - Newton.sce
function y=f(x)
 y=x-cos(x)
endfunction
function y=fl(x)
 y=sin(x)
endfunction
x=-10:0.1:10
plot(x,f(x),'r.-');
xgrid
x=[0,3]
for n=1:10
 x = x - f(x)/fl(x)
 disp(x)
end 
Numerico/Programas/AREA 1/T_s/T4 - 7 - Newton.sce
function y=f(x)
 y = (log(x-1)+cos(x-1))// coloca a função
endfunction
a=1.3 // coloca o intervalo
b=2
for i=1:20 //coloca de 1 até quantas vezes quer repetir
 m=(a+b)/2
 if f(a)*f(m)<0 then
 b=m
 else
 a=m
 end
 disp([a b]) //aparecer os resultados de a e b lado a lado
end
Numerico/Programas/AREA 1/T_s/T4 - 8 - Newton.sce
function y=f(x)
 y=x^3-4*x^2+5*x-2
endfunction
function y=fl(x)
 y=3*x^2-8*x+5
endfunction
x=-10:0.1:10
plot(x,f(x),'r.-');
xgrid
x=2
for n=1:10
 x = x - f(x)/fl(x)
 disp(x)
end
Numerico/Programas/AREA 1/T_s/T6 - 10 - Gauss-Seidel.sce
A=[2 1 0 0 0 0 0 0
 1 2 1 0 0 0 0 0
 0 1 2 1 0 0 0 0
 0 0 1 2 1 0 0 0
 0 0 0 1 2 1 0 0
 0 0 0 0 1 2 1 0
 0 0 0 0 0 1 2 1
 0 0 0 0 0 0 1 2]
b =[1 1 1 1 1 1 1 1]'
x1=[0 0 0 0 0 0 0 0]' //chute inicial
[x,dx]=gauss_seidel(A,b,x1,10^(-7),95) //TESTA PARA QUAL NÚMERO A COLUNA 10 TERÁ 10^-7 DIGITOS SIG
Numerico/Programas/AREA 1/T_s/T6 - 5 - Jacobi.sce
A=[4 4; 3 4]
b=[1 1]'
x1=[1 0]'
[x,deltax]=jacobi(A,b,x1,10^(-5),5)
Numerico/Programas/AREA 1/T_s/T6 - 6 - Jacobi.sce
A=[4 4; 3 4]
b=[1 1]'
x1=[1 0]'
[x,deltax]=jacobi(A,b,x1,10^(-25),50)
Numerico/Programas/AREA 1/T_s/T6 - 7 - Gauss-Seidel.sce
A=[4 4; 3 4]
b=[1 1]'
x1=[1 0]'
[x,deltax]=gauss_seidel(A,b,x1,10^(-25),50)
Numerico/Programas/AREA 1/T_s/T6 - 8 - Gauss-Seidel.sce
A=[2 1 0 0 0 0 0 0
 1 2 1 0 0 0 0 0
 0 1 2 1 0 0 0 0
 0 0 1 2 1 0 0 0
 0 0 0 1 2 1 0 0
 0 0 0 0 1 2 1 0
 0 0 0 0 0 1 2 1
 0 0 0 0 0 0 1 2]
b =[1 1 1 1 1 1 1 1]'
x1=[0 0 0 0 0 0 0 0]' //chute inicial
[x,dx]=gauss_seidel(A,b,x1,10^(-4),25)
//pega os valores da iteração 26 e armazena no vetor x
//copia no scilab "norm(x,%inf)"
Numerico/Programas/AREA 1/T_s/T6 - 9 - Jacobi.sce
A=[2 1 0 0 0 0 0 0
 1 2 1 0 0 0 0 0
 0 1 2 1 0 0 0 0
 0 0 1 2 1 0 0 0
 0 0 0 1 2 1 0 0
 0 0 0 0 1 2 1 0
 0 0 0 0 0 1 2 1
 0 0 0
0 0 0 1 2]
b =[1 1 1 1 1 1 1 1]'
x1=[0 0 0 0 0 0 0 0]' //chute inicial
[x,dx]=jacobi(A,b,x1,10^(-4),100)
//pega os valores da iteração 51 e armazena transposta no vetor x
//copia no scilab "norm((b-A*x),2)"
Numerico/Programas/AREA 2/Euler.sce
function y=f(t,u)
 y=sin(u+t)
endfunction
function [u]=euler(N,cor) //mais pontos, mais suave a curva fica
 u(1)=2; //condição inicial
 t(1)=0; //tempo inicial
 T=3; //tempo final
 h=(T-t(1))/N
 for n=1:N
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
 end
 ultimo=u(N+1);
 plot(t,u,cor)
endfunction
Numerico/Programas/AREA 2/Heun.sce
function y=f(t,u)
 y=sin(u+t)
endfunction
function [u]=heun(N,cor) //mais pontos, mais suave a curva fica
 u(1)=2; //condição inicial
 t(1)=0; //tempo inicial
 T=3; //tempo final
 h=(T-t(1))/N
 for n=1:N
 t(n+1)=t(n)+h;
 util =u(n)+h*f(t(n),u(n))
 F1=f(t(n),u(n))
 F2=f(t(n+1),util) //Heun - explicito
 u(n+1)=u(n)+(h/2)*(F1+F2)
 end
 ultimo=u(N+1);
 plot(t,u,cor)
endfunction
Numerico/Programas/AREA 2/Interpolacao polinomial.sce
xi = [2 3]'; 
yi = [4 7]'; 
A = [xi.^0 xi.^1]; 
a = A\yi; 
p = poly(a,'x','c')
disp(p)
Numerico/Programas/AREA 2/Lagrange.sce
function y=L(X,x,k) //X é o ponto onde calculo a interpolação, x é o vetor dos pontos que quero calcular a interp, k é o indice 
n=size(x,1);
y=1
for j=1:n
 if(k <> j)
 y=y.*(X-x(j))./(x(k)-x(j))
 end
end
endfunction
x=[1 3 4 6]';
y=sin(x);
n=length(x); 
plot(x,y,'ro-'); xgrid
X=0.5:0.1:6.5
p=0
for k=1:n
 p=p+y(k)*L(X,x,k)
end
//L(6,x,3) para testar L(3) no ponto 6, tem que ser igual a 0
Numerico/Programas/AREA 2/M_s/M10 - 1 - Quadratura Gaussiana 2 nos.sce
//quadratura guassiana para 2 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=1; t1=-sqrt(3)/3;
w2=1; t2=-t1;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 
 A=(w1*f(x1)+w2*f(x2))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(8*x)
endfunction
disp(gaussiana(1,10,7))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/M_s/M10 - 10 - 4 nos.sce
//4 nós
x1=0
x2=5/5
x3=7/5
x4=2
//Limites de integração
a=0
b=2
A=[1 1 1 1; x1 x2 x3 x4; x1^2 x2^2 x3^2 x4^2;x1^3 x2^3 x3^3 x4^3]
b=[b-a (b^2-a^2)/2 (b^3-a^3)/3 (b^4-a^4)/4]'
w=inv(A)*b
disp(norm(w,2))
Numerico/Programas/AREA 2/M_s/M10 - 2 - Quadratura Gaussiana 3 nos.sce
//quadratura guassiana para 3 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=5/9; t1=-sqrt(3/5);
w2=8/9; t2=0;
w3=w1; t3=-t1;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 x3=alpha*t3+bet;
 
 A=(w1*f(x1)+w2*f(x2)+w3*f(x3))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(8*x)
endfunction
disp(gaussiana(1,10,7))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/M_s/M10 - 3 - Quadratura Gaussiana 4 nos.sce
//quadratura guassiana para 4 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=(18+sqrt(30))/36; t1=sqrt((3-2*sqrt(6/5))/7);
w2=(18-sqrt(30))/36; t2=sqrt((3+2*sqrt(6/5))/7);
w3=w1; t3=-t1;
w4=w2; t4=-t2;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 x3=alpha*t3+bet;
 x4=alpha*t4+bet;
 
 A=(w1*f(x1)+w2*f(x2)+w3*f(x3)+w4*f(x4))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(8*x)
endfunction
disp(gaussiana(1,10,4))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/M_s/M10 - 4 - Quadratura Gaussiana 2 nos.sce
//quadratura guassiana para 2 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=1; t1=-sqrt(3)/3;
w2=1; t2=-t1;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 
 A=(w1*f(x1)+w2*f(x2))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(7*x+1)
endfunction
disp(gaussiana(2,4,9))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/M_s/M10 - 5 - Quadratura Gaussiana 3 nos.sce
//quadratura guassiana para 3 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=5/9; t1=-sqrt(3/5);
w2=8/9; t2=0;
w3=w1; t3=-t1;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 x3=alpha*t3+bet;
 
 A=(w1*f(x1)+w2*f(x2)+w3*f(x3))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(7*x+1)
endfunction
disp(gaussiana(2,4,72))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/M_s/M10 - 6 - 3 nos.sce
//nós
t1=0.1
t2=0.5
t3=1
A=[1 1 1
 t1 t2 t3
 t1^2 t2^2 t3^2]
 
b=[1 1/2 1/3]'
w=inv(A)*b
disp(w)
//conferir nas alternativas qual a fração se se adequa a resposta
Numerico/Programas/AREA 2/M_s/M10 - 7 - 3 nos.sce
//nós
t1=0.1
t2=1.2
t3=2.1
A=[1 1 1
 t1 t2 t3
 t1^2 t2^2 t3^2]
 
b=[1 1/2 1/3]'
w=inv(A)*b
disp(w)
Numerico/Programas/AREA 2/M_s/M10 - 8 - 4 nos.sce
//4 nós
x1=0
x2=5/5
x3=7/5
x4=2
//Limites de integração
a=0
b=2
A=[1 1 1 1; x1 x2 x3 x4; x1^2 x2^2 x3^2 x4^2;x1^3 x2^3 x3^3 x4^3]
b=[b-a (b^2-a^2)/2 (b^3-a^3)/3 (b^4-a^4)/4]'
w=inv(A)*b
disp(w)
resposta=w(2)
disp(resposta)
Numerico/Programas/AREA 2/M_s/M10 - 9 - 4 nos.sce
//4 nós
x1=0
x2=2/5
x3=4/5
x4=2
//Limites de integração
a=0
b=2
A=[1 1 1 1; x1 x2 x3 x4; x1^2 x2^2 x3^2 x4^2;x1^3 x2^3 x3^3 x4^3]
b=[b-a (b^2-a^2)/2 (b^3-a^3)/3 (b^4-a^4)/4]'
w=inv(A)*b
disp(w(4))
Numerico/Programas/AREA 2/M_s/M11 - 1 - Euler.sce
function y=f(t,u)
 y=11-t^2
endfunction
function [u]=euler(a,T,h)
t(1)=2
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(euler(1,4,0.1))
Numerico/Programas/AREA 2/M_s/M11 - 2 - Euler.sce
function y=f(t,u)
 y=2-t^2
endfunction
function [u]=euler(a,T,h)
t(1)=2
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(euler(1,4,0.01))
Numerico/Programas/AREA 2/M_s/M11 - 3 - Heun.sce
function y=f(t,u)
 y=6-t^2
endfunction
function [u]=heun(a,T,h)
//T tempo final
//Nint numero de intervalos
t(1)=2
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 util=u(n)+h*f(t(n),u(n))
 F1=f(t(n),u(n))
 F2=f(t(n+1),util) //heun
 u(n+1)=u(n)+(h/2)*(F1+F2)
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(heun(1,4,0.1))
Numerico/Programas/AREA 2/M_s/M11 - 4 - Heun.sce
function y=f(t,u)
 y=5-t^2
endfunction
function [u]=heun(a,T,h)
//T tempo final
//Nint numero de intervalos
t(1)=2
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 util=u(n)+h*f(t(n),u(n))
 F1=f(t(n),u(n))
 F2=f(t(n+1),util) //heun
 u(n+1)=u(n)+(h/2)*(F1+F2)
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(heun(1,4,0.01)) //dados da pergunta e ja imprime resp.:0.4456529
Numerico/Programas/AREA 2/M_s/M11 - 5 - Euler.sce
function y=f(t,u)
 y=sin(u+t+12)
endfunction
function [u]=euler(a,T,h)
t(1)=0
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(euler(1,3,0.1))
Numerico/Programas/AREA 2/M_s/M11 - 6 - Euler.sce
function y=f(t,u)
 y=cos(u+3)
endfunction
function [u]=euler(a,T,h)
//T tempo final
//Nint numero de intervalos
t(1)=1
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(euler(2,4,0.01)) //dados da pergunta e ja imprime resp
Numerico/Programas/AREA 2/M_s/M11 - 7 - Heun.sce
function y=f(t,u)
 y=cos(u+7)
endfunction
function [u]=heun(a,T,h)
//T tempo final
//Nint numero de intervalos
t(1)=1
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 util=u(n)+h*f(t(n),u(n))
 F1=f(t(n),u(n))
 F2=f(t(n+1),util) //heun
 u(n+1)=u(n)+(h/2)*(F1+F2)
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(heun(2,4,0.01)) //dados da pergunta e ja imprime resp.:0.4456529
Numerico/Programas/AREA 2/M_s/M11 - 8 - Taylor 2� Ordem - Dig.sce
function y=f(t, u)
 y=cos(u+t)
endfunction
function y=ft(t, u)
 y=-sin(u+t)
endfunction
function [u]=taylor(a, T, N)
u(1)=a; //cond inicial
t(1)=1; 
h=(T-t(1))/N
for n=1:N
 t(n+1)=t(n)+h;
 F=f(t(n),u(n));
 Ft=ft(t(n),u(n))
 u(n+1)=u(n)+h*F+(h^2/2)*Ft
end
ultimo=u(N+1);
plot(t,u,'r.-');xgrid
endfunction
disp(taylor(0.88,2,1000000)) //resp.
Numerico/Programas/AREA 2/M_s/M12 - 1 - Passo Multiplo.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un + H [ C1Fn + C2Fn-1 + C3Fn-2]
x(1)=0
x(2)=-1
x(3)=-2
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: 1.9166667; -1.333333; 0.4166667
Numerico/Programas/AREA 2/M_s/M12 - 10.sce
//os x serão os pontos onde a f(x) é calculada
//o n é a posição do termo onde esta o Fn
//Fx(xn) = [C1Fn + C2F(xn+h/3) + C3Fn+2] / h
n=1
x(1)=0
x(2)=1/3
x(3)=2
//daqui pra baixo NUNCA MUDA
b(1)=0
b(2)=1
b(3)=2*x(n) 
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c)
Numerico/Programas/AREA 2/M_s/M12 - 2 - Passo Multiplo.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un + H [ C1Fn + C2Fn-1 + C3Fn-2]
x(1)=1
x(2)=-1
x(3)=-2
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: 1.9166667; -1.333333; 0.4166667
Numerico/Programas/AREA 2/M_s/M12 - 3 - Passo Multiplo.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un + H [ C1Fn + C2Fn-1 + C3Fn-2]
x(1)=1
x(2)=-1
x(3)=-2
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: 1.9166667; -1.333333; 0.4166667
Numerico/Programas/AREA 2/M_s/M12 - 4 - Passo Multiplo.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un + H [ C1Fn + C2Fn-1 + C3Fn-2]
x(1)=1
x(2)=-1
x(3)=-2
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
A=[c(1) c(2) c(3)];
B = norm(A,2)
disp(B)
Numerico/Programas/AREA 2/M_s/M12 - 5 - Passo Multiplo.sce
x(1)=1
x(2)=0
x(3)=-1
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=0
b(3)=2/6
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c)
Numerico/Programas/AREA 2/M_s/M12 - 6 - Passo Multiplo.sce
x(1)=1
x(2)=0
x(3)=-1
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=0
b(3)=2/6
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(max(c))
Numerico/Programas/AREA 2/M_s/M12 - 7.sce
clear
n=2
x(1)=n-1
x(2)=n
x(3)=n+1
b(1)=0
b(2)=1
b(3)=2*(n+0.3) // <----------- só mudar aqui
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c)
Numerico/Programas/AREA 2/M_s/M12 - 8.sce
clear
n=2
x(1)=n-1
x(2)=n
x(3)=n+1
b(1)=0
b(2)=1
b(3)=2*(n+0.8) // <----------- só mudar aqui
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c)
Numerico/Programas/AREA 2/M_s/M12 - 9.sce
//os x serão os pontos onde a f(x) é calculada
//o n é a posição do termo onde esta o Fn
//Fx(xn) = [C1Fn + C2F(xn+h/4) + C3Fn+2] / h
n=1
x(1)=0
x(2)=1/4
x(3)=2
//daqui pra baixo NUNCA MUDA
b(1)=0
b(2)=1
b(3)=2*x(n) 
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c)
Numerico/Programas/AREA 2/M_s/M7 - 5 - Lagrange.sce
function y=L(X,x,k)
n=size(x,1);
y=1;
for j=1:n
 if(k <> j)
 y=y.*(X-x(j))./(x(k)-x(j))
 end
end
endfunction
x=[3 4]'
y=3./x
n=length(x)
//plot(x,y,'ro-'),xgrid
X=3+36/100
p=0
for k=1:n
 p=p+y(k)*L(X,x,k)
end
disp(p)
//plot(X,p,'b.-')
Numerico/Programas/AREA 2/M_s/M8 - 1
//Q1: Encontre a reta y=a_1+a_2 x que melhor se ajusta aos pontos com coordenadas x=[0, 0.2, 0.4, 0.6, 0.8, 1] e y=\sin(x+32). Forneça como respostas o coeficente a_1.
clear
x=[0:0.2:1]';
y=sin(x+32);
n=size(x,1);
M=[n sum(x)
 sum(x) sum(x.^2)]
 
b=[sum(y)
 sum(x.*y)]
 
a=inv(M)*b
p = poly(a,'x','c')
disp(p)
Numerico/Programas/AREA 2/M_s/M8 - 2
//Q2: Dados os pontos x=0:0.2:1 e y=cos(x+34), encontre a reta y=ax+b que melhor se ajusta a esses pontos. Forneça como resposta o coeficiente a?
clear
x=[0:0.2:1]';
y=cos(x+34);
n=size(x,1);
M=[n sum(x)
 sum(x) sum(x.^2)]
 
b=[sum(y)
 sum(x.*y)]
 
a=inv(M)*b
p = poly(a,'x','c')
disp(p)
//XX = 0:0.1:10;
//YY = a(1)+a(2)*XX
//plot(XX,YY,'b')
//plot(x,y,'r*');xgrid 
Numerico/Programas/AREA 2/M_s/M8 - 3
//Q8: Dados os pontos x=1:0.5:12 e y=3sin(x+10)+x^2, encontre o polinômio de grau 2 que melhor se ajusta a esses pontos. Forneça como resposta o coeficiente de x^2.
clear
x=[1:0.5:12]';
y=3*sin(x+10)+x^2;
n=size(x,1);
p=2;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(y.*x.^(i-1))
end
a=inv(M)*b;
disp (a)
p = poly(a,'x','c')
disp(p)
//XX =0:0.1:10;
//YY =0
//residuo =0
//for i=1:p+1
// YY=YY+a(i)*XX.^(i-1);
// residuo=residuo+a(i)*x.^(i-1);
//end
//residuo=residuo-y;
//plot(XX,YY,'b')
//plot(x,y,'r*');xgrid
//os coeficientes da função que melhor se ajusta aos pontos é dado pelo vetor "a"
//a ordem da função é definida em "p"
Numerico/Programas/AREA 2/M_s/M8 - 4
//Q4: Dados os pontos x=1:0.5:12 e y=20*sin(x)+x^2, encontre a parábola p(x) que que melhor se ajusta a esses pontos. Forneça como resposta p(3.14).
clear
x=[1:0.5:12]';
y=20*sin(x)+x^2;
n=size(x,1);
p=2; //ordem do polinomio
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2) )
 end
end
for i=1:p+1
 b(i)=sum(y.*x.^(i-1) )
end
a=inv(M)*b;
p = poly(a,'x','c')
disp(p)
10.543316 -1.6482777*3.14 +0.9959846*3.14^2
//XX= 3.14;//colocar aqui o ponto que se quer determinar
//YY= 0
//residuo=0
//for i=1:p+1
// YY=YY+a(i)*XX.^(i-1);
// residuo=residuo+a(i)*x.^(i-1);
//end
//residuo=residuo-y
//YY=a(1)+a(2)*XX +a(3)*XX.^2 +a(4)*XX.^3 +a(5)
//plot(XX,YY,'b')
//plot(x,y,'r*');xgrid 
//disp(a)
//disp(YY) coloquei como resposta
Numerico/Programas/AREA 2/M_s/M8 - 5.sce
x=[1:0.1:4]';
y=sin(10+1./x);
n=size(x,1);
p=3; //ordem do polinomio
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2) )
 end
end
for i=1:p+1
 b(i)=sum(y.*x.^(i-1) )
end
a=inv(M)*b;
p = poly(a, 'x','c')
disp(p)
Numerico/Programas/AREA 2/M_s/M8 - 6
//Q6: Qual reta no formato y=k*x melhor se ajusta aos pontos com coordenadas x=-2:0.1:2 e y=exp(x/5)-1? Forneça como resposta k.
x=[-2:0.1:2]'
b=exp(x/3)-1
A=[x^1]
c=(A'*A)\(A'*b)
disp(c)
Numerico/Programas/AREA 2/M_s/M8 - 7
//Q7: Qual parábola do tipo y=a+bx^2 melhor se ajusta aos pontos com coordenadas x=0:0.1:2.5 e y=\cos(x)+16. Forneça o coeficiente b.
clear
x=[0:0.1:2.5]'
y=cos(x)+12;
n=size(x,1);
p=2;
M=[sum(x.^0) sum(x.^2)
 sum(x.^2) sum(x.^4)]
 
b=[sum(y)
 sum(y.*x.^2)]
 
a=inv(M)*b;
XX=0:0.1:2.5; // aqui coloca o valor do ponto que ele pede
YY=a(1)+a(2)*XX^2;
p = poly(a,'x','c')
disp(p)
//plot(XX,YY,'b')
//plot(x,y,'r*');xgrid
Numerico/Programas/AREA 2/M_s/M8 - 8
clear
x=[0:0.1:2.5]'
y=cos(x)+22;
n=size(x,1);
p=2;
M=[sum(x.^0) sum(x.^2)
 sum(x.^2) sum(x.^4)]
 
b=[sum(y)
 sum(y.*x.^2)]
 
a=inv(M)*b;
XX=0:0.1:2.5; // aqui coloca o valor do ponto que ele pede
YY=a(1)+a(2)*XX^2;
//plot(XX,YY,'b')
//plot(x,y,'r*');xgrid
disp(a)
p = poly(a,'x','c')
disp(p)
Numerico/Programas/AREA 2/M_s/M9 - 1 - Riemann.sce
function S=riemann(a,b,n)
// n numero de intervalos
h=(b-a)/n
x=linspace(a,b,n+1)
S=0
for i=1:n
 A=f(x(i))*h
 //m=(x(i)+x(i+1))/2;
 //A=f(m)*h
 S=S+A
end
endfunction
function y=f(x)
 y=cos(2*x)
endfunction
//no scilab riemann(2,3,32)
Numerico/Programas/AREA 2/M_s/M9 - 2 - Simpson.sce
function S=simpson(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x3=x(i+1) //extremo direito
 x2=x1+h/2 //ponto médio
 A1=1/6; A2=4/6; A3=1/6
 ds=(A1*f(x1)+A2*f(x2)+A3*f(x3))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=sin(x+19)
endfunction
//no scilab, entra com o comando "simpson(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//calcula o numero de intervalos com h fixo
a=0
b=3
h=0.5 //h fixo
n=abs((a-b)/h)
disp(n)
Numerico/Programas/AREA 2/M_s/M9 - 3 - Trapezio.sce
function S=trapezio(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x2=x(i+1) //extremo direito
 
 A1=1/2; A2=1/2
 ds=(A1*f(x1)+A2*f(x2))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=cos(x/14)
endfunction
//no scilab, entra com o comando "trapezio(2,3,8)"
Numerico/Programas/AREA 2/M_s/M9 - 4 - Simpson.sce
function S=simpson(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x3=x(i+1) //extremo direito
 x2=x1+h/2 //ponto médio
 A1=1/6; A2=4/6; A3=1/6
 ds=(A1*f(x1)+A2*f(x2)+A3*f(x3))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=cos(*x)
endfunction
disp(simpson(2,3,64))
Numerico/Programas/AREA 2/M_s/M9 - 8 - Riemann.sce
function S=riemann(a,b,n)
// n numero de intervalos
h=(b-a)/n
x=linspace(a,b,n+1)
S=0
for i=1:n
 A=f(x(i))*h
 //m=(x(i)+x(i+1))/2;
 //A=f(m)*h
 S=S+A
end
endfunction
function y=f(x)
 y=1/(11*x)
endfunction
//no scilab, entra com o comando "riemann(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//calcula o numero de intervalos com h fixo
a=2
b=3
h=0.0025 //h fixo
n=abs((a-b)/h)
disp(n)
Numerico/Programas/AREA 2/M_s/M9 - 9 - Trapezio.sce
function S=trapezio(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x2=x(i+1) //extremo direito
 
 A1=1/2; A2=1/2
 ds=(A1*f(x1)+A2*f(x2))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=x^3 -14 * x
endfunction
//no scilab, entra com o comando "trapezio(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//calcula o numero de intervalos com h fixo
a=1
b=3.5
h=0.1 //h fixo
n=abs((a-b)/h)
disp(n)
Numerico/Programas/AREA 2/T_s/T10 - 1 - 3 nos.sce
//nós
t1=0
t2=0.6
t3=1
A=[1 1 1
 t1 t2 t3
 t1^2 t2^2 t3^2]
 
b=[1 1/2 1/3]'
w=inv(A)*b
disp(w)
//conferir nas alternativas qual a fração se se adequa a resposta
Numerico/Programas/AREA 2/T_s/T10 - 10 - Quad. Gaussiana 4 nos.sce
//quadratura guassiana para 4 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=(18+sqrt(30))/36; t1=sqrt((3-2*sqrt(6/5))/7);
w2=(18-sqrt(30))/36; t2=sqrt((3+2*sqrt(6/5))/7);
w3=w1; t3=-t1;
w4=w2; t4=-t2;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 x3=alpha*t3+bet;
 x4=alpha*t4+bet;
 
 A=(w1*f(x1)+w2*f(x2)+w3*f(x3)+w4*f(x4))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(sin(sin(x)))
endfunction
disp(gaussiana(0,10,32))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/T_s/T10 - 2 - 4 nos.sce
//nós
t1=0
t2=1/3
t3=2/3
t4=1
A=[1 1 1 1
 t1 t2 t3 t4
 t1^2 t2^2 t3^2 t4^2
 t1^3 t2^3 t3^3 t4^3]
 
b=[1 1/2 1/3 1/4]'
w=inv(A)*b
disp(w)
//conferir nas alternativas qual a fração se se adequa a resposta
Numerico/Programas/AREA 2/T_s/T10 - 3 - 4 nos.sce
//nós
t1=1/8
t2=2/8
t3=6/8
t4=7/8
A=[1 1 1 1
 t1 t2 t3 t4 //integral de t de -1 a 1
 t1^2 t2^2 t3^2 t4^2
 t1^3 t2^3 t3^3 t4^3]
 
b=[1 1/2 1/3 1/4]'
w=inv(A)*b
disp(w)
//conferir nas alternativas qual a fração se se adequa a resposta
Numerico/Programas/AREA 2/T_s/T10 - 4 - 3 nos.sce
//nós
t1=-1
t2=0
t3=1
//limites
a=-1
b=1
A=[1 1 1 
 t1 t2 t3
 t1^2 t2^2 t3^2]
 
b=[b-a ((b^2)-(a^2))/2 ((b^3)-(a^3))/3]'
w=inv(A)*b
disp(w)
//conferir nas alternativas qual a fração se adequa a resposta
Numerico/Programas/AREA 2/T_s/T10 - 5 - 3 nos.sce
//nós
t1=-0.5
t2=0
t3=0.5
a=-1
b=1
A=[1 1 1 
 t1 t2 t3
 t1^2 t2^2 t3^2]
 
b=[b-a ((b^2)-(a^2))/2 ((b^3)-(a^3))/3]'
w=inv(A)*b
disp(w)
//conferir nas alternativas
qual a fração se adequa a resposta
Numerico/Programas/AREA 2/T_s/T10 - 6 - Quad. Gaussiana 2 nos.sce
//quadratura guassiana para 2 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=1; t1=-sqrt(3)/3;
w2=1; t2=-t1;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 
 A=(w1*f(x1)+w2*f(x2))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(sin(sin(x)))
endfunction
disp(gaussiana(0,10,2))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/T_s/T10 - 7 - Quad. Gaussiana 2 nos.sce
//quadratura guassiana para 2 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=1; t1=-sqrt(3)/3;
w2=1; t2=-t1;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 
 A=(w1*f(x1)+w2*f(x2))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(sin(sin(x)))
endfunction
disp(gaussiana(0,10,32))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/T_s/T10 - 8 - Quad. Gaussiana 2 nos.sce
//quadratura guassiana para 2 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=1; t1=-sqrt(3)/3;
w2=1; t2=-t1;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 
 A=(w1*f(x1)+w2*f(x2))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(sin(sin(x)))
endfunction
disp(gaussiana(0,10,128))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/T_s/T10 - 9 - Quad. Gaussiana 3 nos.sce
//quadratura guassiana para 3 nós
//calcula a integral da função y
function S=gaussiana(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
w1=5/9; t1=-sqrt(3/5);
w2=8/9; t2=0;
w3=w1; t3=-t1;
//w são os pesos
//t são os nós
S=0
for i=1:n
 alpha=(x(i+1)-x(i))/2
 bet =(x(i+1)+x(i))/2
 x1=alpha*t1+bet;
 x2=alpha*t2+bet;
 x3=alpha*t3+bet;
 
 A=(w1*f(x1)+w2*f(x2)+w3*f(x3))*h/2
 S=S+A
end
endfunction
//definição da função
function y=f(x)
 y=sin(sin(sin(x)))
endfunction
disp(gaussiana(0,10,64))
//esse código divide o intervalo de a até b em n intervalo, e em cada intervalo
//utiliza uma quadratura gaussiana com 3 nós
Numerico/Programas/AREA 2/T_s/T11 - 1 - Euler.sce
function y=f(t,u)
 y=u*t
endfunction
function [u]=euler(a,T,h)
//T tempo final
//Nint numero de intervalos
t(1)=1
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(euler(0.1,2,0.1)) //dados da pergunta e ja imprime resp.:0.3860892
Numerico/Programas/AREA 2/T_s/T11 - 2 - Heun.sce
function y=f(t,u)
 y=u*t
endfunction
function [u]=heun(a,T,h)
//T tempo final
//Nint numero de intervalos
t(1)=1
u(1)=a 
Nint=(T-t(1))/h
for n=1:Nint
 t(n+1)=t(n)+h;
 util=u(n)+h*f(t(n),u(n))
 F1=f(t(n),u(n))
 F2=f(t(n+1),util) //heun
 u(n+1)=u(n)+(h/2)*(F1+F2)
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(heun(0.1,2,0.1)) //dados da pergunta e ja imprime resp.:0.4456529
 
Numerico/Programas/AREA 2/T_s/T11 - 3 - Taylor 2� Ordem.sce
function y=f(t,u)
 y=u*t
endfunction
function y=ft(t,u)
 y=(u*t^2)+u
endfunction
function [u]=taylor(a,T,h)
u(1)=a; //cond inicial
t(1)=1; 
N=(T-t(1))/h
for n=1:N
 t(n+1)=t(n)+h;
 F=f(t(n),u(n));
 Ft=ft(t(n),u(n)) 
 u(n+1)=u(n)+h*F+(h^2/2)*Ft
end
ultimo=u(N+1);
plot(t,u,'r.-');xgrid
endfunction
disp(taylor(0.1,2,0.1)) //resp.:0.4428927
Numerico/Programas/AREA 2/T_s/T11 - 4 - Taylor 3� Ordem.sce
function y=f(t,u)
 y=u*t
endfunction
function y=ft(t,u)
 y=(u*t)*t+u
endfunction
function y=ftt(t,u)
 y=(u*t^3)+2*u*t+u*t
endfunction
function [u]=taylor(a,T,h)
u(1)=a; //cond inicial
t(1)=1; 
N=(T-t(1))/h
for n=1:N
 t(n+1)=t(n)+h;
 F=f(t(n),u(n));
 Ft=ft(t(n),u(n))
 Ftt=ftt(t(n),u(n)) 
 u(n+1)=u(n)+h*F+(h^2/2)*Ft+(h^3/6)*Ftt
end
ultimo=u(N+1);
plot(t,u,'r.-');xgrid
endfunction
disp(taylor(0.1,2,0.1)) //resp.:0.4478043
Numerico/Programas/AREA 2/T_s/T11 - 5 - Taylor 2� Ordem - Dig.sce
function y=f(t,u)
 y=u*t
endfunction
function y=ft(t,u)
 y=(u*t)*t+u
endfunction
function [u]=taylor(a,T,N)
u(1)=a; //cond inicial
t(1)=1; 
h=(T-t(1))/N
for n=1:N
 t(n+1)=t(n)+h;
 F=f(t(n),u(n));
 Ft=ft(t(n),u(n))
 Ftt=ftt(t(n),u(n)) 
 u(n+1)=u(n)+h*F+(h^2/2)*Ft+(h^3/6)*Ftt
end
ultimo=u(N+1);
plot(t,u,'r.-');xgrid
endfunction
disp(taylor(0.1,2,210)) //resp.:0.4481689
Numerico/Programas/AREA 2/T_s/T11 - 6 - Euler.sce
function y=f(t,u)
 y=sin(u) //função
endfunction
function [u]=euler(a,T,Nint)
//T tempo final
//Nint numero de intervalos
t(1)=1
u(1)=a //qdo u(0) troca por u(1) e acrescenta 1 ao T final exemplo u(2) fica u(3)
h=(T-t(1))/Nint
for n=1:Nint
 t(n+1)=t(n)+h;
 u(n+1)=u(n)+h*f(t(n),u(n))
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(euler(1,3,100)) //dados da pergunta e ja imprime resp.: 2.658666
Numerico/Programas/AREA 2/T_s/T11 - 7 - Heun.sce
function y=f(t,u)
 y=sin(u)
endfunction
function [u]=heun(a,T,Nint)
//T tempo final
//Nint numero de intervalos
t(1)=1
u(1)=a //qdo u(0) troca por u(1) e acrescenta 1 ao T final exemplo u(2) fica u(3)
h=(T-t(1))/Nint
for n=1:Nint
 t(n+1)=t(n)+h;
 util=u(n)+h*f(t(n),u(n))
 F1=f(t(n),u(n))
 F2=f(t(n+1),util) //heun
 u(n+1)=u(n)+(h/2)*(F1+F2)
end
ufinal=u(n+1);
plot(t,u,'r.-');xgrid
endfunction
disp(heun(1,3,100)) //dados da pergunta e ja imprime resp.:2.655871
Numerico/Programas/AREA 2/T_s/T11 - 8 - Taylor 2� Ordem - Dig.sce
function y=f(t,u)
 y=sin(u)
endfunction
function y=ft(t,u)
 y=cos(u)
endfunction
function [u]=taylor(a,T,N)
u(1)=a; //cond inicial
t(1)=1; 
h=(T-t(1))/N
for n=1:N
 t(n+1)=t(n)+h;
 F=f(t(n),u(n));
 Ft=ft(t(n),u(n))
 Ftt=ftt(t(n),u(n)) 
 u(n+1)=u(n)+h*F+(h^2/2)*Ft+(h^3/6)*Ftt
end
ultimo=u(N+1);
plot(t,u,'r.-');xgrid
endfunction
disp(taylor(1,3,1000)) //resp.:2.6559
Numerico/Programas/AREA 2/T_s/T12 - 1.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un + H [ C1Fn + C2Fn-1 + C3Fn-2]
x(1)=0
x(2)=-1
x(3)=-2
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: 1.9166667; -1.333333; 0.4166667
Numerico/Programas/AREA 2/T_s/T12 - 10.sce
//Encontre os coeficientes da fórmula para aproximar a derivada f_{xx}(x_n) = [c_1 f_{n} + c_2 f_{n+1}+c_3 f_{n+3}]/h^2
//Os x serão os pontos onde a f(x) é calculada
x(1)=0
x(2)=1
x(3)=3
//Daqui pra baixo NUNCA MUDA
b(1)=0
b(2)=0
b(3)=2
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c)
Numerico/Programas/AREA 2/T_s/T12 - 2.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un + H [ C1Fn+1 + C2Fn + C3Fn-1]
x(1)=1
x(2)=0
x(3)=-1
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: 0.4166667; 0.6666667; -0.0833333
Numerico/Programas/AREA 2/T_s/T12 - 3.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un + H [ C1Fn+1 + C2Fn-1 + C3Fn-3]
x(1)=1
x(2)=-1
x(3)=-3
//daqui pra baixo NUNCA MUDA
b(1)=1
b(2)=1/2
b(3)=1/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: 0.6666667; 0.4166667; -0.0833333
Numerico/Programas/AREA 2/T_s/T12 - 4.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un-1 + H [ C1Fn + C2Fn-1 + C3Fn-2]
x(1)=0
x(2)=-1
x(3)=-2
//daqui pra baixo NUNCA MUDA
b(1)=2
b(2)=0
b(3)=2/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: 2.3333333; -0.6666667; 0.3333333
Numerico/Programas/AREA 2/T_s/T12 - 5.sce
//os x serão os pontos onde a f(x) é calculada
//usa qdo Un+1 = Un-1 + H [ C1Fn+1 + C2Fn + C3Fn-1]
x(1)=1
x(2)=0
x(3)=-1
//daqui pra baixo NUNCA MUDA
b(1)=2
b(2)=0
b(3)=2/3
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: 0.3333333; 1.3333333; 0.3333333
Numerico/Programas/AREA 2/T_s/T12 - 7.sce
//os x serão os pontos onde a f(x) é calculada
//o n é a posição do termo onde esta o Fn
//Fx(xn) = [C1Fn-1 + C2Fn + C3Fn+1] / H
n=2
x(1)=-1
x(2)=0
x(3)=1
//daqui pra baixo NUNCA MUDA
b(1)=0
b(2)=1
b(3)=2*x(n)
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: -0.5; 0; 0.5
Numerico/Programas/AREA 2/T_s/T12 - 8.sce
//os x serão os pontos onde a f(x) é calculada
//o n é a posição do termo onde esta o Fn
//Fx(xn) = [C1Fn + C2Fn+1 + C3Fn+2] / H
n=1
x(1)=0
x(2)=1
x(3)=2
//daqui pra baixo NUNCA MUDA
b(1)=0
b(2)=1
b(3)=2*x(n)
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: -1.5; 2; -0.5
Numerico/Programas/AREA 2/T_s/T12 - 9.sce
//os x serão os pontos onde a f(x) é calculada
//o n é a posição do termo onde esta o Fn
//Fx(xn) = [C1Fn-1 + C2Fn + C3Fn+2] / H
n=2
x(1)=-1
x(2)=0
x(3)=2
//daqui pra baixo NUNCA MUDA
b(1)=0
b(2)=1
b(3)=2*x(n)
for i=1:3
 M(1,i)=1
 M(2,i)=x(i)
 M(3,i)=x(i)^2
end
c=inv(M)*b
S=c(1)^2+c(2)^2+c(3)^2
disp(c) //resp.: -0.6666667; 0.5; 0.1666667
Numerico/Programas/AREA 2/T_s/T7 - 10 - Lagrange.sce
//O polinômio p(x)=3L_1(x)+4L_2(x) interpola o vetor com x=[5, 6]. 
//Assinale a alternativa correta.
//RESPOSTA: p(6)=4
x=[5 6]'
y=[1 ]'
n=length(x) //ou n=size(x,1)
function y=L(X,x,k)
n=length(x);
y=1;
for j= 1:n
 if (k <> j)
 y=y.*(X-x(j))./(x(k)-x(j))
 end
end
endfunction
plot(x,y,'ro.-'),xgrid
X=1:0.1:20 //menor que o menor x e maior que o maior x
p=0
for k=1:n
 p=p+y(k)*L(X,x,k) // "." multiplicação elemento a elemento
end
plot(X,p,'g.-')
//colocar no console: 
//L(5,x,1) = 1.
//L(6,x,1) = 0.
// L(5,x,2) = 0.
//L(6,x,2) = 1.
//L1=L(5,x,1);
//L2=L(6,x,2);
//t=3*L1+4*L2 = 7.
//L5=3*L1 = 3.
//L6=4*L2 = 4.
Numerico/Programas/AREA 2/T_s/T7 - 2 - Vandermond.sce
x=[10001 10002 10003 10004 10005]';
n=size(x,1);
for i=1:n
 for j=1:n
 V(i,j)=x(i)^(j-1)
 end
end
nc=norm(V,1)*norm(inv(V),1) //numero de conficionamento
disp(nc)
Numerico/Programas/AREA 2/T_s/T7 - 3 - Vandermond.sce
x=[-1 0 1 2 3]';
n = length(x)
for i=1:n
 for j=1:n
 V(i,j)=x(i)^(j-1)
 end
end
kappa = norm(V,1)*norm(inv(V),1)
disp (kappa)
Numerico/Programas/AREA 2/T_s/T7 - 9 - Lagrange.sce
function y=L(X,x,k)
n=size(x,1);
y=1;
for j=1:n
 if(k <> j)
 y=y.*(X-x(j))./(x(k)-x(j))
 end
end
endfunction
x=[6 7 8 9]'
y=[3 4 7 6]'
n=length(x)
plot(x,y,'ro-'),xgrid
X=5:0.1:10
p=0
for k=1:n
 p=p+y(k)*L(X,x,k)
end
plot(X,p,'b.-')
//conferir no scilab qual das alternativas é falsa:
//L(7,x,4)=0 verdadeiro
//L(9,x,4)=0 falsa
//L(6,x,4)=0 verdadeiro
//L(8,x,4)=0 verdadeiro
Numerico/Programas/AREA 2/T_s/T8 - 1 - Minimos Quadraticos.sce
clear
x=0:0.1:1;
function y=f(x)
 y=sin(x)
endfunction
n=size(x,1);
p=1;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(f(x).*x.^(i-1))
end
a=inv(M)*b;
disp(a)
Numerico/Programas/AREA 2/T_s/T8 - 10 - Minimos Quadraticos.sce
clear
x=[0 1 2 3 5 7 8 10]';
y=[8 5 4 2 1 2 4 7]';
n=size(x,1);
p=3;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(y.*x.^(i-1))
end
a=inv(M)*b;
XX =0:0.1:10;
YY =0
residuo =0
for i=1:p+1
 YY=YY+a(i)*XX.^(i-1);
 residuo=residuo+a(i)*x.^(i-1);
end
residuo=residuo-y;
disp(residuo)
//ver qual o número na quinta posição
Numerico/Programas/AREA 2/T_s/T8 - 11 - Minimos Quadraticos.sce
clear
x=[0 1 2 3 5 7 8 10]';
y=[8 5 4 2 1 2 4 7]';
n=size(x,1);
p=3;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(y.*x.^(i-1))
end
a=inv(M)*b;
XX =0:0.1:10;
YY =0
residuo =0
for i=1:p+1
 YY=YY+a(i)*XX.^(i-1);
 residuo=residuo+a(i)*x.^(i-1);
end
residuo=residuo-y;
//os coeficientes da função que melhor se ajusta aos pontos é dado pelo vetor "a"
//a ordem da função é definida em "p"
disp (norm(residuo,2))
Numerico/Programas/AREA 2/T_s/T8 - 2 - Minimos Quadraticos.sce
clear
x=0:0.1:1;
function y=f(x)
 y=sin(x)
endfunction
n=size(x,1);
p=2;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(f(x).*x.^(i-1))
end
a=inv(M)*b;
disp(a)
Numerico/Programas/AREA 2/T_s/T8 - 3 - Minimos Quadraticos.sce
x=[0:0.1:1]'
b=sin(x)
A=[x^1]
c=(A'*A)\(A'*b)
disp(c)
Numerico/Programas/AREA 2/T_s/T8 - 4 - Minimos Quadraticos.sce
clear
x=0:0.1:1;
function y=f(x)
 y=cos(x)
endfunction
n=size(x,1);
p=2;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(f(x).*x.^(i-1))
end
a=inv(M)*b;
p = poly(a,'x','c')
disp(p)
Numerico/Programas/AREA 2/T_s/T8 - 5 - Minimos Quadraticos.sce
clear
x=2:0.1:4
y=exp(x);
n=size(x,1);
p=2;
M=[sum(x.^0) sum(x.^2)
 sum(x.^2) sum(x.^4)]
 
b=[sum(y)
 sum(y.*x.^2)]
 
a=inv(M)*b;
p = poly(a,'x','c')
disp(p)
Numerico/Programas/AREA 2/T_s/T8 - 6 - Minimos Quadraticos.sce
x=[0:0.1:1];
y=sin(x)+1;
yi=log(y);
A=[ones(11,1) x'];
v=inv(A'*A)*A'*yi'
a=exp(v(1))
b=v(2)
disp(a,b)
Numerico/Programas/AREA 2/T_s/T8 - 7 - Minimos Quadraticos.sce
x=[0:0.1:1];
y=sin(x)+1;
yi=1./y;
A=[ones(11,1) x'];
v=inv(A'*A)*A'*yi';
a=v(1)
b=v(2)
disp(a,b)
Numerico/Programas/AREA 2/T_s/T8 - 8 - Minimos Quadraticos.sce
clear
x=[0 1 2 3 5 7 8 10]';
y=[8 5 4 2 1 2 4 7]';
n=size(x,1);
p=2;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(y.*x.^(i-1))
end
a=inv(M)*b;
p = poly(a, 'x','c')
disp(p)
Numerico/Programas/AREA 2/T_s/T8 - 9 - Minimos Quadraticos.sce
clear
x=[0 1 2 3 5 7 8 10]';
y=[8 5 4 2 1 2 4 7]';
n=size(x,1);
p=3;
for i=1:p+1
 for j=1:p+1
 M(i,j)=sum(x.^(i+j-2))
 end
end
for i=1:p+1
 b(i)=sum(y.*x.^(i-1))
end
a=inv(M)*b;
p = poly(a, 'x','c')
disp(p)
Numerico/Programas/AREA 2/T_s/T9 - 1 - Riemann.sce
function S=riemann(a,b,n)
// n numero de intervalos
h=(b-a)/n
x=linspace(a,b,n+1)
S=0
for i=1:n
 A=f(x(i))*h
 //m=(x(i)+x(i+1))/2;
 //A=f(m)*h
 S=S+A
end
endfunction
function y=f(x)
 y=cos(2*x)
endfunction
disp(riemann(2,3,32))
Numerico/Programas/AREA 2/T_s/T9 - 10 - Simpson.sce
function S=simpson(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x3=x(i+1) //extremo direito
 x2=x1+h/2 //ponto médio
 A1=1/6; A2=4/6; A3=1/6
 ds=(A1*f(x1)+A2*f(x2)+A3*f(x3))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=x^2 + exp(x)
endfunction
//no scilab, entra com o comando "simpson(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//calcula o numero de intervalos com h fixo
a=0
b=2
h=0.5 //h fixo
n=abs((a-b)/h)
disp(n)
4
disp(simpson(0,2,4))
Numerico/Programas/AREA 2/T_s/T9 - 2 - Trapezio.sce
function S=trapezio(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x2=x(i+1) //extremo direito
 
 A1=1/2; A2=1/2
 ds=(A1*f(x1)+A2*f(x2))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=cos(2*x)
endfunction
disp(trapezio(2,3,8))
Numerico/Programas/AREA 2/T_s/T9 - 3 - Simpson.sce
function S=simpson(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x3=x(i+1) //extremo direito
 x2=x1+h/2 //ponto médio
 A1=1/6; A2=4/6; A3=1/6
 ds=(A1*f(x1)+A2*f(x2)+A3*f(x3))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=cos(2*x)
endfunction
disp(simpson(2,3,64))
Numerico/Programas/AREA 2/T_s/T9 - 5 - Trapezio.sce
function S=trapezio(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x2=x(i+1) //extremo direito
 
 A1=1/2; A2=1/2
 ds=(A1*f(x1)+A2*f(x2))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=sin(cos(2*x))
endfunction
disp(trapezio(2,3,32))
//no scilab, entra com o comando "trapezio(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//para essa questão, trocar o valor de n e avaliar a partir de qual o n a resposta fica
//com 3 dígitos após a vírgula sem alterar
Numerico/Programas/AREA 2/T_s/T9 - 8 - Riemann.sce
function S=riemann(a,b,n)
// n numero de intervalos
h=(b-a)/n
x=linspace(a,b,n+1)
S=0
for i=1:n
 A=f(x(i))*h
 //m=(x(i)+x(i+1))/2;
 //A=f(m)*h
 S=S+A
end
endfunction
function y=f(x)
 y=x^2 + exp(x)
endfunction
//no scilab, entra com o comando "riemann(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//calcula o numero de intervalos com h fixo
a=0
b=2
h=0.0078125 //h fixo
n=abs((a-b)/h)
disp(n)
disp(riemann(0,2,256))
Numerico/Programas/AREA 2/T_s/T9 - 9 - Trapezio.sce
function S=trapezio(a,b,n)
h=(b-a)/n //n numero de intervalos
x=linspace(a,b,n+1) //cria um vetor que vai de a até b, com n+1 pontos
S=0
for i=1:n
 x1=x(i) // extremo esquerdo
 x2=x(i+1) //extremo direito
 
 A1=1/2; A2=1/2
 ds=(A1*f(x1)+A2*f(x2))*h
 S=S+ds
end
endfunction
function y=f(x)
 y=x^2 + exp(x)
endfunction
//no scilab, entra com o comando "trapezio(a,b,n)", sendo a o limite inferior da integral,
//b o limite superior da integral, e n o número de intervalos que deseja (o problema não dará
//o numero de intervalos)
//calcula o numero de intervalos com h fixo
a=0
b=2
h=0.0625 //h fixo
n=abs((a-b)/h)
disp(n)
disp(trapezio(0,2,32))
Numerico/Programas/AREA 2/Taylor.sce
function y=f(t,u)
 y=u*t
endfunction
function y=ft(t,u)
 y=(u*t)*t+u
endfunction
//function y=ftt(t,u) ordem 3
// y=(u*t)*t+u derivada disso
//endfunction
function [u]=taylor(N,cor)
 u(1)=2; //condição inicial
 t(1)=0; //tempo inicial
 T=3; //tempo final
 h=(T-t(1))/N
 for n=1:N
 t(n+1)=t(n)+h;
 F=f(t(n),u(n));
 Ft=ft(t(n),u(n))
 u(n+1)=u(n)+h*F1+(h^2/2)*Ft //ordem 2
// u(n+1)=u(n)+h*F1+(h^2/2)*Ft + (h^3/6)*Ftt //ordem 3
 end
 ultimo=u(N+1);
 plot(t,u,cor)
endfunction
endfunction
Numerico/Programas/AREA 2/Vandermond.sce
x=[1 3 4 6]';
y=sin(x);
n=length(x);
plot(x,y,'ro-'), xgrid
for i=1:n
 for j=1:n
 V(i,j)=x(i)^(j-1)
 end
end
a=inv(V)*y //para saber os coeficientes do polinômio
//1.para descobrir o ponto
//X=3.2
//p=0
//for k=1:n
// p=p+a(k)*X^(k-1)
//end
//2.para fazer descobrir o polinomio que passa nos pontos
//X=0.5:0.1:6.5
//p=0
//for k=1:n
// p=p+a(k)*X.^(k-1)
//end
//plot(X,p,'b.-')
//disp(a) //coeficientes do polinomio (ordem crescente de grau)
nc=norm(V)*norm(inv(V)) //numero de condicionamento
disp(nc)
Numerico/QUESTOES.xlsx
T1
		QUESTÃO 1:		 x=(10010) um número em complemento 2 com 5 dígitos, converter para decimal
		SCILAB: 
		VIDA: 		-1*2^7
		RESPOSTA:		-14
		QUESTÃO 2:		 X = (10010) um número inteiro usando sinal e módulo, converter para decimal
		SCILAB: 		bin2dec('0010')
		VIDA: 		primeiro dígito à esquerda é o expoente que multiplica o número
		1 = negativo; 0 = positivo
		o restante usar a lógica "normal"
		[(-1)^1] [(0*2^3) + (0*2^2) + (1*2^1) + (0*2^0)] = -2
		RESPOSTA:		-2
		QUESTÃO 3:		 (0|1000|0100) representa qual número decimal, sabendo BIAS = 7
		SCILAB: 		(-1)^0 *(1+2^-2)*2^(8-7)
		VIDA:		0 = (-1)^0
		1000 = EXPOENTE = 2^3 =8
		0100 = 1+ NÚMERO = 1 + 2^-2
		(-1)^0 *(1+2^-2)*2^(8-7)
		RESPOSTA:		2.5
		QUESTÃO 4:		 x=(101001)2 para decimal
		SCILAB: 		bin2dec('101001')
		VIDA:		 (1*2^5) + (1*2^3) + (1*2^0)
		RESPOSTA:		41
		QUESTÃO 5:		 x=607.25 para Hexadecimal
		SCILAB:		 x=607
		d0=modulo (x,16),x=fix(x/16)		ATÉ CHEGAR A X=0
		d0=15
		x=37
		d1=modulo (x,16),x=fix(x/16)
		d1=5
		x=2
		d2=modulo (x,16),x=fix(x/16)
		d2=2
		x=0
		x=0.25
		d0=fix(16*x),x=16*x-d0		ATÉ CHEGAR A X=0
		d0=4
		x=0
		RESPOSTA:		(25F.4)
		QUESTÃO 6:		 ponto flutuante F(10, 4, -9998, 9998) = F(β,|M|,EMIN,EMAX)
		Considere o vetor com 3 componentes
		v=[v1, v2, v3] = [1+0.00001, 100000 + 1, 100000 + 1111]
		Qual o valor v nesta máquina?
		(ou seja, calcule v_1=1+0.00001, v_2=100000+1, v_3=100000+1111)
		VIDA:		1+0.00001 = 1.00001*10^0
		100000+1 = 100001 = 1.00001*10^5
		100000+1111 = 101111 = 1.01111*10^5
		BASE 10 = PRECISO MOSTRAR PRIMEIRO DÍGITO
		4 DÍGITOS DISPONÍVEIS
		CORTA
		1.000*10^0
		1.000*10^5
		1.011*10^5
		RESPOSTA:		v = [1, 100000, 101100]
		QUESTÃO 7: 		Represente 12.25 em uma máquina com ponto flutuante F(2, 5, 5) e BIAS = 15
		SCILAB:		dec2base(12,2)
		1100
		y=0.25
		d0=fix(2*y), y=2*y-d0
		d0=0
		y=0.5
		d1=fix(2*y), y=2*y-d1
		d1=1
		y=0
		(1100,01)
		RESPOSTA:		1.10001 * 2^10010
		QUESTÃO 8: 		Converta x=(01D0,C)16 para decimal
		SCILAB:		x=hex2dec('01D0')
		y= 12*16^-1
		x+y
		VIDA:		(0*16^3) + (1*16^2) + (13*16^1) + (0*16^0) + (12*16^-1)
		RESPOSTA:
464.75
		QUESTÃO 9: 		9^2-6+1
		2*3+1
		SCILAB:		(9^2-6+1)/(2*3+1)
		VIDA:		(9^2-6+1)/(2*3+1)
		RESPOSTA:		(9^2-6+1)/(2*3+1)
		QUESTÃO 10: 		6/1+2
		6^1-2
		6+1*2
		6/1*2
		SCILAB:		-
		VIDA:		-
		RESPOSTA:		8, 4, 8, 12
M1
		QUESTÃO 1: 		Converta o número inteiro x=(101111)2 para decimal
		SCILAB: 		bin2dec('101111')
		VIDA: 		1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0
		RESPOSTA:		47
		QUESTÃO 2: 		Seja x=(10100) um número inteiro usando sinal e módulo, converter para decimal
		SCILAB: 		bin2dec('0100')
		VIDA: 		primeiro dígito à esquerda é o expoente que multiplica o número
		1 = negativo; 0 = positivo
		o restante usar a lógica "normal"
		(-1)^1 * (1*2^2) = -4
		RESPOSTA:		-4
		QUESTÃO 3:		Seja x=(11001) um número de complemento 2 com 5 dígitos, converter x para decimal
		SCILAB: 		x=bin2dec('1001')
		y= (-1)*2^4
		x+y
		VIDA: 		primeiro dígito à esquerda é número que multiplica 2^n-1
		1 = -1; 0 = 0
		o restante usar a lógica "normal"
		(-1)*2^4 * (1*2^2) = -7
		RESPOSTA:		-7
		QUESTÃO 4:		Converter x=(FADA.8)16 para decimal
		SCILAB: 		hex2dec('FADA')
		y=8*16^-1
		x+y
		VIDA: 		15*16^3 + 10*16^2 + 13*16^1 + 10*16^0 + 8*16^-1
		RESPOSTA:		64218.5
		QUESTÃO 5:		Converter x=703168.5 para hexadecimal
		SCILAB: 		dec2base(703168,16)
		d=fix(16*y),y=16*y-d
		d=8
		y=0
		VIDA: 		-
		RESPOSTA:		ABACO.8
		QUESTÃO 6:		A sequência de bits (0|1100|0010) representa qual número decimal
		BIAS = 8
		SCILAB: 		(-1)^0 *(1+2^-3)*2^(12-8)
		VIDA: 		0 = (-1)^0
		1100 = EXPOENTE = 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 12
		0010 = 1+ NÚMERO = 1 + 0*2^-1 + 0*2^-2 + 1*2^-3 + 0*2^-4
		(-1)^0 *(1+2^-3)*2^(12-8)
		RESPOSTA:		18
		QUESTÃO 7:		Represente 26.5 em uma máquina com ponto flutuante F(2, 5, 5) e BIAS = 15
		SCILAB: 		dec2base(26,2)
		11010
		x=0.5
		d=fix(2*x),x=2*x-d
		d=1
		x=0
		(11010,1)
		1.10101 * 10^4
		BIAS + 4 = 19
		dec2base(19,2)
		10011
		RESPOSTA:		1.10101*2^10011
		QUESTÃO 8:		 ponto flutuante F(10, 4, -9998, 9998) = F(β,|M|,EMIN,EMAX)
		Considere v= 200000+34
		Qual o valor v nesta máquina?
		VIDA: 		200000+34 = 2,00034*10^5
		BASE 10 = PRECISO MOSTRAR PRIMEIRO DÍGITO
		4 DÍGITOS DISPONÍVEIS
		CORTA
		2.000*10^5
		RESPOSTA:		200000
		QUESTÃO 9:		Como escreve no scilab
		9^2-6+1 / 2*3+1
		SCILAB: 		(9^2-6+1)/(2*3+1)
		RESPOSTA:		(9^2-6+1)/(2*3+1)
		QUESTÃO 10:		Resultado de
		5/1+2		5+1*2
		5^1-2		5/1*2
		SCILAB: 		5/1+2		5+1*2
		5^1-2		5/1*2
		RESPOSTA:		7,3,7,10
T2
		QUESTÃO 1: 		β=2, |M| = 5, 101.01010101010
		Arredondar por proximidade
		VIDA:		Primeiro normalizamos o número (1.0101010101010)
		Como em binário não precisamos guardar o primeiro dígito
		a mantissa do número é igual a 01010
		Como o próximo número após a mantissa é 1, arredondamos pra cima
		RESPOSTA:		101,011
		QUESTÃO 2: 		β=10, |M| = 5, 123.456789
		Arredondar por corte
		VIDA:		123.45
		RESPOSTA:		123.45
		QUESTÃO 3: 		β=10, |M| = 5, 123.456789
		Arredondar por proximidade
		VIDA:		123.46
		RESPOSTA:		123.46
		QUESTÃO 4: 		Quantos dígitos significativos possui x*=12000.00 ao aproximar x=1234.56
		SCILAB: 		x=1234.56
		x1=1200.00
		erro_rel=abs((x-x1)/x)
		erro_rel = 0.0279938
		0.0279938 < 5 * 10^-2
		RESPOSTA:		2
		QUESTÃO 5: 		Quantos dígitos significativos possui x*=0.00012 ao aproximar x=0.000121212
		SCILAB: 		x=0.000121212
		x1=0.00012
		erro_rel=abs((x-x1)/x)
		erro_rel = 0.009999
		0.009999 < 5 * 10^-2
		RESPOSTA:		2
		QUESTÃO 6: 		Quantos dígitos significativos possui x*= 1999.981928 ao aproximar x=2000
		SCILAB: 		x=2000
		x1=1999.981928
		erro_rel=abs((x-x1)/x)
		erro_rel = 0.000009
		0.000009 < 5 * 10^-5
		RESPOSTA:		5
		QUESTÃO 7: 		β=10, |M| = 10, x=3/9, y=0.333333
		Haverá perda de quantos dígitos siginificativos no cálculo x-y
		SCILAB:		x=3/9
		x=0.333333333
		y=0.333333
		x-y
		0.000000333
		RESPOSTA:		6
		QUESTÃO 8: 		Para qual x a função f(x)=sin(x^2-4) terá perda de dígitos significativos
		VIDA:		Cancelamento catastrófico acontece quando fazemos subtrações com
		números muito próximos entre si
		RESPOSTA:		x ≈ ±2
		QUESTÃO 9: 		Para qual x a função f(x) = (x+3)/(1+x^2) terá perda de dígitos significativos
		VIDA:		Cancelamento catastrófico acontece quando fazemos subtrações com
		números muito próximos entre si
		RESPOSTA:		x ≈ -3
		QUESTÃO 10: 		Sejam x=2^1/2 e y=18^1/2
		u=x*x=2 e v= y/x = (18/2)^1/2
		qual o erro relativo ao calcular x*x e y/x e o valor do epsilon de máquina
		SCILAB:		x=sqrt(2)
		1.41421D+00
		y=sqrt(18)
		4.24264D+00
		u=x*x
		2.00000D+00
		v=y/x
		3.00000D+00
		abs((u-x)/x)
		4.14214D-01
		abs((v-(y/x))/(y/x))
		0.00000D+00
		RESPOSTA:
M2
		QUESTÃO 1: 		máquina com base 10, precisão 9
		arredondar por truncamento (corte) x=12345.678901234
		VIDA:		12345.6789
		RESPOSTA:		12345.6789
		QUESTÃO 2: 		β=10, |M| = 6, 12345.678901234
		Arredondar por proximidade
		VIDA:		12345.7
		RESPOSTA:		12345.7
		QUESTÃO 3: 		β=2, |M| = 3, x=10101.010101010101
		Arredondar por truncamento (corte)
		VIDA:		Primeiro normalizamos o número (1.0101010101010101*2^4)
		xc=(1.010)1010101010101*2^4
		xc=1.010*2^4
		deslocar de volta para notação normal (deslocar 4 casas o ponto decimal)
		RESPOSTA:		10100
		QUESTÃO 4: 		β=10, |M| = 8, x=0.0012345678901234
		Arredondar por proximidade
		VIDA:		Primeiro normalizamos o número (1.2345678901234*10^-3)
		xp=(1.2345678)901234*10^-3
		xp=1.2345678*10^-3=1.2345679*10^-3
		xp=0.0012345679
		RESPOSTA:		0.0012345679
		QUESTÃO 5: 		Quantos dígitos significativos possui x=987650 ao aproximar y=987654.321123
		SCILAB: 		y=987654.321123
		x=987650
		log10(abs((y-x)/y))
		5.3590083
		RESPOSTA:		5
		QUESTÃO 6: 		Quantos dígitos significativos possui x=798768.7898 ao aproximar y=798768.789789789
		SCILAB: 		y=798768.789789789
		x=798768.7898
		erro_rel=abs((y-x)/y)
		erro_rel = 1.27834D-11
		0.0000000000127834 < 5 * 10^-11
		RESPOSTA:		11
		QUESTÃO 7: 		Quantos dígitos significativos possui x=0.000333 ao aproximar y=1/3000
		SCILAB: 		y=1/3000
		x=0.000333
		erro_rel=abs((y-x)/y)
		erro_rel = 0.001
		0.001 < 5 * 10^-3
		RESPOSTA:		3
		QUESTÃO 8: 		x=10^14, y=10^-s, z=x+y
		qual o maior valor de 's' que permite 'z' diferente de 'x' no scilab
		SCILAB: 
		RESPOSTA:
		QUESTÃO 9: 		m=((13*x+13)^1/2)-13
		o cálculo de 'm' possui cancelamento catastrófico quando x for aproximado de a
		qual valor de a?
		VIDA: 		m=0 quando x=12
		a é próximo de x
		RESPOSTA:		12
		QUESTÃO 10: 		x=1234560/7 e y=176365.71428

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais