基于matlab的科学计算实验.doc_第1页
基于matlab的科学计算实验.doc_第2页
基于matlab的科学计算实验.doc_第3页
基于matlab的科学计算实验.doc_第4页
基于matlab的科学计算实验.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科学计算与数据处理实验报告学号S311060149姓名张园实验名称基于MATLAB的科学计算实验实验目的1、 掌握MATLAB中数组的创建和操作方法2、 掌握MATLAB中常用的数值计算方法3、 掌握MATLAB中常用的符号计算方法实验方案一、 一维数组创建实验:(1)直接输入法: test=1 2 3 4 test=1;2;3;4(2)步长生成法: test=1:0.5:10(3)定数线性采样法: test = linspace(1,12,5)(4)定数对数采样法: logspace(2,6,4)二、 高维数组创建实验:(1)直接输入法: A=1 2 3;4 5 6;7 8 9(2)使用下标: clear,A(2,3,2)=1(3)使用低维数组:clear,A=eye(3,4);A(:,:,2)=eye(3,4)*2;A(:,:,3)=eye(3,4)*3;A(:,:,4)=eye(3,4)*4(4)使用创建函数(cat、repmat、reshape)创建高维数组: cat(3,1,2,3;4,5,6,eye(2,3)*2,ones(2,3) repmat(1,2;3,4,1,2,3) reshape(1:20,2,5,2)三、标准数组创建实验:(1)全0矩阵: zeros(3)(2)全1矩阵: ones(5)(3)单位矩阵: eye(4)(4)magic矩阵: magic(4)(5)随机矩阵: randn(4)四、矩阵变换实验:令Data=1,2,3,4;5,6,7,8;9,10,11,12,分别使用diag、fliplr、flipud、rot90、tril、triu函数计算Data的对角、转置、翻转、旋转、三角矩阵,具体命令如下: Data=1,2,3,4;5,6,7,8;9,10,11,12 diag(Data)(Data) fliplr(Data) flipud(Data) rot90(Data) tril(Data) triu(Data)五、字符串数组创建与操作实验:(1)创建字符串数组: arr=str2mat(I,am,a,student)(2)去掉字符串末尾的空格deblank::建立字符串,用abs函数验证空格的存在;用deblank去掉空格,用abs已经去掉空格 x=a n ;y=abs(x) z=deblank(x);w=abs(z)(3) 删除字符串开头和结尾的空格strtrim str1= I am a student ; str2=I am a student ; x=strtrim(str1) y=strtrim(str2) (4) 执行简单的字符串替代strrep、 str1=I am a student.; str2=student; str3=teacher; str=strrep(str1,str2,str3)(5)规范格式strread; strread(0.231,%5.3f)(6) 函数strtok找出由特定字符指定的字符串内的标记; ar=I am a student strtok(ar,s)六、 架构数组的创建与操作实验:(1) 直接创建法: clear x; x.real = 1 2 3 4 5; x.imag = ones(4)(2) 命令(struct)创建法 s = struct(name,x,y,id,3,4,w,3,4)(3) Fieldnames函数: fieldnames(s)(4) Getfield函数: str(1,1).name = x; str(1,1).ID = 5; str(2,1).name = y; str(2,1).ID = 3; result = getfield(str, 2,1, name)(5) Setfield函数: str(1,1).name = x; str(1,1).ID = 5; str(2,1).name = y; str(2,1).ID = 3; str= setfield(str,2,1,name,a); str(2,1).name七、 基本运算符号实验:(1)矩阵加: a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a+b(2)矩阵减: a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a-b(3)矩阵乘 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a*b(4)数组乘 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a.*b(5)矩阵乘方 a=1,2,3;4,5,6;7,8,9; a2(6)数组乘方 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a.b(7)矩阵左除 a=1,2,3;4,5,6;7,8,9; b=2;4;6;ab(8)矩阵右除 a=ones(3); b=1,1,1; a/b(9)数组左除 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a.b(10)数组右除 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a./b(11)克罗内克张量积 a=1,0,1;1,1,1;1,0,1; b=0,0,1;1,0,1;0,0,1;kron(a,b)(12)逻辑与 a=1,0,1;1,1,1;1,0,1; b=0,0,1;1,0,1;0,0,1;a&b(13)逻辑或 a=1,0,1;1,1,1;1,0,1; b=0,0,1;1,0,1;0,0,1;a|b(14)逻辑非 a=1,0,1;1,1,1;1,0,1; a(15)逻辑异或 a=1,0,1;1,1,1;1,0,1; b=0,0,1;1,0,1;0,0,1;xor(a,b)八、 矩阵分析实验:(1)范数(norm): a=1,2,3;4,5,6;7,8,9; norm(a,1) norm(a,2)(2)条件数(cond): cond(a)(3)行列式(det): det(a)(4)秩(rank): rank(a)(5)特征值(eig): eig(a) V,D=eig(a)(6)化零矩阵(null) Z=null(a)(7)Cholesky分解(chol) a=pascal(3) a=pascal(3);chol(a)(8)LU分解(lu) a=1,2,3;4,5,6;7,8,9; L1,U1=lu(a)(9)正交分解(qr) a=1,2,3;4,5,6;7,8,9; U,S=qr(a)(10)奇异值分解(svd): a=1,2,3;4,5,6;7,8,9; U,S,V=svd(a)九、 数值计算实验:(1) 导数(diff): a=x3+4*x2-x+20 diff(a)(2) 梯度(gradient) a=1,2,3;4,5,6;7,8,9; fx,fy=gradient(a)(3) 多项式求根(roots)、 p=1,3,2,5;px=poly2str(p,x);r=roots(p)/ p是多项式的MATLAB描述方法,我们可用poly2str(p,x)函数,来显示多项式的形式,px =x3 +3 x2 +2 x +5(4) 零点(fzero、fsolve): a=(x)x2+3*x+2; x=fzero(a,0) x=fsolve(x2+3*x+2,0)(5) 极值(fminbnd、fminsearch、fminunc)、1; f=(x) x2-4*x+5; fminbnd(f,0,1)2; fun=inline(x(1)2-3*x(1)*x(2)+2*x(2)2);x0=1,1; fminsearch(fun,x0)3; fun=inline(x(1)2-3*x(1)*x(2)+2*x(2)2);x0=1,1; fminunc(fun,x0)(6) 积分(quadl)用内联函数定义被积函数: fun=inline(-x.*x,x); y=quadl(fun,0,1)十、 符号计算实验:(1)将化简:先用syms定义符号变量,再用simplify函数进行化简,具体命令如下: simplify(cos(x)+sqrt(-sin(x)2)(2)求的解:用solve函数求解,命令如下: x=solve(x+2)x=2,x)实验记录一、(1) test=1 2 3 4test = 1 2 3 4 test=1;2;3;4test = 1 2 3 4(2) test=1:0.5:10test = Columns 1 through 4 1.0000 1.5000 2.0000 2.5000 Columns 5 through 8 3.0000 3.5000 4.0000 4.5000 Columns 9 through 12 5.0000 5.5000 6.0000 6.5000 Columns 13 through 16 7.0000 7.5000 8.0000 8.5000 Columns 17 through 19 9.0000 9.5000 10.0000(3) test = linspace(1,12,5)test = Columns 1 through 4 1.0000 3.7500 6.5000 9.2500 Column 5 12.0000(4) logspace(2,6,4)ans = 1.0e+006 * 0.0001 0.0022 0.0464 1.0000二、(1) 直接输入法 A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9(2)使用下标 clear,A(2,3,2)=1A(:,:,1) = 0 0 0 0 0 0A(:,:,2) = 0 0 0 0 0 1 (3)使用低维数组 clear,A=eye(3,4);A(:,:,2)=eye(3,4)*2;A(:,:,3)=eye(3,4)*3;A(:,:,4)=eye(3,4)*4A(:,:,1) = 1 0 0 0 0 1 0 0 0 0 1 0A(:,:,2) = 2 0 0 0 0 2 0 0 0 0 2 0A(:,:,3) = 3 0 0 0 0 3 0 0 0 0 3 0A(:,:,4) = 4 0 0 0 0 4 0 0 0 0 4 0(4)使用创建函数(cat、repmat、reshape)创建高维数组。1, cat(3,1,2,3;4,5,6,eye(2,3)*2,ones(2,3)ans(:,:,1) = 1 2 3 4 5 6ans(:,:,2) = 2 0 0 0 2 0ans(:,:,3) = 1 1 1 1 1 12, repmat(1,2;3,4,1,2,3)ans(:,:,1) = 1 2 1 2 3 4 3 4ans(:,:,2) = 1 2 1 2 3 4 3 4ans(:,:,3) = 1 2 1 2 3 4 3 43, reshape(1:20,2,5,2)ans(:,:,1) = 1 3 5 7 9 2 4 6 8 10ans(:,:,2) = 11 13 15 17 19 12 14 16 18 20三、(1) zeros(3)ans = 0 0 0 0 0 0 0 0 0(2) ones(5)ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1(3) eye(4)ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1(4) magic(4)ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1(5) randn(4)ans = 1.0668 0.2944 -0.6918 -1.4410 0.0593 -1.3362 0.8580 0.5711 -0.0956 0.7143 1.2540 -0.3999 -0.8323 1.6236 -1.5937 0.6900四、(1) Data=1,2,3,4;5,6,7,8;9,10,11,12Data = 1 2 3 4 5 6 7 8 9 10 11 12 diag(Data)ans = 1 6 11(2) (Data)ans = 1 5 9 2 6 10 3 7 11 4 8 12(3) fliplr(Data)ans = 4 3 2 1 8 7 6 5 12 11 10 9(4) flipud(Data)ans = 9 10 11 12 5 6 7 8 1 2 3 4(5) rot90(Data)ans = 4 8 12 3 7 11 2 6 10 1 5 9(6) tril(Data)ans = 1 0 0 0 5 6 0 0 9 10 11 0(7) triu(Data)ans = 1 2 3 4 0 6 7 8 0 0 11 12五、(1) arr=str2mat(I,am,a,student)arr =I am a student(2) x=a n ;y=abs(x)y = 97 32 110 32 z=deblank(x);w=abs(z)w = 97 32 110(3) str1= I am a student ; str2=I am a student ; x=strtrim(str1)x =I am a student y=strtrim(str2)y =I am a student(4) str1=I am a student.; str2=student; str3=teacher; str=strrep(str1,str2,str3)str =I am a teacher.(5) strread(0.231,%5.3f)ans = 0.2310(6) ar=I am a studentar =I am a student strtok(ar,s)ans =I am a六;(1)直接法 clear x; x.real = 1 2 3 4 5; x.imag = ones(4)x = real: 1 2 3 4 5imag: 4x4 double(2)struct函数 s = struct(name,x,y,id,3,4,w,3,4)s = 1x2 struct array with fields: name id w(3) fieldnames功能演示 fieldnames(s)ans = name id w(4) getfield功能演示 str(1,1).name = x; str(1,1).ID = 5; str(2,1).name = y; str(2,1).ID = 3; result = getfield(str, 2,1, name)result =y(5) setfield功能演示 str(1,1).name = x; str(1,1).ID = 5; str(2,1).name = y; str(2,1).ID = 3; str= setfield(str,2,1,name,a); str(2,1).nameans =a七:(1) 矩阵加 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a+bans = 4 8 12 5 7 9 9 12 15(2)矩阵减 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a-bans = -2 -4 -6 3 3 3 5 4 3(3)矩阵乘 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a*bans = 11 22 33 29 58 8747 94 141(4)数组乘 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a.*bans = 3 12 27 4 10 1814 32 54(5)矩阵乘方 a=1,2,3;4,5,6;7,8,9; a2ans = 30 36 42 66 81 96 102 126 150(6)数组乘方 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a.bans = 1 64 19683 4 25 216 49 4096 531441(7)矩阵左除 a=1,2,3;4,5,6;7,8,9; b=2;4;6;abWarning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.203039e-018.ans = -0.4667 0.9335 0.1999(8)矩阵右除 a=ones(3); b=1,1,1; a/bans = 1 1 1(9)数组左除 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a.bans = 3.0000 3.0000 3.0000 0.2500 0.4000 0.5000 0.2857 0.5000 0.6667(10)数组右除 a=1,2,3;4,5,6;7,8,9; b=3,6,9;1,2,3;2,4,6; a./bans = 0.3333 0.3333 0.3333 4.0000 2.5000 2.0000 3.5000 2.0000 1.5000(11)克罗内克张量积 a=1,0,1;1,1,1;1,0,1; b=0,0,1;1,0,1;0,0,1;kron(a,b)ans = 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1(12)逻辑与 a=1,0,1;1,1,1;1,0,1; b=0,0,1;1,0,1;0,0,1;a&bans = 0 0 1 1 0 1 0 0 1(13)逻辑或 a=1,0,1;1,1,1;1,0,1; b=0,0,1;1,0,1;0,0,1;a|bans = 1 0 1 1 1 1 1 0 1(14)逻辑非 a=1,0,1;1,1,1;1,0,1; aans = 0 1 0 0 0 0 0 1 0(15)逻辑异或 a=1,0,1;1,1,1;1,0,1; b=0,0,1;1,0,1;0,0,1;xor(a,b)ans = 1 0 0 0 1 0 1 0 0八、(1)范数(norm)用来度量矩阵或者向量在某种意义下的长度 a=1,2,3;4,5,6;7,8,9; norm(a,1)ans = 18 norm(a,2)ans = 16.8481(2)条件数(cond)可以描述矩阵为良性矩阵还是病态矩阵的一个参数 cond(a)ans = 5.0524e+016(3)行列式(det) det(a)ans = 0(4)秩(rank) rank(a)ans = 2(5)特征值(eig) eig(a)ans = 16.1168 -1.1168 -0.0000 V,D=eig(a)V = -0.2320 -0.7858 0.4082 -0.5253 -0.0868 -0.8165 -0.8187 0.6123 0.4082D = 16.1168 0 0 0 -1.1168 0 0 0 -0.0000(6)化零矩阵(null) Z=null(a)Z = -0.4082 0.8165 -0.4082(7)Cholesky分解(chol)把对称正定矩阵表示成上三角矩阵的转置与其本身的乘积 a=pascal(3) /pascal矩阵a = 1 1 1 1 2 3 1 3 6 a=pascal(3);chol(a)ans = 1 1 1 0 1 2 0 0 1(8)LU分解(lu) a=1,2,3;4,5,6;7,8,9; L1,U1=lu(a)L1 = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0U1 = 7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0 -0.0000(9)正交分解(qr) a=1,2,3;4,5,6;7,8,9; U,S=qr(a)U = -0.1231 0.9045 0.4082 -0.4924 0.3015 -0.8165 -0.8616 -0.3015 0.4082S = -8.1240 -9.6011 -11.0782 0 0.9045 1.8091 0 0 -0.0000(10)奇异值分解(svd) a=1,2,3;4,5,6;7,8,9; U,S,V=svd(a)U = -0.2148 0.8872 0.4082 -0.5206 0.2496 -0.8165 -0.8263 -0.3879 0.4082S = 16.8481 0 0 0 1.0684 0 0 0 0.0000V = -0.4797 -0.7767 -0.4082 -0.5724 -0.0757 0.8165 -0.6651 0.6253 -0.4082九(1)导数 a=x3+4*x2-x+20a =x3+4*x2-x+20 diff(a) ans = 3*x2+8*x-1 diff(a,2) ans = 6*x+8(2)梯度 a=1,2,3;4,5,6;7,8,9; fx,fy=gradient(a)fx = 1 1 1 1 1 1 1 1 1fy = 3 3 3 3 3 3 3 3 3(3)多项式求根 p=1,3,2,5;px=poly2str(p,x);r=roots(p)/ p是多项式的MATLAB描述方法,我们可用poly2str(p,x)函数,来显示多项式的形式,px =x3 +3 x2 +2 x +5r = -2303/793 -205/4278 + 851/649i -205/4278 - 851/649i(4)零点 a=(x)x2+3*x+2; x=fzero(a,0)x = -1 x=fsolve(x2+3*x+2,0)Optimization terminated: first-order optimality is less than options.TolFun.x = -1(5)极值1; f=(x) x2-4*x+5; fminbnd(f,0,1)ans =0.99992; fun=inline(x(1)2-3*x(1)*x(2)+2*x(2)2);x0=1,1; fminsearch(fun,x0)Exiting: Maximum number of function evaluations has been exceeded - increase MaxFunEvals option. Current function value: -448408571070688420000000000000000000000000000000000000000000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论