程序本身没有错,显示结果的语句不符合matlab语言习惯,另外去掉disp也能显示出结果来,区别你运行下就知道了,最后提两点
1)变量x出现三种类型,工作区内后定义类型变量值会覆盖前一种类型,且不能再使用前一种类型的变量,不同类迹塌型最好另外起名字;
2)对于double型数据的相等判断,最好采用abs(a-b)<eps的形式,eps可以自己是机器精度,可以自己调,这个姿租圆型改程序里if xx == 1.5没有出现问题,是因为精度判断没有问题
地球可是真小啊,看来老师布置作业都一样啊!
前段时间刚做过这道题!
给你个正确的程序!
采用不动点迭代法计算非线性方程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
不会一个学校的吧?哈哈!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)