Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc u vezi sa MatLab-om

[es] :: Matematika :: Pomoc u vezi sa MatLab-om

[ Pregleda: 3743 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

navahoyu
Neki Kokic
Belgrade

Član broj: 41252
Poruke: 27
*.041net.co.yu.

ICQ: 26750450


Profil

icon Pomoc u vezi sa MatLab-om25.12.2004. u 16:09 - pre 203 meseci
Imam zadatak da uradim Metodu polovljenja intervala i Metodu tangenti u MatLabu, ja imam uradjene te dve metode u .m fajlovima ali mi treba objasnjenje postupka... Ako neko ima vremena da mi objasni, bio bih mu veoma zahvalan:

Metoda polovljenja intervala:

Code:
function Polovljenje
disp('da li postoje ogranicenja za domen funkcije?');
ogr=input('(1)Postoje/(2)Ne postoje: ');
if ogr==1
    disp('Morate uneti sami interval izolacije');
     y=input('Unesite funkciju: ')
    f=inline(y);
    j=input('Koliko korena ima jednacina? ');
    for i=1:j
        a=input('unesite donju granicu a: ');
        b=input('unesite gornju granicu b: ');
        mat(j,1)=a; mat(j,2)=b;
    end
else    
a=-20; b=20;
k=1;
x=a:k:b;
y=input('Unesite funkciju: ')
f=inline(y);
m=length(x);
 j=0;
for i=1:(m-1)
   if f(a)*f(a+k)<0
       j=j+1; b=a+k;
       mat(j,1)=a; mat(j,2)=b; a=a+k; i=i+1;
   else a=a+k; i=i+1;
   end
end
end
disp('interval/i izolacije su:')
disp(mat);
eps=input('Unesite tacnost: ');
for s=1:j;  b=mat(s,2); a=mat(s,1);
N=log2(b-a)-log2(eps);
disp(['Potreban broj iteracija: ',int2str(N)]);
x=a:b;
c=(a+b)/2;
  matr(1,1)=a; matr(1,2)=b; matr(1,3)=c; x0=fzero(f,c);
matr(1,4)=x0;
for k=1:N
    c=(a+b)/2; 
     if f(a)*f(c)<0 b=c; 
        else a=c; 
     end
      matr(k+1,1)=a; matr(k+1,2)=b; matr(k+1,3)=c; 
         matr(k+1,4)=abs(x0-c);
         k=k+1;
end 
disp('       a                   b                   xn                   x0');
disp('----------------------------------------------------------------------')
format long,matr;
disp(matr); s=s+1; j=j+1;
end;


Metoda tangenti:

Code:
function Njutn
disp('da li postoje ogranicenja za domen funkcije?');
ogr=input('(1)Postoje/(2)Ne postoje: ');
if ogr==1
    disp('Morate uneti sami interval izolacije');
     y=input('Unesite funkciju: ')
    f=inline(y);
    j=input('Koliko korena ima jednacina? ');
    for i=1:j
        a=input('unesite donju granicu a: ');
        b=input('unesite gornju granicu b: ');
        mat(j,1)=a; mat(j,2)=b;
    end
else    
a=-20; b=20;
k=1;
x=a:k:b;
y=input('Unesite funkciju: ')
f=inline(y);
m=length(x);
 j=0;
for i=1:(m-1)
   if f(a)*f(a+k)<0
       j=j+1; b=a+k;
       mat(j,1)=a; mat(j,2)=b; a=a+k; i=i+1;
   else a=a+k; i=i+1;
   end
end
end
disp('interval/i izolacije su:')
disp(mat);
eps=input('Unesite tacnost: ');
p=diff(y); q=diff(p); pp=inline(p); qq=inline(q); 
for s=1:j
    as=mat(s,1); bs=mat(s,2); 
    A(1)=abs(pp(as)); A(2)=abs(pp(bs));
    m1=min(A); 
    if m1==0 
        m1=1;
    end
      if pp(as)*pp(bs)>0 & qq(as)*qq(bs)>0
        if f(as)*qq(as)>0 
            xo=as; 
        else
            xo=bs; 
        end 
             w=1; g=abs(f(xo))/m1;
             matr(w,1)=xo; matr(w,2)=g; 
                     while g>=eps
                        w=w+1;
                        
matr(w,1)=matr(w-1,1)-f(matr(w-1,1))/pp(matr(w-1,1));
                        matr(w,2)=abs(f(matr(w-1,1)))/m1;
                        g=matr(w,2);
                     end
                     format long,matr;
                     disp('Resenja i ocene greski')
           disp('        Xn                   |f(Xn)|/m1')
           disp('     -----------------------------------')
                     disp(matr);
                     
  elseif pp(as)*pp(bs)<0 & qq(as)*qq(bs)<0
       disp('nije ispunjen ulov da su izvodi stalnog znaka')
  else 
      
        if pp(as)==0 | qq(as)==0 
            as=as+0.01;
        else bs=bs-0.01;
        end
        if f(as)*qq(as)>0 
            xo=as; 
        else
            xo=bs; 
        end 
        w=1; g=abs(f(xo))/m1;
        matri(w,1)=xo; matri(w,2)=g; 
            while g>=eps
                w=w+1;
                
matri(w,1)=matri(w-1,1)-f(matri(w-1,1))/pp(matri(w-1,1));
                matri(w,2)=abs(f(matri(w-1,1)))/m1;
                g=matri(w,2);
            end
        format long,matri;
           disp('Resenja i ocene greski')
           disp('        Xn                   |f(Xn)|/m1')
           disp('     -----------------------------------')
            disp(matri);
            
   end
    s=s+1;
end


Hvala unapred, mozete me kontaktirati i na mail, [email protected]
 
Odgovor na temu

[es] :: Matematika :: Pomoc u vezi sa MatLab-om

[ Pregleda: 3743 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.