matlab不定式的除法,MATLAB练习作业(已做)2012

《MATLAB练习作业(已做)2012》由会员分享,可在线阅读,更多相关《MATLAB练习作业(已做)2012(18页珍藏版)》请在人人文库网上搜索。

1、说明:如在测试时请将程序中的中文字符改为西文(部分程序为手写,并未经 matlab 验证) 2012 年春年春MATLAB 基础基础第一次上机练习与作业第一次上机练习与作业 练习:脚本文件练习:脚本文件 建立一个文件名为 helloWorld 的脚本文件,运行该文件时显示出如下文字: Hello World! I am going to learn MATLAB 提示提示: 用 disp显示字符串,将要显示的字符号串用单引号引起来。如 This is a string 练习:变量练习:变量 获取并保存当前的日期与时间 用函数 clock 生成一个变量,变量名为 start 用 size 查看 。

2、start 的维数,它是一个行向量还是一个列向量? start 包含什么内容?用 help clock 查看 用函数 datestr 将向量 start 转换成字符串,得到新的变量,名为 startString 将 start 与 startString 保存为 mat 文件,文件名为 startTime 在练习建立的脚本文件 helloWorld.m 文件中,用 load 函数导入变量 startTime, 并显示如下文字: I started learning MATLAB on * start date and time* 练习练习 3 3:标量:标量 你将要以指数增长的速度来学习 MA。

3、TLAB, 将如下内容添加到 helloWorld.m 文件中 假设你的学习时间是一个常量,为 1.5 days,将此时间用秒表示,赋给变量 tau 假设课程持续时间为 5 days. 将这个时间单位转换为秒,保存在变量 endofClass 中? 将学到的知识描述为 t 的函数,函数方程为: 用函数 datestr 将向量 start 转换成字符串,得到新的变量 startString 在课程结束时间 endofClass,你将学到多少知识?用变量 knowledgeAtEnd 表示 (指数函数 exp) 用变量 knowledgeAtEnd,显示如下语句: At the end of th。

4、e MATLAB class, I will know X% of MATLAB 提示提示: 将数转换成字符串,用 num2str 练习:向量运算练习:向量运算 计算从课程开始到现在经过的时间,用秒表示. 在 helloWorld.m 中,建立一系列变量,变量名分别为:secPerMin, secPerHour, secPerDay,secPerMonth(假设每个月 30.5 天),以及 secPerYear. 将变量按次序 secPerYear,secPerMonth, secPerDay,secPerHour, secPerMin,1 排列,构 成一个行向量,命名为 secConvers。

5、ion? 用时钟函数 clock 生成一个向量 currentTime 计算经过的时间 elapsedTime,用 currentTime 与 start 相减. 通过向量 secondConversion 与 elapsedTime 的数量积运算计算时间 t, 显示当前的时间水平,用变量 currentKnowledge 表示. () 显示如下语句: At this time, I know X% of MATLAB 练习练习 5 5:向量函数:向量函数 计算你的学习轨迹. 在 helloWorld.m 中,建立线性时间向量 tVec,包含从 0 到 endOfClass 的 10000 个。

6、样本点. 计算在每个时间点处对应的知识值,仍然用函数 练习练习 6 6:向量寻址:向量寻址 什么时候你将学到 50%的 MATLAB 知识?. 在向量 knowledgeVec 中,查找最接近 0.5 的元素所在的位置. 用 halfTime 保存对应的时间 显示如下语句: I will know half of MATLAB after X days 要将 halfTime 用 secPerDay 转换成天数 练习练习 7 7:绘图:绘图 画出学习的轨迹图?. 在 helloWorld.m 中,打开一个新的图形窗口(figure) 用向量 tVec 与 knowledgeVec 画出知识轨迹。

