% 简单迭代法 clear clc x0 = 1.5; % 初始值 tol = 1e-6; % 精度要求 max_iter = 1000; % 最大迭代次数 g = @(x) x + 1/x^2; % 迭代函数 x = x0; iter = 0; while abs(feval(g,x)-x) > tol && iter < max_iter x = feval(g,x); iter = iter + 1; end fprintf('简单迭代法:迭代次数%d,结果%f\n', iter, x);

% 牛顿迭代法 clear clc x0 = 1.5; % 初始值 tol = 1e-6; % 精度要求 max_iter = 1000; % 最大迭代次数 f = @(x) x^3 - x - 1; % 函数 df = @(x) 3*x^2 - 1; % 导数 x = x0; iter = 0; while abs(feval(f,x)/feval(df,x)) > tol && iter < max_iter x = x - feval(f,x)/feval(df,x); iter = iter + 1; end fprintf('牛顿迭代法:迭代次数%d,结果%f\n', iter, x);

% 讨论收敛速度 clear clc x0 = 1.5; % 初始值 tol = 1e-6; % 精度要求 max_iter = 1000; % 最大迭代次数 f = @(x) x^3 - x - 1; % 函数 df = @(x) 3*x^2 - 1; % 导数 g = @(x) x + 1/x^2; % 迭代函数 x1 = x0; x2 = x0; iter1 = 0; iter2 = 0; while abs(feval(f,x1)) > tol && iter1 < max_iter x1 = x1 - feval(f,x1)/feval(df,x1); iter1 = iter1 + 1; end while abs(feval(g,x2)-x2) > tol && iter2 < max_iter x2 = feval(g,x2); iter2 = iter2 + 1; end fprintf('牛顿迭代法:迭代次数%d\n', iter1); fprintf('简单迭代法:迭代次数%d\n', iter2);

使用matlab编写程序求fx=x3-x-1=0在x=15附近的根满足以下要求:1使用两种方法:简单迭代法和牛顿迭代法2讨论简单迭代法和牛顿迭代法的收敛速度用代码展示结果3不要定义函数4分别输出两种方法结果达到一定精度各自的迭代次数

原文地址: https://www.cveoy.top/t/topic/b1nM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录