最新武汉大学matlab期末课程作业

合集下载

matlab期末复习题及答案

matlab期末复习题及答案

matlab期末复习题及答案1. MATLAB基础操作在MATLAB中,如何创建一个名为"myMatrix"的3x3矩阵,其元素分别为1, 2, 3, 4, 5, 6, 7, 8, 9?答案:在MATLAB中,可以通过直接输入矩阵元素来创建矩阵。

例如,要创建一个名为"myMatrix"的3x3矩阵,可以使用以下命令:```matlabmyMatrix = [1 2 3; 4 5 6; 7 8 9];```这样,MATLAB就会创建一个3x3的矩阵,其元素按照行顺序排列。

2. 矩阵运算给定两个矩阵A和B,其中A = [1 2; 3 4],B = [5 6; 7 8],计算矩阵A和B的和。

答案:在MATLAB中,可以使用加号(+)来计算两个矩阵的和。

对于给定的矩阵A和B,可以使用以下命令来计算它们的和:```matlabA = [1 2; 3 4];B = [5 6; 7 8];C = A + B;```执行上述命令后,矩阵C的结果将是:```C = [6 8;10 12];```3. 条件语句编写一个MATLAB脚本,判断一个给定的数n是否为质数,并输出相应的信息。

答案:在MATLAB中,可以使用if-else语句来判断一个数是否为质数。

以下是一个简单的脚本示例:```matlabn = input('请输入一个数:');if mod(n, 2) == 0 && n > 2disp('该数不是质数');elseif n == 1disp('1不是质数');elseisPrime = true;for i = 2:sqrt(n)if mod(n, i) == 0isPrime = false;break;endendif isPrimedisp('该数是质数');elsedisp('该数不是质数');endend```该脚本首先接收用户输入的数n,然后通过一个for循环检查n是否有除了1和它自身以外的因数,从而判断n是否为质数。

MATLAB期末大作业

MATLAB期末大作业

MATLAB期末⼤作业学号:姓名:《Matlab/Simulink在数学计算与仿真中的应⽤》⼤作业1.假设地球和⽕星绕太阳运转的半径分别为r和2r,利⽤comet指令动画显⽰从地球到⽕星的转移轨迹(r可以任意取值,要求实时显⽰探测器、太阳、地球和⽕星的位置)。

