科学计算与数据处理综合设计实验一分析.docx
- 文档编号:8577080
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:27
- 大小:20.90KB
科学计算与数据处理综合设计实验一分析.docx
《科学计算与数据处理综合设计实验一分析.docx》由会员分享,可在线阅读,更多相关《科学计算与数据处理综合设计实验一分析.docx(27页珍藏版)》请在冰豆网上搜索。
科学计算与数据处理综合设计实验一分析
科学计算与数据处理实验报告
学 号
S3*******2
姓 名
王腾祥
实验名称
基于MATLAB的科学计算实验
实验目的
1、掌握MATLAB中数组的创建和操作方法
2、掌握MATLAB中常用的数值计算方法
3、掌握MATLAB中常用的符号计算方法
实验方案
1、一维数组创建实验
(1)直接输入法
>>a=[1234]
(2)步长生成法
>>b=2:
5:
100
(3)定数线性采样法
>>c=linspace(1,25,5)
(4)定数对数采样法
>>d=logspace(2,6,4)
2、高维数组创建实验
(1)直接输入法
>>a=[1,2,3;4,5,6;7,8,9]
(2)使用下标
>>a(2,3,2)=1
(3)使用低维数组
>>a=eye(3,4);a(:
:
2)=eye(3,4)*2;a(:
:
3)=eye(3,4)*3;a(:
:
4)=eye(3,4)*4
(4)使用创建函数创建高维数组
>>cat(3,[1,2,3;4,5,5],eye(2,3)*5),ones(2,3)
>>repmat([1,2;3,4],[1,2,3])
>>reshape(1:
24,2,3,4)
3、标准数组创建实验
(1)全零矩阵
>>zeros(5)
(2)全一矩阵
>>ones(5)
(3)单位矩阵
>>eye(5)
(4)Magic矩
>>magic(6)
(5)随机矩阵
>>randn(4)
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)
>>fliplr(Data)
>>flipud(Data)
>>rot90(Data)
>>tril(Data)
5、字符串数组创建与操作实验
(1)创建字符串数组
>>str=str2mat('i','am','a','student')
(2)去掉字符串末尾的空格
>>x='an';y=abs(x);
>>z=deblank(x);w=abs(z)
(3)删除字符串开头和结尾的空格
>>str1='helloworld';str2='helloworld';
>>x=strtrim(str1);y=strtrim(str2);
>>str1
>>abs(str1)
>>abs(x)
>>abs(str2)
>>abs(y)
(4)执行简单的字符串替代
>>str1='helloboy';
>>str2='boy';
>>str3='girl';
>>str=strrep(str1,str2,str3)
(5)规范化
>>strread('0.231','%5.3f')
(6)函数strtok找出由特定字符串内的标记
>>ar='iamaboy'
>>strtok(ar,'b')
6、架构数组的创建与操作实验
(1)直接创建法
>>cleara;a.x=[1,2,3,4,5];a.y=ones(4)
(2)命令创建法
>>s=struct('type',{'bif','little'},'color',{'red'},'x',{3,4})
(3)Fieldname函数
>>fieldnames(s);
(4)Getnames(s)
>>s(1,1).type='bif';
>>s(1,1).color='red';
>>s=setfield(s,{1,1},'type','a')
(5)Setfield函数
7、基本运算符号实验
(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];
>> a^2
(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];
>>a\b
(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)范数
>>a=[1,2,3;4,5,6;7,8,9];
>>norm(a,1);
>>norm(a,2);
(2)条件数
>>cond(a);
(3)行列式
>>det(a);
(4)秩
>>rank(a);
(5)特征值)
>>eig(a);
>>[V,D]=eig(a)
(6)化零矩阵
>>Z=null(a)
(7)Cholesky分解
>>a=pascal(3);
>>a=pascal(3);chol(a)
(8)LU分解
>>a=[1,2,3;4,5,6;7,8,9];
>>[L1,U1]=lu(a)
(9)正交分解
>>a=[1,2,3;4,5,6;7,8,9];
>>[U,S]=qr(a)
(10)奇异值分解
>>a=[1,2,3;4,5,6;7,8,9];
>>[U,S,V]=svd(a)
9、数值计算实验
1)
>>y='3*x^4+4*x^3+5*x'
>>diff(y)
(2)
>>s=[1,2,3;4,5,6;7,8,9]
>>[x,y]=gradient(s)
(3)
>>p=[1,2,3,4];
>>px=poly2str(p,'x');
>>r=roots(p)
(4)
>>a=@(x)3*x^2;
>>y=fzero(a,0)
(5)
>>y=fsolve('3*x^3+x^2',0)
1;>>f=@(x)x^2-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)
>>fun=inline('-x.*x','x');
>>y=quadl(fun,0,1)
10、符号计算实验
(1)>>simplify(cos(x)+sqrt(-sin(x)^2))
(2)>>x=solve('(x+2)^x=2','x')
实验记录
一、一位数组创建实验
(1)直接输入法
>>a=[1234]
a=
1234
(2)步长生成法
>>b=2:
5:
100
b=
27121722273237424752576267727782879297
(3)定数现行采样法
>>c=linspace(1,25,5)
c=
17131925
(4)定数对数采样法
>>d=logspace(2,6,4)
d=
1.0e+006*
0.00010.00220.04641.0000
二、高维数组创建实验
(1)直接输入法
>>a=[1,2,3;4,5,6;7,8,9]
a=
123
456
789
(2)使用下标
>>a(2,3,2)=1
a(:
:
1)=
000
000
a(:
:
2)=
000
001
(3)使用低维数组
>>a=eye(3,4);a(:
:
2)=eye(3,4)*2;a(:
:
3)=eye(3,4)*3;a(:
:
4)=eye(3,4)*4
a(:
:
1)=
1000
0100
0010
a(:
:
2)=
2000
0200
0020
a(:
:
3)=
3000
0300
0030
a(:
:
4)=
4000
0400
0040
(4)使用创建函数创建高维数组
>>cat(3,[1,2,3;4,5,5],eye(2,3)*5),ones(2,3)
ans(:
:
1)=
123
455
ans(:
:
2)=
500
050
ans=
111
111
>>repmat([1,2;3,4],[1,2,3])
ans(:
:
1)=
1212
3434
ans(:
:
2)=
1212
3434
ans(:
:
3)=
1212
3434
>>reshape(1:
24,2,3,4)
ans(:
:
1)=
135
246
ans(:
:
2)=
7911
81012
ans(:
:
3)=
131517
141618
ans(:
:
4)=
192123
202224
三、标准数组创建实验
(1)全零矩阵
>>zeros(5)
ans=
00000
00000
00000
00000
00000
(2)全一矩阵
>>ones(5)
ans=
11111
11111
11111
11111
11111
(3)单位矩阵
>>eye(5)
ans=
10000
01000
00100
00010
00001
(4)Magic矩阵
>>magic(6)
ans=
3516261924
3327212325
3192222720
82833171015
30534121416
43629131811
(5)随机矩阵
>>randn(4)
ans=
-0.4326-1.14650.3273-0.5883
-1.66561.19090.17462.1832
0.12531.1892-0.1867-0.1364
0.2877-0.03760.72580.1139
4、矩阵变换实验:
令Data=[1,2,3,4;5,6,7,8;9,10,11,12],分别使用diag、'、fliplr、flipud、rot90、tril、triu函数计算Data的对角、转置、翻转、旋转、三角矩阵。
>>diag(Data)
ans=
1
6
11
>>fliplr(Data)
ans=
4321
8765
1211109
>>flipud(Data)
ans=
9101112
5678
1234
>>flipud(Data)
ans=
9101112
5678
1234
>>rot90(Data)
ans=
4812
3711
2610
159
>>tril(Data)
ans=
1000
5600
910110
>>triu(Data)
ans=
1234
0678
001112
5、字符串数组创建与操作实验
(1)创建字符串数组
>>str=str2mat('i','am','a','student')
str=
i
am
a
student
(2)去掉字符串末尾的空格
>>x='an';y=abs(x)
y=
973211032
>>z=deblank(x);w=abs(z)
w=
9732110
(3)删除字符串开头和结尾的空格
>>str1='helloworld';str2='helloworld';
>>x=strtrim(str1);y=strtrim(str2);
>>str1
str1=
helloworld
>>abs(str1)
ans=
323232323210410110810811132119111114108100
>>abs(x)
ans=
10410110810811132119111114108100
>>abs(str2)
ans=
1041011081081113211911111410810032323232323232
>>abs(y)
ans=
10410110810811132119111114108100
(4)执行简单的字符串替代
>>str1='helloboy';
>>str2='boy';
>>str3='girl';
>>str=strrep(str1,str2,str3)
str=
hellogirl
(5)规范格式
>>strread('0.231','%5.3f')
ans=
0.2310
(6)函数strotok找出又特定字符指定的字符串内标记
>>ar='iamaboy'
ar=
iamaboy
>>strtok(ar,'b')
ans=
iama
6、架构数组的创建与操作实验
(1)直接创建法
>>cleara;a.x=[1,2,3,4,5];a.y=ones(4)
a=
x:
[12345]
y:
[4x4double]
(2)命令创建法
>>s=struct('type',{'bif','little'},'color',{'red'},'x',{3,4})
s=
1x2structarraywithfields:
type
color
x
(3)Fieldnames函数
>>s(1,1).type='bif';
>>s(1,1).color='red';
>>s=setfield(s,{1,1},'type','a')
s=
1x2structarraywithfields:
type
color
x
(4)Getfield函数
>>getfield(s,{1,1},'type')
ans=
bif
(5)Setfield函数
>>s(1,1).type='bif';
>>s(1,1).color='red';
>>s=setfield(s,{1,1},'type','a')
s=
1x2structarraywithfields:
type
color
x
7、基本运算符号实验
(1)矩阵加
>>a=[1,2,3;4,5,6;7,8,9];
>>b=[1,1,1;2,2,2;3,3,3];
>>a+b
ans=
234
678
101112
(2)矩阵减
>>a-b
ans=
012
234
456
(3)矩阵乘
>>a*b
ans=
141414
323232
505050
(4)数组乘
>>a.*b
ans=
123
81012
212427
(5)矩阵乘方
>>a^2
ans=
303642
668196
102126150
(6)数组乘方
>>a.^2
ans=
149
162536
496481
(7)矩阵左除
>>a=[1,2,3;4,5,6;7,8,9];
>>b=[2;4;6];
>>a\b
ans=
-0.4667
0.9335
0.1999
(8)矩阵右除
>>a=ones(3);
>>b=[1,1,1];
>>a/b
ans=
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.\b
ans=
3.00003.00003.0000
0.25000.40000.5000
0.28570.50000.6667
(10)数组右除
>>a=[1,2,3;4,5,6;7,8,9];
>>b=[3,6,9;1,2,3;2,4,6];
>>a./b
ans=
0.33330.33330.3333
4.00002.50002.0000
3.50002.00001.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=
001000001
101000101
001000001
001001001
101101101
001001001
001000001
101000101
001000001
(12)逻辑与
>>a=[1,0,1;1,1,1;1,0,1];
>>b=[0,0,1;1,0,1;0,0,1];
>>a&b
ans=
001
101
001
(13)逻辑或
>>a=[1,0,1;1,1,1;1,0,1];
>>b=[0,0,1;1,0,1;0,0,1];a|b
ans=
101
111
101
(14)逻辑非
>>a=[1,0,1;1,1,1;1,0,1];
>>~a
ans=
010
000
010
(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=
100
010
100
8、数值计算实验
(1)范数
>>a=[1,2,3;4,5,6;7,8,9];
>>norm(a,1)
ans=
18
>>norm(a,2)
ans=
16.8481
(2)条件数
>>cond(a)
ans=
5.0524e+016
(3)行列式
>>det(a)
ans=
0
(4)秩
>>rank(a)
ans=
2
(5)特征值
>>eig(a)
ans=
16.1168
-1.1168
-0.0000
>>[V,D]=eig(a)
V=
-0.2320-0.78580.4082
-0.5253-0.0868-0.8165
-0.81870.61230.4082
D=
16.116800
0-1.11680
00-0.0000
(6)化零矩阵
>>Z=null(a)
Z=
-0.4082
0.8165
-0.4082
(7)Cholesky分解
>>a=pascal(3)//pascal矩阵
a=
111
123
136
>>a=pascal(3);chol(a)
ans=
111
012
001
(8)LU分解
>>a=[1,2,3;4,5,6;7,8,9];
>>[L1,U1]=lu(a)
L1=
0.14291.00000
0.57140.50001.0000
1.000000
U1=
7.00008.00009.0000
00.85711.7143
00-0.0000
(9)正交分解
>>a=[1,2,3;4,5,6;7,8,9];
>>[U,S]=qr(a)
U=
-0.12310.90450.4082
-0.49240.3015-0.8165
-0.8616-0.30150.4082
S=
-8.1240-9.6011-11.0782
00.90451.8091
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 科学 计算 数据处理 综合 设计 实验 分析