一类二阶迭代泛函微分方程的解析

一类二阶迭代泛函微分方程的解析
一类二阶迭代泛函微分方程的解析

MATLAB代码 解线性方程组的迭代法

解线性方程组的迭代法 1.rs里查森迭代法求线性方程组Ax=b的解 function[x,n]=rs(A,b,x0,eps,M) if(nargin==3) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值elseif(nargin==4) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-A)*x0+b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 2.crs里查森参数迭代法求线性方程组Ax=b的解 function[x,n]=crs(A,b,x0,w,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-w*A)*x0+w*b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x;

if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 3.grs里查森迭代法求线性方程组Ax=b的解 function[x,n]=grs(A,b,x0,W,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1;%前后两次迭代结果误差 %迭代过程 while(tol>eps) x=(I-W*A)*x0+W*b;%迭代公式 n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 4.jacobi雅可比迭代法求线性方程组Ax=b的解 function[x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3 eps=1.0e-6; M=200; elseif nargin<3 error return elseif nargin==5 M=varargin{1}; end D=diag(diag(A));%求A的对角矩阵 L=-tril(A,-1);%求A的下三角阵

高斯-赛德尔迭代法matlab程序

disp('划分为M*M个正方形') M=5 %每行的方格数,改变M可以方便地改变剖分的点数 u=zeros(M+1);%得到一个(M+1)*(M+1)的矩阵 disp('对每个剖分点赋初值,因为迭代次数很高,所以如何赋初值并不重要,故采用对列线性赋值。') disp('对边界内的点赋初值并使用边界条件对边界赋值:') for j=1:M-1 for i=1:M-1 u(i+1,j+1)=100*sin(pi/M*j)/M*(M-i);%对矩阵(即每个刨分点)赋初值 end end for i=1:M+1 u(1,i)=100*sin(pi*(i-1)/M);%使用边界条件对边界赋值 u(1,M+1)=0; end u tic %获取运行时间的起点 disp('迭代次数为N') N=6 %迭代次数,改变N可以方便地改变迭代次数 disp('n为当前迭代次数,u为当前值,结果如下:') for n=1:N for p=2:M i=M+2-p; for j=2:M u(i,j)=0.25*(u(i,j-1)+u(i+1,j)+u(i-1,j)+u(i,j+1));%赛德尔迭代法 end end n %输出n u %输出u end disp('所用的时间:') t=toc %获取算法运行需要的时间 [x,y]=meshgrid(0:1/M:1,0:1/M:1); z=u(1,:); for a=2:M+1 z=[z;u(a,:)];%获取最终迭代的结果,幅值给z,z的值代表该点的点位值 end mesh(x,y,z)%绘制三维视图以便清楚地显示结果 mesh(x,y,z,'FaceColor','white','EdgeColor','black') %绘制三维视图以便清楚地显示结果

各种类型的微分方程及其相应解法教程文件

各种类型的微分方程及其相应解法 专业班级:交土01班 姓名:高云 学号:1201110102 微分方程的类型有很多种,解题时先判断微分方程是哪种类型,可以帮助我们更快解题,所以我们有必要归纳整理一下各类型(主要是一阶和二阶)的微分方程及其相应解法。 一、一阶微分方程的解法 1.可分离变量的方程 dx x f dy y g )()(=,或)()(y g x f dx dy = 其特点是可以把变量x 和y 只分别在等式的两边,解法关键是把变量分离后两边积分。 例1.求微分方程ydy dx y xydy dx +=+2的通解. 解 先合并dx 及dy 的各项,得dx y dy x y )1()1(2-=- 设,01,012≠-≠-x y 分离变量得 dx x dy y y 1112-=- 两端积分??-=-dx x dy y y 1112得 ||ln |1|ln |1|ln 2 112C x y +-=- 于是 2212)1(1-±=-x C y 记,21C C ±=则得到题设方程的通解 .)1(122-=-x C y 2.齐次方程 (1))(x y f dx dy = (2) )(c by ax f dx dy ++=(a ,b 均不等于0) 例2求解微分方程.2222xy y dy y xy x dx -=+- 解 原方程变形为=+--=2222y xy x xy y dx dy ,1222?? ? ??+--??? ??x y x y x y x y 令,x y u =则,dx du x u dx dy +=方程化为,1222u u u u dx du x u +--=+ 分离变量得?? ????-+--??? ??--112212121u u u u ,x dx du = 两边积分得 ,ln ln ln 2 1)2ln(23)1ln(C x u u u +=----

lu分解法、列主元高斯法、jacobi迭代法、gaussseidel法的原理及matlab程序

一、实验目的及题目 1.1 实验目的: (1)学会用高斯列主元消去法,LU 分解法,Jacobi 迭代法和Gauss-Seidel 迭代法解线性方程组。 (2)学会用Matlab 编写各种方法求解线性方程组的程序。 1.2 实验题目: 1. 用列主元消去法解方程组: 1241234 123412343421233234x x x x x x x x x x x x x x x ++=??+-+=??--+=-??-++-=? 2. 用LU 分解法解方程组,Ax b =其中 4824012242412120620266216A --?? ?- ?= ? ?-??,4422b ?? ? ?= ?- ?-?? 3. 分别用Jacobi 迭代法和Gauss-Seidel 迭代法求解方程组: 123234 1231234102118311210631125x x x x x x x x x x x x x -+=-??-+=-??-+=??-+-+ =? 二、实验原理、程序框图、程序代码等 2.1实验原理 2.1.1高斯列主元消去法的原理 Gauss 消去法的基本思想是一次用前面的方程消去后面的未知数,从而将方程组化为等价形式: 1111221122222n n n n nn n n b x b x b x g b x b x g b x g +++=??++=????= ? 这个过程就是消元,然后再回代就好了。具体过程如下: 对于1,2, ,1k n =-,若() 0,k kk a ≠依次计算

()() (1)()()(1)()()/,,1, ,k k ik ik kk k k k ij ij ik kj k k k i i ik k m a a a a m a b b m b i j k n ++==-=-=+ 然后将其回代得到: ()() ()()()1/()/,1,2,,1 n n n n nn n k k k k k kj j kk j k x b a x b a x a k n n =+?=??=-=--? ? ∑ 以上是高斯消去。 但是高斯消去法在消元的过程中有可能会出现() 0k kk a =的情况,这时消元就无法进行了,即使主元数() 0,k kk a ≠但是很小时,其做除数,也会导致其他元素数量级的严重增长和舍入误差的扩散。因此,为了减少误差,每次消元选取系数矩阵的某列中绝对值最大的元素作为主元素。然后换行使之变到主元位置上,再进行销元计算。即高斯列主元消去法。 2.1.2直接三角分解法(LU 分解)的原理 先将矩阵A 直接分解为A LU =则求解方程组的问题就等价于求解两个三角形方程组。 直接利用矩阵乘法,得到矩阵的三角分解计算公式为: 1111111 11 1,1,2,,/,2,,,,,1,,,2,3, ()/,1,2, ,i i i i k kj kj km mj m k ik ik im mk kk m u a i n l a u i n u a l u j k k n k n l a l u u i k k n k n -=-===?? ==?? =-=+??=??=-=++≠?? ∑∑且 由上面的式子得到矩阵A 的LU 分解后,求解Ux=y 的计算公式为 11 111,2,3,/()/,1,2, ,1 i i i ij j j n n nn n i i ij j ii j i y b y b l y i n x y u x y u x u i n n -==+=??? =-=?? =??? =-=--?? ∑∑ 以上为LU 分解法。

几类偏泛函微分方程解的动力学行为研究

几类偏泛函微分方程解的动力学行为研究主要运用偏泛函微分方程理论,算子半群理论和无穷维动力系统理论,研究了几类偏泛函微分方程解的动力学行为,包括拉回吸引子的存在性、维数及其上半连续性,平衡解的多项式稳定性和指数稳定性.全文共分六章:第一章介绍了偏泛函微分方程和无穷维动力系统的研究背景和意义,综述了近年来关于偏泛函微分方程与无穷维动力系统的研究现状,并概括了本论文的主要工作.第二章首先运用经典的Faedo-Galerkin逼近方法证明了非自治随机p-Laplace方程弱解的存在唯一性,并利用一致估计和渐近紧性得到了双空间随机吸引子的存在性及其上半连续性;然后结合Galerkin近似和Aubin-Lions紧性证明了时滞p-Laplace 方程弱解的存在唯一性,并运用能量方法得到了拉回吸引子的存在性及其上半连续性.第三章借助泛函微分方程理论证明了无界时滞的Navier-Stokes方程弱解的存在唯一性,运用Lyapunov函数等方法证明了其平衡解的局部稳定性,通过构造合适的Lyapunov泛函得到了该平衡解的渐近稳定性,并在一种特殊的无界时滞的情形下证明了该平衡解具有多项式稳定性;然后使用Ito公式证明了无限时滞的随机Navier-Stokes方程弱解的存在唯一性,通过构造合适的Lyapunov泛函得到了其平衡解的渐近稳定性,并在一种特殊的无界时滞的情形下证明了该平衡解的多项式稳定性.第四章结合能量方法和紧性理论分析了一类时滞不可压缩非Newtonian流体弱解的存在唯一性,并运用一致估计和分解方法证明了拉回吸引子的存在性;然后综合运用Lax-Milgram定理和Schauder不动点定理证明了时滞不可压缩非Newtonian流体平衡解的存在唯一性,最后运用Razumikhin等方法证明了平衡解的指数稳定性.第五章运用算子半群理论证明了无限时滞的分数阶随机反应扩散方程温和解的存在唯一性及其关于初值的连续依赖性,得到了具有有

matlab 迭代法[精品]

matlab 迭代法[精品] 1. 矩阵 122,211,,,,,,,,,A,111A,222, 11,,,,,,,,221,,112,,,, 证明:求解以为系数矩阵线性方程组的Jacobi迭代式收敛的,而A1 Gauss-Seidel方法是发散的;求解以为系数矩阵线性方程组的A2实验名称Gauss-Seidel是收敛的,而Jacobi方法是发散的. 2. 矩阵 1aa,,,,Aaa,1 ,,,,aa1,, (a) 参数取什么值时,矩阵是正定的. a (b) 取什么值时,求以为系数矩阵线性方程组的Jacobi迭代式收aa 敛的. 1、根据迭代收敛性的充分必要条件来判断Jacobi迭代式与Gauss-Seide 迭代式的收敛性,迭代收敛性仅与方程组系数矩阵有关,与右端无关;而且不依赖于初值的选取。实验目的 2、根据矩阵的判断定理求得矩阵元素a的取值,同时根据矩阵线性方程组的Jacobi迭代式收敛的充分条件(严格对角占优)来求a得取值。 1、(1)检验线性方程组的Jacobi迭代式的收敛性: function jacobi(A) D=zeros(3); for i=1:3 D(i,i)=A(i,i); 实验内容end (算法、程B=D^(-1)*(D-A); 序、步骤和k=max(abs(eig(B))) 方法) if k<1

'该线性方程组的Jacobi迭代式是收敛的' else k>=1 '该线性方程组的Jacobi迭代式是发散的' end (2)检验线性方程组的Gauss-Seide迭代式的收敛性: function Gauss(A) D=zeros(3); L=zeros(3); U=zeros(3); for i=1:3 D(i,i)=A(i,i); end L(2:3,1)=A(2:3,1); L(3,2)=A(3,2); U(1,2:3)=A(1,2:3); U(2,3)=A(2,3); B=-(D+L)^(-1)*U; k=max(abs(eig(B))) if k<1 '该线性方程组的Gauss-Seidel迭代式是收敛的' else k>=1 '该线性方程组的Gauss-Seidel迭代式是发散的' end 2、(1)参数取什么值时,矩阵是正定的.(矩阵的特征值全为正) a >> syms a >> A=[1 a a;a 1 a;a a 1]; >> eig(A) ans = 2*a+1 1-a

各种类型的微分方程及其相应解法

各种类型的微分方程及其相应解法 专业班级:交土01班 姓名:高云 学号:1201110102 微分方程的类型有很多种,解题时先判断微分方程是哪种类型,可以帮助我们更快解题,所以我们有必要归纳整理一下各类型(主要是一阶和二阶)的微分方程及其相应解法。 一、一阶微分方程的解法 1.可分离变量的方程 dx x f dy y g )()(=,或)()(y g x f dx dy = 其特点是可以把变量x 和y 只分别在等式的两边,解法关键是把变量分离后两边积分。 例1.求微分方程ydy dx y xydy dx +=+2的通解. 解 先合并dx 及dy 的各项,得dx y dy x y )1()1(2-=- 设,01,012≠-≠-x y 分离变量得 dx x dy y y 1112-=- 两端积分??-=-dx x dy y y 1112得 ||ln |1|ln |1|ln 2 112C x y +-=- 于是 2212)1(1-±=-x C y 记,21C C ±=则得到题设方程的通解 .)1(122-=-x C y 2.齐次方程 (1))(x y f dx dy = (2) )(c by ax f dx dy ++=(a ,b 均不等于0) 例2求解微分方程.2222xy y dy y xy x dx -=+- 解 原方程变形为=+--=2222y xy x xy y dx dy ,1222?? ? ??+--??? ??x y x y x y x y 令,x y u =则,dx du x u dx dy +=方程化为,1222u u u u dx du x u +--=+ 分离变量得?? ????-+--??? ??--112212121u u u u ,x dx du = 两边积分得 ,ln ln ln 2 1)2ln(23)1ln(C x u u u +=----

matlab迭代法代码

matlab 迭代法代码 1、%用不动点迭代法求方程x-e A x+4=0的正根与负根,误差限是 10A-6% disp(' 不动点迭代法 '); n0=100; p0=-5; for i=1:n0 p=exp(p0)-4; if abs(p-p0)<=10(6) if p<0 disp('|p-p0|=') disp(abs(p-p0)) disp(' 不动点迭代法求得方程的负根为 :') disp(p); break; else disp(' 不动点迭代法无法求出方程的负根 .') end else p0=p; end end

if i==n0 disp(n0) disp(' 次不动点迭代后无法求出方程的负根') end p1=1.7; for i=1:n0 pp=exp(p1)-4; if abs(pp-p1)<=10(6) if pp>0 disp('|p-p1|=') disp(abs(pp-p1)) disp(' 用不动点迭代法求得方程的正根为 ') disp(pp); else disp(' 用不动点迭代法无法求出方程的正根 '); end break; else p1=pp; end end if i==n0

disp(n0) disp(' 次不动点迭代后无法求出方程的正根 ') end 2、%用牛顿法求方程x-e A x+4=0的正根与负根,误差限是disp(' 牛顿法') n0=80; p0=1; for i=1:n0 p=p0-(p0-exp(p0)+4)/(1-exp(p0)); if abs(p-p0)<=10(6) disp('|p-p0|=') disp(abs(p-p0)) disp(' 用牛顿法求得方程的正根为 ') disp(p); break; else p0=p; end end if i==n0 disp(n0) disp(' 次牛顿迭代后无法求出方程的解 p1=-3; for i=1:n0 p=p1-(p1-exp(p1)+4)/(1-exp(p1)); 10A-6 ') end

二分法、简单迭代法的matlab代码实现教学文案

二分法、简单迭代法的m a t l a b代码实现

实验一非线性方程的数值解法(一)信息与计算科学金融崔振威 201002034031 一、实验目的: 熟悉二分法和简单迭代法的算法实现。 二、实验内容: 教材P40 2.1.5 三、实验要求 1 根据实验内容编写二分法和简单迭代法的算法实现 2 简单比较分析两种算法的误差 3 试构造不同的迭代格式,分析比较其收敛性 (一)、二分法程序: function ef=bisect(fx,xa,xb,n,delta) % fx是由方程转化的关于x的函数,有fx=0。 % xa 解区间上限 % xb 解区间下限 % n 最多循环步数,防止死循环。 %delta 为允许误差 x=xa;fa=eval(fx); x=xb;fb=eval(fx); disp(' [ n xa xb xc fc ]'); for i=1:n xc=(xa+xb)/2;x=xc;fc=eval(fx); X=[i,xa,xb,xc,fc]; disp(X), if fc*fa<0 xb=xc; else xa=xc;

end if (xb-xa)eps & k> fplot('[x^5-3*x^3-2*x^2+2]',[-3,3]);grid 得下图:

迭代解法的matlab实现

解线性方程组b AX =的迭代法是从初始解出发,根据设计好的步骤用逐次求出的近似解逼近精确解.在第三章中介绍的解线性方程组的直接方法一般适合于A 为低阶稠密矩阵(指n 不大且元多为非零)的情况,而在工程技术和科学计算中常会遇到大型稀疏矩阵(指n 很大且零元较多)的方程组,迭代法在计算和存贮两方面都适合后一种情况.由于迭代法是通过逐次迭代来逼近方程组的解,所以收敛性和收敛速度是构造迭代法时应该注意的问题.另外,因为不同的系数矩阵具有不同的性态,所以大多数迭代方法都具有一定的适用范围.有时,某种方法对于一类方程组迭代收敛,而对另一类方程组迭代时就发散.因此,我们应该学会针对具有不同性质的线性方程组构造不同的迭代. 4.1 迭代法和敛散性及其MATLAB 程序 4.1.2 迭代法敛散性的判别及其MATLAB 程序 根据定理4.1和谱半径定义,现提供一个名为pddpb.m 的M 文件,用于判别迭代公H=eig(B);mH=norm(H,inf); if mH>=1 disp('请注意:因为谱半径不小于1,所以迭代序列发散,谱半径mH 和B 的所 有的特征值H 如下:') else disp('请注意:因为谱半径小于1,所以迭代序列收敛,谱半径mH 和B 的所有 的特征值H 如下:') end mH 4.1.3 与迭代法有关的MATLAB 命令 (一) 提取(产生)对角矩阵和特征值 可以用表4–1的MATLAB 命令提取对角矩阵和特征值. (二) 提取(产生)上(下)三角形矩阵

可以用表4–2的MATLAB命令提取矩阵的上三角形矩阵和下三角形矩阵. (三)稀疏矩阵的处理 对稀疏矩阵在存贮和运算上的特殊处理,是MA TLAB进行大规模科学计算时的特点和优势之一.可以用表4–3的MATLAB命令,输入稀疏矩阵的非零元(零元不必输入),即可进行运算. 4.2 雅可比(Jacobi)迭代及其MATLAB程序 4.2.2 雅可比迭代的收敛性及其MATLAB程序 [n m]=size(A); for j=1:m a(j)=sum(abs(A(:,j)))-2*(abs(A(j,j))); end for i=1:n if a(i)>=0 disp('请注意:系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛') return end end if a(i)<0 disp('请注意:系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛') end 例4.2.2 用判别雅可比迭代收敛性的MATLAB主程序,判别由下列方程组的雅可比迭

不动点迭代法matlab程序

实验四 姓名:木拉丁。尼则木丁班级:信计08-2 学号:20080803405 实验地点:新大机房 实验目的:通过本实验学习利用MATLAB不动点迭代法,抛物线法,斯特芬森迭代法解非线性方程组,及其编程实现,培养编程与上机调试能力。 实验要求:①上机前充分准备,复习有关内容,写出计算步骤,查对程序; ②完成实验后写出完整的实验报告,内容应该包括:所用的算法语言, 算法步骤陈述,变量说明,程序清单,输出计算结果,结果分析等等; ③用编好的程序在Matlab环境中执行。 迭代法 MATLAB程序: function pwxff(f,x0,x1,x2,d,n) f=inline(f); x(1)=x0; x(2)=x1; x(3)=x2; w1=(f(x(2))-f(x(3)))/(x(2)-x(3)); t1=(f(x(1))-f(x(3)))/(x(1)-x(3)); t2=(f(x(1))-f(x(2)))/(x(1)-x(2)); w2=1/(x(1)-x(2))*(t1-t2); w=w1+w2*(x(3)-x(2));

for k=3:n x(k+1)=x(k)-2*f(x(k))/(w+sqrt(w^2-4*f(x(k))*w2)); if abs(x(k+1)-x(k))

微分方程的分类及其数值解法

微分方程的分类及其数值解法 微分方程的分类: 含有未知函数的导数,如dy/dx=2x 、ds/dt=0.4都是微分方程。 一般的凡是表示未知函数、未知函数的导数与自变量之间的关系的方程,叫做微分方程。未知函数是一元函数的,叫常微分方程;未知函数是多元函数的叫做偏微分方程。微分方程有时也简称方程。 一、常微分方程的数值解法: 1、Euler 法: 00d (,), (1.1)d (), (1.2) y f x y x y x y ?=???=? 001 (),(,),0,1,,1n n n n y y x y y hf x y n N +=??=+=-? (1.4) 其中0,n b a x x nh h N -=+=. 用(1.4)求解(1.1)的方法称为Euler 方法。 后退Euler 公式???+==+++),,(),(111 00n n n n y x hf y y x y y 梯形方法公式 )].,(),([2 111+++++=n n n n n n y x f y x f h y y 改进的Euler 方法11(,),(,),1().2p n n n c n n p n p c y y hf x y y y hf x y y y y ++?=+??=+???=+??? 2、Runge-Kutta 方法: p 阶方法 : 1()O h -=?总体截断误差局部截断误差 二阶Runge-Kutta 方法 ??? ????++==++=+),,(),,(,2212 1211hk y h x f k y x f k k h k h y y n n n n n n

二分法、简单迭代法的matlab代码实现

实验一非线性方程的数值解法(一)信息与计算科学金融崔振威201002034031 一、实验目的: 熟悉二分法和简单迭代法的算法实现。 二、实验内容: 教材P40 2.1.5 三、实验要求 1 根据实验内容编写二分法和简单迭代法的算法实现 2 简单比较分析两种算法的误差 3 试构造不同的迭代格式,分析比较其收敛性 (一)、二分法程序: function ef=bisect(fx,xa,xb,n,delta) % fx是由方程转化的关于x的函数,有fx=0。 % xa 解区间上限 % xb 解区间下限 % n 最多循环步数,防止死循环。 %delta 为允许误差 x=xa;fa=eval(fx); x=xb;fb=eval(fx); disp(' [ n xa xb xc fc ]'); for i=1:n xc=(xa+xb)/2;x=xc;fc=eval(fx); X=[i,xa,xb,xc,fc]; disp(X), if fc*fa<0 xb=xc; else xa=xc; end if (xb-xa)

k=0; while abs(x-x0)>eps & k> fplot('[x^5-3*x^3-2*x^2+2]',[-3,3]);grid 得下图: 由上图可得知:方程在[-3,3]区间有根。 (2)、二分法输出结果 >> f='x^5-3*x^3-2*x^2+2' f = x^5-3*x^3-2*x^2+2 >> bisect(f,-3,3,20,10^(-12)) 2.0000 - 3.0000 0 -1.5000 0.0313

MATLAB计算方法迭代法牛顿法二分法实验报告

姓名 ______________ 实验报告成绩 ________________________ 评语: 指导教师(签名) ___________________ 年月日 说明:指导教师评分后,实验报告交院(系)办公室保存。 实验一方程求根 一、实验目的 用各种方法求任意实函数方程f(x)0在自变量区间[a,b]上,或某一点附 近的实根。并比较方法的优劣。 二、实验原理 (1)、二分法 b a x 对方程f(x)0在[a,b]内求根。将所给区间二分,在分点2判断 b a x --------- 是否f(x)0;若是,则有根2。否则,继续判断是否f(a)?f(x) 0,若是,则令b x,否 则令a x。否则令a x。重复此过程直至求出方程f(x) °在[a,b]中的近似根为止。 (2)、迭代法 将方程f(x) °等价变换为x=? ( x)形式,并建立相应的迭代公式xk 1 9( x)。 (3)、牛顿法 若已知方程的一个近似根x°,则函数在点x°附近可用一阶泰勒多项式 P l(x) f(X°) f'(X0)(X X。)来近似,因此方程f(x) °可近似表示为

if fa*fb>0 error(' 两端函数值为同号'); f (X k ) 3 不超过 0.5 10 。 六、实验步骤与实验程序 (1)二分法 第一步:在MATLAB 7.0软件,建立一个实现二分法的 MATLABS 数文件 agui_bisect.m 女口下: fun cti on x=agui_bisect(fname,a,b,e) %fname 为函数名,a,b 为区间端点,e 为精度 fa=feval(fname,a); % 把a 端点代入函数,求fa fb=feval(fname,b); % 把b 端点代入函数,求fb f (X k ) 根X1,然后将X1作为X 。代入上式。迭代公式为: X k 1 X 0 f'(X k ) o f (X o ) f(X o ) f ' (Xo)(X X )0设f'(X o ) 0,则x X o f '(X o )。取x 作为原方程新的近似 实验设备: MATLAB 7.0 软 件 三、 四、 结果预测 (1) x n=0.09033 (2) X5=0.09052 (3) X 2 =0,09052 五、 实验内容 (1)、 在区间[0,1] 上用二分法求方程 10X 2 0的近似根,要求误差不超 过 05 103 O (2)、 x ° 似根。 取初值X0 0 ,用迭代公式Xk 1 3 要求误差不超过0.5 10。 x ° f '(Xk) ,求方程e x 10x 2 0的近 (3)、 取初值X0 0 ,用牛顿迭代法求方程 e X 10x 2 0的近似根。要求误差

Jacobi迭代法和Gauss-Seidel迭代法Matlab程序

.分别Jacobi 迭代法和Gauss-Seidel 迭代法求解线性方程组 1234621242 5027,2085113270x x x x -?????? ? ? ?- ? ? ?= ? ? ?-- ? ? ????? ?? 迭代法计算停止的条件为:6)()1(3110max -+≤≤<-k j k j j x x . 解(1): 采用Jacobi 迭代法时,Matlab 计算程序为: clear clc i=1; a=[6 2 1 -2;2 5 0 -2;-2 0 8 5;1 3 2 7]; d=diag(diag(a)); l=d-tril(a); u=d-triu(a); d0=inv(d); b=[4;7;-1;0]; x0=zeros(4,1); B=d0*(l+u); f=d0*b; x=B*x0+f; while norm(x-x0,inf)>=1e-6

x0=x; x=B*x0+f; i=i+1; end x i 计算结果为:x =(0.0520;1.1509;0.2446;?0.5706)迭代次数i =15

采用Gauss-Seidel迭代法计算时,Matlab计算程序为: clear clc i=1; a=[6 2 1 -2;2 5 0 -2;-2 0 8 5;1 3 2 7]; d=diag(diag(a)); l=d-tril(a); u=d-triu(a); b=[4;7;-1;0]; x0=zeros(4,1); B=inv(d-l)*u; f=inv(d-l)*b; x=B*x0+f; while norm(x-x0,inf)>=1e-6 x0=x; x=B*x0+f; i=i+1; end x i

各种类型的微分方程及其相应解法

各种类型的微分方程及其相应解法 专业班级:交土 01班 姓名:高云 学号:1201110102 微分方程的类型有很多种,解题时先判断微分方程是哪种类型,可以帮助我 们更快解题,所以我们有必要归纳整理一下各类型(主要是一阶和二阶)的微分方程及其相应解法。 一、一阶微分方程的解法1可.分离变量的方程 dy g ( y )dy?f (x )dx ,或 ?f (x )g (y ) dx 其特点是可以把变量 x 和 y 只分别在等式的两边,解法关键是把变量分离后两边积分。 例 1.求微分方程 dx?xyd?y 2 dx?ydy 的通解 . 解 2 先合并 dx 及 dy 的各项 ,得 y (x 1)dy ( y 1)dx ?? ? 设 2 1 0, 1 0, y dy? 1 dx y ? ? x ? ? 分离变量得 2 x?1 y ?1 两端积分 y dy? 1 dx 得 1 ln | 2 1| ln | 1| ln | | 2 x? 1 y ?1 2 2 2 ( x?1) 2 2 2 ?C ( x?1) 2 . 于是 y ?1 ??C 记 C??C , 则得到题设方程的通解y ?1 1 1 2.齐次方程 dy y (1) ?f ( ) dx x dy (2) ?f (ax?by?c )(a ,b 均不等于 0) dx 例 2 求解微分方程 dx dy . 2 2 ? 2 x ?xy?y 2 y ?xy y 2 y ? ?? dy 2 2? ? 解 原方程变形为 2y ?xy ? x x , ? 2 2 ? ? 2 dx x ?xy?y y y ? ? 1? ?? ? x x ? ? y dy du 2 du 2u ?u , 令 u? , 则 ?u?x , 方程化为 u?x ? 2 x dx dx dx 1 ?u?u ?1 ? 1 1 ? 2 1 ? dx 分离变量 得 ? ? ? ?? ? ?du? , ?2 ?u?2 u? u?2 u?1? x 两边积分得

最新matlab迭代法代码

1、%用不动点迭代法求方程 x-e^x+4=0的正根与负根,误差限是10^-6% disp('不动点迭代法'); n0=100; p0=-5; for i=1:n0 p=exp(p0)-4; if abs(p-p0)<=10^(-6) if p<0 disp('|p-p0|=') disp(abs(p-p0)) disp('不动点迭代法求得方程的负根为:') disp(p); break; else disp('不动点迭代法无法求出方程的负根.') end else p0=p; end end if i==n0 disp(n0) disp('次不动点迭代后无法求出方程的负根') end p1=1.7; for i=1:n0 pp=exp(p1)-4; if abs(pp-p1)<=10^(-6) if pp>0 disp('|p-p1|=') disp(abs(pp-p1)) disp('用不动点迭代法求得方程的正根为') disp(pp); else disp('用不动点迭代法无法求出方程的正根'); end break; else p1=pp; end end if i==n0 disp(n0)

disp('次不动点迭代后无法求出方程的正根') end 2、%用牛顿法求方程 x-e^x+4=0的正根与负根,误差限是10^-6 disp('牛顿法') n0=80; p0=1; for i=1:n0 p=p0-(p0-exp(p0)+4)/(1-exp(p0)); if abs(p-p0)<=10^(-6) disp('|p-p0|=') disp(abs(p-p0)) disp('用牛顿法求得方程的正根为') disp(p); break; else p0=p; end end if i==n0 disp(n0) disp('次牛顿迭代后无法求出方程的解') end p1=-3; for i=1:n0 p=p1-(p1-exp(p1)+4)/(1-exp(p1)); if abs(p-p1)<=10^(-6) disp('|p-p1|=') disp(abs(p-p1)) disp('用牛顿法求得方程的负根为') disp(p); break; else p1=p; end end if i==n0 disp(n0) disp('次牛顿迭代后无法求出方程的解') end

二阶线性偏微分方程的分类与小结

二阶线性偏微分方程的分类与小结

————————————————————————————————作者: ————————————————————————————————日期:

第六章 二阶线性偏微分方程的分类与小结 一 两个自变量的二阶线性方程 1 方程变换与特征方程 两个自变量的二阶线性偏微分方程总表示成 f cu u b u b u a u a u a y x yy xy xx =+++++212212112 ① 它关于未知函数u 及其一、二阶偏导数都是线性的,其中 f u c b b a a a ,,,,,,,21221211都是自变量y x ,的已知函数, 假设它们的一阶偏 导数在某平面区域D 内都连续,而且 221211a a a ,,不全为0 。 设),(000y x M 是D 内给定的一点,考虑在0M 的领域内对方程进行简化。取自变量变换 ),(y x ξξ=,),(y x ηη= 其中它们具有二连续偏导数,而且在0M 处的雅可比行列式。 = ??),(),(y x ηξy x y x ηηξξ =x y y x ηξηξ- 根据隐函数存在定理,在0M 领域内存在逆变换, ),(ηξx x =,),(ηξy y = 因为 x x x u u u ηξξξ+=,y y y u u u ηξξξ+=

xx xx x x x x xx u u u u u u ηξηηξξηξηηξηξξ++++=222 yy yy y y y y yy u u u u u u ηξηηξξηξηηξηξξ++++=222 xy xy y x x y y x x x xy u u u u u u ηξηηηξηξξξηξηηξηξξ+++++=)( 将代入①使其变为 F Cu u B u B u A u A u A =+++++ηξηηξηξξ212212112 经过变换后,方程的阶数不会升高,由变换的可逆性,方程的阶数也不会降低,所以221211,,A A A 不全为0。并可验证 222112122211212))((x y y x a a a A A A ηξηξ--=- 这表明,在可逆变换下2 22112 12A A A -与22112 12 a a a -保持相同的正负号。 定理 在0M 的领域内,不为常数的函数),(y x ?是偏微分方程022*******=++y y x x a a a ????之解的充分必要条件是: C y x ≡),(?是常微分方程的 0)(2)(22212211=++dx a dxdy a dy a 通解。 2 方程的类型及其标准形式 根据以上结论简化方程的问题归结为寻求其特征曲线。为此将特征方程分解成两个方程: 11 22 11 2 12 12 a a a a a dx dy -+=,11 22 11 2 12 12 a a a a a dz dy --= (1) 若在0M 的邻域内022112 12>-a a a 时,方程可以化为

插值法,迭代法matlab程序

数值分析作业 姓名王建忠 学号132080202006 学院能源与动力工程 专业机械电子工程 2013年12月16日

1.用MATLAB编程实现langrage插值多项式: syms x x0=[-2,-1,0,1]; y0=[3,1,1,6]; n=length(x0); for i=1:n a=1; for j=1:n if j~=i a=expand(a*(x-x0(j))); end end b=1; for k=1:n if k~=i b=b*(x0(i)-x0(k)); end end A(i)=expand(a/b); end L=0; for p=1:n L=L+y0(p)*A(p); end L >> Language L =x^3/2 + (5*x^2)/2 + 2*x + 1 2.牛顿插值多项式程序 function [p2,z]=newTon(x,y,t) %输入参数中x,y为元素个数相等的向量,t为待估计的点,可以为数字或向量。%输出参数中p2为所求得的牛顿插值多项式,z为利用多项式所得的t的函数值。 n=length(x); chaS(1)=y(1); for i=2:n x1=x;y1=y; x1(i+1:n)=[]; y1(i+1:n)=[]; n1=length(x1); s1=0;

for j=1:n1 t1=1; for k=1:n1 if k==j continue; else t1=t1*(x1(j)-x1(k)); end end s1=s1+y1(j)/t1; end chaS(i)=s1; end b(1,:)=[zeros(1,n-1) chaS(1)]; cl=cell(1,n-1); for i=2:n u1=1; for j=1:i-1 u1=conv(u1,[1 -x(j)]); cl{i-1}=u1; end cl{i-1}=chaS(i)*cl{i-1}; b(i,:)=[zeros(1,n-i),cl{i-1}]; end p2=b(1,:); for j=2:n p2=p2+b(j,:); end if length(t)==1 rm=0; for i=1:n rm=rm+p2(i)*t^(n-i); end z=rm; else k1=length(t); rm=zeros(1,k1); for j=1:k1 for i=1:n rm(j)=rm(j)+p2(i)*t(j)^(n-i); end z=rm; end end

相关文档
最新文档