matlab上机作业

合集下载

MATLAB上机答案

MATLAB上机答案

X
1
2
3
4
5
6
7
8
9
10
Y
16
32
70
142 260 436 682 1010 1432 1960
>> x=1:10;y=[16 32 70 142 260 436 682 1010 1432 1960];
>> p1=polyfit(x,y,1)
>>
p1 =
p2=polyfit(x,y,2),y2=polyval(p2,9.5)
0.01
0.005
0
-0.005
-0.01
-0.015
0
1
2
3
4
5
6
7
(3)大气压强 p 随高度 x 变化的理论公式为
,为验证这一公式,
测得某地大气压强随高度变化的一组数据如表所示。试用插值法和拟合法进行计算并绘图,
看那种方法较为合理,且总误差最小。
高度/m
0
300
600
1000
1500
2000
压强/Pa
equally spaced points between X1 and X2. 以 X1 为首元素,X2 为末元素平均生成 100 个元素的行向量。
LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2.
ans =
pi =
ans =
5
0
3.1416
答:3 次执行的结果不一样。exist()函数是返回变量搜索顺序的一个函数。在第一次

数值分析上机作业(MATLAB)

数值分析上机作业(MATLAB)
代矩阵。根据迭代矩阵的不同算法,可分为雅各比迭代方法和高斯-赛德尔方法。 (a)雅各比算法
将系数矩阵 A 分解为:A=L+U+D
Ax=b
⇔ (D + L +U)x = b ⇔ Dx = −(L + U )x + b ⇔ x = −D −1(L + U )x + D −1b x(k +1) = −D −1 (L + U ) x(k ) + D −1b
输入 A,b 和初始向量 x
迭代矩阵 BJ , BG

ρ(B) < 1?
按雅各比方法进行迭代

|| x (k+1) − x(k) ||< ε ?
按高斯-塞德尔法进行迭代

|| x(k+1) − x (k ) ||< ε ?
输出迭代结果
图 1 雅各布和高斯-赛德尔算法程序流程图
1.2 问题求解
按图 1 所示的程序流程,用 MATLAB 编写程序代码,具体见附录 1。解上述三个问题 如下
16
-0.72723528355328
0.80813484897616
0.25249261987171
17
-0.72729617968010
0.80805513082418
0.25253982509100
18
-0.72726173942623
0.80809395746552
0.25251408253388
0.80756312717373
8
-0.72715363032573
0.80789064377799
9
-0.72718652854079

MATLAB上机内容及作业

MATLAB上机内容及作业

MATLAB上机内容及作业无约束优化求解函数fminsearch和fminunc求解无约束非线性优化问题的函数有fminsearch 函数、fminunc 函数。

函数fminsearch和fminunc功能相同,但fminunc函数可以得到目标函数在最优解处的梯度和Hessian矩阵值。

无约束优化数学模型为:min f(X) X∈R n求解无约束非线性优化问题的步骤为:第一步:先编写目标函数的M文件;第二步:再在命令窗口中调用相应的优化函数。

1、fminsearch函数调用格式为[x, fval]=fminsearch(@myfun, x0)输出参数的含义:x:返回最优解的设计变量的值;fval:在最优设计变量值时,目标函数的最小值;exitflag:返回算法终止的标志,有以下几种情况,>0 表示算法收敛于最优解处;=0 表示算法已经达到迭代的最大次数;<0 表示算法不收敛。

output:返回优化算法信息的一个数据结构,有以下信息:output.iteration 表示迭代次数output.algorithm 表示所采用的算法output.funcCount 表示函数评价次数输入参数的含义:@myfun:目标函数的M文件,在其前要加“@”,或表示为'myfun' ,myfun自己可以任意命名;x0:在调用该优化函数时,需要先对设计变量赋一个初始值;2、fminunc函数的调用格式[x, fval]=fminunc (@myfun, x0)grad:返回目标函数在最优解处的梯度信息;hessian:返回目标函数在最优解处的hessian矩阵信息。

其余含义同上。

