不动点迭代
function xc = fpi( g, x0, tol )
x(1) = x0;
i = 1;
while 1
x(i + 1) = g(x(i));
if(abs(x(i+1) - x(i)) < tol)
break
end
i = i + 1;
end
xc = x(i+1);
end
牛顿法找根:
$$ f( x ) = ( 1 - \frac{3}{4x} ) ^ {\frac{1}{3} }$$
封装函数计算:
x_right = solve('(1 - 3 / (4 * x)) ^ (1 / 3)')
牛顿法实现:
function [y, dirv_y] = funNewton(x)
y = (1 - 3 / (4 * x)) ^ (1 / 3);
dirv_y = (1 - 3 / (4 * x)) ^ (- 2 / 3) / (4 * x ^ 2);
% dirv_y is y's diff
end
clear all
clc
Error = 1e-6;
format long
x_right = solve('(1 - 3 / (4 * x)) ^ (1 / 3)')
%disp the right answer
x = 0.7;
for k = 1:50
[y, dirv_y