Sei sulla pagina 1di 11

Exerccio 2.

14:
>> f = inline ( 'x+ 0.5 + 2*cos(pi*x)' , 'x');
>> fplot (f, [0.5,1]);
>>[zero,res,niter,erro] = bisseccao(f,0.5,1,10^(-2),20)
zero =
0.7109
res =
-0.0195
niter =
5
erro =
0.0078
Resposta: zero = 0.7109

Exerccio 2.15:
>> f = inline ( 'x.^3-x-1','x');
>> fplot(f,[1,2]);
>> [zero,res,niter,erro] = bisseccao(f,1,2,10^(-1),20)
zero =
1.3125
res =
-0.0515
niter =
3
erro =
0.0625
Resposta: N minimo de iteraes 3. Zero = 1.3125

Exerccio 2.16:
Sendo sin(t) uma funo peridica e e-x uma funo descrescente conclumos que o primeiro zero da derivada
equivale ao valor mximo (em modulo) da funo assim sendo calculando a derivada de para descobrir o mximo
ficamos com :
(x) = f(x) = -0.06*pi*exp(-0.06*pi*t)*sin(2*t-pi)+2*exp(-0.06*pi*t)*cos(2*t-pi)
>> f = inline ('-0.06*pi*exp(-0.06*pi*t).*sin(2*t-pi)+2*exp(-0.06*pi*t).*cos(2*t-pi)','t');
>> [zero,res,niter,erro] = bisseccao(f,0,1,10^-3,2)
zero =
0.6250
res =
-0.4016
niter =
2
erro =
0.1250
% tenso mxima (em mdulo) ocorre quando x0.6250
>> E= inline ('exp(-0.06*pi*t).*sin(2*t-pi)','t');
>> E(0.6250)
ans =
-0.8435 % a tenso mxima em mdulo aproximadamente 0.8435

Exerccio 2.17:
>> f = inline( 'cosh(x) + cos(x)- 1','x')
>> fplot(f,[-1,1]);
(No temos nenhum zero neste caso)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> f = inline( 'cosh(x) + cos(x)- 2','x')

>> fplot(f,[-1,1]);
( tem um zero em 0 (no Matlab d erro))
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> f = inline( 'cosh(x) + cos(x)- 2','x')
>> fplot(f,[-3,3]);
(tem dois zeros)
>> [zero,res,niter,erro] = bisseccao(f,-3,0,10^(-10),20)
zero =
-1.8579
res =
6.3820e-007
niter =
20
erro =
1.4305e-006
>> [zero,res,niter,erro] = bisseccao(f,0,3,10^(-10),20)
zero =
1.8579
res =
6.3820e-007
niter =
20
erro =
1.4305e-006

Exerccio 2.18:
>> f = inline('(3.5*10^(7) + 0.401.*(1000./V).^2).*(V - 1000*42.7*10^(-6))- 1.3806503*10^(-23)*1000*300','V');
>> fplot (f,[0,1]) % observamos que a funo crescente que tem um zero no intervalo [0,1]
>> [zero,res,niter,erro] = bisseccao(f,0,1,10^-12,100)
zero =
0.0427
res =
2.2370e-004
niter =
39
erro =
9.0949e-013
% O volume ocupado por 1000 molculas de dixido de carbono temperatura de 300K e presso 3.5*10 7 Pa
0.0427m3

Exerccio 2.23:
>> f = inline ('sqrt(0.1960)-sin(a)','a');
>> df = inline('-cos(a)','a');
>> fplot(f,[0,5])
>> hold on
>> [zero,res,niter,erro]=newton(f,df,0,10^(-7),100)
zero =
0.4586
res =
0
niter =
4
erro =
9.0868e-010

Exerccio 2.29:
1.
>> f = inline ('exp(x) - 2*x.^2','x');
>> fplot(f,[-1,3]) % razes entre [-1,0]; [2,1]; [2,3]
2.
>> g = inline ('log(2*x.^2)','x');
>> [x,niter,erro]=pontofixo(g,2.5,10^-7,4)
No converge no nmero mximo de iteraes
x=
2.5848
niter =
5
erro =
0.0098
>> [x,niter,erro]=pontofixo(g,2.5,10^-7,9)
No converge no nmero mximo de iteraes
x=
2.6091
niter =
10
erro =
0.0027
>> [x,niter,erro]=pontofixo(g,2.5,10^-7,14)
No converge no nmero mximo de iteraes
x=
2.6156
niter =
15
erro =
7.0692e-004
3.
>> [zero,res,niter,erro] = bisseccao(f,2,3,10^-12,5)
zero =
2.6094
res =
-0.0271
niter =
5
erro =
0.0156
>> [zero,res,niter,erro] = bisseccao(f,2,3,10^-12,10)
zero =
2.6177
res =
-6.1716e-004
niter =
10
erro =
4.8828e-004

