当前位置:文档之家› 微积分线性代数知识在matlab中的实现

微积分线性代数知识在matlab中的实现

微积分线性代数知识在matlab中的实现
微积分线性代数知识在matlab中的实现

第一章 微积分、线性代数的基础知识及其在Matlab 中的实现

1.1 建模中常用微积分基础知识在Matlab 中的实现

在数摸问题的计算中,经常要用到极限、导数、微分和积分等基本运算。利用数学软件Matlab 可以使复杂的微积分运算变得很容易。本节介绍微积分的基本运算在计算机上如何实现,包括:微分、积分、极限、级数求和、方程求根以及Taylor 展开等功能的实现方法。

下面是MA TLAB 中的基本符号运算函数(有关符号运算请参考附录A ): 1. x=sym(‘x ’)

功能:创建一个符号变量x 2. syms x y z

功能:创建多个符号变量 x , y , z 3. r=collect(S,v)

功能:合并同类项,S 是符号表达式,v 是变量或表达式,R 是合并同类项后的结果。 4. factor(S)

功能:符号计算的因式分解,X 是待分解的符号多项式 5. expand(S)

功能:对符号多项式或函数S 进行展开 6. r=simple(S) 或 r=simplify(S) 功能:对符号表达式S 进行化简 7. subs(S,old,new)

功能:把符号变量中的变量old 用 new 代替,new 可以是一个符号,也可以是具体的数 8. vpa(S)

功能:对符号表达式S 计算其任意精度的数值 9. eval(S)

功能:计算符号表达式(或字符串)S

1.1.1 导数、极值和积分、Talyor 公式及在Matlab 中的实现

一、极限运算

在MA TLAB 中,计算极限采用下面的命令:

命令 功能 limit(f,x,a) 计算)(lim

x f a

x →

limit(f,x,inf) 计算)(lim

x f x ∞

limit(f,x,a,’right ’) 计算单侧极限)(lim x f a x +

limit(f,x,a,’left ’) 计算单侧极限

)(lim x f a x -

注意:在左右极限不相等或左右极限有一个不存在时,Matlab 的默认状态是求右极限

例1 求极限x

x x 1

0)41(lim +→与极限x

e x x 1lim 0-→

解 Matlab 命令为 syms x;

y1=(1+4*x)^(1/x); y2=(exp(x)-1)/x; limit(y1,x,0) ans= exp(4) limit(y2,x,0) ans= 1

例2 求极限)2(lim 1

x

x x -

→-+

解 syms x; y=sqrt(x)-2^(-1/x); limit(y,x,0,’right ’) ans= 0

二、求导运算

导数是函数增量y ?与自变量增量x ?之比的极限(0→x ?),即x

x f x x f x f ??)

()()(-+=

'。

在Matlab 中求函数的导数及其他一些类似计算均由 diff 命令来完成。

1.一元函数的求导 命令形式1: diff(f)

功能:求函数f 的一阶导数,其中f 为符号函数。 命令形式2: diff(f,n)

功能:求函数f 的n 阶导数,其中f 为符号函数。 例3 求函数

1533++x x 的二阶导数

解 Matlab 的命令为 syms x ; f= 3*x^3+5*x+1 ; diff(f,2) ; ans= 18*x 例4 设

1232+-=x x y ,求1'|=x y

解 syms x ; y=3*x^2-2*x+1 ; B=diff(y) , x=1 ; eval(B) 运行结果为 B = 6*x – 2 ans = 4

2.多元函数的偏导数 将函数),(y x f z =中的变量y 看成常量而对变量x 的导数称为二元函数),(y x f 对变量x 的偏导

数,记为

),(y x f x 。若把x 当作常量而对y 求导的结果称为函数对y 的偏导数,记为),(y x f y 。求偏

导的方法和一元函数的求导方法一样,只要把另一个变量看成常量即可。

命令形式1: diff(f,i x )

功能: 多函数f 对变量i x 的一阶偏导。 命令形式2: diff(f,i x ,n)

功能:多函数f 对变量i x 的n 阶偏导。 例5 求y x z

2sin 2=关于x 的偏导数

解 syms x y;

z= x^2*sin (2*y); B=diff(z,’x ’); 运行结果为 B=2*x*sin(2*y)

3. 全微分、参数方程求导及隐函数求导 (1) 若函数),(y x f z

=在某点),(00y x 的两个偏导数存在且连续,则函数在该点的全微分为

dy y x f dx y x f dz y x ),(),(0000+=

Matlab 中求函数全微分的命令为: diff(z,x)+diff(z,y) (2) 对参数方程?

?

?==)()(t y y t x x 所确定的函数)(x f y =,根据公式dt dx dt

dy dx dy =

,连续两次利用diff(f)命令就可以求出结果。

(3) 隐函数求导

方程0),(=y x F 所确定的隐函数

)(x y y =,则其导数

y

x F F dx dy

-=;方程0),,(=z y x F 确定的

隐函数),(y x z z =,其导数为z

x

F F x z

-=??,z

y F F y z

-=??。在Matlab 中按照上述公式,分别求出函数

的偏导再相除就可得到隐函数的导数。

三、积分运算

1.一元函数的不定积分 命令形式1: int(f)

功能: 求函数f 对默认变量的不定积分,用于函数中只有一个变量的情况。 命令形式2:int(f,v)

功能:求符号函数f 对变量v 的不定积分。 例6 计算

?dx x x 22cos sin 1

解 Matlab 命令为 syms x ;

y=1/(sin(x)^2*cos(x)^2) ; int(y) ans =

)sin(/)cos(*2))cos(*)/(sin(1x x x x -

pretty(int(y)) %把int(y)化简为常用的数学形式的表达式 结果为

x

x

x x s i n c o s 2)c o s ()s i n (1-

例7 求

dz z x

?+21

解 Matlab 的命令为

syms x z ; B=int(x/(1+z^2),z) ; B=x*atan(z)

2.一元函数的定积分 命令形式: int(f,x,a,b)

功能:用微积分基本公式计算定积分

?

b

a

dx x f )(

例8 求?-+2

2

121

)1

1(dx x

x

解 Matlab 的命令为 syms x ;

t=1+x-1/x; y=exp(x+1/x) ; t=t*y ; int(f,x,1/2,2) ; ans = 3/2*exp(5/2)

3. 多重积分运算

命令 功能 int(int(f,y),x) 计算不定积分

??dy y x f dx ),(

int(int(f,y,c,d),x,a,b) 计算定积分?

?d c

b

a

dy y x f dx ),(

注意:对于三重积分的运算和二重积分的形式一致。 例9 计算

?

?

+++=101

22)1(x x

dxdy y x A

解 Matlab 的命令为 syms x y

A=int(int(x^2+y^2+1,y,x,x+1),x,0,1) %求二重积分 A=5/2

四、函数的Taylor 展开 命令形式1:taylor(f)

功能:将函数f 展开成默认变量的6阶麦克劳林公式 命令形式2: taylor(f, n)

功能:将函数f 展开成默认变量的n 阶麦克劳林公式 命令形式3: taylor(f, n, v, a)

功能: 将函数f(v)在v=a 处展开n 阶泰勒公式

例10 将函数

21ln arctan )(x x x x f +-=展开为x 的6阶麦克劳林公式。

解 Matlab 命令为 syms x ;

f=x*atan(x) – log(sqrt(1+x^2)); taylor(f)

ans = 1/2*x^2-1/12*x^4 例11 将函数

2

1)(x x f =

展开为关于)2(-x 的最高次为4的幂级数。

解 Matlab 命令为 syms x ; f = 1/x^2 ;

taylor(f, 4, x, 2) ; pretty(taylor(f, 4, x, 2)) ; 32)2(8

1

)2(163)2(4143---+--x x x

1.1.2 数值积分法及其在Matlab 中的实现

用定积分的符号解法求定积分有时会失效,此时,可以用数值方法来计算定积分的值。Matlab 提供了如下一些计算定积分值的数值方法。

一、用数值方法计算定积分 (1) 复合梯形公式

复合梯形公式用小梯形面积代替小曲边梯形的面积,然后求和以获得定积分的近似值。 命令形式:trapz(x,y)

功能:用复合梯形公式计算定积分,变量x 是积分变量在被积区间上的分点向量,y 为被积函数在x 处对应的函数值向量。

(2)复合辛普生公式

本方法用抛物线代替小曲边梯形的曲边计算小面积,然后求和以获得定积分的近试值。 命令形式1:),,,,'('trace tol b a fun quad

命令形式2:),,,,'('8trace tol b a fun quad

