Sunteți pe pagina 1din 3

function xaprox=p3(phi,a,b,N)

x(1)=(a+b)/2;
for n=2:N
x(n)=phi(x(n-1));
end
xaprox=x(n);
end

f=inline('x.^4+2*x.^2-x-3', 'x');
phi1=inline('(3+x-2*x.^2)^(1/4)', 'x');
x1=MetPunctFix(phi1,-1,1,20);
x=linspace(-1,1.5,100);
plot(x,f(x));
hold on
plot(x1, f(x1),'o');

f=inline('x.^4+2*x.^2-x-3', 'x');
phi2= inline('sqrt((3+x-x.^4)/2)', 'x');
x2=MetPunctFix(phi2,-1,1,20);
x=linspace(-1,1.5,100);
plot(x,f(x));
hold on
plot(x2, f(x2),'o');

f=inline('x.^4+2*x.^2-x-3', 'x');
phi3=inline('sqrt((x+3)/(x.^2+2))', 'x');
x3=MetPunctFix(phi3,-1,1,20);
x=linspace(-1,1.5,100);
plot(x,f(x));
hold on
plot(x3, f(x3),'o');

f=inline('x.^4+2*x.^2-x-3', 'x');
phi4=inline('(3*x.^4+2*x.^2+3)/(4*x.^3+4*
x-1)', 'x');
x4=MetPunctFix(phi4,-1,1,20);
x=linspace(-1,1.5,100);
plot(x,f(x));
hold on
plot(x4, f(x4),'o');
Metoda Newton-Raphson

function xaprox= MetNR(f,fp,a,b,N)


x(1)=3;
for n=2:N
x(n)=x(n-1)-f(x(n-1))/fp(x(n-1));
end
xaprox=x(n);
end

f=inline('x.^3-2*x.^2-5', 'x');
syms x
df = diff(f(x),x);
fp = inline(df,'x');
a=1;
b=4;
N=20;
xaprox=MetNR(f,fp,a,b,N);
x=linspace(a,b,100);
plot(x, f(x));
hold on
plot(xaprox, f(xaprox), 'o');

Metoda Newton-Raphson – modificat - ordin multiplicitate cunoscut

function
[xaprox,N]=NRcunoscut(f,fp,a,b,eps)
x(1)=3;
n=2;
while 1
x(n)=x(n-1)-2*f(x(n-1))/fp(x(n-1));
if abs(x(n)-x(n-1))/abs(x(n-1))<eps
xaprox=x(n);
N=n;
break;
end
end
xaprox=x(n);
end

f=inline('x.^3-2*x.^2-5', 'x');
syms x
df = diff(f(x),x);
fp = inline(df,'x');
a=1;
b=4;
N=20;
xaprox=NRcunoscut(f,fp,a,b,N);
x=linspace(a,b,100);
plot(x, f(x));
hold on
plot(xaprox, f(xaprox), 'o');
Metoda Newton-Raphson – modificat - ordin multiplicitate necunoscut
function [xaprox,N]=NRnecunoscut(f,fp,a,b,eps)
x(1)=3;
n=2;
while 1
x(n)=x(n-1)-((f(x(n-1))*up(x(n-1)))/(fp(x(n-1)))*(fp(x(n-1))));
if abs(x(n)-x(n-1))/abs(x(n-1))<eps
xaprox=x(n);
N=n;
break;
end
end
xaprox=x(n);
end

f=inline('x.^3-2*x.^2-5','x');
syms x;
df=diff(f(x),x);
fp=inline(df,'x');
y=inline(f(x)/fp(x),'x');
u=diff(diff(f(x),x));
up=inline(u,'x');
a=1;
b=4;
eps=10^(-4);
[xaprox,N]=NRnecunoscut(u,up,a,b,eps);
x=linspace(2,3,100);
y=f(x);
plot(x,y);
hold on;
plot(xaprox,f(xaprox),'o');

S-ar putea să vă placă și