Matlab实验四答案

合集下载

《MATLAB仿真技术》实验指导书2016附答案分析

《MATLAB仿真技术》实验指导书2016附答案分析

实验项目及学时安排实验一 MATLAB环境的熟悉与基本运算 2学时实验二 MATLAB数值计算实验 2学时实验三 MATLAB数组应用实验 2学时实验四 MATLAB符号计算实验 2学时实验五 MATLAB的图形绘制实验 2学时实验六 MATLAB的程序设计实验 2学时实验七 MATLAB工具箱Simulink的应用实验 2学时实验八 MATLAB图形用户接口GUI的应用实验 2学时实验一 MATLAB环境的熟悉与基本运算一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。

2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。

MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7 两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数三、实验内容1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)2、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。

3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MA TLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。

matlab实验指导答案详解(非常详细正确)

matlab实验指导答案详解(非常详细正确)

实验一 MATLAB 工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。

二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。

三、实验步骤:1、启动MATLAB ,熟悉MATLAB 的桌面。

2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。

(1)(365-52⨯2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667(2)>>area=pi*2.5^2 area = 19.6350(3)已知x=3,y=4,在MATLAB 中求z :()232y x y x z -= >>x=3 >>y=4>>z = x ^2 * y ^3 / (x - y) ^2 z = 576(4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。

m1=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡11514412679810115133216 执行以下命令>>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6>>m1( : , 3 ) ans =3 10 6 15>>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34(5)执行命令>>help abs查看函数abs 的用法及用途,计算abs( 3 + 4i ) (6)执行命令>>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y)(6)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。

MATLAB)课后实验答案

MATLAB)课后实验答案

实验一 MATLAB 运算基础1、 先求下列表达式得值,然后显示MATLAB 工作空间得使用情况并保存全部变量。

(1) 0122sin 851z e =+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0、5:2、5 解:4、 完成下列操作:(1) 求[100,999]之间能被21整除得数得个数。

(2) 建立一个字符串向量,删除其中得大写字母。

解:(1) 结果:(2)、 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果就是:实验二 MATLAB 矩阵分析与处理1、 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵与对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。

解: M 文件如下;5、 下面就是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程得解。

(2) 将方程右边向量元素b 3改为0、53再求解,并比较b 3得变化与解得相对变化。

(3) 计算系数矩阵A 得条件数并分析结论。

解: M 文件如下:实验三 选择结构程序设计1、 求分段函数得值。

2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5、0,-3、0,1、0,2、0,2、5,3、0,5、0时得y 值。

matlab实验4_循环结构程序设计_参考解答

matlab实验4_循环结构程序设计_参考解答

高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
clear all; close all; clc; y=0; n=1; while y<3
y=y+1/(2*n-1); n=n+1; end n=n-1; y=y-1/(2*n-1) n=n-1
运行结果:
y= 2.9944
x1=a/(b+x0); y=abs(x1-x0); x0=x1;
MATLAB 语言
3
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
clear all; close all; clc; prime=[]; for n=2:49
x=n*(n+1)-1; signx=0; for k=2:sqrt(x)
MATLAB 语言
5
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
根据
π2 6
=1 12
+
1 22
+1 32
+"+
1 n2
,求 π 的近似值。当
n
分别取
100、1000、10000
时,
结果是多少?
要求:分别用循环结构和向量运算(使用 sum 函数)来实现。 答:程序设计:
(1) 循环结构

matlab实验内容答案

matlab实验内容答案

m a t l a b实验内容答案(总16页) -本页仅作为预览文档封面,使用时请删除本页-实验报告说明:matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。

第一次实验内容:实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法。

2.熟悉MATLAB 命令窗口的组成。

3.掌握建立矩阵的方法。

4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。

