用Matlab编程,采用不动点迭代法,求f(x)=x3+4x2-10在区间[1,2]上的 一个根

主要是不知道怎样构造一个收敛的迭代式。劳烦各位高手指点一二
看了一楼朋友的回答,确实是不动点迭代法,但是还是没有给出具体的迭代式y=gg(x)。不知还有哪位高手知道的

地球可是真小啊,
看来老师布置作业都一样啊!
前段时间刚做过这道题!
给你个正确的程序!
采用不动点迭代法计算非线性方程x3+4x2-10=0,在区间[1,2]上的一个根。
不动点迭代法程序:
function
[y,n]=BDD(x,eps)
if
nargin==1
eps=1.0e-6;
elseif
nargin<1
error
return
end
x1=gg(x);
n=1;
while
(norm(x1-x)>=1e-6)&&(n<=10000)
x=x1;
x1=gg(x);
n=n+1;
end
y=x;
M函数:
function
f=gg(x)
f(1)=sqrt(2.5-(x^3)/4);
结果如下:
>>
BDD(1)
n
=
21
ans
=
1.3652
PS
不会一个学校的吧?哈哈!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-22
地球可是真小啊,
看来老师布置作业都一样啊!

前段时间刚做过这道题!
给你个正确的程序!

采用不动点迭代法计算非线性方程x3+4x2-10=0,在区间[1,2]上的一个根。
不动点迭代法程序:
function [y,n]=BDD(x,eps)
if nargin==1
eps=1.0e-6;
elseif nargin<1
error
return
end
x1=gg(x);
n=1;
while (norm(x1-x)>=1e-6)&&(n<=10000)
x=x1;
x1=gg(x);
n=n+1;
end
y=x;

M函数:
function f=gg(x)
f(1)=sqrt(2.5-(x^3)/4);

结果如下:
>> BDD(1)
n =
21
ans =
1.3652

PS 不会一个学校的吧?哈哈!本回答被提问者采纳
第2个回答  2009-12-09
function [y,n]=BDD(x,eps)
%该函数用来通过不动点迭代法求解非线性方程组的近似解
%x0为迭代初始值,eps为允许的误差,n记录迭代的次数
if nargin==2
eps=1.0e-6;
elseif nargin<2
error
return
end
x1=gg(x);
n=1;
while (norm(x1-x)>=1e-6)&(n<=10000)
x=x1;
x1=gg(x);
n=n+1;
end
y=x;
然后再编一个M文件
function y=gg(x)
y=x^3+4*x^2-10;
相似回答