1 / 17

九 方程和方程组的求解

九 方程和方程组的求解. 一、实验目的. 熟悉 MATLAB 软件中关于求解方程和方程组的各种命令,掌握利用 MATLAB 软件进行线性方程组、非线性方程、非线性方程组的求解。. 二、相关知识. 在 MATLAB 中,由函数 solve() 、 null() 、 fsolve() , fzero 等来解决线性方程(组)和非线性方程(组)的求解问题,其具体格式如下: X=solve(‘eqn1’,’eqn2’,…,’eqnN’,’var1’,’var2’,…,’varN’) X=fsolve(fun,x0,options)

dayo
Download Presentation

九 方程和方程组的求解

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 九 方程和方程组的求解

  2. 一、实验目的 • 熟悉MATLAB软件中关于求解方程和方程组的各种命令,掌握利用MATLAB软件进行线性方程组、非线性方程、非线性方程组的求解。

  3. 二、相关知识 • 在MATLAB中,由函数solve()、null()、fsolve(),fzero等来解决线性方程(组)和非线性方程(组)的求解问题,其具体格式如下: • X=solve(‘eqn1’,’eqn2’,…,’eqnN’,’var1’,’var2’,…,’varN’) • X=fsolve(fun,x0,options) • 函数solve用来解符号方程、方程组,以及超越方程,如三角函数方程等非线性方程。参数’eqnN’为方程组中的第N个方程,’varN’则是第N个变量。

  4. 二、相关知识 • 函数null(A)则用来解线性方程组AX=O的基础解系,实际是求系数矩阵A的零空间,在null函数中可加入参数’r’,表示有理基。通过求系数矩阵的秩和增广矩阵的秩,可以判定方程组是否有解,以及是否需要求基础解系。 • 另外,还可以用函数fzero来求解非线性方程。用法与fsolve类似,请大家自己查看帮助系统。

  5. 例1:求解方程 的MATLAB程序为:X=solve(‘x^2-x-6=0’,’x’) • 结果为:X=3, -2 • 例2:求解方程组 的程序为: • [X,Y]=solve('x^2+y-6=0','y^2+x-6=0','x','y') • 结果为:X =2, -3, 1/2-1/2*21^(1/2), 1/2+1/2*21^(1/2) • Y =2, -3, 1/2+1/2*21^(1/2), 1/2-1/2*21^(1/2)

  6. 例3:求解方程组 的程序为: • clear • format rat • A=[5, 0, 4, 2;1, -1, 2, 1;4, 1, 2,0;1,1,1,1]; • B=[3;1;1;0]; • X=A\B • 结果请大家自己运行。

  7. 例4:求方程组 • 的通解的程序为: • clear • format rat • A=[1,2,2,1;2,1,-2,-2;1,-1,-4,-3] • C=null(A,'r')%求出矩阵A的解空间的有理基。 • 结果如下:

  8. C = • 2 5/3 • -2 -4/3 • 1 0 • 0 1 • 接着,用命令: • syms k1 k2 • X=k1*C(:,1)+k2*C(:,2)

  9. 求出的通解为: • X = • [ 2*k1+5/3*k2] • [ -2*k1-4/3*k2] • [ k1] • [ k2]

  10. 求方程组 的通解 我们首先看方程组解的结构,计算系数矩阵和增广矩阵的秩, 相应的MATLAB代码为: >>clear; >>a=[1 -1 1 -1;-1 1 1 -1;2 -2 -1 1]; >>b=[1;1;-1]; >>rank(a) %系数矩阵的秩 >>rank([a,b]) %增广矩阵的秩

  11. 计算表明,系数矩阵和增广矩阵的秩都为2,小于变量的个数4,说明原方程组有无穷组解.有几种方法求原方程组的通解.一种是用rref命令化为行最简形式求解. 相应的MATLAB代码为: • >>clear; • >>a=[1 -1 1 -1;-1 1 1 -1;2 -2 -1 1]; b=[1;1;-1]; • >>rref([a,b])

  12. 得最简形式为 • ans = • 1 -1 0 0 0 • 0 0 1 -1 1 • 0 0 0 0 0 • 从而通解为 为自由变量.

  13. 另外一种方法用null命令求齐次方程组的一个基础解系.由于非齐次方程的通解等于齐次方程的通解加非齐次方程的一个特解,故可用如下的MATLAB代码:另外一种方法用null命令求齐次方程组的一个基础解系.由于非齐次方程的通解等于齐次方程的通解加非齐次方程的一个特解,故可用如下的MATLAB代码: • >>clear; • >>a=[1 -1 1 -1;-1 1 1 -1;2 -2 -1 1]; b=[1;1;-1]; • >>x0=a\b %非齐次方程的一个特解 • >>x1=null(a) %齐次方程的通解

  14. 结果为 • x0 = • 0 • 0 • 1 • 0

  15. x1 = • -0.7071 0 • -0.7071 -0.0000 • -0.0000 0.7071 • 0 0.7071 • 原方程组的通解为 • 式中 为任意常数.

  16. 三、实验内容 • 1.用克莱姆法则解方程组 • 2.求齐次方程组的一个基础解系

  17. 3.求解非齐次线性方程组: • 4.求解方程组: • 5.完成实验报告.

More Related