数值分析(25) 非线性方程组的数值方法_第1页
数值分析(25) 非线性方程组的数值方法_第2页
数值分析(25) 非线性方程组的数值方法_第3页
数值分析(25) 非线性方程组的数值方法_第4页
数值分析(25) 非线性方程组的数值方法_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数值分析数值分析第三节非线性方程组的简单迭代法一、引言数值分析数值分析非线性方程组解的复杂性数值分析数值分析clear,clfx1=-2:.2:2;y2=-2:.2:2;y1=f1(x1);x2=f2(y2);plot(x1,y1,'r:',x2,y2,'b')xlabel('x'),ylabel('y')(3)a=0(4)a=-1(1)a=1(2)a=1/4数值分析数值分析几类典型非线性问题数值分析数值分析数值分析数值分析例:半线性椭圆型边值问题解:(1)剖分求解域.YN+1N:210012….NN+1X数值分析数值分析(2)对微分算子进行离散.在每个点(xi,yj)上的有限差分方程为在边界上数值分析数值分析对非边界点进行编号:

顺序为-----从下往上,从左往右相应的解向量和右端向量分别为

数值分析数值分析数值分析数值分析多元向量值函数的导数数值分析数值分析数值分析数值分析数值分析数值分析多元实函数的高阶导数数值分析数值分析

研究非线性方程组解的存在唯一性问题可转化为研究不动点的存在唯一性。二、压缩映射与不动点迭代(简单迭代法)

数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析二、局部收敛性原理原理的局限性:(1)收敛域很难找(2)对非线性问题这是一个充分性原理,不是充分必要的,只有对线性问题,才是充分必要条件.如:数值分析数值分析P=1,C<1为线性收敛,P=2为平方收敛。三、收敛速度

数值分析数值分析第四节非线性方程组的Newton型算法

一、Newton-Raphson方法的迭代格式

数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析二、Newton迭代法的收敛性由迭代收敛阶的定义,Newton迭代法是平方收敛的。数值分析数值分析数值分析数值分析数值分析数值分析二、同伦算法数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析数值分析

求解非线性方程组的同伦算法%文件名:Homotopy.mfunctionroot=Homotopy(funcF,funcH,x,N,tol,Nmax)%功能:求解非线性方程组的同伦算法%输入:%funcF-----原始方程函数句柄%funcH-----同伦方程函数句柄%x----初始迭代点%N(可选)----同伦参数t的划分数(默认是10)%tol(可选)---精度要求(默认是1e-4)%Nmax(可选)---最大迭代次数(默认100次)%输出:%root----解向量数值分析数值分析

ifsize(x,1)==1;x=x';endifnargin<6;Nmax=100;endifnargin<5|isempty(tol);tol=1e-4;endifnargin<4|isempty(N);N=10;endk=0;x0=x;n=length(x);dx=tol+1;f0=tol+1;form=1:Nt=m/N;while(norm(dx)>tol&norm(f0)>tol)&k<Nmax[jac,f0]=JacobianH(x,funcF,funcH,x0,t);

dx=jac\(-f0);x=x+dx;

k=k+1;Enddx=tol+1;f0=tol+1;root=x;k=0;end数值分析数值分析

function[jac,f0]=JacobianH(x,func1,func2,x0,t)%计算同伦函数的Jacobian矩阵和函数值h=1.0e-6;n=length(x);jac=zeros(n);f0=feval(func2,x,func1,x0,t);fori=1:ntemp=x(i);

x(i)=temp+h;f1=feval(func2,x,func1,x0,t);

x(i)=temp;

jac(:,i)=(f1-f0)/h;end数值分析数值分析例利用同伦算法求非线性方程组取初值x(0)=(10,5)’,t的划分数N=4,精度tol=10-3。首先定义方程函数functionf=fex8_6(x)%定义方程F(x)=0f(1)=x(1)^2+x(2)^2-5;f(2)=x(1)^2-x(2)^2+3;f=f';再定义同伦函数f=HomotopyH(x,func,x0,t)%同伦函数f0=feval(func,x0);f=feval(func,x)+(t-1)*f0;然后运行以下主程序x0=[10,5]';tol=1e-3;N=4;root=Homotopy(@fex8_6,@HomotopyH,x0,N,tol)root=1.00002.0000

数值分析数值分析三、拟牛顿法

数值分析数值分析数值分析数值分析数值分析数值分析

求解非线性方程组的Broyden秩1算法%文件名:QuasiNewton.mfunctionroot=QuasiNewton(myfun,x,tol,N)%功能:Broyden秩1拟牛顿法求解非线性方程组%输入:%myfun----方程函数句柄%x----初始迭代点%tol(可选)-精度要求(默认是1e-4)%Nmax(可选)-最大迭代次数(默认100次)%输出:%root---解向量n=length(x);ifsize(x,1)==1,x=x';endh=1e-4;B0=zeros(n);B1=zeros(n);数值分析数值分析f0=feval(myfun,x);fori=1:ntemp=x(i);x(i)=x(i)+h;f1=feval(myfun,x);B0(:,i)=(f1-f0)/h;x(i)=temp;Enddx=B0\(-f0);k=0;whilenorm(dx)>tol&k<Nx1=x+dx;s=dx;f1=feval(myfun,x1);y=f1-f0;B1=B0+(y-B0*s)*s'/(s'*s);B0=B1;f0=f1;x=x1;dx=B0\(-f0);k=k+1;endroot=x;ifk==N,warning('已达最大迭代次数');endfprintf('迭代次数为:k=%d\n',k);数值分析数值分析例用Broyden秩1拟牛顿法求解如下非线性方程组在(1.5,0.75)附近的解首先定义方程函数functiony=fex8_5(x)y(1)=x(1)+2*x(2)-3;y(2)=2*x(1)^2+x(2)^2-5;y=y';然后运行以下主程序x0=[1.5,0.75]';root=QuasiNewton(@fex8_5,x0)迭代次数:k=1root=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论