3、实例已知某一优化问题的数学模型为:min f(X)=3x12+2x1x2+x22X∈R n用MA TLAB程序编写的代码为:第一步:首先编写目标函数的.m文件,并保存为examplefsearch.m文件(先单击file菜单,后点击New 命令中的M—file,即可打开M文件编辑窗口进行代码的编辑,在英文状态下输入程序代码),代码为:function f=examplefsearch(x)f=3*x(1)^ 2+2*x(1)*x(2)+x(2)^2;第二步:在Command窗口中调用fminsearch函数,代码为:x0=[1;1]; %赋初值[x,fval]=fminsearch(@examplefsearch,x0) %回车即可调用fminsearch函数,得到结果输出最优解结果为:x=1.0e-0.08* -0.7914 0.2260 %分别为x1和x2的最优点的值(近似为0)fval=1.5722e-016 %对应最优点的最优目标函数值(近似为0)4、作业已知几个优化问题的数学模型分别为:(1)min f(X)=0.1935x1 x22 x32(4+6x4) X∈R4(2)min f(X)= (x13+cos x2+log x3)/ e x1 X∈R3(3)min f(X)=2x13+4x1x23 -10x1x2+x33X∈R3试用MATLAB编程分别求解上述优化问题的最优解。

MATLAB期末上机试题带答案

MATLAB期末上机试题带答案

MATLAB 期末上机考试试题带答案版姓名: 学号: 成绩:1.请实现下图:xyy=sin(x)x=linspace(0,8*pi,250); y=sin(x); plot(x,y) area(y,-1) xlabel('x') ylabel('y') title('y=sin(x)') 2.请实现下图:x=linspace(0,2*pi,100); y1=sin(x);subplot(2,2,1)plot(x,y1,'k--')grid onxlabel('x')ylabel('y')title('sin(x)')legend('y=sin(x)')y2=cos(x);subplot(2,2,2)plot(x,y2,'r--')grid onxlabel('x')ylabel('y')title('cos(x)')legend('y=cos(x)')y3=tan(x);subplot(2,2,3)plot(x,y3,'k-')grid onxlabel('x')ylabel('y')title('tan(x)')legend('y=tan(x)')y4=cot(x);subplot(2,2,4)plot(x,y4)grid onxlabel('x')ylabel('y')title('cot(x)')legend('y=cot(x)')3.解方程组:a=[3 2 1;1 -1 3;2 4 -4];b=[7;6;-2] ;x=a\b4.请实现下图:yxx=linspace(0,4*pi,1000);y1=sin(x);y2=sin(2*x);plot(x,y1,'--',x,y2,'b*')grid onxlabel('x');ylabel('y');title('耿蒙蒙')legend('sin(x)','sin(2*x)')5.请在x,y在(-2,2)内的z=xexp (-x2-y2) 绘制网格图[x,y]=meshgrid(-2:0.1:2);z=x.*exp (-x.^2-y.^2);mesh(x,y,z)6.请实现peaks函数:-55xPeaksy[x,y]=meshgrid(-3:1/8:3); z=peaks(x,y); mesh(x,y,z) surf(x,y,z) shading flataxis([-3 3 -3 3 -8 8])xlabel('x');ylabel('y');title('Peaks')7.请在x=[0,2],y=[-0.5*pi,7.5*pi],绘制光栅的振幅为0.4的三维正弦光栅。

数值分析作业-matlab上机作业

数值分析作业-matlab上机作业

数值分析———Matlab上机作业学院:班级:老师:姓名:学号:第二章解线性方程组的直接解法第14题【解】1、编写一个追赶法的函数输入a,b,c,d输出结果x,均为数组形式function x=Zhuiganfa(a,b,c,d)%首先说明:追赶法是适用于三对角矩阵的线性方程组求解的方法,并不适用于其他类型矩阵。

%定义三对角矩阵A的各组成单元。

方程为Ax=d%b为A的对角线元素(1~n),a为-1对角线元素(2~n),c为+1对角线元素(1~n-1)。

% A=[2 -1 0 0% -1 3 -2 0% 0 -2 4 -3% 0 0 -3 5]% a=[-1 -2 -3];c=[-1 -2 -3];b=[2 3 4 5];d=[6 1 -2 1];n=length(b);u(1)=b(1);y(1)=d(1);for i=2:nl(i)=a(i-1)/u(i-1);%先求l(i)u(i)=b(i)-c(i-1)*l(i);%再求u(i)%A=LU,Ax=LUx=d,y=Ux,%Ly=d,由于L是下三角矩阵,对角线均为1,所以可求y(i)y(i)=d(i)-l(i)*y(i-1);endx(n)=y(n)/u(n);for i=(n-1):-1:1%Ux=y,由于U是上三角矩阵,所以可求x(i)x(i)=(y(i)-c(i)*x(i+1))/u(i);end2、输入已知参数>>a=[2 2 2 2 2 2 2];>>b=[2 5 5 5 5 5 5 5];>>c=[2 2 2 2 2 2 2];>>d=[220/27 0 0 0 0 0 0 0];3、按定义格式调用函数>>x=zhuiganfa(a,b,c,d)4、输出结果x=[8.147775166909105 -4.073701092835030 2.036477565178471 -1.017492820111148 0.507254485099400 -0.250643392637350 0.119353996493976 -0.047741598597591]第15题【解】1、编写一个程序生成题目条件生成线性方程组A x=b 的系数矩阵A 和右端项量b ,分别定义矩阵A 、B 、a 、b 分别表示系数矩阵,其中1(10.1;,1,2,...,)j ij i i a x x i i j n -==+=或1(,1,2,...,)1ij a i j n i j ==+-分别构成A 、B 对应右端项量分别a 、b 。