二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1)22sin8511z e ︒=+ (2)12ln(2z x =,其中2120.455i +⎡⎤=⎢⎥-⎣⎦(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02a ae e z a a --=+=--- 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。

(4)2220141122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪--≤<⎩,其中t =0::提示:用逻辑表达式求分段函数值。

2.已知12344347873657A -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,131203327B -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(1) A+6=B 和A-B+I(其中I 为单位矩阵)。

(2) A*B 和A.*B 。

(3) A^3和A^.3 。

(4) A/B 和B\A 。

(5)[A ,B]和[A([1,3],;);B^2] 。

3.设有矩阵A 和B12345678910111213141516171819202122232425A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦, 30161769023497041311B ⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎣⎦(1) 求它们的乘积C 。

(2) 将矩阵C 的右下角3×2子矩阵赋给D(3) 查看MATLAB 工作空间使用情况。

MATLAB)课后实验答案

MATLAB)课后实验答案

实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1) 0122sin851z e =+ (2) 221ln(1)2z x x =++,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=-- (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解: M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) t=0:0.5:2.5; z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)运算结果:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1) z1 =0.2375z2 =0.7114 - 0.0253i 0.8968 + 0.3658i0.2139 + 0.9343i 1.1541 - 0.0044i2. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵)(2) A*B 和A.*B(3) A^3和A.^3(4) A/B 及B\A(5) [A,B]和[A([1,3],:);B^2]解: M 文件:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*BA-B+eye(3)A*BA.*BA^3A.^3A/BB\A[A,B][A([1,3],:);B^2]运算结果:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*BA-B+eye(3)A*BA.*BA^3A.^3A/BB\A[A,B][A([1,3],:);B^2]ans =18 52 -1046 7 10521 53 49ans =12 31 -332 8 840 67 1 ans =68 44 62309 -72 596154 -5 241 ans =12 102 468 0 2619 -130 49 ans =37226 233824 48604247370 149188 60076678688 454142 118820 ans =1728 39304 -6439304 343 65850327 274625 343 ans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 -134.0000 68.0000ans =109.4000 -131.2000 322.8000-53.0000 85.0000 -171.0000-61.6000 89.8000 -186.2000ans =12 34 -4 1 3 -134 7 87 2 0 33 65 7 3 -2 7 ans =12 34 -43 65 74 5 111 0 1920 -5 403. 设有矩阵A和B1234530166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ (1) 求它们的乘积C 。

MATLAB程序设计及应用(第二版)课后实验答案

MATLAB程序设计及应用(第二版)课后实验答案

Matlab课后实验题答案实验一 MATLAB运算基础1。

先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。

