2013-10-06 52 views
0

新建MATLAB和我無法理解的代碼一點我一直在考慮:Matlab的建表語法

x = 1; % initial guess = 1 
Tol = 5e-9; % correct to 8 decimal places 
count = 0; 
f=0.54030231; % f(1)= 0.54030231 
fprintf('step x f(x)\n') 
fprintf('---- ----------- ----------\n') 
fprintf('%1i %12.8f %12.8f\n',count,x,f) 
while abs(f)>Tol %loop until the absolute value of f is smaller than tolerance 
count = count + 1 
deriv = -sin(x); ; % first derivative of f(x) 
x2 = x - (f/deriv); % new value of x 
x = x2; 
f = cos (x); % new value of f(x) 
fprintf('%3i %12.8f %12.8f\n',count,x,f) 
end 

的計劃是尋找我的理解方程的根牛頓方法。

我不明白的是這部分:

fprintf('---- ----------- ----------\n') 
fprintf('%1i %12.8f %12.8f\n',count,x,f) 

問題:

  1. 爲何第二行的最後一位除以n?
  2. 第二行中的數字是什麼,即%1i,%12.8f等?
  3. 這是如何處理後面寫的'count,x,f'?

由於

+1

您是否閱讀過['fprintf'](http://www.mathworks.com/help/matlab/ref/fprintf.html)的文檔?如果你沒有,爲什麼不呢?如果你做了,你不明白的是什麼? –

回答

3

\ n是一個換行符。

其餘的,你正在看matab的printf format strings版本。略有不同,這些用於幾十種語言。計數,x和f插入在%1i是一個有1位數的整數,12.8f是一個浮點數,12個字符,小數點後8位。