7、,画图时,将时间单位转换为天 用图形窗口中的 zoom in 查看 halfTime,与前面计算结果相比较. clear,clc; disp(Hello World!); disp(I am going to learn MATLAB); start=clock; startx,starty=size(start); if startxstarty disp(一个行向量) else disp(一个列向量); end startString=datestr(start); save startTime.mat start startString; waittime=input(为使程序达到较好的。

8、执行效果,请输入程序需要暂停时间(秒) :); state = 0; h = waitbar(0, 请等待., Name, 进度条, CreateCancelBtn, . state = 1; delete(h); clear h); h1 = findall(h, style, pushbutton); set(h1, string, 取消, fontsize, 10) for i = 1 : 100 waitbar(i/100, h, 已暂停时间百分比 num2str(i) %); pause(waittime/100); if state break end end if exist(h。

9、) = 1 delete(h); end load startTime disp(I started learning MATLAB on * start date and time*); tau=1.5*24*3600; endofClass=5*24*3600; knowledgeAtEnd=1-exp(-tau/endofClass); disp(At the end of the MATLAB class, I will know ,num2str(knowledgeAtEnd*100), % of MATLAB); secPerMin=60; secPerHour=3600; sec。

10、PerDay=24*secPerHour; secPerMonth=30.5*secPerDay; secPerYear=12*secPerMonth; secondConversion=secPerYear,secPerMonth, secPerDay,secPerHour, secPerMin,1; currentTime=clock; elapsedTime=currentTime-start; elapsedTime=elapsedTime.*secondConversion; currentknowledge=1-exp(-elapsedTime/endofClass); disp(。

11、At this time, I know ,num2str(sum(currentknowledge)*100),% of MATLAB); tVec=linspace(0,endofClass,1000); knowledgeVec=1-exp(-tVec./endofClass); halfTimeindex=find(abs(knowledgeVec-0.5)0.5); B=B1;B2; C=sub2ind(size(A),3,2); A(3,2)=A(C); 练习练习 4 4:向量化运算:向量化运算 在时间区间 0,10中,绘制曲线。要求分别采取“标量循 环运算法”和“数组运算法”编写。

