cursul 2

Upload: motoc-mircea-razvan

Post on 13-Jan-2016

219 views

Category:

Documents


0 download

DESCRIPTION

ANALIZA NUMERICA, CURS2

TRANSCRIPT

  • CURSUL 2

    ERORI DE CALCUL NUMERIC

    APROXIMAREA FUNCIILOR PRIN INTERPOLARE

    1. Erori de calcul numeric

    O formula de calcul numeric se aplica, de obicei, in mod repetat. In

    consecina, prezint importanta nu numai eroarea introdusa intr-o etapa, ci si

    tendina de a amplifica sau, dimpotriv, de a atenua erorile introduse de anterior,

    adic stabilitatea metodei numerice. Studiul erorilor numerice rmne deci o

    problema deschisa, care trebuie luata in considerare pentru fiecare metoda de

    calcul in parte. 1.1. Surse de erori

    Erorile inerente: sunt erorile legate de cunoaterea aproximativa a unor

    valori provenite din msurtori sau din faptul c avem de-a face cu numere

    iraionale (algebrice sau transcendente: numerele , e, 3 , etc.). Evident, rezultatul

    oricror calcule depinde i de precizia datelor introduse iniial. Ca erori inerente

    pot fi considerate i erorile de conversie fcute la trecerea in baza 2 a unor numere

    care se introduc in memoria calculatoarelor numerice actuale. Spre exemplu,

    numrul 0.1 reprezentat printr-un numr finit de zecimale in baza 10, devine o frac

    zecimala periodica in baza 2 (0.110 0.0(0011)2).

    Erorile de metod sau erorile de trunchiere sunt provenite din aproximaiile

    fcute la deducerea formulelor de calcul. Exemple: restul RN(x) la interpolarea

    polinomial, distana +1nx la rdcin, din metodele iterative de calcul, erorile

    introduse prin trunchierea seriilor la un anumit rang, etc. Spre deosebire de erorile

    inerente, erorile de metod pot fi reduse, in principiu, orict de mult.

    Erorile de rotunjire sunt legate de posibilitile limitate de reprezentare a

    numerelor in calculatoarele numerice. In general, orice calculator poate reprezenta

  • numerele cu un numr redus de cifre semnificative, depinznd de lungimea

    cuvntului (numrul de bii utilizat la stocarea unui numr In mod curent se

    lucreaz cu un echivalent de circa 7 cifre semnificative n simpl precizie i de

    circa 15 cifre semnificative in dubla precizie.

    Dup cum se tie, n memoria intern a calculatoarelor actuale se folosete

    reprezentarea n virgul mobil, in forrna normalizat. Astfel, orice numr real x se

    scrie 1 0(b 1) este baza sistemului de numeraie utilizat, iar n (ntreg) este exponentul. n forma

    normalizat mantisa este cuprins in intervalul [b-1, 1)

    11

  • unde g conine cifrele care nu pot fi incluse in mantisa f. Rotunjirea se face de

    obicei simetric, adic se nlocuiete

    500501 .gdacag,.gdacag

  • iar ca margine a erorii

    tpyxtp eeee

  • adic o sum ponderat a erorilor introduse la reprezentarea in calculator a

    cantitii sumate. i n acest caz se introduce a eroare suplimentar la reprezentarea

    sumei yx + , a crei valoare relativ o vom nota cu s . Ca urmare, eroarea relativ la sumare va fi ts

    syxts eyxy

    yxxe ++++=

    Aplicaie: s scriem eroarea total la calculul expresiei

    z)yx(z)yx(E ++= Solutie:

    pszyxtE eeeyxy

    yxxe ++++++=

    cu marginea

    ++

    + 31015yxyx

    e ttE

    Ca recornandare general, n calculul numeric trebuie studiat i propagarea

    erorilor. n anumite cazuri, acurnularea erorilor poate conduce la rezultate complet

    eronate. Pentru a ilustra aceast posibilitate, s considerrn calculul integralei

    =1

    0

    1dxexI xnn

    O modalitate de calcul o reprezint utilizarea unei relaii de recuren

    ,...,n,nII nn 211 1 == plecnd de la valoarea . Rezultatele calculelor pentru diferitele valori ale

    lui n sunt date in tabelul de mai jos. Se observ c pentru n = 13, se obine.o

    valoare negativ a integralei, ceea ce nu este posibil, funcia integrat fiind pozitiv

    pe [0, 1]. Rezult c valorile obinute sunt eronate, incepnd cu o anurnit valoar a

    lui n. Explicaia o constituie faptul c valoarea integralei I0 se calculeaz cu o

    10 1

    = eI

  • eroare e0 care este amplificat prin aplicarea formulei de recuren, astfel c, la

    calculul lui I13 eroarea este

    09

    013 10622713 ee!e = Pentru a obine o valoare corect n cazul indicilor n mari se aplic formula de

    recuren sub forma

    ,...N,Nn,n

    II nn 11

    1 ==

    in care erorile sunt reduse in fiecare etap. Prin urmare, plecnd de la un N

    suficient de mare eroarea introdus din necunoa valorii In va fi redus, astfel nct

    s obinem rezultate corecte. Observnd c valoarea integralei scade cu n, vom

    alege N = 20 i vom aproxima I20 0, calculnd integralele de indice mai mic din

    ce n ce rnai precis. Valonile obinute sunt date in acelade mai sus. Se observ c

    rezultatele sunt rnai bune la indici mari i identice la indici mici (n < 7).

    Tabel. Exemplu de amplificare a erorilor

    n ,...,n,nII nn 211 1 == ,...N,Nn,nII nn 1

    11 ==

    0 0.632121 0.632121 1 0.367879 0.367879 3 0.207277 0.207277 7 0.112383 0.112383 9 0.091586 0.091612 13 -0.377925 0.066948 17 - 0.052778 20 - 0.000000

    1. Polinomul de interpolare Lagrange

    Una dintre cele mai vechi i mai generale formule de interpolare este cea

    datorat lui Lagrange.

    S presupunem ca n intervalul [a, b] sunt specificate n+1 valori ale argumentului,

    x0, x2, , xn, i valorile corespunztoare ale unei funcii f(x)

  • f(xi) = yi , i = 0, 1, 2, ,n

    Se cere construirea unui polinom P de gradul n care ia n punctele specificate, xi,

    aceleai valori ca i funcia f(x)

    Pn(xi) = yi , i = 0, 1, 2, ,n

    n anumite situaii valorile yi se determin experimental i se caut o formul

    pentru f care n punctele xi s coincid cu valorile date, iar n rest s aproximeze

    valorile experimentale. O variant de formul este aceea a unui polinom de gradul

    n dat de urmtoarea teorem:

    Teorema: Polinomul de interpolare, Pn , asociat unei tabele de valori este unic

    ( ) =

    = =

    n

    ikk ki

    kn

    iin xx

    xxxfxP00

    )( (1)

    Presupunem ca f este o funcie de n+1 ori derivabil.. Dac notm cu

    )(sup )1( xfM n+= , atunci are loc inegalitatea:

    )!1()(...)(

    )()( 0 +

    nxxxxM

    xPxf nn

    Sub aceast form polinomul de interpolare se numete polinomul Lagrange.

    Pe baza formulei de interpolare a lui Lagrange se poate rezolva i problema

    interpolarii inverse, adica gsirea argumentului pentru care polinomul Lagrange

    are o anumita valoare. Pentru aceasta este suficient s se considere y ca variabil

    indepenenta i s se scrie o formul exprimnd x ca funcie de y

    =

    =

    =n

    i

    n

    ikk ki

    ki yy

    yyxx0 0

    (2)

    Cu ajutorul acestei formule se poate gsi o rdcin a ecuaiei f(x) = 0. n acest

    scop se calculeaz un tablou de valori yi , i = 0, 1, 2, ,n pentru argumentele xi

    apropiate de rdcina. Considernd apoi y = 0 n formula (2), se gseste rdcina

    respectiv. Daca este un polinom de gradul n, rdcina determinat

    prin aceast metod este exact.

    )()( xPxf n

  • Exemplu: S se realizeze un program care determin 130 folosind polinomul de

    interpolareare Lagrange; s se evalueze i eroarea de interpolare.

    Rezolvare:

    S consideram funcia xxf =)( . Vom lua ca puncte de diviziune: . 169,144,121 210 === xxx

    x 121 144 169

    f(x) 11 12 13

    Polinomul de interpolare este:

    ( )( ) ( )( ) ( )( )1200

    12114413565

    169121121104

    16914411)(2+= xxxxxxxP

    Pentru o valoare n intervalul [121,169], de exemplu x=130

    gsim: , iar 400379.11)130(2 =P 401754.11130 . Deoarece 25

    83)('''

    = xxf =>

    '''f este monoton descrescatoare pe [ ]169,121=I , deci maximul pentru va fi atins n punctul . Deci

    '''f

    121=x 51183 =M . Conform formulei (1)

    ( )( )( )00172.0

    !3121130144130169130

    1183)130(130)130(001375.0 52 =

  • end endfunction

    n fereastra de comand se definesc mai nti vectorii ce conin valorile

    corespunztoare pentru x i y, apoi se apeleaz funcia definit mai sus:

    x=[121 144 169]; y=[11 12 13]; lagrange(x,y,130) ans = 11.40043478260870

    Observaie: Dac se consider mai multe puncte de interpolare, de exemplu:

    -->x=[81 100 121 144 169]; -->y=[9 10 11 12 13];

    se va obine:

    -->lagrange(x,y,130) ans = 11.401672

    un rezultat mai apropiat de

    -->sqrt(130) ans = 11.401754

    Exerciii:

    1. S se determine valoarea polinomul de interpolare Lagrange pentru funcia )cos()sin()( xxxf += , nodurile

    21;

    41;

    61;0 3210 ==== xxxx i 5

    1=x . 2. S se determine 115 considernd o reea de trei puncte care conine valoarea 115. 3. S se determine funcia de interpolare pentru , nodurile )sin()( xxf =

    21;

    41;

    61;0 3210 ==== xxxx . S se reprezinte grafic i s se compare graficele cu

    cele obinute prin formula lui Lagrange. 4. Estimai valorile temperaturii la momentele de timp 2.5 sec i 4.9 sec, cu datele din tabelul de mai jos.

    Timp [s] Temperatura [0C]

    0.0 0.0 1.0 20.0 2.0 60.0 3.0 68.0 4.0 77.0 5.0 110.0

  • 2. Polinomul de interpolare Newton

    Definiie: Fie i x0, x1,, xn n+1 puncte distincte din [a, b]. Se

    numesc diferene divizate de ordinul nti ale lui f urmtoarele expresii:

    Rbaf ],[:

    1

    11

    12

    1221

    01

    0110

    )()(],[...,,)()(],[,)()(],[

    =

    ==

    nn

    nnnn xx

    xfxfxxfxx

    xfxfxxfxx

    xfxfxxf

    Diferenele divizate de ordinul k+1 se definesc cu ajutorul diferenelor divizate de

    ordinul k:

    iki

    kiiikiiikiii xx

    xxxfxxxfxxxf =

    +++++++++++

    1

    112111

    ],...,,[],...,,[],...,,[

    Polinomul Pn(x)=f(x0)+f[x0,x1](x-x0)++f[x0,x1,,xn](x-x0)(x- xn-1) se numete

    polinomul lui Newton cu diferene divizate.

    Definiie: Fie i h>0 o constant. Se numesc diferene finite (la

    dreapta) de ordinul nti, respectiv diferene finite (la stnga) de ordinul doi

    urmtoarele expresii:

    Rbaf ],[:

    )()()( xfhxfxf += )()()( hxfxfxf +=

    Teorem: Se consider o reea de punce echidistante , de pas h,

    xi=x0+ih, nxxx ,...,, 10

    ni ,1= i valorile corespunztoare f(xi)=yi , ni ,1= . Atunci polinoamele

    nnn

    nhn

    xxxxyh

    xxxxyhxxyyxP

    !))...((...

    !2))((

    !1)( 1002

    100

    2000

    1 +++=

    i

    nnn

    nnnn

    nn

    nnnhn

    xxxxxxyh

    xxxxyhxxyyxP

    !))...()((...

    !2))((

    !1)( 112

    122 +++=

    sunt polinoame Lagrange i se numesc polinoame Newton cu diferene finite de

    prima i a doua spe.

    Observaia 1: Polinomul lui Newton de spea nti se utilizeaz cnd x, punctul n

    care se aproximeaz f(x), este mai aproape de x0, iar Polinomul lui Newton de

    spea a doua se utilizeaz cnd x este mai aproape de xn.

  • Observaia 2: Dac notm h

    xxt 0

    = atunci polinomul de interpolare Newton cu

    diferene finite (la dreapta) de prim spe are urmtoarea form:

    !)1)...(1(...

    !2)1(

    !1)( 00

    200

    1n

    ntttyttytyytP nn++++= .

    Observaia 3: Daca notm h

    xxt n = atunci polinomul de interpolare Newton cu

    diferene finite (la stnga) de spea a doua are urmtoarea form:

    !)1)...(1(...

    !2)1(

    !1)( 22

    nntttyttytyytP n

    nnnnn

    ++++++= .

  • Exemplu:

    Se consider urmtoarele date experimentale:

    xi 0 0.5 1 1.5

    yi 1 1.1276 1.5431 2.3534

    Se cere s se calculeze valoarea lui y pentru x=0.25 folosind polinomul de

    interpolare Newton cu diferene finite la dreapta i valoarea lui y pentru x=1.25

    folosind polinomul de interpolare Newton cu diferene finite la stnga.

    Rezolvare

    xi f(xi)=yi yi 2yi 3yi

    0 1

    0.5 1.1276

    2y0 = 0.2879

    1 1.5431

    1.5 2.3534

    y0 = 0.1276

    y1 = 0.4755

    y2 = 0.8103

    2y1 = 0.1069

    2y1 = 0.3948

    3y 32 y 33 y Calculul lui y pentru x=0.25:

    03449.1)125.0)(5.025.0)(025.0(5.0!3

    1069.0

    )5.025.0)(025.0(5.0!2

    2879.0)025.0(5.0!1

    1276.01)25.0(

    3

    21

    3

    =+

    +++=P

    Calculul lui y pentru x=1.25:

    89222.1)5.025.1)(125.1)(5.125.1(5.0!3

    1069.0

    )125.1)(5.125.1(5.0!2

    3948.0)5.125.1(5.0!1

    8103.03534.2)25.1(

    3

    22

    3

    =+

    +++=P

  • Rezolvarea n Scilab/ (pentru diferene divizate):

    Se definete un functia:

    function pol=newtonDivizate(x,y,v) n=length(x); for i=1:n-1 for k=n:-1:i+1 y(k)=(y(k)-y(k-1))/(x(k)-x(k-i)) end end pol=y(n); for i=n:-1:2 pol=pol*(v-x(i-1))+y(i-1); end endfunction

    n fereastra de comand se definesc mai nti vectorii ce conin valorile

    corespunztoare pentru x i y, apoi se apeleaz funcia definit mai sus:

    x=[121 144 169]; y=[11 12 13]; newtonDivizate(x,y,130) ans = 11.40043478260870

    Observaie: Rezultatul trebuie s fie acelai cu cel obinut prin interpolarea

    Lagrange.

    lagrange(x,y,130) ans = 11.40043478260870

    Exercitiu: S se calculeze valoarea polinomului de interpolare Newton cu

    diferene divizate pentru 5,0,5

    == nixi i f(x)=sin(x) n 2512= x .

    Rezolvare: (n Scilab cu diferene divizate)

    function pol=newtonDivizate(x,y,v) n=length(x); for i=1:n-1 for k=n:-1:i+1 y(k)=(y(k)-y(k-1))/(x(k)-x(k-i)) end end pol=y(n); for i=n:-1:2

  • pol=pol*(v-x(i-1))+y(i-1); end endfunction x=[0 %pi/5 %pi*2/5 %pi*3/5 %pi*4/5 %pi]; y=sin(x); newtonDivizate(x,y,%pi*12/25) sin(%pi*12/25) ans = 0.9977572 ans = 0.9980267

    Rezolvare: (cu diferene finite la dreapta)

    function pol=newtonDifFinDr(a,h,n,y,v) for i=1:n x(i)=a+(i-1)*h; end for i=1:n-1 for k=n:-1:i+1 y(k)=y(k)-y(k-1) end end pol=y(1);p=1; for i=2:n p=p*(v-x(i-1))/((i-1)*h) pol=pol+y(i)*p; end endfunction x=[0 %pi/5 %pi*2/5 %pi*3/5 %pi*4/5 %pi]; y=sin(x); newtonDifFinDr(0,%pi/5,6,y,%pi*12/25) sin(%pi*12/25) ans = 0.9977572 ans = 0.9980267

    Exercitii

    1. S se calculeze valoarea aproximativ a funciei f(x)=sin(x)+cos(x) n punctul 1/6, folosind polinomul Newton cu diferene divizate pe reeaua xj=j*0.25, j= 3,0 .

    2. S se scrie polinomul lui Newton cu diferene finite la stnga pentru funcia f(x)=sin(x) pe reeaua xj=j*0.25, j= 3,0 n punctul 0.65.

    3. S se calculeze valoarea aproximativ a funciei f(x)=cos(x)+1 n punctul 1/5, folosind polinomul lui Newton cu diferene divizate pe reeaua xI=i*0.25, i= 3,0 .

  • 4. S se scrie polinomul lui Newton cu diferene finite la dreapta pentru funcia f(x)=sin2x pe reeaua xi=i*0.5, i= 3,0 n punctul 1.25.

    5. S se calculeze valoarea aproximativ a funciei f(x)=cos(x) n punctul 1/6, folosind polinomul Newton cu diferene divizate pe reeaua xj=j*0.25, j= 3,0 .

    6. S se scrie polinomul lui Newton cu diferene finite la stnga pentru funcia f(x)=sin(x/2) pe reeaua xj=j/2, j= 3,0 n punctul 0.333.

    3. Calculul derivatei unei funcii definit prin date de interpolare

    Derivata unei funcii definit prin datele de interpolare cu

    se aproximeaz prin derivata polinomului de interpolare al

    lui Lagrange astfel:

    ( ii yx , )niihaxi ...,,1,0, =+=

    ))(;,...,,()( xfnhahaaLdxdxf ++ ( )

    = =

    =n

    i

    n

    ikk

    n

    kijj

    ini jqini

    yh 0 0

    ,0

    )()!(!

    11

    unde ( )*, =+= nn

    abhqhax .

    Aproximarea derivatei prin polinomul de interpolare al lui Newton cu diferene

    finite la dreapta are formula: =

    =n

    ii

    itP

    iy

    htP

    1

    ''

    0' )(!

    1)( unde

    }1,..,2,1{1

    1)()(1

    ' += = itpentrukttPtPi

    kii i h

    xxt 0

    = .

    Observaie: Formula lui se obine dup logaritmarea lui . )(' tPi =

    +=i

    ki kttP

    1)1()(

    Exemplu (aproximare prin derivata polinomului de interpolare Lagrange):

    . 55.0,10,...,1,0,1.0 3 ==== xsixyiix iii

    Rezolvarea n Scilab:

    Se definesc2 funcii: factorial i DerivLagrange.

    function f=factorial(n)

  • f=1; for i=1:n f=f*i; end endfunction function DerivLagrange(a,n,h,v) for i=1:n+1 x(i)=a+(i-1)*h; y(i)=x(i)^3; end q=(v-a)/h; s1=0; for i=1:n+1 s2=0; for k=1:n+1 if k~=i p=1; for j=1:n+1 if (j-i)*(j-k)~=0 p=p*(q+1-j); end end s2=s2+p; end end s1=s1+s2*y(i)*(-1)^(n+1-i)/(factorial(i-1)*factorial(n+1-i)); end d=s1/h endfunction

    Se definesc n fereastra de comand a, n, h i v i apoi se apelaz DerivLagrange:

    a=0; n=10; h=0.1; v=0.55; DerivLagrange(a,n,h,v) d = 0.90750000000000

    Exercitii

    1. S se calculeze derivata unei funcii definit prin datele de interpolare: xi 50 55 60 65

    yi 1.699 1.740 1.778 1.813 pentru x=57.

  • 2. S se calculeze derivata funciei f(x)=xex+x2 pentru x=2 i s se compare rezultatul obinut cu derivata funciei obinut prin metoda de mai sus dac se consider reeaua de puncte 0; 0.75; 1.5; 2.25.

    3. S se calculeze derivata funciei f(x)=sin(x) pentru x=1/8 i s se compare rezultatul obinut cu derivata funciei obinut prin metoda de mai sus dac se

    consider reeaua de puncte dat de relaia: 4,1,4

    )1( == jjx j . 4. S se calculeze derivata funciei f(x)=sin(x)+cos(x) pentru x=1/6 i s se

    compare rezultatul obinut cu derivata funciei obinut prin metoda de mai sus dac se consider reeaua de puncte dat de relaia: xj=j*0.25, j= 3,0 .

    4. Funcii de interpolare spline

    Definiie: Fie bxxxaRbaf n =

  • Rezolvarea n Scilab:

    function [m,alfa,beta]=fspline(x,y) n=length(x); for i=1:n-1 h(i)=x(i+1)-x(i); end for i=1:n-2 la(i+1)=h(i+1)/(h(i)+h(i+1)); ro(i+1)=h(i)/(h(i)+h(i+1)); d(i+1)=3*(h(i)/h(i+1)*(y(i+2)-y(i+1))+h(i+1)/h(i)*(y(i+1)-y(i)))/(h(i)+h(i+1)); end a=zeros(n,n); la(1)=1;ro(n)=1;a(n,n-1)=1;a(1,2)=1; d(1)=3*(y(2)-y(1))/h(1)-h(1)/2; d(n)=3*(y(n)-y(n-1))/h(n-1)-h(n-1)/2; for i=1:n a(i,i)=2; end for i=2:n-1 a(i,i+1)=la(i); a(i,i-1)=ro(i); end m=a^(-1)*d'; for i=1:n-1 alfa(i)=3*(y(i+1)-y(i))/(h(i)^2)-(m(i+1)+2*m(i))/h(i); beta(i)=-2*(y(i+1)-y(i))/(h(i)^3)+(m(i+1)+m(i))/(h(i)^2); end endfunction

    Rezultatele se obin n fereastra de comand

    x=[-1 -0.333 0.333 1]; y=x./(1+10.*x) y = 0.11111111111111 0.14291845493562 0.07690531177829 0.09090909090909 [m,alfa,beta]=fspline(x,y); p=y(3)+m(3)*(0.5-x(3))+alfa(3)*(0.5-x(3))^2+beta(3)*(0.5-x(3))^3 p = 0.08053333070872

    Observaie: Interpolare cu functia splin a Scilab-ului

    d=splin(x,y); interp(0.5,x,y,d) ans = 0.0833333

  • Exerciiu:

    Se consider urmtoarele date experimentale:

    xi 0 0.5 1 1.5

    yi 1 1.1276 1.5431 2.3534

    Se cere s se calculeze valoarea lui y pentru x=0.25 folosind funciile spline

    cubice. S se compare rezultatul cu cel obinut prin functia splin a Scilab-ului.

    4.1 Funcii Scilab pentru interpolare i derivare

    Denumire funcie Semnificaie interpln Interpolare liniar linear_interpn Interpolare liniar n dimensional splin Interpolare cu funcii spline cubice interp Funcii spline cubice de evaluare a unei funcii derivative Aproximarea derivatelor unei funcii

    Interpolare liniar: interpln

    x=[1 10 20 30 40]; y=[1 30 -10 20 40]; plot2d(x',y',[-3],"011"," ",[-10,-40,50,50]); yi=interpln([x;y],-4:45); plot2d((-4:45)',yi',[3],"000");

    -10 0 10 20 30 40 50-40

    -30

    -20

    -10

    0

    10

    20

    30

    40

    50

    Interpolare biliniar: linear_interpn

    n = 8; x = linspace(0,2*%pi,n); y = x;

  • z = 2*sin(x')*sin(y); xx = linspace(0,2*%pi, 40); [xp,yp] = ndgrid(xx,xx); zp = linear_interpn(xp,yp, x, y, z); xbasc() plot3d(xx, xx, zp, flag=[2 6 4]) [xg,yg] = ndgrid(x,x); param3d1(xg,yg, list(z,-9*ones(1,n)), flag=[0 0]) xtitle("Interpolare biliniar pentru 2sin(x)sin(y)") legends("Puncte de interpolare",-9,1) xselect()

    Bilinear interpolation of 2sin(x)sin(y)

    -1.9

    -0.5

    0.9

    Z

    0

    1

    2

    3

    4

    5

    6

    7

    X

    0

    1

    2

    3

    4

    5

    6

    7

    Y

    interpolation points

    Interpolare cu funcii spline: splin

    deff("y=runge(x)","y=1 ./(1 + x.^2)") a = -5; b = 5; n = 11; m = 400; x = linspace(a, b, n)'; y = runge(x); d = splin(x, y); xx = linspace(a, b, m)'; yyi = interp(xx, x, y, d); yye = runge(xx); xbasc() plot2d(xx, [yyi yye], style=[2 5], leg=Interpolare spline@Funcie exact") plot2d(x, y, -9) xtitle("Interpolare a funciei Runge")

  • -5 -4 -3 -2 -1 0 1 2 3 4 50.0

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    0.8

    0.9

    1.0

    interpolation of the Runge function

    interpolation splineexact function

    Calculul aproximativ al derivatei unei funcii de trei variabile

    function y=F(x) y=[sin(x(1)*x(2))+exp(x(2)*x(3)+x(1)) ; sum(x.^3)]; endfunction function y=G(x,p) y=[sin(x(1)*x(2)*p)+exp(x(2)*x(3)+x(1)) ; sum(x.^3)]; endfunction x=[1;2;3];[J,H]=derivative(F,x,H_form='blockmat'); disp(J) disp(H) --> ! 1095.8009 3289.4833 2193.2663 ! ! 3. 12. 27. ! ! 1092.996 3287.6648 2193.2663 ! ! 3287.6648 9868.7896 7676.4324 ! ! 2193.2663 7676.4324 4386.5327 ! ! 6. 0. 0. ! ! 0. 12. 0. ! ! 0. 0. 18. !

    CURSUL 2ERORI DE CALCUL NUMERICAPROXIMAREA FUNCIILOR PRIN INTERPOLARE1. Erori de calcul numeric1. Polinomul de interpolare LagrangeTimp [s]

    2. Polinomul de interpolare Newton Rezolvare

    3. Calculul derivatei unei funcii definit prin date de interpolareExercitii

    4. Funcii de interpolare spline4.1 Funcii Scilab pentru interpolare i derivareInterpolare liniar: interplnInterpolare biliniar: linear_interpnInterpolare cu funcii spline: splinCalculul aproximativ al derivatei unei funcii de trei variabile