matlab上机练习(附答案)

matlab上机练习(附答案)

1.以下两种说法对吗?(1)MATLAB进行数值的表达精度与其指令窗中的数据显示精度相同。

(2)MATLAB指令窗中显示的数据有效位数不超过七位。

2.历史指令窗所记录的内容与diary指令所产生的“日志”内容有什么不同?DIARY filename causes a copy of all subsequent command window inputand most of the resulting command window output to be appended to thenamed file. If no file is specified, the file 'diary' is used.DIARY OFF suspends it.DIARY ON turns it back on.DIARY, by itself, toggles the diary state.Use the functional form of DIARY, such as DIARY('file'),when the file name is stored in a string.3.如何把用户自己的“工作目录”永久地设置在MATLAB的搜索路径上?“位于搜索路径上的目录”与“当前目录”在MATLAB中的功用相同吗?4.如何向MATLAB工作空间输入一个含有100个左右元素的一维或二维数值数组?用直接键入法?用数组编辑器?用M文件编辑器?5.运用数组算术运算符去掉下面程序里的for/end循环:x=11:15for k=1:length(x)z(k)=x(k)^2+2.3*x(k)^0.5;endx=11:15 z1=x.^2+2.3*x.^0.56.不使用数组算术运算符,重写下面的程序代码:x=[2 1 4]z=1./(1+x.^2)x=2;k=1;while i<=4,z2(k)=1/(1+i^2);i=i+1;x=x+1;end7.某公司销售电脑打印机的价格方案如下:()如果顾客只买一台打印机,则一台的基本价格为$150。

Matlab基础及应用第一章上机作业

Matlab基础及应用第一章上机作业

1、新建一个文件夹(自己的名字命名)
答:
2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。

保存,关闭对话框。

使用path命令查看MATLAB搜索路径。

3、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye。

4、使用clc、clear,观察command window、command history和workspace等窗口的变化结果。

5、编写一段简短的脚本文件,保存并显示运行结果。

6、创建两个double型变量a=32、b=5,并计算a+b、a-b、a*b、a/b、a\b;
创建两个int8型变量a、b,取同样数值,并计算a+b、a-b、a*b、a/b、a\b,对于计算结果与前次计算结果不同的情形请给出解释。

7、查看int16数据类型的取值范围(intmin,intmax);查看单精度数据类型的取值范围和精度(realmin,realmax,eps)。

8、求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量:
(1)sin(60o) (2) e3 (3) cos(3/4π)
9、用两种定义复数的方法计算(直接定义,complex(a,b))
(1)(3-5i)(4+2i) (2) sin(2-8i)。

matlab上机习题答案

matlab上机习题答案

matlab上机习题答案Matlab上机习题答案在现代科学和工程领域中,计算机编程和数值计算已经成为必不可少的技能。

而Matlab作为一种强大的数值计算软件,被广泛应用于各种领域。

为了帮助学习者更好地掌握Matlab的基本操作和数值计算方法,老师们经常会布置一些上机习题,让学生通过实际操作来加深对Matlab的理解。

下面我们来看一些常见的Matlab上机习题答案:1. 编写一个Matlab程序,计算并输出1到100之间所有奇数的和。

答案:```matlabsum = 0;for i = 1:2:100sum = sum + i;enddisp(sum);```2. 编写一个Matlab程序,计算并输出斐波那契数列的前20个数字。

答案:```matlabfib = zeros(1,20);fib(1) = 1;fib(2) = 1;for i = 3:20fib(i) = fib(i-1) + fib(i-2);enddisp(fib);```3. 编写一个Matlab程序,求解一元二次方程ax^2 + bx + c = 0的根。

答案:```matlaba = 1;b = -3;c = 2;delta = b^2 - 4*a*c;if delta < 0disp('无实根');elseif delta == 0x = -b / (2*a);disp(x);elsex1 = (-b + sqrt(delta)) / (2*a);x2 = (-b - sqrt(delta)) / (2*a);disp(x1);disp(x2);end```通过以上几个例子,我们可以看到,Matlab的语法简洁明了,功能强大。