>> [zero,res,niter,erro] = bisseccao(f,2,3,10^-12,15)


zero =
2.6179
res =
2.4368e-005
niter =
15
erro =
1.5259e-005

Exerccio 2.30:
1.
Analiticamente : Pelo teorema de Bolzano sabemos que se f(a)*f(b) <0 existe pelo menos um zero no intervalo de
[a,b] ( neste caso: f(1)*f(2) <0) e se para alm disso esse zero for nico ento f(X) >0 para todo o x [a,b]. ( nesta
caso f(x) = ex-x > 0 x [1,2])
Matlab atravs do grfico fcil verificar que o zero nico entre [1,2]:
>> f = inline ('exp(x) - x -2','x');
>> fplot(f,[1,2]);
2.
>> f = inline ('exp(x) - x -2','x');
>> fplot(f,[1,2]);
>> g1 = inline ('exp(x)-2','x');
>> g2 = inline ('log(x+2)','x');
>> g3 = inline ('x - 0.1*(exp(x)-x-2)','x');
>> [x,niter,erro]=pontofixo(g1,1.5,10^-4,100)
x=
Inf
niter =
5
erro =
NaN
>> [x,niter,erro]=pontofixo(g2,1.5,10^-4,100)
x=
1.1462
niter =
8
erro =
7.3150e-005
>> [x,niter,erro]=pontofixo(g3,1.5,10^-4,100)
x=
1.1465
niter =
28
erro =
8.1692e-005
3.
% Escolher a aproximao inicial ( f(a)*f(a) >0) neste caso f(2)*f(2) >0, logo podemos escolher 2 como
aproximao inicial.
>> df = inline ('exp(x) - 1','x');

>> [zero,res,niter,erro]=newton(f,df,2,10^-4,100)
zero =
1.1462
res =
3.9199e-011
niter =
5
erro =
4.9918e-006
% para o mtodo de newton so necessrias menos iteraes que para o mtodo do ponto fixo

Exerccio 2.31:
1.
Analiticamente: Pelo teorema de Bolzano sabemos que se f(a)*f(b) <0 existe pelo menos um zero no intervalo de
[a,b] ( neste caso: f(1)*f(2) <0) e se para alm disso esse zero for nico ento f(X) >0 para todo o x [a,b]. ( nesta
caso f(x) = 1/x+x-2 > 0 x [1,2])
Matlab atravs do grfico fcil verificar que o zero nico entre [1,2]:
>> f = inline ('log(x) - 1./x','x');
>> fplot (f,[1,2])
2.
>> g1 = inline ('exp(1./x)','x');
>> g2 = inline ('1./log(x)','x');
>> [x,niter,erro]=pontofixo(g1,1.5,10^-4,100)
x=
1.7632
niter =
16
erro =
9.4834e-005
>> [x,niter,erro]=pontofixo(g2,1.5,10^-4,100)
No converge no nmero mximo de iteraes
x=
-0.1703 + 0.4545i
niter =
101
erro =
0.9091
3.
>> [zero,res,niter,erro]=bisseccao(f,1,2,10^-4,100)
zero =
1.7632
res =
1.9371e-005
niter =
13
erro =
6.1035e-005

Exerccio 2.34:
1.
>> f = inline('x^3 -36*x^2 + 188*x-240','x');
>> fplot(f,[29.5,31]) %verifica-se facilmente que h um zero neste intervalo
2.
a)
>> f = inline('x.^3 -36.*x.^2 + 188.*x-240','x');
>> [zero,res,niter,erro]=bisseccao(f,29.5,31,10^-4,100)
zero =
30.0000
res =
-0.0222
niter =
13
erro =
9.1553e-005
>> df = inline ( '3.*x.^2 - 36*2.*x +188','x');
b)
>> [zero,res,niter,erro]=newton(f,df,29.5,10^-4,100)
zero =
30.0000
res =
4.3984e-008
niter =
3
erro =
2.8540e-005
% O mtodo de Newton converge em muito menos iteraes
3.
>> g = inline (' (240 +36.*x.^2 - x.^3)./188','x');
>> [x,niter,erro]=pontofixo(g,1,10^-4,100)
x=
1.9998
niter =
22
erro =
9.3969e-005
>> [x,niter,erro]=pontofixo(g,3,10^-4,100)
x=
2.0002
niter =
27
erro =
8.5346e-005
>> [x,niter,erro]=pontofixo(g,31,10^-4,100)
x=
1.9998
niter =
24