(1)0 122sin851ze =+(2)21ln(2z x=,其中2120.455ix+⎡⎤=⎢⎥-⎣⎦(3)0.30.330.3sin(0.3)ln, 3.0, 2.9,,2.9,3.0 22a ae e az a a--+=++=--(4)2242011122123t tz t tt t t⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t=0:0.5:2。

52. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A —B+I (其中I 为单位矩阵) (2) A*B 和A 。

*B (3) A^3和A.^3 (4) A/B 及B\A(5) [A,B ]和[A([1,3],:);B^2] 解:3. 设有矩阵A 和B123453166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C 。

(2) 将矩阵C 的右下角3×2子矩阵赋给D 。

(3) 查看MATLAB 工作空间的使用情况。

4。

完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。

(2) 建立一个字符串向量,删除其中的大写字母。

解:(1) 结果:(2)。

建立一个字符串向量例如: ch=’ABC123d4e56Fg9’;则要求结果是:实验二 MATLAB 矩阵分析与处理1。

设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。

matlab数学实验胡良剑第四章

matlab数学实验胡良剑第四章

第四章%Exercise 1(1)p=[1 1 1];x=roots(p)polyval(p,x) %验算,结果应为零%Exercise 1(2)roots([3 0 -4 0 2 -1])%Exercise 1(3)p=zeros(1,24);p([1 17 18 22])=[5 -6 8 -5]; %这样比直接写24个系数简短。

x=roots(p)polyval(p,x) %验算,结果应为零%Exercise 1(4)p1=[2 3];p2=conv(p1, p1);p3=conv(p1, p2);p3(end)=p3(end)-4; %原p3最后一个分量-4x=roots(p3)polyval(p3,x) %验算,结果应为零%Exercise 2fun=inline('x*log(sqrt(x^2-1)+x)-sqrt(x^2-1)-0.5*x');fzero(fun,2) %注意定义域,初值须大于1%Exercise 3fun=inline('x^4-2^x');fplot(fun,[-2 2]);grid on;fzero(fun,-1),fzero(fun,1),fminbnd(fun,0.5,1.5)%Exercise 4fun=inline('x*sin(1/x)','x');fplot(fun, [-0.1 0.1]);x=zeros(1,10);for i=1:10, x(i)=fzero(fun,(i-0.5)*0.01);end;x=[x,-x]%Exercise 5fun=inline('[9*x(1)^2+36*x(2)^2+4*x(3)^2-36;x(1)^2-2*x(2)^2-20*x(3);16*x(1)-x(1)^3-2*x(2)^2-16*x(3)^2]','x');[a,b,c]=fsolve(fun,[0 0 0])%Exercise 6fun=@(x)[x(1)-0.7*sin(x(1))-0.2*cos(x(2)),x(2)-0.7*cos(x(1))+0.2*sin(x(2))];[a,b,c]=fsolve(fun,[0.5 0.5]) %初值0<x(1)<1, 0<x(2)<1%Exercise 7clear; close; t=0:pi/100:2*pi;x1=2+sqrt(5)*cos(t); y1=3-2*x1+sqrt(5)*sin(t);x2=3+sqrt(2)*cos(t); y2=6*sin(t);plot(x1,y1,x2,y2); grid on; %作图发现4个解的大致位置,然后分别求解y1=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.5,2])y2=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.8,-2])y3=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[3.5,-5])y4=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[4,-4])%Exercise 8(1)clear;str='x.^2.*sin(x.^2-x-2)'; %注意数组点运算fun=inline(str);fplot(fun,[-2 2]);grid on; %作图观察x(1)=-2;x(3)=fminbnd(fun,-1,-0.5);x(5)=fminbnd(fun,1,2);fun2=inline(['-',str]);x(2)=fminbnd(fun2,-2,-1);x(4)=fminbnd(fun2,-0.5,0.5);x(6)=2feval(fun,x)%答案: 以上x(1)(3)(5)是局部极小,x(2)(4)(6)是局部极大,从最后一句知道x(1)全局最小,x(2)最大。

MATLAB相关的实验以及答案

MATLAB相关的实验以及答案

y=zeros(size(x)); i=numel(x); for j=1:i if (x(j)>=0) y(j)=-3*x(j)^2+5; else y(j)=3*x(j)^2+5; end end x y
4. 编写一程序,求出 编写一程序,求出[100 1000]以内的全部素数。 以内的全部素数。 以内的全部素数 num=[ ]; i=1; for k1=100:1000 k2=fix(sqrt(k1)); sign=1; for k3=2:k2 if mod(k1,k3)==0 sign=0; break end end if sign==1 num(i)=k1; i=i+1; end end num
6. 建立函数count(x),其中x为一个班的学生成绩,统 建立函数 ,其中 为一个班的学生成绩, 为一个班的学生成绩 计该班学生成绩,其中优秀:成绩≥90,良好:80≤ 计该班学生成绩,其中优秀:成绩 ,良好: 成绩<90,中等:70≤成绩 成绩<80,及格:60≤成绩 成绩<70, 成绩 ,中等: 成绩 ,及格: 成绩 , 不及格:成绩<60,分别输出优秀、良好、中等、不 不及格:成绩 ,分别输出优秀、良好、中等、 及格的人数,要求有输入、输出提示语句。例如: 及格的人数,要求有输入、输出提示语句。例如: >> count 请输入该班学生成绩: %输出提示 请输入该班学生成绩: 输出提示 [34 67 98 89 78] %输入成绩 输入成绩 成绩优秀: %输出结果 成绩优秀:1 输出结果 成绩良好: 成绩良好:1 成绩中等: 成绩中等:1 成绩及格: 成绩及格:1 成绩不及格: 成绩不及格:1
2. 输入三角形的三条边,求三角形的面积。如果输入 输入三角形的三条边,求三角形的面积。 的三个数不能构成三角形,要求输出“ 的三个数不能构成三角形,要求输出“不能构成一个 三角形”这样的提示信息。 三角形”这样的提示信息。 提示: 提示: area = s(s −a)(s −b)(s −c) s = (a +b + c) / 2 a=input('a='); b=input('b='); c=input('c='); if (a+b>c)&(a+c>b)&(b+c>a) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)) else fprintf(‘不能构成一个三角形 不能构成一个三角形\n’) 不能构成一个三角形 end

