1 / 19
文档名称:

Matlab工程应用基础_3_3.ppt

格式:ppt   页数:19
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Matlab工程应用基础_3_3.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

Matlab工程应用基础_3_3.ppt

文档介绍

文档介绍:第3章矩阵、数组和符号运算
7、符号方程求解
线性方程组的符号解法
函数命令 linsolve 用来求解线性方程组符号解。
对方程 A*X=B,linsolve 的调用格式为:
X = linsolve(A,B) 等同于 X = sym(A)\sym(B)
>> A=sym('[10,-1,0;-1,10,-2;0,-2,10]')
A =
[ 10, -1, 0]
[ -1, 10, -2]
[ 0, -2, 10]
>> B=('[9;7;6]')
B =
[9;7;6]
>> linsolve(A,B)
ans =
[ 473/475]
[ 91/95]
[ 376/475]
>> vpa(ans,6)
ans =
[ .995789]
[ .957895]
[ .791579]
矩阵 A 必须至少是行满秩的。当 A 的列数大于行数时,将给出解不惟一的警告提示。
b. 非线性方程的符号解法
用函数零点法求非线性方程的解有两个函数命令,即 fzero 和 fsolve。
fzero命令用于求一元函数零点
fsolve命令用于求解非线性方程组
首先需将方程 f(x)=g(x)转化为 F(x)=f(x)-g(x)=0,方程组也是如此;然后再将函数 F(x)写成 MATLAB 的 m 函数,以便在 fzero 和 fsolve 命令中调用。
求解的过程为:
先猜测一个初始零点,或者该零点大概所在的区间;
然后通过计算,使猜测值不断精确化,或使猜测区间不断收缩,直到达到预先指定的精度为止。
第3章矩阵、数组和符号运算
第3章矩阵、数组和符号运算
求一元函数零点命令fzero 的调用格式为:
◆ x = fzero(fun,x0):求一元函数零点命令的最简形式;
◆[x,fval,exitflag] =fzero(fun,x0,options,P1,P2,...):求一元函数零点命令的完整格式。
x0 是初始猜测的零点;
options 是优化迭代所采用的参数选项,options的缺省设置可以用命令 options=optimset(’fzero’)获得;
P1,P2是向函数 fun 传递的附加参数。它的具体取名和函数 fun 中一致;
x是输出参数,为所求的零点自变量值;
fval是输出参数,为函数 fun 在 x 处的值;
exitflag是描述函数 fun 的退出情况。若 exitflag>0,则表示找到函数零点后退出;若 exitflag<0,则表示没有找到零点或在搜索过程中遇到了无穷大的函数值。
第3章矩阵、数组和符号运算
用 fzero 命令求解函数的零点
( 1)建立函数 f(x)的 M 文件。
function y=fun1(x)
y=x.^4-4*x-5;
( 2)建立水平横轴的 M 文件。
function y=fun2(x)
y=0;
( 3)用作图法估计函数零点位置。
>> fplot('fun1',[-5,5],'r')
>> hold on
>> fplot('fun2',[-5,5],'r')
( 4)用 zoom 和 ginput 命令获得零点的初始近似值
在程序中输入下列命令,可得到函数的局部放大图及鼠标操作线。
zoom on %局部放大命令
[tt]=ginput(1)
[yy]=ginput(1) %用鼠标获取 2 个零点猜测值
zoom off %恢复原来图形大小
显示所得零点初始猜测值,结果为:
tt =
-
yy =

(5)用函数 fzero 命令求函数的精确零点
[x,fval,exitflag]=fzero(’fun1’,tt(1),[]) %靠近 tt(1)点处的精确零点
[x,fval,exitflag]=fzero(’fun1’,yy(1),[]) %靠近 yy(1)点处的精确零点
结果为:
Zero found near tt.
x =
-1
fval =
0
exitflag =
1
第3章矩阵、数组和符号运算
Zero found near yy.
x =

fval =
--015
exitflag =
1
解非线性方程组的函数命令fsolve
其调用格式为:
◆ x=fsolve(fun,x0) :解非线性方程组最简单的调用格式。该式中除两个输入参数外,其余输入输出参数都可以缺省;
◆[x,fval,exitflag,output,jacob]=fsolve(fun,x0,options,P1,P2...):解非线性方程组最完整的调用格式。
x0 是表示零点数是猜测值