2015-10-02 33 views
0

反覆繪製定義函數我不是一個專業的MATLAB,因此,我需要在生產的迭代定義的函數的3D圖˚F一些幫助:R 1 2-0 - >[R定義下方(在僞代碼)爲的x,y值[-1,1]和在MATLAB

對於每個I = 1,2,3A =(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 |表示逐分量向量絕對值)

(如果你願意,你可以看看由該功能在我的問題產生於數學交換這裏的分形:

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

MATLAB代碼要做到這一點將不勝感激。

非常感謝。

+0

所以不是一個編碼服務。你在哪裏執行該功能有問題? – Daniel

回答

1

保存這個主程序:

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 

然後在同一目錄主程序保存此功能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