Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Zdravim, mam za ukol vytvorit funkci pro metodu proste iterace.
Muj kod je nasledujici.
function [ x ] = fixedpoint(g,I,y,tol,m)
% metoda pevneho bodu pro reseni rovnice g(x)=x
% vstup: g, I, y, tol, max
% g - funkce
% I - interval
% y - pocatecni iterace
% tol - tolerance
% m - maximalni pocet iteraci
% x - priblizne reseni
a=I(1);b=I(2);
if(y<a | y>b)
error('Pocatecni iterace lezi mimo zadany interval.')
end
gx=g(y);
while(abs(x-gx)>tol & m>0)
if(gx<a | gx>b)
error('Funkce g nezobrazuje interval I do sebe.')
end
x=g(x);
gx=g(x);
m=m-1;
endKdyz to sputim, vyhazuje to chybu
> Undefined function 'fixedpoint' for input arguments of type 'function_handle'.
Bohuzel, tim, ze v Matlabu se teprv zacinam ucit, tak chybu nevidim (syntaktickou nebo logickou).
Takze, co delam, prosim, spatne<
Offline
Zdravím,
Matlab neznám, zjistil jsem, že podobný je octave, tak jsem si jej stáhl a nainstaloval.
Program, aby mi chodil, jsem musel trochu upravit:
function [result] = g(x)
result = sqrt(10-3*x);
endfunction
function [x] = fixedpoint(I,y,tol,m)
% metoda pevneho bodu pro reseni rovnice g(x)=x
% vstup: g, I, y, tol, max
% g - funkce
% I - interval
% y - pocatecni iterace
% tol - tolerance
% m - maximalni pocet iteraci
% x - priblizne reseni
a=I(1);
b=I(2);
if(y<a | y>b)
error('Pocatecni iterace lezi mimo zadany interval.');
return;
endif
x=g(y);
while (abs(x-y)>tol & m>0)
if (x<a | y>b)
error('Funkce g nezobrazuje interval I do sebe.');
break;
endif
y=x;
x=g(y);
m=m-1;
endwhile
endfunction
[r] = fixedpoint([0,5],1,0.0001,20)
[r] = fixedpoint([0,5],3,0.0001,20)
[r] = fixedpoint([0,5],2.5,0.0001,20)Jsem v tom taky poprvé, nevím jestli je to správně, ale nehlásí to chyby a hlavně to funguje. Možná to pomůže.
Offline