12、两段程序绘图。(注意:体验数组运算的 简捷。) 标量循环运算法 t=linspace(0,10); for i=1:length(t) y(i)=1-exp(-0.5*t(i)*cos(2*t(i); end plot(t,y); 数组运算法 t=linspace(0,10); y=1-exp(-0.5*t).*cos(2*t); plot(t,y); 练习练习 5 5:非数:非数 先运行指令 x=-3*pi:pi/15:3*pi; y=x; X,Y=meshgrid(x,y); warning off; Z=sin(X).*sin(Y)./X./Y; 产生矩阵 Z。(1)请问 矩阵 Z 中有。

13、多少个“非数”数据?(2)用指令 surf(X,Y,Z); shading interp 观察所绘的图形。(3)请写出绘制相应的“无裂缝”图形的全部 指令。(提示:isnan, sum, eps) x=-3*pi:pi/15:3*pi; y=x; X,Y=meshgrid(x,y); warning off; Z=sin(X).*sin(Y)./X./Y; Z1,Z2=find(isnan(Z); fprintf(矩阵Z中有%d个“非数”数据n,length(Z1);%length(Z1)=sum(Z1) surf(X,Y,Z); shading interp “无裂缝”图形的全部指令 x=-。

14、3*pi:pi/15:3*pi; y=x; X,Y=meshgrid(x,y); warning off; Z=sin(X).*sin(Y)./X./Y; Znan=find(isnan(Z(1,:); eps=0.1; espe=x(Znan-1):eps:x(Znan+1); x=x(1:Znan-1),espe,x(Znan+1:end); y=x; X,Y=meshgrid(x,y); warning off; Z=sin(X).*sin(Y)./X./Y; surf(X,Y,Z); shading interp 在图形绘制语句中,或函数值为不定式 NaN,则相应的结果不绘制出来,试利。

15、 用该规律绘制的曲面图,并剪切下的部分(图形效果 如下) t=-4:0.05:4; x=t; y=t; X,Y=meshgrid(x,y); Z=sin(X.*Y); count=; for i=1:length(t) for j=1:length(t) if x(i)2+y(j)2=0.53 Z(i,j)=nan; end end end surf(X,Y,Z); 练习练习 6 6:sumsum 的使用的使用 下面有一段程序,企图用来解决如下计算任务:有矩阵 ,当依次取 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 时,计算矩阵“各列元素的和”,并把此求和结果存放为矩阵 Sa 。

16、的第 k 行。 例如时,A 阵为,此时它各列元素 的和是一个行数 组,并把它保存为 Sa 的第 3 行。问题:该段程序的计算结果对 吗?假如计算结果不正确,请指出错误发生的根源,并改正之。 for k=10:-1:1; A=reshape(1:10*k,k,10); Sa(k,:)=sum(A); end; Sa (提示:本题专为揭示 sum 对行数组的作用而设计。仔细观察程序运行后所得到 的 Sa 正确吗? ) sum 函数求和方式错误 for k=10:-1:1; A=reshape(1:10*k,k,10); Sa(k,:)=sum(A,1); end; disp(Sa); 2012 年。

17、春年春MATLAB 基础基础第四次上机练习与作业第四次上机练习与作业 练习:矩阵及线性方程组求解练习:矩阵及线性方程组求解 将矩阵、和组合成新矩阵: 若,考虑线性方程组,求出系数矩阵的秩及增广矩阵的秩,判断方程组是否有解 (rank) 若有解,求出一个特解,若无解,求出一个最小二乘解。(用) a=4,2;5,7; b=7,1;8,3; c=5,9;6,2; a=reshape(a,1,4); b=reshape(b,1,4); c=reshape(c,1,4); A=; for i=1:4 A=A;a(i),b(i),c(i); end d=1,2,3,4; fprintf(系数矩阵的秩:%d。

18、n, rank(A); And=A,d; fprintf(增广矩阵的秩:%dn, rank(And); %无解rank(A)rank(And) C=dA; disp(最小二乘解:); disp(C); 练习练习 2 2:一般代数方程的解:一般代数方程的解 先画出函数的图形进行观察, 再用 fzero 求该函 数的零点。 fun=(t)(sin(t).2).*exp(-0.1*t)-0.5*abs(t); -10-8-6-4-20246810 -5 -4 -3 -2 -1 0 1 gu=-2,-.5,.5,2; for i=1:4 zerosindex(i)=fzero(fun,gu(i); e。

19、nd disp(零点x=); disp(zerosindex); t=linspace(-10,10); y=(sin(t).2).*exp(-0.1*t)-0.5*abs(t); plot(t,y); hold on line(-10,10,0,0); 练习练习 3 3:多项式拟合:多项式拟合 假设产生数据的原始模型为,在-3, 3中取值,受到噪声 0.3*(rand(n,1)-0.5) 的污染。 对含噪声的数据做 3 次多项式拟合,画出拟合曲线进行比较。 如果做 2 次多项式拟合,结果如何? x=linspace(-3,3); t=1 -5 0 2; y=x.3-5*x.2+2; rand。

20、y=y+0.3*(rand-0.5); plot(x,y,x,polyval(polyfit(x,randy,3),x),. x,polyval(polyfit(x,randy,2),x); legend(原图,3 次插值图,2 次插值图,Location,SouthEast); 练习练习 4 4:数值积分:数值积分 求积分,其中 syms x; y=sin(x)/x; s=int(y,x,0,z); -3-2-10123 -70 -60 -50 -40 -30 -20 -10 0 10 原 图 3次 插 值 图 2次 插 值 图 练习练习 5 5:高阶微分方程:高阶微分方程 在初始条件,情况。

21、下,求解著名的 van der Pol 微分方程 。在时,该方程是典型的刚性(Stiff)方程。 (ode15s) tmax=4000; x0=1 0; mu=1000; t,x=ode15s(van_de_pol,0,tmax,x0,mu); plot(t,x(:,1),o); function dx2dt2 =van_de_pol(t,x,flag,mu) dx2dt2=x(2); mu*(1-x(1)2)*x(2)-x(1); 练习练习 6 6:LornezLornez 系统系统 假设著名的 Lorenz 模型的状态方程表示为: 05001000150020002500300035004。

22、000 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 其中,设,若令初值为,而 为机器上可以识别的小常数,如取一个很小的正数,试求解该微分 方程组(ode45) tmax=100; x0=0;0;1e-10; t,x=ode45(lorenzeq,0,tmax,x0); fig=figure; subplot 121 plot(t,x); subplot 122 plot3(x(:,1),x(:,2),x(:,3); axis(10 42 -20 20 -20 25); set(0,CurrentFigure,fig); set(fig,Position,190,200,1000,400); function dxdt = lorenzeq(t,x) dxdt=-8/3*x(1)+x(2)*x(3); -10*x(2)+10*x(3); -x(1)*x(2)+28*x(2)-x(3); 020406080100 -30 -20 -10 0 10 20 30 40 50 10 20 30 40 -20 -10 0 10 20 -20 -10 0 10 20。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值