Árpád apánk

Blog. ennyi. semmi több. megtalalsz itt jó pár infót rólam, az életemről, meg néhány érdekes dolgot is, csak épp fejlesszem ki. addig is türelem kispajtás :)

2008/05/20

hetedik

> herm:=x->a0+a1*x+a2*x^2+a3*x^3+a4*x^4+a5*x^5;

herm := proc (x) options operator, arrow; a0+a1*x+a2*x^2+a3*x^3+a4*x^4+a5*x^5 end proc

> x0:=-1;

x0 := -1

> x1:=0;

x1 := 0

> x2:=1;

x2 := 1

> herm(x0)=1;

a0-a1+a2-a3+a4-a5 = 1

> herm(x1)=1;

a0 = 1

> herm(x2)=-2;

a0+a1+a2+a3+a4+a5 = -2

> hermder:=x->a1+2*a2*x+3*a3*x^2+4*a4*x^3+5*a5*x^4;

>

hermder := proc (x) options operator, arrow; a1+2*a2*x+3*a3*x^2+4*a4*x^3+5*a5*x^4 end proc

> hermder(x0)=2;

a1-2*a2+3*a3-4*a4+5*a5 = 2

> hermder(x1)=3;

a1 = 3

> hermder(x2)=0;

a1+2*a2+3*a3+4*a4+5*a5 = 0

> b:=solve({herm(x0)=1,herm(x1)=1,herm(x2)=-2,hermder(x0)=2,hermder(x1)=3,hermder(x2)=0});

b := {a0 = 1, a1 = 3, a5 = 23/4, a4 = 1, a3 = (-41)/4, a2 = (-5)/2}

> c:=subs(b,herm(x));

c := 1+3*x-5/2*x^2-41/4*x^3+x^4+23/4*x^5

> plot(c,x=-1..1);

[Plot]

>

> newtonpolegyutt:=proc(xk,yk)
local n,i,j;

n:=nops(xk)-1;

for i from 0 to n do

a[i+1]:=yk[i+1];

end do;

for i from 1 to n do

for j from n to i by -1 do

a[j+1]:=(a[j+1]-a[j])/(xk[j+1]-xk[j-i+1]);

end do;

end do;

return op(a);

end proc;

>

Warning, `a` is implicitly declared local to procedure `newtonpolegyutt`

newtonpolegyutt := proc (xk, yk) local n, i, j, a; n := nops(xk)-1; for i from 0 to n do a[i+1] := yk[i+1] end do; for i to n do for j from n by -1 to i do a[j+1] := (a[j+1]-a[j])/(xk[j+1]-xk[j-i+1]) ...newtonpolegyutt := proc (xk, yk) local n, i, j, a; n := nops(xk)-1; for i from 0 to n do a[i+1] := yk[i+1] end do; for i to n do for j from n by -1 to i do a[j+1] := (a[j+1]-a[j])/(xk[j+1]-xk[j-i+1]) ...newtonpolegyutt := proc (xk, yk) local n, i, j, a; n := nops(xk)-1; for i from 0 to n do a[i+1] := yk[i+1] end do; for i to n do for j from n by -1 to i do a[j+1] := (a[j+1]-a[j])/(xk[j+1]-xk[j-i+1]) ...newtonpolegyutt := proc (xk, yk) local n, i, j, a; n := nops(xk)-1; for i from 0 to n do a[i+1] := yk[i+1] end do; for i to n do for j from n by -1 to i do a[j+1] := (a[j+1]-a[j])/(xk[j+1]-xk[j-i+1]) ...newtonpolegyutt := proc (xk, yk) local n, i, j, a; n := nops(xk)-1; for i from 0 to n do a[i+1] := yk[i+1] end do; for i to n do for j from n by -1 to i do a[j+1] := (a[j+1]-a[j])/(xk[j+1]-xk[j-i+1]) ...newtonpolegyutt := proc (xk, yk) local n, i, j, a; n := nops(xk)-1; for i from 0 to n do a[i+1] := yk[i+1] end do; for i to n do for j from n by -1 to i do a[j+1] := (a[j+1]-a[j])/(xk[j+1]-xk[j-i+1]) ...newtonpolegyutt := proc (xk, yk) local n, i, j, a; n := nops(xk)-1; for i from 0 to n do a[i+1] := yk[i+1] end do; for i to n do for j from n by -1 to i do a[j+1] := (a[j+1]-a[j])/(xk[j+1]-xk[j-i+1]) ...

> xk:=[0.0,0.1,0.2,0.3,0.4,0.5];

xk := [0., .1, .2, .3, .4, .5]

> yk:=map(sin,xk);

yk := [0., 0.9983341665e-1, .1986693308, .2955202067, .3894183423, .4794255386]

> a:=newtonpolegyutt(xk,yk);

a := TABLE([1 = 0., 2 = .9983341665, 3 = -0.4987512500e-1, 4 = -.1645892917, 5 = 0.8264041750e-2, 6 = 0.8057791500e-2])

> newtonpol:=proc(xk,a,x)
local p,i,n;

n:=nops(xk)-1;

p:=a[n+1];

for i from n-1 to 0 by -1 do

p:=a[i+1]+(x-xk[i+1])*p;

end do;

return p;

end proc;

newtonpol := proc (xk, a, x) local p, i, n; n := nops(xk)-1; p := a[n+1]; for i from n-1 by -1 to 0 do p := a[i+1]+(x-xk[i+1])*p end do; return p end proc

> newtonpol(xk,a,0.45);

.4349655284

> sin(0.45);

.4349655341

> f:=x->exp(2*x);

f := proc (x) options operator, arrow; exp(2*x) end proc

> xk:=[seq(-1+k/4,k=0..8)];

xk := [-1, (-3)/4, (-1)/2, (-1)/4, 0, 1/4, 1/2, 3/4, 1]

> yk:=map(f,xk);

yk := [exp(-2), exp((-3)/2), exp(-1), exp((-1)/2), 1, exp(1/2), exp(1), exp(3/2), exp(2)]

> a:=evalf(newtonpolegyutt(xk,yk));

a := TABLE([1 = .1353352832, 2 = .3511795076, 3 = .455635234, 4 = .394107020, 5 = .255665620, 6 = .132684572, 7 = 0.573835179e-1, 8 = 0.212719256e-1, 9 = 0.68997796e-2])

> expand(newtonpol(xk,a,x));

1.000000001+1.999986730*x+1.999997393*x^2+1.333635260*x^3+.6667263733*x^4+.2650666476*x^5+0.8857208056e-1*x^6+0.2817170520e-1*x^7+0.68997796e-2*x^8

>