解函数function comet(varargin)[ax,args,nargs] = axescheck(varargin{:});error(nargchk(1,3,nargs,'struct'));% Parse the rest of the inputsif nargs < 2, x = args{1}; y = x; x = 1:length(y); endif nargs == 2, [x,y] = deal(args{:}); endif nargs < 3, p = 0.10; endif nargs == 3, [x,y,p] = deal(args{:}); endif ~isscalar(p) || ~isreal(p) || p < 0 || p >= 1error('MATLAB:comet:InvalidP', ...'The input ''p'' must be a real scalar between 0 and 1.'); End指令 %particle_motiont = 0:5:16013;r1=6.7e6;%随便给定参数%---------------------------r2=2*r1;g=9.8;R=6.378e6;m=g*R^2;%内轨道v_inner=sqrt(m/r1);w_inner=v_inner/r1;x_inter=r1*cos(w_inner*t);y_inter=r1*sin(w_inner*t);%外轨道v_outer=sqrt(m/r2);w_outer=v_outer/r2;x_outer=r2*cos(w_outer*t);y_outer=r2*sin(w_outer*t);%控制器转移轨道a=(r1+r2)/2;E=-m/(2*a);V_near=sqrt(m*(2/r1-2/(r1+r2)));%转移轨道在近地点的速度V_far=sqrt(m*(2/r2-2/(r1+r2)));%转移轨道在远地点的速度h=r1*V_near;%由于在近地点的速度垂直于位置失量, h是转移轨道的⽐动量矩e=sqrt(1+2*E*h^2/m^2);%e为椭圆轨迹的偏⼼率TOF=pi*sqrt(a^3/m);%转移轨道是椭圆的⼀半及飞⾏时间是周期的⼀半(开普勒第三定律) w=pi/TOF;%椭圆轨迹的⾓速度c=a*e;b=sqrt(a^2-c^2);x_ellipse=a*cos(w*t)-0.5*r1;y_ellipse=b*sin(w*t);%动画显⽰运动轨迹x=[x_inter;x_outer;x_ellipse]';y=[y_inter;y_outer;y_ellipse]';comet(x,y)%---------------------------动态图像如下:2.利⽤两种不同途径求解边值问题dfdxf gdgdxf g f g=+=-+==34430001,,(),()的解.途径⼀:指令syms f g[f,g]=dsolve('Df=3*f+4*g,Dg=-4*f+3*g','f(0)=0,g(0)=1'); disp('f=');disp(f)disp('g=');disp(g)结果(Matlab 7.8版本)f=i/(2*exp(t*(4*i - 3))) - (i*exp(t*(4*i + 3)))/2g=exp(t*(4*i + 3))/2 + 1/(2*exp(t*(4*i - 3)))(Matlab 6.5版本)f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)>>途径⼆:%problem2function dy=problem2(t,y)dy = zeros(2,1);dy(1) = 3*y(1)+4*y(2);dy(2) = -4*y(1)+3*y(2);[t,y] = ode45('problem2',[0 2],[0 1]);plot(t,y(:,1),'r',t,y(:,2),'b');图23.假设著名的Lorenz 模型的状态⽅程表⽰为-+-=+-=+-=)()()()()()()()()()()()(322133223211t x t x t x t x t x t x t x t x t x t x t x t x σρρβ其中,设28,10,3/8===σρβ。

MATLAB期末大作业模板

MATLAB期末大作业模板

MATLAB应用技术期末大作业专业:姓名:学号:分数一、在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。

请写下完整代码,展示图形结果。

(请标注题图和坐标轴,用不同颜色和不同线型分别绘制以上曲线)。

(15分)二、某公司员工的工资计算方法如下。

(1)工作时数超过120小时者,超过部分加发15%。

(2)工作时数低于60小时者,扣发700元。

(3)其余按每小时84元发。

根据员工的工时数,计算应发工资。

请写下完整的程序代码,并任意输入一工时数(使用input 函数),将结果展示(使用disp 函数)利用该代码进行计算工资,请写下计算结果。

(15分)三、编写一个函数文件,使其能够产生如下的分段函数:⎪⎩⎪⎨⎧≥<<≤-=66225.0,25.05.15.0)(x x x x xx f请编写完整的函数文件(保存函数文件名为hanshu.m ),并编写脚本文件代码,任意输入x 值(使用input 函数),在脚本文件中调用函数文件求)(x f ,展示结果(使用disp 函数),请写下计算结果。

(15分)四、将5个学生的6门功课的成绩存入矩阵P 中,进行如下处理:(1)分别求每门课的最高分、最低分及相应学生的序号。

(2)分别求每门课的平均分和标准差。

(3)5门课总分的最高分、最低分及相应学生序号。

(4)将5门课总分按从大到小顺序存入score 中,相应学生序号存入num 。

请将各小题的运行代码完整写下来,并写下运行结果。

(20分)五、请利用所学的MATLAB 知识,自主设计一个图形用户界面,请完整记录它的设计过程,需提供文字、代码和图片,以充分说明设计的图形用户界面可实现的功能。

(35分)。

MATLAB期末大作业

MATLAB期末大作业

学号:姓名:《Matlab/Simulink在数学计算与仿真中的应用》大作业1.假设地球和火星绕太阳运转的半径分别为r和2r,利用comet指令动画显示从地球到火星的转移轨迹(r可以任意取值,要求实时显示探测器、太阳、地球和火星的位置)。

解函数function comet(varargin)[ax,args,nargs] = axescheck(varargin{:});error(nargchk(1,3,nargs,'struct'));% Parse the rest of the inputsif nargs < 2, x = args{1}; y = x; x = 1:length(y); endif nargs == 2, [x,y] = deal(args{:}); endif nargs < 3, p = 0.10; endif nargs == 3, [x,y,p] = deal(args{:}); endif ~isscalar(p) || ~isreal(p) || p < 0 || p >= 1error('MATLAB:comet:InvalidP', ...'The input ''p'' must be a real scalar between 0 and 1.'); End指令 %particle_motiont = 0:5:16013;r1=6.7e6;%随便给定参数%---------------------------r2=2*r1;g=9.8;R=6.378e6;m=g*R^2;%内轨道v_inner=sqrt(m/r1);w_inner=v_inner/r1;x_inter=r1*cos(w_inner*t);y_inter=r1*sin(w_inner*t);%外轨道v_outer=sqrt(m/r2);w_outer=v_outer/r2;x_outer=r2*cos(w_outer*t);y_outer=r2*sin(w_outer*t);%控制器转移轨道a=(r1+r2)/2;E=-m/(2*a);V_near=sqrt(m*(2/r1-2/(r1+r2)));%转移轨道在近地点的速度V_far=sqrt(m*(2/r2-2/(r1+r2)));%转移轨道在远地点的速度h=r1*V_near;%由于在近地点的速度垂直于位置失量, h是转移轨道的比动量矩e=sqrt(1+2*E*h^2/m^2);%e为椭圆轨迹的偏心率TOF=pi*sqrt(a^3/m);%转移轨道是椭圆的一半及飞行时间是周期的一半(开普勒第三定律)w=pi/TOF;%椭圆轨迹的角速度c=a*e;b=sqrt(a^2-c^2);x_ellipse=a*cos(w*t)-0.5*r1;y_ellipse=b*sin(w*t);%动画显示运动轨迹x=[x_inter;x_outer;x_ellipse]';y=[y_inter;y_outer;y_ellipse]';comet(x,y)%---------------------------动态图像如下:2.利用两种不同途径求解边值问题dfdxf gdgdxf g f g=+=-+==34430001,,(),()的解.途径一:指令syms f g[f,g]=dsolve('Df=3*f+4*g,Dg=-4*f+3*g','f(0)=0,g(0)=1');disp('f=');disp(f)disp('g=');disp(g)结果(Matlab 7.8版本)f=i/(2*exp(t*(4*i - 3))) - (i*exp(t*(4*i + 3)))/2g=exp(t*(4*i + 3))/2 + 1/(2*exp(t*(4*i - 3)))(Matlab 6.5版本)f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)>>途径二:%problem2function dy=problem2(t,y)dy = zeros(2,1);dy(1) = 3*y(1)+4*y(2);dy(2) = -4*y(1)+3*y(2);[t,y] = ode45('problem2',[0 2],[0 1]);plot(t,y(:,1),'r',t,y(:,2),'b');图23.假设著名的Lorenz 模型的状态方程表示为⎪⎩⎪⎨⎧-+-=+-=+-=)()()()()()()()()()()()(322133223211t x t x t x t x t x t x t x t x t x t x t x t x σρρβ 其中,设28,10,3/8===σρβ。

matlab期末考试题目及答案

matlab期末考试题目及答案

matlab期末考试题目及答案1. 题目:编写一个MATLAB函数,实现矩阵的转置操作。

答案:可以使用`transpose`函数或`.'`操作符来实现矩阵的转置。

例如,对于一个矩阵`A`,其转置可以通过`A'`或`transpose(A)`来获得。

2. 题目:使用MATLAB求解线性方程组Ax=b,其中A是一个3x3的矩阵,b是一个3x1的向量。

答案:可以使用MATLAB内置的`\`操作符来求解线性方程组。

例如,如果`A`和`b`已经定义,求解方程组的代码为`x = A\b`。

3. 题目:编写MATLAB代码,计算并绘制函数f(x) = sin(x)在区间[0, 2π]上的图像。

答案:首先定义x的范围,然后计算对应的函数值,并使用`plot`函数绘制图像。

代码示例如下:```matlabx = linspace(0, 2*pi, 100); % 定义x的范围y = sin(x); % 计算函数值plot(x, y); % 绘制图像xlabel('x'); % x轴标签ylabel('sin(x)'); % y轴标签title('Plot of sin(x)'); % 图像标题```4. 题目:使用MATLAB编写一个脚本,实现对一个给定的二维数组进行排序,并输出排序后的结果。

答案:可以使用`sort`函数对数组进行排序。

如果需要对整个数组进行排序,可以使用`sort`函数的两个输出参数来获取排序后的索引和值。

代码示例如下:```matlabA = [3, 1, 4; 1, 5, 9; 2, 6, 5]; % 给定的二维数组[sortedValues, sortedIndices] = sort(A(:)); % 对数组进行排序sortedMatrix = reshape(sortedValues, size(A)); % 将排序后的值重新构造成矩阵disp(sortedMatrix); % 显示排序后的结果```5. 题目:编写MATLAB代码,实现对一个字符串进行加密,加密规则为将每个字符的ASCII码值增加3。

Matlab期末大作业

Matlab期末大作业

华南农业大学《控制系统仿真与计算机辅助设计》基于Matlab /Simulink的风力发电机仿真施茂良200830460226陶杰2008304602272012年1月2日题目:用simulink 搭建风力发电机部分的仿真图,使其工作模式满足式(2-4),使用的发电机是永磁同步电机,具体背景材料附后。

风力发电机的控制思路如下:我们需要依据风的速度控制电机的转速使得风能的利用率最高,而电机的转速通过改变永磁同步电机的定子端电压ud 和uq 来实现,具体方程为(3-28)。

最终通过PWM 的导通关断时间来改变端电压,如材料图 2所示。

具体要求:1. 根据公式(2-5)画出类似 图2.3 的曲线。

且当β=0时,画出为获得最大的风能利用率,叶尖速λ和风速v 之间的曲线关系。

风力机用来捕获风能,将叶片迎风扫掠面积内的一部分空气的动能转换为有用的机械能,它决定了整个风力发电系统装置有效功率的输出。

风力机的输入功率是3231122V P A v R v ρρπ==式中,ρ为空气密度;A 为风力机叶片扫掠面积;R 为叶片半径。

v 为风速。

风力机的输出功率为3012p P A v C ρ=式中,pC 为风能利用系数,其值小于1。

风力机输出转矩为;其中λ为叶尖速比 风能利用系数pC 为风力机将风能转换为机械能的效率,它与风速、叶片转速,叶片直径和桨叶节距角均有关系,是叶尖速比λ和桨叶节距角β的函数。

叶尖速比λ是风能叶尖速与风速之比,即R v ωλ=式中,ω为风力机叶片旋转角速度。

根据上文可知,功率与风速具有一定的关系,它们可以用下面的函数来表示213116(,)0.5176(0.45)0.0068110.0350.081i p i iC e λβλβλλλλββ-⎧=--+⎪⎪⎨⎪=-⎪++⎩根据公式(2-5)在simulink 中的建模如图所示:Matlab 波形曲线图其中(β = 0 ,2,5,8,12,15 )代入公式2-5的曲线 蓝色曲线为β=0时风能利用系数p C 与β和λ之间的曲线据根λ=RW/v; 叶尖速λ和转速v 的关系,绘制如下图:2.搭建一个模块,使其产生自然风(5-26),并封装起来,画出一具体的 然风的曲线自然风是非常随机的一种物理现象,其产生机理非常复杂,对其建模也殊为不易。

matlab期末考试题及答案

matlab期末考试题及答案

matlab期末考试题及答案MATLAB期末考试题及答案一、选择题(每题2分,共20分)1. MATLAB中用于创建向量的函数是:A. vectorB. arrayC. linspaceD. ones答案:D2. 下列哪个命令可以计算矩阵的行列式?A. detB. diagC. traceD. rank答案:A3. 在MATLAB中,以下哪个选项是用于绘制三维图形的?A. plotB. plot3C. barD. scatter答案:B4. MATLAB中,用于计算向量范数的函数是:A. normB. meanC. medianD. std答案:A5. 下列哪个命令可以用于创建一个二维数组?A. array2dB. matrixC. create2dD. make2d答案:B6. MATLAB中,用于求解线性方程组的函数是:A. solveB. linsolveC. equationD. linprog答案:A7. 以下哪个函数可以用于生成随机数?A. randB. randomC. randnD. randi答案:A8. MATLAB中,用于实现循环结构的关键字是:A. loopB. forC. whileD. repeat答案:B9. 下列哪个命令可以用于绘制函数图形?A. plotB. graphC. drawD. functionplot答案:A10. MATLAB中,用于计算矩阵特征值的函数是:A. eigB. eigenvalueC. characteristicD. eigen答案:A二、简答题(每题5分,共30分)1. 简述MATLAB中矩阵的基本操作有哪些?答案:矩阵的基本操作包括矩阵的创建、矩阵的加法、减法、乘法、转置、求逆、求行列式等。

2. MATLAB中如何实现条件语句?答案:MATLAB中实现条件语句主要使用if-else结构,也可以使用switch-case结构。

3. 请解释MATLAB中的函数定义方式。

matlab期末试题及答案

matlab期末试题及答案

matlab期末试题及答案介绍:本文提供了一个MATLAB期末试题及答案的样例,以展示如何按照合适的格式来撰写。

以下是试题及答案的内容。

试题一:试题描述:请编写一个MATLAB程序,输入两个整数a和b,计算并输出它们的和、差、积和商。

```MATLABa = input('请输入整数a:');b = input('请输入整数b:');sum = a + b;diff = a - b;product = a * b;quotient = a / b;disp(['和:', num2str(sum)]);disp(['差:', num2str(diff)]);disp(['积:', num2str(product)]);disp(['商:', num2str(quotient)]);```答案详解:本题要求输入两个整数a和b,然后计算它们的和、差、积和商,并进行输出。

我们利用MATLAB的input函数实现用户输入,然后进行相关计算,并利用disp函数输出结果。

其中,num2str函数用于将数字转换为字符串。

试题二:试题描述:请编写一个MATLAB程序,生成并输出一个5x5的单位矩阵。

```MATLABI = eye(5);disp(I);```答案详解:本题要求生成一个5x5的单位矩阵,并进行输出。

我们可以利用MATLAB的eye函数来实现这一目标。

eye函数用于创建一个对角线上元素为1的矩阵,而其他元素为0的矩阵。

在本题中,我们生成了一个5x5的单位矩阵,并利用disp函数进行输出。

试题三:试题描述:请编写一个MATLAB程序,计算并输出1到100之间的所有偶数之和。

```MATLABsum = 0;for i = 2:2:100sum = sum + i;enddisp(['1到100之间的所有偶数之和为:', num2str(sum)]);```答案详解:本题要求计算1到100之间的所有偶数之和,并进行输出。

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

“MATLAB及其应用”课程作业院系:姓名:学号:联系方式:第1章1.请指出如下5个变量名中,哪些是合法的?abcd-2 xyz_3 3chan a变量ABCDefgh答:xyz_3,ABCDefgh是合法的。

2.在命令窗中,运行命令a=sqrt(2)。

然后请回答以下问题:计算结果a吗?该计算结果只是5近似吗?请在命令窗中,显示出具有最多位有MATLAB数值结果显示的默认设置。

该计算结果只是5近似。

3. 命令clear, clf, clc 各有什么用处?答:clear 可以清除matlab 工作空间中保持的变量。

clf 可以清除图形窗。

clc 清除命令窗中显示内容。

4. 想要在MATLAB 中产生二维数组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321S ,下面哪些命令能实现目的? S=[1,2,3;4,5,6;7,8;9]S=[1 2 3;4 5 6;7 8 9]S=[1,2,3;4,5,6;7,8,9] %整个命令在中文状态下输入答:第二条S=[1 2 3;4 5 6;7 8 9]能实现目的。

中文状态下逗号不是有效字符。

第2章1.说出以下四条命令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?3/7+0.1, sym(3/7+0.1), vpa(sym(3/7+0.1),4), vpa(sym(3/7+0.1))答:3/7+0.1结果是双精度。

sym(3/7+0.1)结果是符号。

vpa(sym(3/7+0.1),4)结果是符号。

vpa(sym(3/7+0.1))结果是符号。

过程如图:2.已知a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)))产生精准符号数字,请回答:以下产生的各种符号数哪些是精准的?若不精准,误差又是多少?能说出产生误差的原因吗?a2=sin(sym(pi/4)+exp(sym(0.7))*exp(sym(pi/3)))a3=sin(sym('pi/4')+exp(sym('0.7'))*exp(sym('pi/3')))a4=sin(sym('pi/4')+exp(sym('0.7+pi/3')))a5=sin(sym(pi/4)+exp(sym(0.7+pi/3)))a6=sin(sym(pi/4)+sym(exp(0.7+pi/3)))a7=sin(sym(pi/4+exp(0.7+pi/3)))a8=sym(sin(pi/4+exp(0.7+pi/3)))(提示:可用vpa观察误差;注意数位的设置)。

答:matlab运行程序如下:format long;a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)));a2=sin(sym(pi/4)+exp(sym(0.7))*exp(sym(pi/3)));a3=sin(sym('pi/4')+exp(sym('0.7'))*exp(sym('pi/3'))); a4=sin(sym('pi/4')+exp(sym('0.7+pi/3')));a5=sin(sym(pi/4)+exp(sym(0.7+pi/3)));a6=sin(sym(pi/4)+sym(exp(0.7+pi/3)));a7=sin(sym(pi/4+exp(0.7+pi/3)));a8=sym(sin(pi/4+exp(0.7+pi/3)));b2=vpa(a1-a2,40)b3=vpa(a1-a3,40)b4=vpa(a1-a4,40)b5=vpa(a1-a5,40)b6=vpa(a1-a6,40)b7=vpa(a1-a7,40)b8=vpa(a1-a8,40)观察可知,只有a2是精准的。

这是由sym('Num')和sym(Num)的区别带来的。

前者以字符串的形式传给符号运算内核,可以保留完整的精度;而后者经过浮点运算后再转换为符号类型,存在精度损失。

3.在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量。

sym('sin(w*t)') , sym('a*exp(-X)' ) , sym('z*exp(j*th)')答:运行程序如下clearsymvar(sym('sin(w*t)') ,1)symvar(sym('a*exp(-X)' ) ,1)symvar(sym('z*exp(j*th)') ,1)可知分别为w,a,z。

第3章1.请读者先运行以下命令a=0;b=pi;t1=a:pi/9:pi;t2=linspace(a,b,10);T=t1*t2';F=find(T<0);然后,请回答变量a、t1、T、F的维度、规模、长度分别是多少?t1完全等于t2吗?为什么?答:运行程序如下cleara=0;b=pi;t1=a:pi/9:pi;t2=linspace(a,b,10);T=t1*t2';F=find(T<0);a1=ndims(a),a2=ndims(t1),a3=ndims(T),a4=ndims(F)b1=size(a),b2=size(t1),b3=size(T),b4=size(F)c1=length(a),c2=length(t1),c3=length(T),c4=length(F)可知,维度都是2维;规模a是1 1,t1是1 10,T是1 1,F是0 0;长度分别为1,10,1,0;t1和t2是完全相等的。

t1产生的是0到pi之前间隔为pi/9的十个数值,t2产生的是0到pi之前等分间隔的十个数值,是等价的。

2.对于命令A=reshape(1:18,3,6)产生的数组A =1 4 7 10 13 162 5 8 11 14 173 6 9 12 15 18先请你用一条命令,使A数组中取值为2、4、8、16的元素都被重新赋值为NaN。

然后,再请你用一条命令,把A数组的第4、5两列元素都被重新赋值为Inf。

答:运行程序如下A=[1 4 7 10 13 16;2 5 8 11 14 17;3 6 9 12 15 18];A([2 4 8 16])=NaN;AA([10 11 12 13 14 15])=Inf;A3.由命令rng('default'),A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。

答:运行程序如下:rng('default');A=rand(3,5);B=(A>0.5)si=find(B)[r,c]=find(B)可知,单下标为1,2,4,5,8,9,10,12,13,15;双下标为(1,1)(2,1)(1,2)(2,2)(2,3)(3,3)(1,4)(3,4)(1,5)(3,5)。

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

(提示:cumtrapz 快捷,在精度要求不高处可用;integral 也可试。

巧用find 。

)答:运行程序如下x=eps:0.01:10; z=sin(x)./x; y=cumtrapz(x,z); plot(x,y),grid on ; a=find(x==4.5); y(a)故)5.4(y =1.65415. 求函数5.08.12cos 5.1)5(sin )(206.02++-=t t t e t t f t 在区间]5,5[-中的最小值点。

(提示:作图观察。

)答:运行程序如下:format long t=-5:0.00001:5;y=@(t)(sin(5*t))^2*exp(0.06*t^2)-1.5*t*cos(2*t)+1.8*abs(t+0.5); ezplot(y,[-5,5]),grid on ,hold on [t1,y1]=fminbnd(y,-5,5) plot(t1,y1,'r*')故最小值点为(-1.285,-0.186)。

第5章1. 已知椭圆的长、短轴2,4==b a ,用“小红点线”画如下图所示的椭圆⎩⎨⎧==t b y ta x sin cos 。

(提示:参量t ;点的大小;axis equal )答:运行程序如下:a=4;b=2;t=0:pi/75:2*pi;plot(a*cos(t),b*sin(t),'r.','markersize',15) axis equal,xlabel('x'),ylabel('y');3.A,B,C三个城市上半年每个月的国民生产总值表p5.1。

试画出如图p5-3所示的三城市上半年每月生产总值的累计直方图。

(提示:bar(x,Y,'style'); colormap(cool); legend。

)表p5.1 各城市生产总值数据(单位:亿元)图p5-3运行程序如下:X=[1;2;3;4;5;6];Y=[170 120 70;120 100 50;180 110 80;200 180 100;190 170 95;220 180 120]; bar(X,Y,'stacked'),colormap(cool),legend('A','B','C',2)第6章1. 请分别写出用for 和while 循环语句计算1000000210000002.02.02.012.0+++==∑= i iK 的程序。

此外,还请写出避免循环的数值、符号计算程序。

(提示:sum 和“指数采用数组”配合; tic, toc 可用以记录计算所花的时间。

)答:用for 的写法:tic;a=0; for k=0:1000000; a=a+0.2^k; end a t1=toc用while的写法:tic;b=0;k=0;while k<=1000000b=b+0.2^k;k=k+1;endbt2=toc避免循环数值程序:tic;k=zeros(1,1000000);d=0:1000000;k=0.2.^d;c=sum(k)t3=toc符号计算程序:tic;syms kd=vpa(symsum(0.2^k,k,0,1000000)) t4=toc3. 编写一个函数M文件,它的功能:没有输入量时,画出单位圆(见图p6-1);输入量是大于2的自然数N时,绘制正N边形,图名应反映显示多边形的真实边数(见图p6-2);输入量是“非自然数”时,给出“出错提示”。

相关文档
最新文档