MATLAB 下面这个三次多项式,有三个非常靠近的实数根 P(x)=816x^3-3835x^2+6000x-3125;
P(x)=816x^3-3835x^2+6000x-3125;
(a) 函数p的零解准确值是什么?
(b) 画出区间1.43<=x<=1.71内p(x)的图形,显示这三个根的位置
(c) 以初始值x0=1.5开始,牛顿法后续怎么执行?
(d) 以初始值x0=1和x1=2开始,割线法后续怎么执行?
(e) 从区间[1,2]开始,二分法怎么执行?
(f) Fzerotx(p,[1,2])的执行结果如何?为什么? 展开
实现代码:
disp(['1、函数p的零解准确值是什么?'])
p=[816 -3835 6000 -3125];
x=roots(p)
disp(['2、画出区间1.43<=x<=1.71内p(x)的图形,显示这三个根的位置'])
x1=linspace(1.43,1.71,100);
y1=fun(x1);
plot(x(1),0,'p',x(2),0,'p',x(3),0,'p',x1,y1,'r-')
xlabel('x'),ylabel('P(x)')
disp(['3、以初始值x0=1.5开始,牛顿法后续怎么执行?'])
x0=1.5;tol=1e-6;x=newton(x0,tol)
disp(['4、以初始值x0=1和x1=2开始,割线法后续怎么执行?'])
x0=1;x1=2;tol=1.0e-5;x=secant(x0,x1,tol)
disp(['5、从区间[1,2]开始,二分法怎么执行?'])
x0=1;x1=2;tol=1e-5;x=dichotomy(@fun,x0,x1,tol)
%(f) Fzerotx(p,[1,2])的执行结果如何?为什么?
Fzerotx为自定义函数,因不知函数内容,故暂时无法求解
完整代码,应代码比较长,可以私聊后提供。
写在评论下就OK了