MATLAB全部实验及答案

MATLAB全部实验及答案

MATLAB全部实验及答案MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤4、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B 与A.*B?A*B就是线代里面的矩阵相乘A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。

clear,clca=[1 -2 3;4 5 -4;5 -6 7];[x,y]=find(a<0);c=[];for i=1:length(x)c(i,1)=a(x(i),y(i));c(i,2)=x(i);c(i,3)=y(i);c(i,4)=(y(i)-1)*size(a,2)+x(i);endc(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那个是虚数矩阵,后面那个出错(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?a^2= 22 16 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B5、已知+?=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。

MATLAB原理及应用实验报告第四章答案

MATLAB原理及应用实验报告第四章答案

《MATLAB 原理及应用》实验报告三.课后练习题答案1.为 ⎪⎩⎪⎨⎧<-=>+=01001x x x xx x y 编写赋值程序。

程序如下:①建立如下的M 文件:x=input('x=');%让用户通过键盘输入数值、字符串或表达式if x>0y=x+1;elseif x==0y=x;else x<0y=x-1;e nd程序执行结果如下>> kh1 %在当前工作目录下,文件名为“kh.1.m ” x=1>> yy =22.使用for ... end循环的array向量编程求出1+3+5...+100 的值程序如下:sum=0;>> for k=1:2:100sum=sum+k;end>> sumsum =25003.计算1+3+5...+100 的值,当和大于1000时终止计算。

程序如下:sum=0;for m=1:2:100; %建立1 3 5….100的向量if sum<=1000 %如果sum小于1000则可以继续加sum=sum+m; %累加elsebreak; %若sum的结果不符合条件就跳出整个循环endend结果为:sum =1024k =653.1计算从1开始多少个自然数之和超过100。

程序如下:>> sum=0;n=0;>> while sum<=100n=n+1;sum=sum+n;end结果为:n =14sum =1054.求1!+2!+3!+……+8!的值程序如下:n=1;sum=1;for m=2:8; %循环7次使得得到各次阶乘n=n*m;sum=sum+n; %累加end结果为:sum =462335.写程序,判断一年是否为闰年,符合下面两条件之一:(1990~2014)A、能被4整除,不能被100整除B、能被400整除程序如下count=0;for y=1990:2014;if((rem(y,4)==0&rem(y,100)~=0)|(rem(y,4)==0&rem(y,400)~=0));count=count+1;endend结果为:count =5。

实验4答案 Matlab程序设计1

实验4答案 Matlab程序设计1

实验4 Matlab 程序设计1实验目的:1、 掌握建立和执行M 文件的方法;2、 掌握实现选择结构的方法;3、 掌握实现循环结构的方法。

实验内容:1. 从键盘输入一个4位整数,按如下规则加密后输出。

加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。

a = input('请输入一个四位整数:');a1 = fix(a/1000);a2 = rem(fix(a/100),10);a3 = rem(rem(fix(a/10),100),10);a4 = rem(a,10);a1 = rem(a1+7,10)a2 = rem(a2+7,10)a3 = rem(a3+7,10)a4 = rem(a4+7,10)b1 = a1;a1 = a3;a3 = b1;b2 = a2;a2 = a4;a4 = b2;b = a1*1000+a2*100+a3*10+a42. 求分段函数的值。

,x x x x y x x x x x x x ⎧+- <≠-⎪=-+ ≤<≠≠⎨⎪-- ⎩2226035605231且且及其他用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。

x = input(请输入X 的值:');if x <0 & x~=-3y = x.*x +x-6;elseif x>=0 & x<5 & x~=2 & x~=3y = x.*x-5*x+6;elsey = x.*x-x-1;endy3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:(1)分别用if语句和swich语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

MATLAB实验四 矩阵分析答案

MATLAB实验四 矩阵分析答案

实验四 矩阵分析1.实验内容(1)使用函数,实现方阵左旋90°或右旋90°的功能。

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

使用函数rot90(A,k)来实现;⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=129631185210741A ,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=321654987121110B ,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=101112789456123C >> A=[1,4,7,10;2,5,8,11;3,6,9,12]A =1 4 7 102 5 8 113 6 9 12>> B=rot90(A)B =10 11 127 8 94 5 61 2 3>> C=rot90(A,3)C =3 2 16 5 49 8 712 11 10(2)建立一个方阵A ,求A 的逆矩阵和A 的行列式的值,并验证A 与A-1是互逆的。

>> A=[-1,2,0;-2,3,0;3,0,2]A =-1 2 0-2 3 03 0 2>> inv(A)ans =3.0000 -2.0000 02.0000 -1.0000 0-4.5000 3.0000 0.5000>> A^-1ans =3.0000 -2.0000 02.0000 -1.0000 0-4.5000 3.0000 0.5000>> A*A^-1ans =1.0000 -0.0000 00.0000 1.0000 0-0.0000 0.0000 1.0000>> det(A)ans =2(3)求下列矩阵的主对角线元素、上三角阵、下三角阵、秩和迹。

参考教材1)⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--=901511250324153211A 2) ⎥⎦⎤⎢⎣⎡-=2149.824343.0B >> A=[1,-1,2,3;5,1,-4,2;3,0,5,2;11,15,0,9]A =1 -12 35 1 -4 23 0 5 211 15 0 9>> B=[0.43,43,2;-8.9,4,21]B =0.4300 43.0000 2.0000 -8.9000 4.0000 21.0000 >> diag(A)ans =1159>> diag(B)ans =0.43004.0000>> triu(A)ans =1 -12 30 1 -4 20 0 5 20 0 0 9>> tril(A)ans =1 0 0 05 1 0 03 0 5 011 15 0 9>> triu(B)ans =0.4300 43.0000 2.00000 4.0000 21.0000>> tril(B)ans =0.4300 0 0-8.9000 4.0000 0>> rank(A)ans =4>> rank(B)ans =2>> trace(A)ans =16>> trace(B)ans =4.4300(4)求矩阵A 的特征值。

MATLAB实验四:MATLAB程序设计 参考答案

MATLAB实验四:MATLAB程序设计 参考答案

function y=f(x) y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14)
河南财经政法大学数学与信息科学学院
6
实验报告
f(1)*f(2)+f(3)
function f=f(a,b,c) f=g(a)*g(b)+g(c)^2; function g=g(x) g=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14);
a=rand(1,100); [b,c]=sort(a); index=c(1); i=1; while i<=7 if i==8 disp('You Lost!'); i=i+1; else d=input('please input the number you guess:'); if d>index disp('High'); elseif d<index disp('Low'); elseif d==index disp('You won!'); i=9;
syms i j k l n i=1;k=0; n=input('Input n:'); for j=1:n i=i*j; k=k+j; end fprintf('%d!=%d \n Sum(1,...,%d)=%d\n',n,i,n,k);
4、用 while-end 循环语句求不超过 1000 的偶数之和,并求显示出最大值。 s=0,n=0; while s<=1000 n=n+2; s=s+n; if s>1000 break end

