- 在线时间
- 18 小时
- 最后登录
- 2011-4-14
- 注册时间
- 2010-10-24
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 637 点
- 威望
- 0 点
- 阅读权限
- 30
- 积分
- 230
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 77
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   65% 该用户从未签到
 |
老是报错,不知道错哪里了,求帮助。- function F=Newton(a,b,TOL)
- N=100;
- TOL1=0.01;
- k=1;
- FA=f(a);
- flag=1;
- while (b-a)/2 >= TOL1 && k<N
- c=(a+b)/2;
- FP=f(c);
- if abs(FP)<TOL
- p=c;
- flag=2;
- break
- elseif sign(FA)*sign(FP)>0
- a=c;
- FA=FP;
- else
- b=c;
- end
- k=k+1;
- end
- p=c;
- p0=c;
- p1=zeros(N,1);
- p2=zeros(N,1);
- for m=1:N
- p1(m)=p0-f(p0)/g(p0);
- p2(m)=p1(m)-f(p1(m))/g(p1(m));
- p(m+1)=p0-(p1(m)-p0)*(p1(m)-p0)/(p2(m)-2*p1(m)+p0);
- if abs(p(m+1)-p0)<TOL
- flag=0;
- F=[p f(p);[p1 0];[f(p1) 0];[p2 0];[f(p2) 0]];
- break
- else
- p0=p(m+1);
- end
- end
- if k==N
- fprintf('The Bisection method failed after %d iterations.\n',N);
- F=[a f(a) b f(b)];
- return
- end
- if flag==2
- fprintf('The Newton`s method failed after %d iterations.\n',N);
- F=[p f(p) [p1;0] [f(p1);0] [p2;0] [f(p2);0]];
- end
- F;
复制代码
|
zan
|