2015-10-02 1 views
0

Je ne suis pas un professionnel et Matlab, je besoin d'aide à la production d'un tracé 3D de la fonction définie itérativement f: R^2-0 ->R défini ci-dessous (en pseudocode) pour x, y valeurs dans [-1,1] etTraçage fonction itérativement définie dans Matlab

pour chaque I = 1,2,3 et A = (0.5,0.5)

function f(v in R^2-0) 
{ 
    a=b=0;  (a,b in R)   
    for (i=0; i<I; i=i+1) 
    { 
     v = |v|/||v||^2 - A; 
     a = a + | ||v||-b |; 
     b = ||v||; 
    } 
    return a; 
} 

(| v | désigne composante par composante vecteur valeur absolue)

(Si vous voulez, vous pouvez regarder la fractale qui est généré par la fonction à ma question sur les mathématiques-échange ici:

https://math.stackexchange.com/questions/1457733/a-question-about-a-fractal-like-iteratively-defined-function )

code Matlab faire cela sera apprécié.

Merci beaucoup.

+0

Alors est pas un service de codage. Où avez-vous des problèmes pour implémenter la fonction? – Daniel

Répondre

1

Enregistrer ce votre programme principal:

clear 
clc 
close all 

% I = 1; 
% A = [ 0.5 0.5 ]; 

I = 10; 
A = [ 0.5 0.5 0.5 ]; 

xmin = -1; 
xmax = 1; 

ymin = -1; 
ymax = 1; 

nx = 101; 
ny = 101; 

dx = (xmax - xmin)/(nx - 1); 
dy = (ymax - ymin)/(ny - 1); 

x = xmin: dx: xmax; 
y = ymin: dy: ymax; 

for ix = 1: nx 
    for iy = 1: ny 
     if (length(A) == 2) 
      z(iy, ix) = f([x(ix) y(iy)], A, I); 
     elseif (length(A) == 3) 
      z(iy, ix) = f([x(ix) y(iy) 0], A, I); 
     end 
    end 
end 

pcolor(x, y, z) 
shading interp 

puis enregistrez cette fonction dans le même répertoire que le programme principal comme f.m:

function result = f(v, A, I) 

a = 0; 
b = 0; 

for i = 1: I 
    v = abs(v)/dot(v, v) - A; 
    a = a + abs(norm(v) - b); 
    b = norm(v); 
end 
result = a; 

end