数学实验4(程序设计)参考答案

数学实验4(程序设计)参考答案

实验4 MATLAB 程序设计一、实验目的:1.理解命令式M 文件和函数式M 文件的关系及各自的特点;2.掌握MATLAB 中关系运算和逻辑运算的正确使用方法;3.掌握MATLAB 中两种循环结构及选择结构的正确使用方法;4.能够编制简单的程序解决实际问题。

二、实验内容:1.满足条件01=a ,12=a ,…,n n n a a a +=++12(n=0,1,…)的数列称为Fibonacci 数列,(1)编写一个MATLAB 函数式M 文件fibo.m 来计算Fibonacci 数列的任意项的数值;(2)计算数列中第50项的数值并给出程序运行所用的时间;(3)编写一个MATLAB 命令式M 文件调用函数式M 文件fibo.m 来计算Fibonacci 数列的前n 项和的值;给出n=50时的结果。

(1)计算Fibonacci 数列的程序function x=fibo(n)if n<1|fix(n)~=ndisp('N must be a positive integer.');elseif n==1;x=0;elseif n==2x=[0,1];elsex=zeros(1,n);x(1)=0;x(2)=1;for k=3:nx(k)=x(k-1)+x(k-2);endend(2)计算数列中第50项的数值x= fibo(50);ticF=x(50)toc(3)Fibonacci 数列的前50项和的值x= fibo(50);FF=sum(x)2.利用下面的公式计算π的值14134171513114---++-+-=N N π,选择不同的N 值,比较结果的精确度。