通过编写程序来解决实际问题,不仅加深了对Matlab的理解,也提高了计算机编程和数值计算的能力。

希望大家在学习Matlab的过程中能够多多练习,不断提高自己的编程水平。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一次 上机作业
1.写出完成下列操作的命令:
1) 将矩阵A 的第2~5行中的第1,3,5列元素赋给矩阵B
B=A(:,1:3:5)
2) 删除矩阵A 的第7号元素
A(7)=[]
3) 将矩阵A 的每个元素值加30
A=A+30
4) 求矩阵A 的大小和维数
Whos size(A)
5) 将含有12个元素的向量x 转换成3×4矩阵
Y=reshape(x,3,4)
2.下列命令执行后,L1、L2、L3、L4的值分别是多少?
A=1:9; B=10-A;
L1=A= =B;
L2=A< =5;
L3=A>3&A<7;
L4=find(A>3&A<7);
L1= 0 0 0 0 1 0 0
L2=1 1 1 1 1 0 0
L3=0 0 0 1 1 1 0
L4=4 5 6
3.已知:
A=⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡---14.35454.9632053256545410778.01023
完成下列操作:
(1)取出A的前3行构成矩阵B,前两列构成矩阵C,右下角3×2子矩阵构成矩
阵D,B与C的乘积构成矩阵E
B=A(1:3,:) C=A(:,1:2) D=A(2:4,3:4) E=B*C
(2)分别求E<D、E&D、E|D、~E|~D和find(A>=10&A<25)。

1.E<D
0 1
0 0
0 1
2.E&D
1 1
0 1
1 1
3.E|D
1 1
1 1
1 1
4.~E|~D
0 0
1 0
0 0
5.find(A>=10&A<25)
1
5
4.用结构体矩阵来储存5名学生的基本情况数据,每名学生的数据包括学号、姓名、专业和6门课程的成绩。

例如
a(1).x1=1;a(1).x2=’name’;a(1).x3=’grade’;a(1).x4=’number’;a(1).x5=[XX,XX,X];
5.建立单元矩阵B并回答有关问题。

B{1,1}=1;
B{1,2}=`Brenden`;
B{2,1}=reshape(1:9,3,3);
B{2,2}={12,34,2; 54,21,3; 4,23,67};
(1)size(B)和ndims(B)的值分别是多少?
(2)B(2)和B(4)的值分别是多少?
(3)B(3)=[]和B{3}=[]执行后,B的值分别是多少?
1.size(B)
ans=
4 3
ndlims(B)
ans=
2
2.>>B(2)
ans=
7
B(4)
ans=
1
3.B(3)=[]
B=
1 7 1 11 8 5
2 12 9 6 3
6.在[0,3π]区间,求y=sin(x)的值。

要求:
(1)消去负半波,即(π,2π)区间内的函数值置0。

(2) (π/3, 2π/3 )和(7π/3, 8π/3 )区间内取值均为sin π/3 。

提示:
先根据自变量向量x产生函数值向量y,然后按要求对y进行处理。

处理的
思路有两个:一是从自变量着手进行处理,二是从函数值着手进行处理。

(1) x=0:pi/100:3*pi
y=sin(x)
y1=(x<pi|x>2*pi).*y
(2)q=(x>pi/3&x<2*pi/3)|(x<7*pi/3&x<8*pi/3)
qn=-q
y2=q*sin(pi/3)+qn.*y1
7.写出完成下列操作的命令:
1)建立3阶单位矩阵。

a=eye(3)
a=
1 0 0
0 1 0
0 0 1
2)建立5×6随机矩阵A,其元素为[100,200]范围内的随机整数。

A=100+(200-100)*rank(5,6)
3)产生均值为1,方差为0.2的500个正态分布的随机数。

y=1+sqrt(0.2)*randn(50,10)
4)产生和A同样大小的幺矩阵。

ones(size(A))
5)将矩阵A对角线的元素加30。

B=diag(A)+30
6)从矩阵A提取主对角线元素,并以这些元素构成对角阵B.
B=diag(A)
8.使用函数,实现方阵左旋900或右旋900的功能。

例如,原矩阵为A, A左旋后得到B, 右旋后得到C。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=129631185210741A ,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=321654987121110B ,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1011
12789456123C A=[1,3,4,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(A,3)
9.求下面线性方程组的解 ⎪⎩
⎪⎨⎧=+=+-=-+83121023224y x z y x z y x
A=[4,2,-1;3,-1,2;12,3,0] B=[2,10,8]’;
x=inv(A)*B
x=
-6.0000
26.6667
27.3333。

相关文档
最新文档