实验11 (非线性方程(组)求解.pptVIP

  • 7
  • 0
  • 约 36页
  • 2017-06-02 发布于河南
  • 举报
实验11 (非线性方程(组)求解

二分法算法原理 黄金分割法算法原理 弦截法算法原理 牛顿切线法算法原理 示例11 牛顿切线法算法程序(NewtonRoot.m) function root=NewtonRoot(f,a,b,eps) % 牛顿切线法求函数f在[a,b]上的一个零点 % 函数名:f % 区间左端点a % 区间右端点b % 根的精度:eps % 求出的函数零点:root if(nargin==3) eps=1.0e-4; end 牛顿切线法算法程序(NewtonRoot.m) f1=subs(sym(f),findsym(sym(f)),a); f2=subs(sym(f),findsym(sym(f)),b); if(f1==0) root=a; end if(f2==0) root=b; end * * 实验11 非线性方程(组)求解 实验目的 1、了解非线性方程近似解的基本方法。 2、掌握用数学软件包求解非线性方程 近似解的问题。 实验内容 [1]多项式的运算 [2]任意函数方程与线性方程组 [3]非线性方程组 多项式的运算 (一) 、多项式的表示方法及其运算 1、表示方法及构造 Matlab中使用行向量表示多项式的系数,行向量中的各元素按照多项式的次数从高到低排列 》P=[1 0 3 1 –1 2] 》poly2sym(P) 2、多项式四则运算 求两个多项式的和,差,积,商。 F1=[2 5 0 4 1 4];F2=[0 0 5 1 3 2]; G1=F1+F2; G1=poly2sym(G1) %求和 [g,r]=deconv(F1,F2) %求商命令, g为商式,r为余式。 g=poly2sym(g);r=poly2sym(r) G2=F1-F2; G2=poly2sym(G2) %求差 G3=conv(F1,F2); %求积命令 G3=poly2sym(G3) %求积 3、多项式的导数运算 》F=[2 5 0 4 1 4] ; 》dF=polyder(F); 》dF=poly2sym(dF) %求导数 polyval(p,s) p为多项式,s为矩阵 polyvalm(p,s) p为多项式,s为方阵,并 按矩阵运算规则来计算。 4、多项式的估值运算 》f=[2 5 0 4 1 4] ; 》f_1=polyval(f,1) %求f(1) roots(p) p为多项式 5、多项式的求根运算 》f=[2 5 0 4 1 4] ; 》f_1=roots(f) %求根 c=poly (r) 输入r为多项式的根,输出c 为多项式的系数(按降幂排列) 6、多项式的估值运算 》r=[1, 2, i, -i]; 》f=poly(r); 》f=poly2sym(f) %求多项式f(x) 符号方程求解 1、符号代数线性方程(组)求解 函数“solve”、 “linsolve”、 2、符号代数非线性方程求解 格式: X=fsolve(fun,x0) 示例7:解关于x的方程 示例8:解方程组 》 x=solve(‘a*x^2+b*x+c=0’,’x’) 》[x,y]=solve(‘a*x+b*y=0’,’e*x+d*y=f’,’x’,’y’) 示例9:解方程组 function eq=myeq1(x) global number; number=number+1; %计调用函数的次数 eq(1)=sin(x(1))+x(2)^2+log(x(3))-7; eq(2)=3*x(1)+2^x(2)-x(3)^3+1; eq(3)=x(1)+x(2)+x(3)-5; (1)编写M文件程序名:myeq1.mat (2)编写调用程序 global number; number=0; x0=[1 1 1]; y=fsolve(‘myeq1’,x0) number (3)输出结果为: y = 0.5995 2.3959 2.0051 number= 28 1、用命令fzero求函数的零点 x=fzero(‘fun’,x0) 思路:先用fplot命令画出大致的图形,观看正根在什么范围内,观察得大约在[2 4]内,再调用fzero命令进行求解 》x=fzero(‘x^2+x-14

文档评论(0)

1亿VIP精品文档

相关文档