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; end
Kdyz 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