声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 850|回复: 2

[编程技巧] matlab编程问题,急盼哪位帮帮忙

[复制链接]
发表于 2010-4-7 13:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function [x1]=secant(func,x0,x1,tol,n,xin)
%The secant method for solving the nonlinear equation f(x)=0
iter=0;
u=feval(func,x0,xin);
v=feval(func,x1,xin);
err=abs(x1-x0);
%disp('___________________________________________________________')
%disp('iter        xn       f(xn)      f(xn+1)-f(xn)  |xn+1-xn|')
%disp('___________________________________________________________')
%fprintf('%4.0d   %12.6d      %12.6d\n',iter,x0,u)
%fprintf('%4.0d   %12.6d      %12.6d %12.6f\n',iter,x1,v,v-u,err)
while(err>tol)&(iter<=n)&((v-u)~=0)
      x=x1-v*(x1-x0)/(v-u);
      x0=x1;
      u=v;
      x1=x; %在这个地方的x1值,目前当while循环全部运行完了才能得到一个值,如果我需要每次运行到这里就把x1输出如何进行?
      v=feval(func,x1,xin);
      err=abs(x1-x0);
      iter=iter+1;
      %fprintf('%2.0d %12.6d %12.6d %12.6d %12.6d\n',iter,x1,v,v-u,err)
end
    if((v-u)==0)
       disp('Division by zero')
    end
    if(iter>n)
      disp('Method failed to converge')  
    end
回复
分享到:

使用道具 举报

发表于 2010-4-7 15:56 | 显示全部楼层
存到一个变量里就行了。。比如
x1=x;
x2(i)=x1;
i=i+1;
简单描述了一下。。

评分

1

查看全部评分

发表于 2010-4-11 22:19 | 显示全部楼层
最简单的方法就是,把后面的分号去掉。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 01:40 , Processed in 0.063732 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表