erro =
9.2862e-005
% converge para um zero diferente do zero calculado na alnea anterior

Exerccio 2.38
>> f= inline ('x.^2 - 2.*x + y.^2-3', 'x','y');
>> g= inline ('x.*(6-x) + y -9', 'x','y');
>> ezplot(f,[-4,4,-4,4])
>> hold on
>> ezplot(g,[-4,4,-4,4])
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
(Editar a funo no editor)
function J=Jfun(x)
(Editar a funo no editor)
J=zeros(2,2);
function F=fun(x)
J(1,1)=2*x(1)-2;
F=zeros(2,1);
J(1,2)=2*x(2);
F(1,1)=x(1)^2 - 2*x(1) + x(2)^2 -3;
J(2,1)=6 - 2x(1);
F(2,1)=x(1)*(6-x(1)) + x(2) - 9;
J(2,2)=1;
return;
return;
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> [x,F,iter,erro]=newtonsys(@Ffun,@Jfun,[1.5;2],10^-10,5)
Nao converge com o numero maximo de iteracoes
O valor devolvido tem um residuo relativo 4.440892e-016
x=
1.6212
1.9011
F=
4.4409e-016
iter =
5
erro =
1.4094e-016

Exerccio 2.39
>> f= inline ('x^2 +y^2 -1', 'x','y')
>> g= inline ('sin((pi.*x)./2) + y.^3', 'x','y')
>> ezplot(f,[-4,4,-4,4])
>> hold on
>> ezplot(g,[-4,4,-4,4])
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
(Editar a funo no editor)
function J=Jfun(x)
J=zeros(2,2);
J(1,1)=2*x(1);
J(1,2)=2*x(2);
J(2,1)=(pi/2)*cos((pi*x(1))/2);
J(2,2)=3*x(2)^2;
return;
(Editar a funo no editor)
function F=fun(x)
F=zeros(2,1);
F(1,1)=x(1)^2 + x(2)^2 - 1;
F(2,1)=sin((pi*x(1))/2) + x(2)^3;
return;

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> [x,F,iter,erro]=newtonsys(@Ffun,@Jfun,[0.5;-0.5],10^-6,100)
O metodo convergiu na iteracao 6 com um residuo 0.000000e+000
x=
0.4761
-0.8794
F=
0
iter =
6
erro =
4.2794e-012
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> [x,F,iter,erro]=newtonsys(@Ffun,@Jfun,[1;1],10^-6,1)
Nao converge com o numero maximo de iteracoes
O valor devolvido tem um residuo relativo 1.043933e+001
x=
1.6541
-2.0810
F=
10.4393
iter =
2
erro =
2.4631
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> [x,F,iter,erro]=newtonsys(@Ffun,@Jfun,[-1;-1],10^-6,1)
Nao converge com o numero maximo de iteracoes
O valor devolvido tem um residuo relativo 1.043933e+001
x=
-1.6541
2.0810
F=
10.4393
iter =
2
erro =
2.4631

Exerccio 2.40:
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
(Editar a funo no editor)
function J=Jfun(x)
(Editar a funo no editor)
J=zeros(2,2);
function F=fun(x)
J(1,1)=0.7*cos(x(1)) -1;
F=zeros(2,1);
J(1,2)=-0.2*sin(x(2));
F(1,1)=0.7*sin(x(1)) + 0.2*cos(x(2))-x(1);
J(2,1)=-0.7*sin(x(1));
F(2,1)=0.7*cos(x(1)) - 0.2*sin(x(2))-y(2);
J(2,2)=-0.2*cos(x(2)) -1;
return;
return;
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> [x,F,iter,erro]=newtonsys(@Ffun,@Jfun,[0.5;0.5],10^-10,100)
O metodo convergiu na iteracao 4 com um residuo 1.110223e-016
x=
0.5265
0.5079
F=
1.1102e-016

iter =
4
erro =
8.2024e-016

