《matlab举例》word版

《matlab举例》word版

ID:29811315

大小:168.50 KB

页数:16页

时间:2018-12-23

《matlab举例》word版_第1页
《matlab举例》word版_第2页
《matlab举例》word版_第3页
《matlab举例》word版_第4页
《matlab举例》word版_第5页
资源描述:

《《matlab举例》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Matlab特色举例(2009-03-1116:05:31)标签:杂谈 分类:科学研究考虑两个矩阵A和B的乘积问题,在C语言中要实现两个矩阵的乘积并不仅仅是一组双重循环的问题。双重循环当然是矩阵乘积所必需的,除此之外要考虑的问题很多。例如:A和B有一个是复数矩阵怎么考虑;其中一个是复数矩阵时怎么考虑;全部是实系数矩阵时又怎么管理;这样就要在一个程序中有4个分支,分别考虑这4种情况。然后还得判断这两个矩阵是否可乘。而考虑两个矩阵是否可乘也并不仅仅是判断A的列数是否等于B的行数这么简单。其中一个若为标量,则它们可以无条件地相乘。其中有标量时

2、又得考虑实数与复数的问题等。所以说,没有几十分钟的时间,用C语言并不可能编写出考虑各种情况的子程序。有了MATLAB这样的工具,A和B矩阵的乘积用A*B这样简单的算式就能表示了。〖例1-1〗矩阵生成与运算。考虑金庸作品中经常提及的一个“数学问题”,该问题用半数学语言描述就是:如何生成一个3x3矩阵,并将自然数1,2,...,9分别置成这9个矩阵元素,才能使得每一行、每一列、且主、反对角线上元素相加都等于一个相同的数。 这样的矩阵称为“魔方矩阵”。用MATLAB的magic()函数,我们可以由下面的命令立即生成这样的矩阵: >> A=ma

3、gic(3) A=   8  1  6   3  5  7   4  9  2还可以由B=magic(10)一次生成10x10的魔方矩阵。如果想求出矩阵的行列式和特征值,可以分别由det(B)与eig(B)立即得出结果,而同样的工作在C下并不是很简单就可以得出的,算法选择不好,还可能得出错误的结果。〖例1-2〗考虑一个二元函数如何用三维图形的方式表现出这个曲面? 用C这类语言,绘制图形是一个难点,且从一个机器移植程序到另一个机器,大部分调试程序时间都花在这上。但使用MATLAB这类高级语言,完成这样的工作就是几个直观语句的事。且得出的图

4、形美观准确、可以将语句毫不变化地移植到另外的机器上,得出完全一致的结果,如下所示。 >>[x,y]=meshgrid(-3:1/8:3);   z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)-10*(x/5-x.^3-y.^5)...     .*exp(-x.^2-y.^2)-1/3*exp(-(x+1).^2-y.^2);   surf(x,y,z),shadinginterp;colorbar〖例1-3〗微分方程的数值解法是在科学与工程计算中经常遇到的问题。假设著名的Lorenz模型的状态方程表示为:若令且

5、初值为,e为一个小常数,假设则我们可以由下面的几个语句就可以描述微分方程:functionxdot=lorenzeq(t,x)xdot=[-8/3*x(1)+x(2)*x(3);     -10*x(2)+10*x(3);     -x(1)*x(2)+28*x(2)-x(3)];这样下面几个语句就能求解该微分方程,绘制出时间曲线与相空间曲线,如下所示。>>t_final=100;x0=[0;0;1e-10];  [t,x]=ode45('lorenzeq',[0,t_final],x0);  plot(t,x),  figure;pl

6、ot3(x(:,1),x(:,2),x(:,3));axis([1040-2020-2020]);〖例1-5〗(注,这里的编号采用作者书中的序号)设有解析函数,利用MATLAB的符号运算工具箱可以对该函数进行解析推导,得出诸如高阶导数、积分、Taylor幂级数展开等。>>symsx;f='x^2*(sin(x))^2';diff(f);f1=simple(ans)f1=  x-x*cos(2*x)+x^2*sin(2*x)>>diff(f,x,2);f2=simple(ans)f2=  1-cos(2*x)+4*x*sin(2*x)+2

7、*x^2*cos(2*x)>>diff(f,x,3);f3=simple(ans)f3=  6*sin(2*x)+12*x*cos(2*x)-4*x^2*sin(2*x)>>diff(f,x,4);f4=simple(ans)f4=  24*cos(2*x)-32*x*sin(2*x)-8*x^2*cos(2*x)>>int(f4,x)ans= 6*sin(2*x)+12*x*cos(2*x)-4*x^2*sin(2*x)>>taylor(x^2*(sin(x))^2,15,x)ans= x^4-1/3*x^6+2/45*x^8-1/3

8、15*x^10+2/14175*x^12-2/467775*x^14  Matlab支持的数据结构  MATLAB语言的赋值语句有两种:·变量名=运算表达式·[返回变量列表]=函数名(输入变量列表) MAT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。