function PI=hw2(n)if n<1|fix(n)~=ndisp('N must be a positive integer.');elsePI=0;for k=1:nx=1/(4*k-3)-1/(4*k-1);PI=PI+x;endendPI=4*PI;n N的最小正整数n。

matlab第四章部分课后答案

matlab第四章部分课后答案
elseifx>=3.5 &x<5.5
y=log(abs(b+c/x))
else
disp('input error');
end
a=input('a=');
b=input('b=');
c=input('c=');
x=input('0.5=<x<5.5=');
switchround(x)
case{1}
y=a*x^2+b*x+c
matlab第四章部分课后答案统计学第四章课后答案matlab第四章答案matlab课后习题答案matlab课后实验答案matlab第二版课后答案matlab刘卫国课后答案matlab课后答案matlab教程课后答案matlab张志涌课后答案
第四章
1.
A=input('输入四位整数A');Sign=1;cFra bibliotekse{2,3}
y=a*sin(b)^c+x
case{4,5}
y=log(abs(b+c/x))
otherwise
disp('input error');
end
3.
A=floor(rand(1,20)*89+10)
A =
11 76 49 92 51 47 85 56 28 69 84 11 70 43 84 54 73 48 37 26
A=D*1000+E*100+B*10+C
A=Sign*A;
2.
a=input('a=');
b=input('b=');

Matlab实验四答案.doc

Matlab实验四答案.doc

实验四采用SIMULINK的系统仿真一、实验目的:1、熟悉SIMULINK工作环境及特点2、掌握线性系统仿真常用基本模块的用法3、掌握SIMULINK的建模与仿真方法4、子系统的创建和封装设计二、实验基本知识:1.了解SIMULINK模块库中各子模块基本功能妒1)2. SIMUL1NK 的建模与仿真方法(1) 打开枚块库,找出相应的模块。

鼠标左键点击相应模块,拖拽到模型窗门屮即呵。

(2) 创建子系统:当模型人而复杂吋,可创建子系统。

(3) 设置仿真控制参数。

