1、要求写出达到题目要求的MATLAB操作过程,不要求计算结果。年份19901992199419961998200020022004200620082010产量(万吨)75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633256.34414、在一次化学动力学实验中,在某温度下乙醇溶液中,两种化合物反应的产物浓度与反应时间关系的原始数据如下,请对这组数据进行三次多项式拟合,并画出拟合曲线,已知数据如下。time=2.5 5.0 7.5 10.0 13.0 17.0 20.0 30.0 40.0 50.0 60.0 70
2、.0res=0.29 0.56 0.77 1.05 1.36 1.52 2.00 2.27 2.81 3.05 3.25 3.5615、请在2x2,2y A=2 3 4;1 3 2; U=1 2 3; X=AUX = -0.8148 1.6667 -0.59262、 t=0 0.3 0.8 1.1 1.6 2.3 y=0.82 0.72 0.63 0.60 0.55 0.50 E=ones(size(t) exp(-t); C=EyC = 0.4760 0.3413 x=0:0.01:2.5; z=0.4760+0.3413*exp(-x); plot(t,y,O,x,z,r:) A=3 1
3、0 5;0 -6 7 3;0 4 3 0;2 -1 2 6; Y=2 4 7 8 X=AY -4.8247 1.3944 0.4741 3.01594、 t=1 2 3 4 5 6 7 8 9 10 y=4.842 4.362 3.754 3.368 3.169 3.083 3.034 3.016 3.012 3.005 E1=ones(size(t) exp(-t); C=E1y 3.1621 5.1961 E2=ones(size(t) t.*exp(-t); D=E2yD = 3.0039 5.0046 x=1:10; y1=3.1621+5.1961*exp(-x); y2=3.003
4、9+5.0046*x.*exp(-x);,x,y1,x,y2,b- p1=polyfit(t,y,2)p1 = 0.0411 -0.6383 5.3937 p2=polyfit(t,y,3)p2 = -0.0041 0.1085 -0.9493 5.7443 y3=polyval(p1,x); y4=polyval(p2,x);,x,y3,x,y4,6、 t=0 0.2 0.4 0.6 0.8 1.0 2.0 5.0 y=1.0 1.51 1.88 2.13 2.29 2.40 2.60 -4.00 p=polyfit(t,y,4)p = -0.0993 0.7935 -2.2841 2.98
5、82 0.9995 -0.0565 2.56740.001:5; y1=-0.0565+2.5674*exp(-x); y2=polyval(p,x);7、001 function compare_interp( )002 %COMPARE_INTERP 不同插值运算的比较003 004 % 原始数据005 x,y = meshgrid(-3:1:3);006 z = peaks(x,y);007 figure(1); clf008 surfc(x,y,z);009 title(原始数据010 % 进行插值运算 011 xi, yi = meshgrid(-3:0.25:012 zi1 = i
6、nterp2(x,y,z,xi,yi,nearest);013 zi2 = interp2(x,y,z,xi,yi,linear014 zi3 = interp2(x,y,z,xi,yi,cubic015 zi4 = interp2(x,y,z,xi,yi,spline016 % 通过可视化结果比较017 figure(2)018 subplot(2,2,1);surf(xi,yi,zi1);019 title(二维插值 - 020 subplot(2,2,2);surf(xi,yi,zi2);021 title(022 subplot(2,2,3);surf(xi,yi,zi3) 023 t
7、itle(024 subplot(2,2,4);surf(xi,yi,zi4)025 title(026 % 可视化结果027 figure(3)028 subplot(2,2,1);contour(xi,yi,zi1)029 title(030 subplot(2,2,2);contour(xi,yi,zi2)031 title(032 subplot(2,2,3);contour(xi,yi,zi3)033 title(034 subplot(2,2,4);contour(xi,yi,zi4)035 title(8、 x=-pi:pi/4:pi; y1=sin(x); y2=cos(x);
8、 y3=sinh(x); y4=cosh(x);plot(x,y1,rO:b*-gs-k-.9、 X=19.3 22.1 51.6;34.2 70.3 82.4;61.4 82.9 90.8;50.5 54.9 59.1;29.4 39.3 47; x=sum(X)x = 194.8000 269.5000 330.9000 explode=0 0 1; pie(x,explode)10、 t= 0 0.3 0.8 1.1 1.6 2.3 y=0.5 0.82 1.14 1.25 1.35 1.40 E=ones(size(t) exp(-t) t.*exp(-t)E = 1.0000 1.0
9、000 0 1.0000 0.7408 0.2222 1.0000 0.4493 0.3595 1.0000 0.3329 0.3662 1.0000 0.2019 0.3230 1.0000 0.1003 0.2306 A=EyA = 1.3974 -0.8988 0.4097 Y=1.3974-0.8988*exp(-x)+0.4097*x.*exp(-x);,x,Y,r-11、A=struct(name,江明顺,于越忠邓拓,NO071023060134050839);A(1).level=struct(height176weight82A = 1x3 struct array with
10、fields: name NO level A(2).level=struct(16874 A(3).level=struct(1827712、 B=cell(1,2); B1,1=struct(date2007/06/04billing,125.7 389.3;254.9 538.5)B = 1x1 struct B1,2=struct(maggieprofessionteacherhobbydance 1x1 struct 1x1 struct cellplot(B)13、 year = 1990:2:2010; product = 75.995 91.972 105.711 123.20
11、3 131.669 150.697 179.323 203.212 226.505 249.633 256.344;p1999 = interp1(year,product,1999,spline)x = 1990:y = interp1(year,product,x,plot(year,product,*,x,y)14、X=2.5 5.0 7.5 10.0 13.0 17.0 20.0 30.0 40.0 50.0 60.0 70.0;Y=0.29 0.56 0.77 1.05 1.36 1.52 2.00 2.27 2.81 3.05 3.25 3.56;(P=polyfit(X, Y,
12、3);x=2.5:0.1:70;y=polyval(P,x)plot(X,Y,O,x,y)gird on15、clearx=-2:0.2:2; y=-2: X,Y=meshgrid(x,y);Z=X.*exp(-X.2-Y.2);mesh(X,Y,Z)16、x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)grid onxlabel(Independent Variable X);ylabel(Dependent Variable Y1Y2);title(Sine and Cosine Curve) text(1.5,0.3,cos(x);ax
13、is(0 2*pi -0.9 0.9) 复习要点矩阵产生和操作一.diag对角矩阵和矩阵的对角化 1.x=diag(v)产生v的元素处于主对角线的对角方阵,v为n元向量。 x=diag(1 2 3) x= 1 0 0 0 2 0 0 0 3 2.x=diag(v,k) k表示v的元素处在第k条对角线上 k=0 主对角线 y=diag(1 2 3,1) k0 主对角线上 y= 0 1 0 0 k0 主对角线下 0 0 2 0 . 0 0 0 3 . 0 0 0 0 3.v=diag(x,k) x为矩阵,v为列向量,x的第k条对角线上的元素 z= 9 4 4 v=diag(z) v=diag(z,
14、-1) 2 8 0 9 6 7 8 v= 8 v= 2 8 7二. reshape 阵列重新排列 B=reshape(A,m,n)把A重新排成mn的矩阵B 矩阵元素是按列存储的 A=9 6 8 4 D=reshape(A,4,2) D= 9 8 2 4 7 0 2 7 6 4 4 0三. rot 90 矩阵旋转90o(反时针) rot 90(A,k) 将A反时针旋转k*90o A= 5 3 7 B1=rot 90(A) 区别于A B2=A 7 2 3 B1= 7 3 5 B2= 5 7 4 4 2 5 3 2 2 3 2 2 5 7 4 7 3 5 B3=rot 90(A,3) B3= 4 7
15、 5 2 2 3 5 3 7四. fliplr 左右翻转-列 A= 9 6 8 4 B=fliplr(A) 2 4 7 0 B=4 8 6 9 0 7 4 2五. flipud 上下翻转-行 B=flipud(A) B= 2 4 7 0 9 6 8 4六. tril 下三角阵 L=tril(x,k) B1=tril(A,1) A=9 6 8 4 B1=9 6 0 0 2 4 7 0 2 4 7 0七. triu 上三角阵 L=triu(x,k) B2=triu(A,1) B2=0 6 8 4 0 0 7 0八. cat 阵列连接 C=cat(dim,A,B) 将A,B在dim维连接起来 G=c
16、at(1,B1,B2) G= 9 6 0 0 2 4 7 0 0 6 8 4九. repmat复制并平铺阵列 1. B=repmat(A,m,n) A为矩阵,将A平铺成mn格式 A=1 2;3 4 B=repmat(A,2,3) B= A A A A A A 2. B=repmat(A,2,3) A为标量 B=repmat(5,2,3) B= 5 5 5 5 5 5十MeshigridX,Y= meshgrid (1:4,1:4)X= 1 2 3 4Y= 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4矩阵逻辑运算1. all矩阵所有元素是否非零 有1个或多个00 A为向量 Al
17、l(A) A为矩阵按列 a=1 2;0 4 b=au(0) b=0 12. any测试任意非零值 只要有不是01 B=any(A) 所有都为00 a=1 2 0;4 0 0;0 5 0 any(a) ans=1 1 03. find查找非零元素的值和下标 k=find(x)阵列中 i,j=find(x)矩阵中 i,j,v=find(x)v为值,可得 v值的列 a=zeros(5,20); a(3,7)=0.5; i = 3 j = 7 v= 0.5000 a(4,15)=-0.4; 4 15 -0.4000 i,j,v=find(a);4. exist:检查给定变量或文件是否存在 a=exis
18、t(item ident=exist(,kind)5. is* 检测状态 A=one(3,3); s=ad3fi A(:,:)= ; isletter isempty(A); ans= 1 1 0 1 1 ans=1 6. logical数值转变成逻辑值 logical(A) 返回能够用于逻辑索引或逻辑测试的数组。 A=logical(eye(3) A = 1 0 0 B=rand(3) B = 0.4447 0.9218 0.4057 0 1 0 0.6154 0.7382 0.9355 0 0 1 0.7919 0.1763 0.9169 B(A) ans= 0.4447 0.7382 0
19、.9109字符串部分字符串的比较 三种情况:1.比较两个字符串或两个字符串的一部分是否相等2.逐个比较两个字符串中的字符,判别是否相等3.对字符串中的每一个元素进行分类判别是字符还是空格一比较两个字符串strcmp strcmp 判别两个字符串是否相等strncmp 判别两个字符的前n个字符是否相等。StrncmpEg: str1=hello str2=help strcmp(str1,str2) ans=0 strcmp(str1,str2,3) ans=1 这两个函数还可以比较两个字符串的单元数组。 A=pizza; chips; candy; cake; beer; B=pizza; c
20、hololate; pretzels; beef; strcmp(A,B) strcmp(A,B,1) strncmp(A,B,4) ans= 1 ans = 1 ans =1 0 1 0 0 0 0 1 . 1 1二用运算符比较字符串 “= =”比较两个字符串中对应字符是否相同 A=fate; B=cake; A= =B ans=0 1 0 1 “=”表示不等于 A=B ans=1 0 1 0三字符串中字符的分类 isletter 是否为字母 isspace 是否为空格或制表符 mystring=Room 401; A=isletter(mystring); A=1 1 1 1 0 0 0
21、0 B=isspace(mystring) B=0 0 0 0 1 0 0 0对二维数组也可以A=1 2A; 13 B; L=isletter(A) S=isspace(A) L= 0 0 0 1 S = 0 1 0 0 0 0 0 1 0 0 1 0对单元矩阵形式的字符串,不能直接应用这两个函数。但可以对指定的单元进行判别。strcell=pi za; chi s; can y; er; LL=isletter(strcell1); LL=1 1 0 1 1 SS=isspace(strcell2) SS=0 0 0 1 0字符串的查找与替换一.strrep可实现标准的查找与替换。 Eg:l
22、abel=sample 1,10/28/95;newlabel=strrep(label, 10/28/95, 12/20/1999);newlabel=sample 1,12/20/1999二.findstr用于在字符串中查找指定的子串找到一个子串 返回开始位置找到多个子串 用一个矢量指出它们的位置没找到 返回 position=findstr(1,newlabel); position= 8 11 17 position=find(wa,newlabel); position= 三.strtok先在字符串中查找分隔字符(如空格,/,制表符等),然后返回第1个分隔符前的子串。first=strtok(label); first=sample first=strtok(label, 1)first=sample 1,10知识要点MATLAB的特点1.以复数矩阵作为基本编程单元,使操作变得轻而易举,矩阵不需定义。2.语句简单,编程效率高,用数学语言编写比C,Basic,Fortran更加接近人们书写计算公式的思维方式。MATLAB俗称演算纸式科学算法语
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1