分别用牛顿法和割线法求解方程 x^3-6x^2+9x-2=0在区间[3,4]上的近似根.要求满足精度|x*-xk|
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 01:25:57
![分别用牛顿法和割线法求解方程 x^3-6x^2+9x-2=0在区间[3,4]上的近似根.要求满足精度|x*-xk|](/uploads/image/z/9375389-53-9.jpg?t=%E5%88%86%E5%88%AB%E7%94%A8%E7%89%9B%E9%A1%BF%E6%B3%95%E5%92%8C%E5%89%B2%E7%BA%BF%E6%B3%95%E6%B1%82%E8%A7%A3%E6%96%B9%E7%A8%8B+x%5E3-6x%5E2%2B9x-2%3D0%E5%9C%A8%E5%8C%BA%E9%97%B4%5B3%2C4%5D%E4%B8%8A%E7%9A%84%E8%BF%91%E4%BC%BC%E6%A0%B9.%E8%A6%81%E6%B1%82%E6%BB%A1%E8%B6%B3%E7%B2%BE%E5%BA%A6%7Cx%2A-xk%7C)
分别用牛顿法和割线法求解方程 x^3-6x^2+9x-2=0在区间[3,4]上的近似根.要求满足精度|x*-xk|
分别用牛顿法和割线法求解方程 x^3-6x^2+9x-2=0在区间[3,4]上的近似根.要求满足精度|x*-xk|
分别用牛顿法和割线法求解方程 x^3-6x^2+9x-2=0在区间[3,4]上的近似根.要求满足精度|x*-xk|
%
clc; clear all;
global fnq dfnq
fnq = @(x) x^3 - 6*x^2 + 9*x - 2;
dfnq = @(x) 3*x^2 - 12*x + 9;
tol = (1/2)*10^-4;x0 = 3.5;gmax = 1e3;x01 = 3;x02 = 4;[k,xk,yk,piancha]=newtonqx(x0,tol,gmax);
fprintf('\n牛顿法:%.5f\n',xk);
[k,xk,yk,piancha]=gexian(x01,x02,tol,gmax);
fprintf('\n割线法:%.5f\n',xk);% 牛顿法
function [k,xk,yk,piancha]=newtonqx(x0,tol,gmax)
global fnq dfnqx(1)=x0;for i=1:gmax
x(i+1)=x(i)-fnq(x(i))/(dfnq(x(i)+eps));
piancha=abs(x(i+1)-x(i));i=i+1;
xk=x(i);yk=fnq(x(i));
[(i-1) xk yk piancha];
if(pianchagmaxdisp('超过最大迭代次数')k=i-1;xk=x(i);yk=fnq(x(i));
[i-1 xk yk piancha];return;end% 割线法function [k,xk,yk,piancha]=gexian(x01,x02,tol,gmax)
global fnq dfnq
x(1)=x01;x(2)=x02;
for i=2:gmax
u(i)=fnq(x(i))*(x(i)-x(i-1));
v(i)=fnq(x(i))-fnq(x(i-1));
x(i+1)=x(i)-u(i)/(v(i));
piancha=abs(x(i+1)-x(i));i=i+1;xk=x(i);yk=fnq(x(i));
if(piancha>