三、实验内容|untitled.mat |To File 输出仿真数据到文件simout To Workspace 输出仿真数据到工作空间练习A1. SIMULINK仿真实际应用(1) 双环调速的电流环系统的方框图模型为:阁中参数设为Ks=44; Ts=0.00167; Ta=0.017; R= 1 ; Tm=0.075 ; Ce=0.1925; Kt=0.01178; T 1=0.049;T2=0.088,(1)在Simulink集成环境K建立模型,在给定信号作川点处输入单位给定阶跃响应信号,0.3 秒后在扰动信号点输入单位阶跃响应信号。

并绘制相应的响应曲线(2)计算仿真结果的超调量、上升吋间、调节时间、稳态误差。

⑶没计PID调节器荇代图屮的比例积分调节器,调节K P,Ti,T d用使系统满足超调呈15%,上升吋间0.3s,调节吋间0.4s的要求。

(4)要求对加入的PID控制器封装成-个模块使用Gain3 DerivativeInlOut! JSubsystemWarning: Unable to reduce the step size without violating minimum step size of 1.06581410364015e-015 at time 0.300000000000001. Continuing simulation with the step size restricted to 1.06581410364015e-() 15 and using an effective relative error tolerance of 0.01352380952376598, which is greater than the specified relative error tolerance of 0.001.» wentai=y(end)chaotiao= 100*(max(y)-wentai)/wentailNDEXtm=find(max(y)==y);Tm=t(INDEXtm);TT=t(find((ab$(y-wcntai)/wcntai)>0.05));Ts=max(TT)m=length(y);for i=l:mif y(i)>0.9*wcntaitime90=t(i);break;endendfor i=l:mif y(i)>0.1*wentaitimelO=t(i);break;endendTr=time90-time 10 wentai =84.8916chaotiao =8.4258Ts =0.4595Tr =0.0410» plot(t,y)90807D005040302010Q01 23456789 10。

答案

答案

(必做题)MATLAB 实验一:矩阵的使用1. 略2. 在matlab 的命令窗口里完成如下计算,其中t 的值分别取-1,0,1,表达式如下:4/3)t y e π-= function myfun1t=-1:1;y=sqrt(3)/2*exp(-4*t).*sin( 4*sqrt(3*t)+pi/3 );disp(y);3.自行产生一个5行5列的数组,得到最中间的三行三行矩阵。

Function myfun3A=magic (5);B=A ([2:4],[2:4]);Disp(B);4. 用magic 产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置function myfun4a=magic(5);b=a([1,3,2,4,5],:);disp(b);5. 求方程组的根 x 1+4x 2-3x 3=22x 1+5x 2-x 3=11x 1+6x 2+x 3=12A=[1 4 -3;2 5 -1;1 6 1];B=[2;11;12];X=inv(A)*B;disp(X);6. 已知:一个多项式的系数向量是p=[1 -6-72 -27],求这个多项式的根。

function myfun6p=[1 -6 -72 -27];y=roots(p);disp(y);7. 已经两个多项式的系数分别是:[1 2 3 4]和[1 4 9 16],请求这两个多项式的乘积,及商和余数。

function myfun7a=[1 2 3 4];b=[1 4 9 16];c=conv(a,b);[s,r]=deconv(a,b);disp(c);disp(s);disp(r);8.给定一个多项式的根是[-5 -3+4i -3-4i],求原来的多项式function myfun8r=[-5 -3+4i -3-4i];p=poly(r);disp(poly2sym(p)); %disp是用于程序中9. A=[2 3 4;1 5 7;6 2 5]用什么函数,保证第一列排序的时候,其他列跟着变化。

matlab课后习题答案第四章

matlab课后习题答案第四章