式中

fun 式被积函数表达式字符串或者是M 函数文件名,b a ,积分的下限与上限,tol 代表精度,

可以缺省;缺省时,001.0=tol

。1=trace 时用图形展示积分过程,0=trace 时无图形,默认值

为0。命令形式2比命令形式`1精度高。

例11 用复合梯形公式和复合辛普生公式求dx x x

?522

ln 的积分值。 解 Ma t l a b 命令为

syms x ; x=2:0.1:5 ;

);

,();

2./().log(y x trapz t x x y ==

ff = inline(‘log(x)./(x.^2)’,’x ’) ;

q=quad(ff,2,5) ;

)'3(([blanks disp 梯形法求积分)'3('blanks 辛普生法求积分],[]),'d t 梯形法求积分

梯形法求积分 辛普生法求积分

3247.0 3247.0 说明:inline 表示内联函数

例12 设?

=

x

dt t y x s 0

)()(,其中t t e t y sin 8.0)(-=,求)10(s 。

解 (1)建立M 命令文件

])

8,,10([])'8'),5(,''),5(,''),6(([);

10,0,(88);10,0,();

'',)))'(sin(*.*8.0exp((');

,(10)));

((sin *.*8.0exp(;

10::0;1.0q q st disp quad blanks quad blanks trapz blank disp ff quad q ff quad q t t abs t inline ff y t trapz st t t abs t y dt t dt clf

==-==-===

运行结果得

trapz quad quad8 2.6576 2.6597 2.6597

(3) 用数值方法计算二重积分

命令形式: dblquad(‘f ’, xmin, xmax, ymin, ymax) 功能:计算二重积分?

?

max

min

max

min

),(x x y y dy y x f dx ,其中xmin,,xmax ,ymin ,ymax 表示积分限。

例13 计算

??D

xydxdy ,其中D 是由0,0,4,1====y x x y 所围成的区域。

解 (1) 建立M 函数文件

function z=ff(x,y) z= x*y ;

(2) Matlab 命令为 dblquad(ff, 0.4 ,0.1) ans = 4 例14 计算

??

+1

21

)(dx y x dy

解 Matlab 命令

ff = inline(‘x.^2+y ’,’x ’,’y ’) ; dblquad(ff, 0, 1, 0, 1) ans = 0.8333

1.1.3 线性方程和非线性方程在Matlab 中的各种求解方法

一、求多项式方程的根

n 次多项式的一般形式为 02210=++++n n x a x a x a a ,

式中的n a a a a ,,,,210 为常数。理论上已经知道,n 次多项式方程有n 个根,且对于4≤n

的多项式

方程,它的根可以用公式表示,而次数大于5的多项式方程,它的根一般不能用解析表达式表示。因此,在Matlab 中,对于次数4≤n

的多项式,可以快速求出所有根的准确形式,而对于4>n 的多项式方程,

求不一定能求出所有根的准确形式,但可以求出所有根的近似形式。

求多项式方程的根有如下一些命令: 命令形式1: roots(p)

功能:求多项式p 的所有根,注意这里的p 只能是多项式方程。 命令形式2:solve(s)

功能:对一个方程s 的默认变量求解,这里的方程s 可以是多项式方程,也可以是一般的任意方程。 命令形式3:solve(s,v)

功能:对一个方程指定的变量v 求解。

命令形式4:solve(s1,s2, ,sn,v1,v2,

,vn)

功能:对n 个方程的指定变量v1,v2, ,vn 求解。

命令形式5:[x1,x2,x3, ,xn]= solve(s1,s2, ,sn,v1,v2, ,vn)

功能:将n 个方程的指定变量v1,v2, ,vn 求解的结果赋给x1,x2,x3, ,xn 。

例15 求方程0109423

=-+-x x x

的所有根。

解 Matlab 的命令为 p=[ 1 -4 9 -10]; r=roots(p) ; r=

1.0000+

2.0000i 1.0000-2.0000i 2.0000 或

s1=sym(‘x^3-4*x^2+9*x-10’); solve(s1) 例16 求方程042

=--b ax x

的所有根,其中b a ,为常数。

解 Matlab 的命令为 s1=sym(‘x^2-a*x-4*b=0’); solve(s1,’x ’);

ams = [1/2*a+1/2*(a^2+16*b)^(1/2)] [1/2*a-1/2*(a^2+16*b)^2(1/2)]

二、求超越方程的根

超越方程是指除了多项式方程之外的函数方程,它通常不容易求得全部根和所有根,而是采用数值方法去求近似根,对方程组情况可能连近似根也求不出,因为非线性方程组的求解还有很多问题没有解决。在Matlab 中,求超越方程的根可以用solve 命令。

例17 求方程

r x p =sin 的根,其中r p ,为常数

解 Matlab 的命令为 ff=syms(‘p*sin(x)=r ’); solve(ff,’x ’); ans = asin(r/p)

solve 函数还可以用来求解方程组:

例18 求方程组?

??=-=+5111

y x y x 的根。

解 Matlab 的命令为

[x,y]=solve(‘x+y=1’,’x-11*y=5’,’x ’,’y ’); x=4/3; y=-1/3;

求一元函数超越方程的数值解可以用fzero 命令: 命令形式:z = fzero(‘fname ’,x0,tol,trace)

功能:求一元函数的零点。其中fname 是待求零点的函数文件名,或是待求方程。x0是预定待搜索零点的大致位置。tol 是精度,可默认为eps,trace 表示是否显示迭代步骤,可以默认为不显示。

求多元函数的数值解可以使用命令fsolve : 命令形式:x = fsolve(fun, x0)

功能:求多元函数fun 在点x0处的零点,其中x0为一向量。 例19 求方程2

)(cos x x =在1附近的根。 解 Matlab 命令为

x=fzero(‘x-(cos(x))^2’,1)

x= 0.6417

或采用M 函数的形式: function y=ff(t) y=t-(cos(t)).^2; x=fzero(‘ff ’,1); x = 0.6417 例19 求方程组 ?

?

?==x y y x c o s 2

在(1,2)附近的根 解 Matlab 命令为 fun=’[x-y^2,y-cos(x)]’ ; f=fsolve(fun,[1,2]) f=

0.6417 0.8011

1.1.4 Matlab 中求和及求极值方法

一、求和

(1) 向量或矩阵的求和

命令形式: sum(x)

功能:求向量x 的和或者是矩阵每一列向量的和 例20 a=1:5 ; A=[1 2 3; 2 3 4; 7 8 9]; sum(a) ans = 15 sum(A)

ans = 10 13 16 (2) 级数求和

级数求和也是微积分中比较常见的运算,在MA TLAB 中,采用函数symsum 来对符号表达式求和。 命令形式: symsum(s,v,a,b)

功能:对表达式s 的符号变量v 从v=a 到v=b 进行求和。 例21 求

∑-=1

3

n k k

解 Matlab 命令为 syms k n;

f=k^3; symsum(f,k,0,n-1); ans = 1/4*n^4-1/2*n^3+1/4*n^2

例22 求∑

+∞

=0!

k k

k x

解:Matlab 的命令为 syms x k ;

symsum(x^k/sym(‘k!’), k, 0, inf) ans = exp(x) 二、求函数的极值点 (1)求一元函数的极值问题 命令形式1:fmin(fun,x1,x2)

功能: 在区间[x1,x2]内求函数fun 的极小值点 命令形式2:fminbnd(fun,x1,x2)

功能: 在在区间[x1,x2]内求函数fun 的极小值点。

两个函数的功能相同,命令1在Matlab 早期版本中使用。在命令fmin 中函数fun 的创建一般有三中方法:1、用字符串创建 2、用内联函数命令inline 创建 3、建立一个M 文件命令函数。下面例子中三种方法分别都有说明。

例23 求

)cos (*3)(2x x x x f ++=在区间[-1,1]内的最小值。

解 (1) 建立M 函数命令文件 function y=gg2(x)

y=3*2.^(5*x) .*(x .^2+cos(x))-40; (2) 建立M 命令文件 clf;

x=-2 :0.1 :2

xmin=fmin(‘gg2’,-1,1) ;

(3) 运行M 命令文件得 xmin = -2.7756e-017

或 ff = ‘x+3*(x^2+cos(x))’ xmin = fmin(ff,–1,1) xmin = -2.7756e-017 (2) 求多元函数极值问题

求多元函数极小值常用的方法有单纯形法和拟牛顿法,主要命令有下面两个: 命令形式1: fminsearch(fun ,x0)

功能: 用单纯形法求多元函数fun 在x0附近的极值点 命令形式2: fminunc(fun ,x0)

功能:用拟牛顿法求多元函数fun 在x0附近的极值点 例24 求函数

222)1()(100),(x x y y x f -+-=的极小值点。

解 Matlab 的命令为

ff = inline(‘100*(y – x^2)^2+(1 – x)^2’); x0=[–1.2, 1]; x=fminunc(ff ,x0) x = 1.0 1.000 2.0 例25 求函数

z y x z y x f cos sin ),,(4-+=在点)4,5,0(附近的函数值

解 syms x y z ;

x0]4,5,0[= ; ff = inline (‘x^4+sin(y) –cos(z)’) ; [xmin, fval] = fminsearch(ff ,x0) ; x = –0.0021 4.7124 6.2832 fval = –2.000

1.2 建模中常用的线性代数基础知识在Matlab 中的实现

线性代数中常用的工具式矩阵、向量和行列式。用这些工具可以简单而准确地把所要研究的问题描述

出来,以提高研究的效率。在数学建模中经常用到大量的线性代数知识,用Matlab 可以很方便的求出矩阵的对角化、二次型化标准行以及方程组的解。

1.2.1 Matlab 中向量和矩阵的基本运算

设A ,B 为两个矩阵,MATLAB 中矩阵的基本运算命令有: 命令形式: A + B A – B

功能:矩阵的加法和减法。将两个同型矩阵相加或相减 命令形式: k*A

功能:数乘。将数与矩阵做乘法,其中k 为一个数。 命令形式:A * B

功能:矩阵的乘法。将两个矩阵进行相乘,A 的列数要与B 的行数相同。 命令形式:A \ B 功能:矩阵的左除。计算B A 1-,A 必须为方阵。

命令形式:A / B

功能: 矩阵的右除。计算 1-AB ,B 必须为方阵。

命令形式: det(A)

功能:求矩阵行列式。A 必须为方阵。 命令形式:inv(A) 或 (1-A )

功能: 求方阵的逆。 命令形式:A^ n 功能:矩阵乘幂。计算n A

命令形式:

A ' 或 transpose(A)

功能:计算矩阵的转置。 命令形式: rank(A) 功能:求矩阵的秩。 命令形式:rref(A)

功能:矩阵行变化化简。求矩阵A 阶梯形的行最简形式。 例1 计算???

? ??--+????

??--761232193731 解 Matlab 的命令为

A=[1,3,7; –3,9, –1] ; B=[2,3, –2; –1,6,7]; A+B Ans =

3

6 5 –4 15 –8

例2 求向量),,(c b a 与矩阵???

?

?

??654321的乘积

解 Matlab 的命令为 syms a b c;

v=[a b c]; A1=[1 2; 3 4; 5 6]; v*A1

ans = [a+3*b+5*c,2*a+4*b+6*c] 例3 求矩阵???

?

??d c b a 的转置、逆和行列式。 解 syms a b c d; A=[a b; c d]; A ’

Ans = [a c; b d]; Inv(A) Ans =

d/(a*d – b*c) –b/(a*d – b*c)

– c/(a*d – b*c) a/(a*d – b*c) %矩阵的行列式 det(A)

ans = a*d – b*c 例4 求矩阵???

?

??1231的6次幂 解 A = [1 3 ;2 1]; A^6

Ans = 847 1026 684 847

例5 求矩阵

????

??

? ?

?71

100251020214214的秩与行最简形。 解 A = [4 ,1 ,2 ,4; 1 ,2 ,0 ,2; 10, 5 ,2 ,0; 0 ,1 ,1, 7]; rank(A) ans = 3; rref(A) ans =

1 0 0 –

2 0 1 0 2 0 0 1 5 0 0 0 0

用MATLAB解决线性代数问题实验报告

实验三使用MATLAB解决线性代数问题学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144 实验目的: 学习MATLAB有关线性代数运算的指令,主要学习运用MATLAB解决矩阵除法,线性方程组的通解,矩阵相似 对角化问题,以及解决投入产出分析等应用问题。 实验内容: 矩阵转置:A=[1 2;3 4];B=[4 3;2 1]; >> A',B' ans = 1 3 2 4 ans = 4 3 3 1 矩阵加减:A-B ans= -3 -1 1 3 矩阵乘法:A*B,A.*B(数组乘法)||比较矩阵乘法与数组乘法的区别ans= 8 5 20 13 ans= 4 6 6 4 矩阵除法:A\B,B./A ans=

-6 -5 5 4 ans= 4 1.5 0.6667 0.25 特殊矩阵生成:zeros(m,n)||生成m行n列的矩阵 ones(m,n)||生成m行n列的元素全为一的矩阵 eye(n)||生成n阶单位矩阵 rand(m,n)||生成m行n列[0 ,1]上均匀分布随 机数矩阵 zeros(2,3) ans = 0 0 0 0 0 0 >> ones(3,3) ans = 1 1 1 1 1 1 1 1 1 >> eye(3)

ans = 1 0 0 0 1 0 0 0 1 >> rand(2,4) ans = Columns 1 through 3 0.9501 0.6068 0.8913 0.2311 0.4860 0.7621 Column 4 0.4565 0.0185 矩阵处理:trace(A)||返回矩阵的迹 diag(A)||返回矩阵对角线元素构成的向量 tril(A)||提取矩阵的下三角部分 triu(A)||提取矩阵的上三角部分 flipud(A)||矩阵上下翻转 fliplr(A)||矩阵左右翻转 reshape(A,m,n)||将矩阵的元素重排成m行n列矩阵A=[1 2 3;4 5 6;7 8 9]; >> t=trace(A),d=diag(A),u=triu(A)

Matlab线性代数实验指导书

Matlab线性代数实验指导书 理学院线性代数课程组 二零零七年十月

目录 一、基础知识 (1) 1.1、常见数学函数 (1) 1.2、系统在线帮助 (1) 1.3、常量与变量 (2) 1.4、数组(矩阵)的点运算 (3) 1.5、矩阵的运算 (3) 二、编程 (4) 2.1、无条件循环 (4) 2.2、条件循环 (5) 2.3、分支结构 (5) 2.4、建立M文件 (6) 2.5、建立函数文件 (6) 三、矩阵及其运算 (7) 3.1、矩阵的创建 (7) 3.2、符号矩阵的运算 (11) 四、秩与线性相关性 (14) 4.1、矩阵和向量组的秩以及向量组的线性相关性 (14) 4.2、向量组的最大无关组 (14) 五、线性方程的组的求解 (16) 5.1、求线性方程组的唯一解或特解(第一类问题) (16) 5.2、求线性齐次方程组的通解 (18) 5.3、求非齐次线性方程组的通解 (19) 六、特征值与二次型 (22) 6.1、方阵的特征值特征向量 (22) 6.2、正交矩阵及二次型 (23)

一、基础知识 1.1常见数学函数 函数数学计算功能函数数学计算功能 abs(x) 实数的绝对值或复数的幅值floor(x) 对x朝-∞方向取整acos(x) 反余弦arcsinx gcd(m,n) 求正整数m和n的最大公约数acosh(x) 反双曲余弦arccoshx imag(x) 求复数x的虚部angle(x) 在四象限内求复数x的相角lcm(m,n)求正整数m和n的最小公倍 自然对数(以e为底数) asin(x) 反正弦arcsinx log(x) 常用对数(以 10 为底数) asinh(x) 反双曲正弦arcsinhx log10(x) atan(x) 反正切arctanx real(x) 求复数 x 的实部atan2(x,y) 在四象限内求反正切rem(m,n) 求正整数m和n的m/n之余数atanh(x) 反双曲正切arctanhx round(x) 对x四舍五入到最接近的整数 符号函数:求出 x 的符号ceil(x) 对x朝+∞方向取整 sign(x) conj(x) 求复数x的共轭复数 sin(x) 正弦sinx 反双曲正弦sinhx cos(x) 余弦cosx sinh(x) cosh(x) 双曲余弦coshx sqrt(x) 求实数x的平方根exp(x) 指数函数e x tan(x) 正切tanx fix(x) 对 x 朝原点方向取整 tanh(x) 双曲正切tanhx 如:输入 x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则: ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) =-5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 1.2 系统的在线帮助 1.2.1 help 命令: 1.当不知系统有何帮助内容时,可直接输入 help以寻求帮助: >> help(回车) 2.当想了解某一主题的内容时,如输入: >> help syntax (了解Matlab的语法规定) 3.当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数sqrt的相关信息) 1.2.2 lookfor 命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 1.3 常量与变量

Matlab 使用之线性代数综合实例讲解

一、上机目的 1、培养学生运用线性代数的知识解决实际问题的意识、兴趣和能力; 2、掌握常用计算方法和处理问题的方法; 二、上机内容 1、求向量组的最大无关组; 2、解线性方程组; 三、上机作业 1、设A=[2 1 2 4; 1 2 0 2; 4 5 2 0; 0 1 1 7]; 求矩阵A列向量组的一个最大无关组. >> A=[2 1 2 4;1 2 0 2;4 5 2 0;0 1 1 7] A = 2 1 2 4 1 2 0 2 4 5 2 0 0 1 1 7 >> rref(A) ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 所以矩阵A的列向量组的一个最大无关组就是它本身; 2、用Matlab解线性方程组 (1) >> A=[2 4 -6;1 5 3;1 3 2] A = 2 4 -6 1 5 3 1 3 2 >> b=[-4;10;5]

b = -4 10 5 >> x=inv(A)*b x = -3.0000 2.0000 1.0000 >> B=[3 41 -62;4 50 3;11 38 25] B = 3 41 -62 4 50 3 11 38 25 >> c=[-41;100;50] c = -41 100 50 >> x=inv(B)*c x = -8.8221 2.5890 1.9465 3、(选作)减肥配方的实现 设三种食物每100克中蛋白质、碳水化合物和脂肪的含量如下表,表中还给出了20世纪80年代美国流行的剑桥大学医学院的简捷营养处方。现在的问题是:如果用这三种食物作为每天的主要食物,那么它们的用量应各取多少才能全面准确地实现这个营养要求? 四、上机心得体会

matlab实验二

实验2 MATLAB数值计算、符号运算功能 一、实验目的 1、掌握建立矩阵、矩阵分析与处理的方法。 2、掌握线性方程组的求解方法。 3、掌握数据统计和分析方法、多项式的常用运算。 4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。 5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。 二、预习要求 (1)复习4、5、6章所讲内容; (2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。 三、实验内容 1、已知 29618 20512 885 A -?? ?? =?? ?? - ?? ,求A的特征值及特征向量,并分析其数学意义。 >> A=[-29,6,18;20,5,12;-8,8,5]; >> [V,D]=eig(A) V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 V为A的特征向量,D为A的特征值,3个特征值是-25.3169、10.5182和16.8351。 >> A*V ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 >> V*D

ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 经过计算,A*V=V*D 。 2、 不用rot90函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A ,A 左旋后得到B ,右旋后得到C 。 147102581136912A ????=??????,101112789456123B ??????=??????,321654987121110B ??????=?????? 提示:先将A 转置,再作上下翻转,则完成左旋90°;如将A 转置后作左右翻转,则完成右旋转90°,可用flipud 、fliplr 函数。 >> a=[1 4 7 10;2 5 8 11;3 6 9 12] a= 1 4 7 10 2 5 8 11 3 6 9 12 >> B=rot90(a) B = 10 11 12 7 8 9 4 5 6 1 2 3 >>C= rot90(s,3) C= 3 2 1 6 5 4 9 8 7 12 11 10

线性代数Matlab开卷考试

线性代数开卷考试题目Matlab解析过程: 1.习题1第4题(1) >> A=[1,2,0,-1;-1,-4,1,2;1,-4,3,1;2,-10,7,3];B=[-1,3,1,4]'; >> C=[A,B]; >> rank(A) %求系数矩阵的秩 ans = 3 >> rank(C) %求增广矩阵的秩 ans = 3 >> rref(C) %用rref()函数求解,最后一列即为解 ans = 1.0000 0 1.0000 0 1.0000 0 1.0000 -0.5000 0 1.0000 0 0 0 1.0000 4.0000 0 0 0 0 0 说明:如果用用除法求X的值或者用inv()函数求解会出现警告:Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 4.440892e-18. 而且两者的计算结果都为x = 4.0000 -0.5000 -3.0000 4.0000 原因是:矩阵奇异!所以不能求逆!结果可能不准确!必须换成不用求逆的算法 查阅资料如下: 奇异矩阵的判断方法:首先,看这个矩阵是不是方阵(即行数和列数相等的矩阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。然后,再看此方阵的行列式|A|是否等于0,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵。同时,由|A|≠0可知矩阵A可逆,这样可以得出另外一个重要结论:可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵。如果A为奇异矩阵,则AX=0有无穷解,AX=b有无穷解或者无解。如果A为非奇异矩阵,则AX=0有且只有唯一零解,AX=b有唯一解。 如果A(n×m)为奇异矩阵(singular matrix)<=> A的秩Rank(A) A满秩,Rank(A)=n. 2.(1)当a取值为学号时 >> A=[1,-1,-2,3;1,-3,-6,2;1,5,0,-10;3,1,7,4];B=[0,-1,112,8]'; % 当a取值为学号时>> C=[A,B]; >> rank(A) %求系数矩阵的秩 ans =

论将MATLAB融入《线性代数》

论将MA TLAB融入《线性代数》 郑成勇 (五邑大学数学与计算科学学院广东江门 529020) 摘要探讨如何将ATLAB引入《线性代数》课程,提出了一些个人的看法和主张。 关键词MATLAB线性代数 中图分类号:G64 文献标识码:A Introducing MA TLAB Into Linear Algebra Zheng Chengyong (Dept. of Mathematics & Physics, Wuyi University, Jiangmen , Guangdong ,529020) Abstract In this paper, we discuss how to introduce MA TLAB into course of linear algebra, and put forward some personal ideas and opinions. Keyword MATLAB, Linear Algebra 一、当前主流线性代数教材存在的不足 《线性代数》(以下简称《线代》) 同济版教材[1],书写简洁、体系完整,知识前后联系紧密,环环相扣。从数学角度而言,该书堪称经典,非常符合一般数学老师要求,而且配套的ppt课件也做的很好,也就不难解释该教材为何在全国采用率如此之高了。 但因为该书是给工科学生用的,对工科学生而言,其内容有些过于偏重理论,缺乏必要的应用实例,缺乏与工程实际及工科专业课的联系。如缺乏对工程实际中广泛涉及的超定方程的讨论,对工程应用中较少涉及的欠定方程组的通解问题花费较多笔墨。而且,由于过于强调内容体系的完整以及知识间的逻辑联系,第一章从古古怪怪的逆序数,引出古古怪怪的行列式的定义,到行列式的性质、克拉默法则,还有不少的习题,这需要花费较多的学时来讲授。但行列式不应该是《线代》的重点,《线代》的核心应该是矩阵、线性方程组等,主轴是矩阵的初等行变换。从行列式开始引入不符合先易后难的认知规律,容易使初学者误认为行列式是重点,不利于学生把握《线代》的重点和主轴。 另外,现在流行的教材仍然没有引入科学计算软件,导致学生学完了该课程也难以求解4阶或4阶以上的矩阵问题,无法实现该课程应有的对学生科学计算能力的培养以及该课程在后续课程中的应用。二、引入MATLAB的必要性 1、更新教学内容,加强课程工科特性,需要引入MATLAB 工科《线代》是面向工科学生,内容必须具有工科特性。要使内容具有工科特性,必须适当地引入具体的应用实例。而一般的实际问题,靠手工计算是不现实的,必须借助必要的科学计算软件。而MA TLAB是目前国内外最流行的标准的科学计算软件,借助MA TLAB,许多工程应用问题都可以利用线性代数的有关知识进行建模求解,从而增强《线代》的工科特性。有了实际的应用背景,学生才会真正体会到线性代数“有用”,并掌握具体的应用技巧。 2、提高学生科学计算能力,需要引入MATLAB 科学计算能力是理工科学生理应具备的一种重要能力。那么,什么是科学计算能力?学生的科学计算能力从何而来? 科学计算能力是指的利用现代计算工具(包括硬件和软件)解决教学和科研中计算问题的能力[2]。既然科学计算能力要求学生掌握现代的计算工具,而MA TLAB是目前国内外最流行的标准的科学计算软,那么我们就没有理由仍坚持传统偏重理论的以笔算为主的《线代》课程教学。应将MA TLAB 融入《线代》课程教学中去,让学生在掌握一般的原理方法的基础上,将学生从低级繁琐的初等行列变换中解脱出来,重点培养学

南邮MATLAB数学实验答案(全)

第一次练习 教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。 补充命令 vpa(x,n) 显示x 的n 位有效数字,教材102页 fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim x mx mx x →-与3 sin lim x mx mx x →∞- syms x limit((902*x-sin(902*x))/x^3) ans = 366935404/3 limit((902*x-sin(902*x))/x^3,inf) ans = 0 1.2 cos 1000 x mx y e =,求''y syms x diff(exp(x)*cos(902*x/1000),2) ans = (46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算 22 11 00 x y e dxdy +?? dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) ans = 2.1394 1.4 计算4 2 2 4x dx m x +? syms x int(x^4/(902^2+4*x^2)) ans = (91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求 syms x diff(exp(x)*cos(902*x),10) ans = -356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 0x =的泰勒展式(最高次幂为4).

用Matlab学习线性代数_行列式

用Matlab学习线性代数__行列式 实验目的理解行列式的概念、行列式的性质与计算 Matlab函数det 实验内容 前面的四个练习使用整数矩阵,并演示一些本章讨论的行列式的性质。最后两个练习演示我们使用浮点运算计算行列式时出现的不同。 理论上将,行列式的值应告诉我们矩阵是否是奇异的。然而,如果矩阵是奇异的,且计算其行列式采用有限位精度运算,那么由于舍入误差,计算出的行列式的值也许不是零。一个计算得到的行列式的值很接近零,并不能说明矩阵是奇异的甚至是接近奇异的。此外,一个接近奇异的矩阵,它的行列式值也可能不接近零。 1.用如下方法随机生成整数元素的5阶方阵: A=round(10*rand(5)) 和B=round(20*rand(5))-10 用Matlab计算下列每对数。在每种情况下比较第一个是否等于第二个。(1)det(A) ==det(A T) (2)det(A+B) ;det(A)+det(B) (3)det(AB)==det(A)det(B) (4)det(A T B T) ==det(A T)det(B T) (5)det(A-1)==1/det(A) (6)det(AB-1)==det(A)/det(B) > A=round(10*rand(5)); >> B=round(20*rand(5))-10; >> det(A) ans = 5972 >> det(A') ans 5972 >> det(A+B) ans =

36495 >> det(A)+det(B) ans = 26384 >> det(A*B) ans = 4 >> det(A)*det(B) ans = 4 >> det(A'*B') ans = 4 >> det(A')*det(B') ans = 4 >> det(inv(A)) ans = 0.00016745 >> 1/det(A) ans = 0.00016745 >> det(A*inv(B)) ans = 0.29257 >> det(A)/det(B) ans = 0.29257 >> 2.n阶的幻方阵是否奇异?用Matlab计算n=3、4、5、…、10时的det(magic(n))。看起来发生了什么?验证当n=24和25时,结论是否仍然成立。【当n为奇数时,det(magic(n))不为0;当n为偶数时,det(magic(n))为0;】>> det(magic(3)) ans = -360 >> det(magic(4)) ans = >> det(magic(5)) ans = 5070000

线性代数MATLAB仿真实验报告

合肥学院 2018—2019学年第2学期 线性代数及应用 (模块) 实验报告 实验名称:线性代数MATLAB实验 实验类别:综合性 设计性□验证性 专业班级: 17通信工程(2)班 实验时间: 9-12周 组别:第组人数 3人 指导教师:牛欣成绩: 完成时间: 2019年 5 月9日

一. 小组成员 姓名学号具体分工 汪蔚蔚(组长) 1705022025 A报告最后的整合,编写,案例四的计算与应用 以及案例一的计算与证明 陶乐 1 1705022009 C案例二,化学方程式配平问题 程赢妹1505022036 A案例三,应用题灰度值的计算问题 二. 实验目的 1、案例一利用MATLAB进行线性代数计算,求出矩阵B 2、案例二利用MATLAB计算出每一个网格数据的值,然后每一个网格数据的值乘以256以后进行归一化处理,根据每个网格中的灰度值,绘制出灰度图像。 3、案例三利用MATLAB完成对化学方程式进行配平的应用 4、案例四利用MATLAB求极大线性无关组,并表示出其余向量 三. 实验内容 1、案例一: 0,1,0 ,=1,0,0, 0,0,0 A B AB BA A B ?? ?? =?? ?? ?? 已知矩阵和矩阵满足乘法交换律,即且求矩阵。 2、案例二 配平下列化学方程式: 3、案例三: 3*32 0.81.21.70.20.3 0.6021.61.20.6. 1MATLAB 2256MATLAB 给定一个图像的个方向上的灰度叠加值:沿左上方到右 下方的灰度叠加值依次为,,,,;沿右上方到左下 方的灰度叠加值依次为,。,,, )建立可以确定网络数据的线性方程组,并用求解 )将网络数据乘以,再取整,用绘制该灰度图像

实验汇总

《MATLAB语言与应用》实验课报告 学院:信息学院 班级:测控0902 姓名:陈白杨 学号:20092352

《MATLAB 语言与应用》实验课程任务书 一、 实验教学目标与基本要求 上机实验是本课程重要的实践教学环节;实验的目的不仅仅是验证理论知识,更重要的是通过上机实验,加强学生的实验手段与实践技能,掌握应用MATLAB 语言求解问题的方法,培养学生分析问题、解决问题、应用知识的能力和创新精神,全面提高学生的综合素质。 上机实验共8学时。主要实验内容是基于理论课所学知识对课后典型习题进行MATLAB 求解,基本掌握常见数学问题的求解方法与命令调用,更深入地认识和了解MATLAB 语言强大的计算功能。 上机实验最终以书面报告的形式提交,并作为期末成绩考核内容的一部分。 二、 实验内容(8学时) 第一部分MATLAB 语言编程、科学绘图与基本数学问题求解(4学时) 主要内容:掌握MATLAB 语言编程基础、科学绘图方法、微积分问题、线性代数问题等基本数学问题的求解与应用。 练习题: 1、 安装MATLAB 软件,应用demo 命令了解主要功能,熟悉基本功能,会用help 命令。 2、 用MATLAB 语句输入矩阵A 和B ? ? ??? ???? ???=1423 143212344321 A , ? ? ??? ?? ?? ???++++++++++++++++=4j 11j 43j 22j 34j 11j 42j 33j 24j 13j 22j 31j 41j 42j 33j 24j 1B 前面给出的是44?矩阵,如果给出5)6,5(=A 命令将得出什么结果? >> A=[1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1] A = 1 2 3 4 4 3 2 1 2 3 4 1 3 2 4 1 >> B=[1+4j,2+3j,3+2j,4+1j;4+1j,3+2j,2+3j,1+4j;2+3j,3+2j,4+1j,1+4j;3+2j,2+3j,4+1j,1+4j] B =

MATLAB课程设计报告(绝对完整)

课程设计任务书 学生姓名:董航专业班级:电信1006班 指导教师:阙大顺,李景松工作单位:信息工程学院 课程设计名称:Matlab应用课程设计 课程设计题目:Matlab运算与应用设计5 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应 用”、线性代数及相关书籍等; 3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成; 2.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析, 针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括: ①初步了解Matlab、熟悉Matlab界面、进行简单操作; ②MA TLAB的数值计算:创建矩阵矩阵运算、多项式运算、线性方程组、数值统计; ③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形 标注、简单颜色设定等; ④使用文本编辑器编辑m文件,函数调用; ⑤能进行简单的信号处理Matlab编程; ⑥按要求参加课程设计实验演示和答辩等。 3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: ①目录; ②与设计题目相关的理论分析、归纳和总结; ③与设计内容相关的原理分析、建模、推导、可行性分析; ④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; ⑤课程设计的心得体会(至少500字); ⑥参考文献(不少于5篇); ⑦其它必要内容等。 时间安排:1.5周(分散进行) 参考文献: [1](美)穆尔,高会生,刘童娜,李聪聪.MA TLAB实用教程(第二版) . 电子工业出版社,2010. [2]王正林,刘明.精通MA TLAB(升级版) .电子工业出版社,2011. [3]陈杰. MA TLAB宝典(第3版) . 电子工业出版社,2011. [4]刘保柱,苏彦华,张宏林. MA TLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010. 指导教师签名:年月日 系主任(或责任教师)签名:年月日

matlab线性代数实验

线性代数MATLAB 实验指导书 MATLAB 是Matrix Laboratory 的缩写,是一个集数值计算、图形处理、符号运算、文字处理、数学建模、实时控制、动态仿真和信号处理等功能为一体的数学应用软件,而且该系统的基本数据结构是矩阵,又具有数量巨大的内部函数和多个工具箱,使得该系统迅速普及到各个领域,尤其在大学校园里,许多学生借助它来学习大学数学和计算方法等课程,并用它做数值计算和图形处理等工作。我们在这里介绍它的基本功能,并用它做与线性代数相关的数学实验。 在正确完成安装MATLAB 软件之后,直接双击系统桌面上的MATLAB 图标,启动MATLAB ,进入MATLAB 默认的用户主界面,界面有三个主要的窗口:命令窗口(Commend Window ), 当前目录窗口(Current Directory ),工作间管理窗口(Workspace )。 命令窗口是和Matlab 编译器连接的主要窗口,“>>”为运算提示符,表示Matlab 处于准备状态,当在提示符后输入一段正确的运算式时,只需按Enter 键,命令窗口中就会直接显示运算结果。 实验1 矩阵的运算,行列式 实验名称:矩阵的运算,行列式 实验目的:学习在matlab 中矩阵的输入方法以及矩阵的相关运算,行列式。 实验原理:介绍相关的实验命令和原理 (1)一般矩阵的输入 (2)特殊矩阵的生成 (3)矩阵的代数运算 (4)矩阵的特征参数运算 (5)数字行列式和符号行列式的计算 实验命令 1 矩阵的输入 Matlab 是以矩阵为基本变量单元的,因此矩阵的输入非常方便。输入时,矩阵的元素用方括号括起来,行内元素用逗号分隔或空格分隔,各行之间用分号分隔或直接回车。 例1 输入矩阵 ???? ? ??--=654301211A ,可以在命令窗口中输入 >>A=[1 1 2;-1 0 3;4 -5 6] A = 1 1 2 -1 0 3 4 - 5 6 2 特殊矩阵的生成 某些特殊矩阵可以直接调用相应的函数得到,例如: zeros(m,n) 生成一个m 行n 列的零矩阵

线性代数方程组数值解法及MATLAB实现综述

线性代数方程组数值解法及MATLAB 实现综述 廖淑芳 20122090 数计学院 12计算机科学与技术1班(职教本科) 一、分析课题 随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算机成为数值计算的主要工具以后,它以数字计算机求解数学问题的理论和方法为研究对象。其数值计算中线性代数方程的求解问题就广泛应用于各种工程技术方面。因此在各种数据处理中,线性代数方程组的求解是最常见的问题之一。关于线性代数方程组的数值解法一般分为两大类:直接法和迭代法。 直接法就是经过有限步算术运算,可求的线性方程组精确解的方法(若计算过程没有舍入误差),但实际犹如舍入误差的存在和影响,这种方法也只能求得近似解,这类方法是解低阶稠密矩阵方程组级某些大型稀疏矩阵方程组的有效方法。直接法包括高斯消元法,矩阵三角分解法、追赶法、平方根法。 迭代法就是利用某种极限过程去逐步逼近线性方程组精确解的方法。迭代法具有需要计算机的存储单元少,程序设计简单,原始系数矩阵在计算过程始终不变等优点,但存在收敛性级收敛速度问题。迭代法是解大型稀疏矩阵方程组(尤其是微分方程离散后得到的大型方程组)的重要方法。迭代法包括Jacobi 法SOR 法、SSOR 法等多种方法。 二、研究课题-线性代数方程组数值解法 一、 直接法 1、 Gauss 消元法 通过一系列的加减消元运算,也就是代数中的加减消去法,以使A 对角线以下的元素化为零,将方程组化为上三角矩阵;然后,再逐一回代求解出x 向量。 1.1消元过程 1. 高斯消元法(加减消元):首先将A 化为上三角阵,再回代求解。 11121121222212n n n n nn n a a a b a a a b a a a b ?? ? ? ? ???L L M M O M M L (1)(1)(1)(1)(1)11121311(2)(2)(2)(2)222322(3)(3)(3)3333()()000000n n n n n nn n a a a a b a a a b a a b a b ?? ? ? ? ? ? ???L L L M M M O M M L 步骤如下:

数值分析实践报告 matlab

数值计算实践 数值实验报告 院(系、部):数理系 姓名:夏赞勋 学号:081628 班级:科082 指导教师:徐红敏 2011年01月14日北京

科082 夏赞勋(081628) 北京石油化工学院数理系 拉格朗日插值法 拉格朗日插值法基本原理: 通过平面上不同两点可以确定一条直线,这就是拉格朗日线性插值问题,对于不在同一条直线的三个点得到的插值多项式则为抛物线。 拉格朗日插值的基多项式(即基函数)为: n i x x ?x ?x x l i j j j i i i ,,2,1,0,)(0 =--=∏ ≠= 有了基函数以后就可以直接构造如下多项式: ∑==n i i i n x l x f p 0 ) ()( 该多项式就是拉格朗日插值法所求得的插值多项式。 拉格朗日插值法算法: 1、根据所给点),(i i y x 的坐标依次写出其差值基函数(用for 循环可以轻易解决) n i x x ?x ?x x l i j j j i i i ,,2,1,0,)(0 =--=∏ ≠= 2、将差值基函数与其对应的点的函数值相乘得: n i x l x f i i ,,2,1,0),()( = 3、将2中各项累加即得差值多项式: ∑==n i i i n x l x f p 0 ) ()( 拉格朗日插值法程序: function lagrange(A)%A 为一个只有两行的矩阵,第一行为插值点,第二行为插值点对应的函数值 [m,n]=size(A); f=1; p=0;%两个用到的变量

syms x for i=1:n f=(x-A(1,i))*f; end for j=1:n g(j)=f/(x-A(1,j));%求插值基函数的分母 h(j)=subs(g(j),x,A(1,j));%求插值基函数的分子 s(j)=g(j)/h(j)*A(2,j);%插值基函数 end for k=1:n s(j)=collect(s(j));%合并同类项 end for i=1:n p=p+s(i); end fprintf('拉格朗日插值法可得多项式:') collect(p) % 可用lagrange([1 3 6 8;4 6 9 12])调试 例:有如下表格中有四个插值点及其对应的函数值,用lagrange插值法写出其三次插值多项式: 解: 在matlab命令窗口输入: lagrange([1 3 6 8;4 6 9 12]) 可得运行结果: 拉格朗日插值法可得多项式: ans = x^3/70 - x^2/7 + (97*x)/70 + 96/35

matlab数学实验

《管理数学实验》实验报告 班级姓名 实验1:MATLAB的数值运算 【实验目的】 (1)掌握MATLAB变量的使用 (2)掌握MATLAB数组的创建, (3)掌握MA TLAB数组和矩阵的运算。 (4)熟悉MATLAB多项式的运用 【实验原理】 矩阵运算和数组运算在MA TLAB中属于两种不同类型的运算,数组的运算是从数组元素出发,针对每个元素进行运算,矩阵的运算是从矩阵的整体出发,依照线性代数的运算规则进行。 【实验步骤】 (1)使用冒号生成法和定数线性采样法生成一维数组。 (2)使用MA TLAB提供的库函数reshape,将一维数组转换为二维和三维数组。 (3)使用逐个元素输入法生成给定变量,并对变量进行指定的算术运算、关系运算、逻辑运算。 (4)使用MA TLAB绘制指定函数的曲线图,将所有输入的指令保存为M文件。 【实验内容】 (1)在[0,2*pi]上产生50个等距采样数据的一维数组,用两种不同的指令实现。 0:(2*pi-0)/(50-1):2*pi 或linspace(0,2*pi,50) (2)将一维数组A=1:18,转换为2×9数组和2×3×3数组。 reshape(A,2,9) ans = Columns 1 through 7 1 3 5 7 9 11 13 2 4 6 8 10 12 14 Columns 8 through 9 15 17 16 18 reshape(A,2,3,3) ans(:,:,1) = 1 3 5 2 4 6 ans(:,:,2) = 7 9 11 8 10 12 ans(:,:,3) = 13 15 17 14 16 18

线性代数及matlab英汉对照

Matlab部分函数名的义源 rand(m,n) random 随机 inv(a) inverse 逆矩阵 root 平方根sqrt(a) squared abs(a) absolute value 绝对值 det(a) determinant 行列式 rank(a) rank 秩 trace(a) trace 迹 rref(a) reduced row echelon form 最简行阶梯形 space 零核空间null(a) null sym(a) symbol 符号 orth(a) orthogonal 正交 norm norm 模 poly(a) polynomial 多项式 roots(p) root 根 eig(a) eigen- 特征的eigensys(a) eigen- system 特征的 线性代数部分词汇英汉对照 adjoint matrix 伴随矩阵 algebraic cofactor 代数余子式 augmented matrix 增广矩阵 block matrix 分块矩阵 basic solution set 基础解系 characteristic equation 特征方程 characteristic polynomial 特征多项式 coefficient matrix 系数矩阵 cofactor 余子式 column vector 列向量 canonical form [二次型的]标准形 cramer’s rule 克莱姆法则 determinant of order n n阶行列式 diagonal matrix 对角矩阵 dimension 维数 echelon form 阶梯形 eigenvalue 特征值 eigenvector 特征向量 elementary matrix 初等矩阵 elementary row operation 行初等变换 full rank 满秩 general solution 通解 gram-schmidt process 施密特正交化过程 identity matrix 单位矩阵 index of inertia 惯性指数

线性代数的MATLAB软件实验报告

线性代数的MATLAB 软件实验 一、实验目的 1.熟悉矩阵代数主要MATLAB 指令。 2.掌握矩阵的转置、加、减、乘、除、乘方、除法等MATLAB 运算。 3.掌握特殊矩阵的MATLAB 生成。 4.掌握MATLAB 的矩阵处理方法。 5.掌握MATLAB 的矩阵分析方法。 6.掌握矩阵的特征值与标准形的MATLAB 验算。 7.掌握线性方程组的MATLAB 求解算法。 二、实验原理 1.线性方程组 【基本观点】 自然科学和工程实践很多问题的解决都涉及线性代数方程组的求解和矩阵运算.一方面,许多问题的数学模型本身就是一个线性方程组,例如结构应力分析问题、电子传输网分析问题和投入产出分析问题;另一方面,有些数值计算方法导致线性方程组求解,如数据拟合,非线性方程组求解和偏微分方程组数值解等. n 个未知量m 个方程的线性方程组一般形式为 ?? ??? ? ?=+++=+++=+++. , ,221 12222212111212111m n mn m m n n n n b x a x a x a b x a x a x a b x a x a x a (3.1) 令 ,,,2121212222111211?????? ? ??=??????? ??=????? ?? ??=m n mn m m n n b b b b x x x x a a a a a a a a a A 则得矩阵形式 Ax=b. (3.2) 若右端b=0,即 Ax=0, (3.3) 则称方程组为齐次的. 方程组(3.1)可能有唯一解,可能有无穷多解,也可能无解,主要取决于系数矩阵A 及增广矩阵(A,b )的秩.若秩(A )=秩(A,b )=n,存在唯一解,其解理论上用Cramer 法则求出,但由于这种方法要计算n+1个n 阶行列式,计算量太大通常并不采用;若秩(A )=秩(A,b )

线性代数MATLAB程序实例

线性代数MATLAB程序实例 1、mat_ex00.m 浮点数与符号数显示 2、mat_ex01.m 行列式的数值计算与符号计算函数det() 3、mat_ex02.m 逆矩阵计算 4、mat_ex03.m 矩阵求秩的数值与符号函数rank() 5、mat_ex04.m 求解齐次线性方程组的MATLAB方法 6、mat_ex05.m 非齐次线性方程组的MATLAB求解 7、mat_ex06.m 非齐次线性方程组的相容性、唯一解和无穷解情况 8、mat_ex07.m 求矩阵的特征值与特征向量函数eig() 9、Image_SVD.m 利用矩阵的奇异值分解秩k逼近,进行图像压缩 10、MATLAB绘图命令 (1)常用绘图命令 二维图形: plot最基本、最常用的绘图函数,用于绘制线性二维图。有多

条曲线时,循环使用由坐标轴颜色顺序属性定义的颜色,以区别不同的曲线;之后再循环使用由坐标轴线型顺序属性定义的线型,以区别不同的曲线。 fplot 在指定的范围limits 内画出一元函数y=f(x)的图形。ezplot 绘制隐函数图形。 三维图形: plot3根据给定的数值点绘制三维曲线图。 mesh 生成由X ,Y 和Z 指定的网线面,可以选择颜色的三维网格图。 surf 在矩形区域内显示三维带阴影曲面图。 (2)图形标注 title 给当前图形加上标题,每个图形对象可以有一个标题,标题定位于图形的上方正中央。 xlabel 、ylabel 、zlabel 给x 、y 、z 轴贴上标签。 grid 给二维或三维图形的坐标面增加分隔线。 legend 对同一张图上的不同曲线进行标注。 (3)、gra_ex01.m 绘制下面二元函数的三维图形 222222)1(53)1(223 1)5(10)1(3),(y x y x y x e e y x x e x y x f z -+---+-------==(4)、smile_03.m 平面图形笑脸的几何变换实例

线性代数实验报告汇总

数学实验报告题目 第一次实验题目 一、 实验目的 1.熟悉MATLAB 的矩阵初等运算; 2.掌握求矩阵的秩、逆、化最简阶梯形的命令; 3.会用MABLAB 求解线性方程组 二、 问题求解和程序设计流程 1. 已知???? ??????--=351503224A ,??????????---=112302431 B ,在MATLAB 命令窗口中建立A 、B 矩阵并对其进行以下操作: (1) 计算矩阵A 的行列式的值det()?A = (2) 分别计算下列各式: B A -2 、 B A *和B A *.、 1-AB 、 B A 1-、 2A 、 T A 解: (1) 编写程序如下: A=[4 -2 2;-3 0 5;1 5 3]; B=[1 3 4;-2 0 -3;2 -1 1]; a=det(A) 运行结果: a = -158 (2)编写程序如下: C=2*A-B D=A*B E=A.*B F=A/B G=A\B H=A*A K=A' 运行结果: C = 7 -7 0 -4 0 13

0 11 5 D = 12 10 24 7 -14 -7 -3 0 -8 E = 4 -6 8 6 0 -15 2 -5 3 F = 0 0 2.0000 -2.7143 -8.0000 -8.1429 2.4286 3.0000 2.2857 G = 0.4873 0.4114 1.0000 0.3671 -0.4304 0 -0.1076 0.2468 0 H = 24 2 4 -7 31 9 -8 13 36 K = 4 -3 1 -2 0 5 2 5 3 2.在MATLAB中分别利用矩阵的初等变换及函数rank、函数inv求下列矩阵的秩:

相关主题
文本预览
相关文档 最新文档