• PUDN用户
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 103
    下载次数
  • 2010-04-13 21:58
    上传日期
非线性方程组的牛顿迭代方法与非线性方程解法类似,也是求解非线性方程组的常用方法。
newton2.rar
  • newton2.txt
    994B
内容介绍
%牛顿迭代法 计算非线性方程组 %输入 x0为迭代初值 %tol为误差容限 如果缺省 默认为10的-10次方 %data用来存放计算的中间数据便于计算收敛情况分析 function [x,n,data]=new_ton(x0,tol) if nargin==1 tol=1e-10; end x1=x0-f1(x0)/df1(x0); n=1; %迭代过程 while (norm(x1-x0)>tol)&(n<500) x0=x1; x1=x0-f1(x0)/df1(x0); n=n+1; %data用来存放中间数据 data(:,n)=x1; end x=x1; %牛顿迭代法的 方程函数 function f=f1(x0) x=x0(1); y=x0(2); f1=x^2-2*x-y+0.5; f2=x^2+4*y^2-4; %最后方程函数 以行向量输出 f=[f1 f2]; %牛顿迭代法的 jacobi矩阵 function f=df1(x0); x=x0(1); y=x0(2); f=[2*x-2 -1 2*x 8*y]; %牛顿迭代法的主函数 x0=[1 1]; [x,n,data]=new_ton(x0); disp('计算结果为') x disp('迭代次数为') n %抽取data1中第一个变量数据 画出曲线 subplot(2,1,1) plot(data(1,:)),title('x在迭代中的变化') %抽取data中的第二个变量数据 画出其变化曲线 subplot(2,1,2) plot(data(2,:)),title('y在迭代中的变化') %以下为数据存储部分 num=(1:n)'; a=[num data']; save data1.txt a -ascii
评论
    相关推荐