第六讲:Matlab多项式与代数方程求解器学习课件.pptVIP

  • 7
  • 0
  • 约6.72千字
  • 约 38页
  • 2016-12-06 发布于江苏
  • 举报

第六讲:Matlab多项式与代数方程求解器学习课件.ppt

Matlab 多项式运算与代数方程求解器 Matlab 多项式运算 Matlab 中多项式的表示方法 多项式四则运算 多项式加减运算 多项式四则运算 多项式乘法运算: 多项式的求导 多项式的值 多项式的值 多项式的零点(根) 多项式运算小结 线性方程组求解 1.恰定方程组的解 方程ax=b(a为非奇异) x=a-1 b 矩阵逆 两种解: x=inv(a)?b — 采用求逆运算解方程 x=a\b — 采用左除运算解方程 方程ax=b a=[1 2;2 3];b=[8;13]; ?x=inv(a)*b ? x=a\b x = x = 2.00 2.00 3.00 3.00 2.超定方程组的解 方程 ax=b ,mn时此时不存在唯一解。 方程解 (a a)x=a b x=(a a)-1 a b —— 求逆法 x=a\b —— matlab用最小二乘法找一 个准确地基本解。 例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3 a=[1 2;2 3;3 4];b=[1;2;3]; 解1 x=a\b 解2 x=inv(a?a) ? a ? b x = x = 1.0000 1.0000 -0.0000 0.0000 3.欠定方程组的解 当方程数少于未知量个数时,即不定 情况,有无穷多个解存在。 matlab可求出两个解: 用除法求的解x是具有最多零元素的解 是具有最小长度或范数的解,这个解是基于伪逆pinv求得的。 x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=a\b x=pinv(a)?b x = x = 1.00 0.83 0 0.33 0 -0.17 非线性方程的根 非线性方程的根 例: Matlab 符号方程求解器 Matlab 符号方程求解器 求解方程函数小结 用二分法求方程 的正根,要求误差小于0.05。 在命令窗口输入:erfen(fc,0,10,0.05) 先编制函数文件fc.m: function y=fc(x) y=x^2-x-1; n = 56 ans = 1.6180 Matlab 非线性方程的数值求解 fzero(f,x0):求方程 f=0 在 x0 附近的根。 方程可能有多个根,但 fzero 只给出距离 x0 最近的一个 fzero 先找出一个包含 x0 的区间,使得 f 在这个区间两个端点上的函数值异号,然后再在这个区间内寻找方程 f=0 的根;如果找不到这样的区间,则返回 NaN。 x0 是一个标量,不能缺省 由于 fzero 是根据函数是否穿越横轴来决定零点,因此它无法确定函数曲线仅触及横轴但不穿越的零点,如 |sin(x)| 的所有零点。 fzero 的另外一种调用方式 fzero(f,[a,b]) 方程在 [a,b] 内可能有多个根,但 fzero 只给出一个 求方程 f=0 在 [a,b] 区间内的根。 参数 f 可通过以下方式给出: fzero(x^3-3*x+1,2); f=inline(x^3-3*x+1); fzero(f,2) fzero(@(x)x^3-3*x+1,2); f 不是方程!也不能使用符号表达式! fzero(sin(x),10) fzero(@sin,10) fzero(x^3-3*x+1,1) fzero(x^3-3*x+1,[1,2]) fzero(x^3-3*x+1=0,1) X fzer

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档