第4章数值运算习题 4 及解答1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff或数值梯度gradient指令计算)(t y',然后把)(t y和)(t y'曲线绘制在同一张图上,观察数值求导的后果。

(模拟数据从prob_data401.mat 获得)〖目的〗●强调:要非常慎用数值导数计算。

●练习mat数据文件中数据的获取。

●实验数据求导的后果●把两条曲线绘制在同一图上的一种方法。

〖解答〗(1)从数据文件获得数据的指令假如prob_data401.mat文件在当前目录或搜索路径上clearload prob_data401.mat(2)用diff求导的指令dt=t(2)-t(1);yc=diff(y)/dt; %注意yc的长度将比y短1plot(t,y,'b',t(2:end),yc,'r')grid on(3)用gradent 求导的指令(图形与上相似)dt=t(2)-t(1);yc=gradient(y)/dt;plot(t,y,'b',t,yc,'r')grid on〖说明〗● 不到万不得已,不要进行数值求导。

● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级以上。

● 求导会使数据中原有的噪声放大。

2 采用数值计算方法,画出dt tt x y x ⎰=0sin )(在]10 ,0[区间曲线,并计算)5.4(y 。

〖提示〗● 指定区间内的积分函数可用cumtrapz 指令给出。

● )5.4(y 在计算要求不太高的地方可用find 指令算得。

〖目的〗● 指定区间内的积分函数的数值计算法和cumtrapz 指令。

● find 指令的应用。

〖解答〗dt=1e-4;t=0:dt:10;t=t+(t==0)*eps;f=sin(t)./t;s=cumtrapz(f)*dt;plot(t,s,'LineWidth',3)ii=find(t==4.5);s45=s(ii)s45 =1.65413 求函数x ex f 3sin )(=的数值积分⎰=π0 )(dx x f s ,并请采用符号计算尝试复算。

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

实验四采用SIMULINK的系统仿真
一、实验目的:
1、熟悉SIMULINK 工作环境及特点
2、掌握线性系统仿真常用基本模块的用法
3、掌握SIMULINK 的建模与仿真方法
4、子系统的创建和封装设计
二、实验基本知识:
1.了解SIMULINK模块库中各子模块基本功能
2. SIMULINK 的建模与仿真方法
(1)打开模块库,找出相应的模块。

鼠标左键点击相应模块,拖拽到模型窗口中即可。

(2)创建子系统:当模型大而复杂时,可创建子系统。

(3)设置仿真控制参数。

三、实验容
练习A
1.SIMULINK 仿真实际应用
(1) 双环调速的电流环系统的方框图模型为: 图中参数设为 Ks=44;Ts=0.00167;Ta=0.017;R=1;Tm=0.075;Ce=0.1925;Kt=0.01178;T1=0.049;T2=0.088, (1)在Simulink 集成环境下建立模型,在给定信号作用点处输入单位给定阶跃响应信号,0.3秒后在扰动信号点输入单位阶跃响应信号。

并绘制相应的响应曲线 (2)计算仿真结果的超调量、上升时间、调节时间、稳态误差。

(3)设计PID 调节器替代图中的比例积分调节器,调节P K ,
i T ,d T 用使系统满足超调量15%,上升时间0.3s ,调节时间0.4s 的要求。

(4)要求对加入的PID 控制器封装成一个模块使用
Gain3
To Work s pace
Warning: Unable to reduce the step size without violating minimum step size of 1.015e-015 at time 0.0001. Continuing simulation with the step size restricted to 1.015e-015 and using an effective relative error tolerance of 0., which is greater than the specified relative error tolerance of 0.001.
>> wentai=y(end)
chaotiao=100*(max(y)-wentai)/wentai
INDEXtm=find(max(y)==y);
Tm=t(INDEXtm) ;
TT=t(find((abs(y-wentai)/wentai)>0.05));
Ts=max(TT)
m=length(y);
for i=1:m
if y(i)>0.9*wentai
time90=t(i);
break;
end
end
for i=1:m
if y(i)>0.1*wentai
time10=t(i);
break;
end
end
Tr=time90-time10 wentai =
84.8916
chaotiao =
8.4258
Ts =
0.4595
Tr =
0.0410
>> plot(t,y)
1
2
3
4
5
6
7
8
9
10
010
2030405060
708090
100。

相关文档
最新文档