第4章 MATLAB符号运算
- 格式:ppt
- 大小:871.00 KB
- 文档页数:63


实验四 MATLAB数值计算与符号计算一、实验目的1.掌握数据插值和曲线拟合的方法2.掌握求数值导数和数值积分的方法3.掌握代数方程数值求解的方法4.掌握常微分方程数值求解的方法5.掌握求解优化问题的方法6.掌握求符号极限、导数和积分的方法7.掌握代数方程符号求解的方法8.掌握常微分方程符号求解的方法二、实验原理1.数据插值a) 一维数据插值 Y1=interp1(X,Y,X1,’method’)b) 二维数据插值 Z1=interp2(X,Y,Z,X1,Y1,’method’)2.曲线拟合[P,S]=polyfit(X,Y,m)3.符号对象的建立(1)符号量名=sym(符号字符串):建立单个的符号变量或常量;(2)syms arg1 arg2,…,argn:建立n个符号变量或常量。
4.基本符号运算(1)基本四则运算:+,-,*,\,^(2)分子与分母的提取:[n,d]=numden(s)(3)因式分解与展开:factor(s),expand(s)(4)化简:simplify, simple(s)5.符号函数及其应用(1)求极限:limit(f,x,a)(2)求导数:diff(f,x,a);(3)求积分:int(f,v)三、实验内容1.按下表用3次样条方法插值计算0~900范围内整数点的正弦值和0~750范围内整数点的正切值,然后用5次多项式拟合方法计算相同的函数值,并将两种计算结果进行比较。
x2=0:75;y1=sin(pi.*x1./180);y2=tan(pi.*x2./180);;a=interp1(x1,y1,45,'cublic')b=interp1(x1,y1,45,'cublic')p1=polyfit(x1,y1,5)p2=polyfit(x2,y2,5)c1=polyval(p1,x1);c2=polyval(p2,x2);subplot(2,1,1);plot(x1,c1,':o',x1,y1,'r');subplot(2,1,2);plot(x2,c2,':o',x2,y2,'r');10203040506070802.(1)求函数33()sin cos f x x x =+在点,,,6432x ππππ=的数值导数。
实验四MATLAB符号运算实验四MATLAB符号运算⼀、实验⽬的:1、掌握定义符号对象的⽅法;2、掌握符号表达式的运算法则以及符号矩阵运算。
3、掌握求符号函数极限及导数的⽅法。
4、掌握求符号函数定积分和不定积分的⽅法。
⼆、实验原理1、符号常量、符号变量、符号表达式的创建(1) 使⽤sym( )创建输⼊以下命令,观察Workspace 中A、B、f是什么类型的数据,占⽤多少字节的内存空间。
>>A=sym('1') %符号常量>>B=sym('x') %符号变量>>f=sym('2*x^2+3y-1') %符号表达式>>clear>>f1=sym('1+2') %有单引号,表⽰字符串>>f2=sym(1+2) %⽆单引号>>f3=sym('2*x+3')>>f4=sym(2*x+3) %为什么会出错>>x=1>>f4=sym(2*x+3)通过看MATLAB 的帮助可知,sym( )的参数可以是字符串或数值类型,⽆论是哪种类型都会⽣成符号类型数据。
(2) 使⽤syms 创建>>clear>>syms x y z %注意观察x,y,z都是什么类型的,它们的内容是什么>>x,y,z>>f1=x^2+2*x+1>>f2=exp(y)+exp(z)^2>>f3=f1+f2通过以上实验,知道⽣成符号表达式的第⼆种⽅法:由符号类型的变量经过运算(加减乘除等)得到。
⼜如:>>f1=sym('x^2+y +sin(2)')>>syms x y>>f2=x^2+y+sin(2)>>x=sym('2') , y=sym('1')>>f3=x^2+y+sin(2)>>y=sym('w')>>f4=x^2+y+sin(2)(3)符号矩阵创建>>syms a1 a2 a3 a4>>A=[a1 a2;a3 a4]>>A(1),A(3)或者>>B=sym('[ b1 b2 ;b3 b4] ')>>c1=sym('sin(x) ')>>c2=sym('x^2')>>c3=sym('3*y+z')>>c4=sym('3 ')>>C=[c1 c2; c3 c4]2、符号算术运算(1) 符号量相乘、相除符号量相乘运算和数值量相乘⼀样,分成矩阵乘和数组乘。
matlab符号运算符Matlab符号运算符的使⽤⼀、&&/||/&/||:数组逻辑或||:先决逻辑或&:数组逻辑与&&:先决逻辑与&&和||被称为&和|的short circuit形式。
先决逻辑符号含义:先判断左边是否为真;若为真,则不再判断右边;若为假,才继续进⾏或运算先判断左边是否为假;若为假,则不再判断右边;若为真,才继续进⾏与运算两种运算符号的区别:先决逻辑运算的运算对象只能是标量数组逻辑运算可为任何维数组,运算符两边维数要相同举例分析:A&B :⾸先判断A的逻辑值,然后判断B的值,然后进⾏逻辑与的计算。
A&&B:⾸先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。
这种⽤法⾮常有⽤,如果A是⼀个计算量较⼩的函数,B是⼀个计算量较⼤的函数,那么⾸先判断A对减少计算量是有好处的。
另外这也可以防⽌类似被0除的错误。
Matlab中的if和while语句中的逻辑与和逻辑或都是默认使⽤short-circuit形式。
// 这可能就是有时候⽤&和| 会报错的原因。
⼆、系统结构体内的变量⼀般都是⼩写。
matlab区分⼤⼩写。
三、==表⽰逻辑相等,返回结果,相等为1,不等为0。
四、.*(times)点乘timesArray multiply 数组乘Syntaxc = a.*bc = times(a,b)Descriptionc = a.*b multiplies arrays a and b element-by-element and returns the result in c. Inputs a and b must have the same size unless one is a scalar.注释:a、b要同尺⼨,或其中⼀个为标量。