Exerccio 3.36:
>> x=[ 1500 1250 1000 750 500];
>> y= [35 25 15 10 7];
>> c= polyfit(x,y,4);
>> polyval(c,850)
ans =
11.4128
>> z = linspace(800,900,100);
>> p=polyval(c,z);
>> plot(z,p)

Exerccio 3.37:
>> x=[0 (1/4) (1/3) 1 (3/2) 2]
>> y=[0 (21/16) (5/3) 3 (9/4) 0]
>> c= polyfit(x,y,5)
c=
-0.0000 0.0000 -0.0000 -3.0000 6.0000 0.0000
trajectria: y= 6x - 3x^2
>> z = linspace(0,2,100);
>> plot(z,p);

Exerccio 3.46:
a)
>> n= 9; % 10 pontos
>> h=10/(n+1);
>> x=[-5:h:5];
>> f = '1./(1+x.^2)';
>> y= eval(f);
>> c= polyfit(x,y,n);
>> z= linspace(-5,5,1000);
>> P=polyval(c,z);
>> fplot (f,[-5,5]);
>> hold on;
>> plot(z,P,'g');
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> n= 13; % 14 pontos
>>h=10/(n+1);
>> x=[-5:h:5];
>> f = '1./(1+x.^2)';
>> y= eval(f);
>> c= polyfit(x,y,n);
>> z= linspace(-5,5,1000);
>> P=polyval(c,z);
>>plot(z,P,'r');
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
b)
>> n = 9;
>> np = [0:n];
>> x = 5*cos(((2.*np+1).*pi)/(2*n+2));
>> f = '1./(1+x.^2)';
>> y= eval(f);
>> z= linspace(-5,5,1000);
>> c= polyfit(x,y,n);

>> p=polyval(c,z);
>> plot(z,p,'g');
>> hold on
>> g = inline ( '1 ./(1+x.^2)','x');
>> fplot(g,[-5,5])
>> n = 13;
>> np = [0:n];
>> x = 5*cos(((2.*np+1).*pi)/(2*n+2));
>> f = '1./(1+x.^2)';
>> y= eval(f);
>> z= linspace(-5,5,1000);
>> c= polyfit(x,y,n);
>> p=polyval(c,z);
>> plot(z,p,'b');
>> hold on
>> g = inline ( '1 ./(1+x.^2)','x');
>> fplot(g,[-5,5])

Exerccio 3.28:
>> n=5
>> h=pi/(n+1);
>> x=[(-pi/2):h:(pi/2)];
>> f='sin(x)';
>> y=eval(f);
>> c=polyfit(x,y,n);
>> z= linspace((-pi/2),(pi/2),1000);
>> p=polyval(c,z);
>> fplot (f,[(-pi/2),(pi/2)]);
>> hold on
>> plot(z,p,'g');
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
>> n=3
>> h=pi/(n+1);
>> x=[(-pi/2):h:(pi/2)];
>> f='sin(x)';
>> y=eval(f);
>> c=polyfit(x,y,n);
>> z= linspace((-pi/2),(pi/2),1000);
>> p=polyval(c,z);
>> fplot (f,[(-pi/2),(pi/2)]);
>> hold on
>> plot(z,p,'g');

Exerccio 3.49:
>> y=[ 0 35 0.125 5 0 5 1 0.5 0.125 0];
>> x= [0:0.1:0.9];
>> c=polyfit(x,y,9);
>> z= linspace(0,0.9,1000);
>> p=polyval(c,z);
>> plot(z,p);
>> hold on;
>> plot(x,y,'r*');

Exerccio 3.51:
>> A = [ 1 0;1 1; 1 3; 1 6];
>> L =[0;1;3;4];
>> B = A\L

B=
0.3333
0.6667
>> x = [ 0 1 3 6];
>> y = [ 0 1 3 4];
>> polyfit(x,y,1)
ans =
0.6667 0.3333

Exerccio 3.59:
>> t = [ 1 2 3 4 5 7 10 12 20 25];
>> y = [24.7 32.4 38.4 45 52.3 65.6 87.6 102 154 192];
>> c = polyfit(t,y,1);
>> z= linspace(0,25,1000);
>> p=polyval(c,z);
plot(z,p);
>> c
c=
6.9182 17.8278
( co= 1/17.8278 0.0561)
( 6.9182*15+17.8278 = 121.6)

Potrebbero piacerti anche