搜档网
当前位置:搜档网 › Matlab程序设计(更新)

Matlab程序设计(更新)

祁彬彬

y 2005年9月,全国大学生数学建模比赛成功参赛奖 月 全国大学生数学建模比赛成功参赛奖 y 2006年9月,全国大学生数学建模比赛北京市二等奖 y 2007年2月,MCM提名奖 y 2007年9月,全国研究生数学建模国家三等奖 y 2008年9月,全国研究生数学建模国家一等奖 y 2009 9年9月,全国研究生数学建模国家二等奖 学

y 个人能力 y 朋友圈子 y 思考问题的方式 y 感谢老师

y 界面设置 y 编辑和调试 y 解方程 y 画图 y 数据读写 y 拟合 y 积分 y 优化 y Lingo小例子(圆的问题)

y Desktop D kt ?Desktop D kt Layout L t‐?Default D f lt y Preference设置字体,属性等 y Set?Path添加路径信息

y M文件:函数文件和脚本文件 文件 函数文件和脚本文件 y 多行注释:1.Ctrl+R,2.if?0?end,3.%{ %} y 自动缩进:Ctrl+I y 双击显示所有变量 y 做标记Ctrl+F2 y 更多右键信息 息 y 设置断点,F5,F10,F11,Go?until?Cursor y 分块执行%%

y 线性方程组 y 非线性方程 y 隐函数方程 y 非线性方程组 y 带参数的情况 y 微分方程 y 更多可参考《高等应用数学问题的Matlab求解》

y Ax=B A B


e
y fsolve
?3t
sin(4t + 2) + 4e
?0.5t
cos(2t ) = 0.5
基本用法 x?=?fsolve(fun,x0) y fzero 基本用法 x?=?fzero(fun,x0) fzero(fun x0) z 更多用法请看帮助文件,选项和输出

y 根据图像选取




?17 x 2 ? 16 | x | y + 17 y 2 = 225 ? 2 2 2 x+ y ? x cos( x + y ) + y e = 0
y 画图获得初值的范围 y 用fsolve y 三维以上,就得根据经验设置初值,可以通过循环多 三维以上 就得根据经验设置初值 可以通过循环多
次计算,找到最优的解

y clear;clc;close l l l all ll y f{1}='17*x^2‐16*abs(x)*y+17*y^2‐225'; y f{2}='x^2*cos(x+y^2)+y^2*exp(x+y)'; ( ) ( ) y hold?on; y h=arrayfun(@(x)ezplot(f{x},[‐5?5?‐5?5]),[1,2]); y set(h(1),'color','r') ( ( ), , )

(‐3,‐1)

y function?y=myfun_1(x) y y=[17*x(1).^2 [ ( ) ‐16*abs(x(1)).*x(2)+17*x(2).^2 b ( ( )) ( ) ( ) ‐225; y x(1).^2.*cos(x(1)+x(2).^2)+x(2).^2.*exp(sum(x))];
>>?fsolve(@myfun_1,[‐3,‐1]) Equation?solved. fsolve completed?because?the?vector?of?function?values?is?near?zero as?measured?by?the?default?value?of?the?function?tolerance,?and the?problem?appears?regular?as?measured?by?the?gradient. d il
ans = ‐2.93894670984629 ‐1.16856745664698

? x 2 + ax 2 + 6b + 3 y 2 = 0 ? y = a+ x+3 ?
1 a b 1 ‐2 2 3 ‐1 3 6 ‐2 4 8 ‐3 5 5 ‐5 6 3 ‐8 7 2 ‐6 8 1 ‐3 9 2 ‐1
function?y=myfun_2(x,a,b) y=[x(1).^2+a*x(1).^2+6*b‐3*x(2).^2 a+x(1)+3‐x(2)];

y clear;clc;close all y a=[1?3?6?8?5?3?2?1?2]; y b=‐fliplr(a); y xy=zeros(length(a),2); y fval=zeros(size(xy)); fval zeros(size(xy)); y exitflag=zeros(size(a)); y for?i=1:length(a) g ( ) y
[xy(i,:),fval(i,:),exitflag(i)]=fsolve(@(x)myfun_2(x,a(i),b(i)), [ (i) b(i)]) [a(i),b(i)]); y end
循环亦可用arrayfun函数代替

MATLAB编程作业

《Matlab 编程训练》 作业 专 业 学生姓名 班级 学 号 指导教师 完成日期

实训一 MATLAB 语言介绍和数值计算 1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存变量。 12 2sin851z e =+ . 2. 已知 1234413134787,2033657327A B --???? ????==???? ????-???? ,求下列表达式的值: (1) A+6*B 和A-B+I (其中I 为单位矩阵) A+6*B:

A-B+I: (2)A*B和A.*B A*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] c=A*B 结果: A.*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=A.*B 结果:

(3)A^3和A.^3 A^3程序: A=[12 34 -4;34 7 87;3 65 7] E=A^3 结果: A.^3程序: A=[12 34 -4;34 7 87;3 65 7] C=A.^3 (4)A/B及B\A A/B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] C=A/B 结果:

B\A程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=B\A 结果: (5)将矩阵C=B\A的右下角2*2子矩阵赋给D, 并(3)保存变量(mat文件)程序: A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; C=B*inv(A); D=C(2:3,2:3) 结果:

Matlab程序设计打印版

实验四 Matlab程序设计 [实验目的] 1.掌握字符串数组的创建和构造方法及常用字符串函数的使用。 2.熟练掌握MATLAB 控制流的使用方法。 3.熟悉M 脚本文件、函数文件的编写方法和技巧。 [实验原理] 与数值数组相比,串数组在MATLAB 中的重要性较小,但不可缺少。如果没有串数组及相应的操作,那么数据可视化、图形用户界面的制作将会遇到困难。字符串与数值数组是两种不同的数据类,它们的创建方式也不同。字符串的创建方式是:将待建的字符放在“单引号对”中。注意,“单引号对”必须是在英文状态下输入,其作用是MATLAB 识别送来内容“身份”所必需的,如A=’This is an example!’;就创建了一个字符串A。注意创建带单引号的字符串时,每个单引号符用“连续2 个单引号符”标识。字符串的标识同数值数组同,而且也可以使用size 指令观察串数组的大小。串数组的ASCII 码可以通过指令abs 和double 来获取,而用char 指令可以把ASCII 码变为串数组,另外,MATLAB 可以很好的支持中文字符串数组。对于复杂串数组的创建,一是可以直接创建,但是要保证同一串数组的各行字符数相等,即保证各行等长,不推荐,太繁琐。二是可以利用串操作函数创建多行数组,比如char, str2mat, strvcat 等,具体操作自己通过帮助体会。另外还可以通过转化函数产生数码字符长,比如A_str=int2str(A) 就是把整数数组A 转换成串数组,如果是非整数将被四舍五入后再转换,类似的函数还有num2str(把非整数数组转换为串数组,常用于图形中数据点的标识)、mat2str(把数值数组转换成输入形态的串数组,常与eval 指令配用)。 假如想灵活运用MATLAB 去解决实际问题,想充分调动MATLAB——科学技术资源,想理解MATLAB 版本升级所依仗的基础,那么掌握M 脚本文件合函数的编写规则将十分有用。 用户通过本次实验,感受抽象概念的内涵、各指令间的协调,从感知上领悟MATLAB 编程的优越和要领。 编写M 脚本文件的步骤:

MATLAB程序设计作业

Matlab程序设计 班级 姓名 学号

《MATLAB程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot的原始数据、一次拟合曲线和三次拟合曲线,给出MATLAB代码和运行结果。 代码如下: x=[1,2,3,4,5,6,7,8,9,10]; y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]; plot(x,y); title('原始数据'); p=polyfit(x,y,1); q=polyval(p,x); figure,plot(x,q); title('一次拟合'); p=polyfit(x,y,2); q=polyval(p,x); figure,plot(x,q); title('二次拟合'); 运行结果如下:

1 2 3 4 5 6 7 8 9 10 12 3 4 5 6 7 8 原始数据 123 456789 102 2.5 3 3.54 4.5 55.56 6.57一次拟合 123456789 101 2 3 4 5 6 7 二次拟合 2、在[0,3π]区间,绘制y=sin(x)曲线(要求消去负半波,即(π,2π)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 代码如下: clear clc x=(0:0.01:3*pi); y=sin(x); plot(x,y); y1=(y>=0).*y; figure,plot(x,y1);

C++程序设计实践教程思考题答案

实验1 C++基础 6.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。 #include using namespace std; int main() { int i; cin>>i; if(i>=65 && 1<=90 ) cout< #include using namespace std; int main()

{ float a,b,c; 潣瑵?请输入直角三角形的两条边长:; cin>>a>>b; c=sqrt(a*a+b*b); 潣瑵?直角三角形的斜边=< using namespace std; int main() { char c; 1 潣瑵?请输入一个字符:; cin>>c; if(c>='A'&& c<='Z') c+='a'-'A'; cout<

3.输入一个学生的成绩,如高于60分,则输出“pass”;否则,输出“failed”。 #include using namespace std; int main() { float grade; 潣瑵?请输入成绩:; cin>>grade; if(grade>=60) cout<

matlab程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。 >> t=0:0.01:pi; >> x1=t; >> y1=2*x1-0.5; >> x2=sin(3*t).*cos(t); >> y2=sin(3*t).*sin(t); >> plot(x1,y1,'r-',x2,y2,'g-') >> axis([-1,2,-1.5,1]) >> hold on >> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*'); 截图:

p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。 function [ output_args ] = Untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here theta=0:0.01:2*pi; a=input('请输入a的值:'); b=input('请输入b的值:'); n=input('请输入n的值:'); rho=a*sin(b+n*theta); polar(theta,rho,'k'); end 下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。

对a的值进行改变:对比发现a只影响半径值的整倍变化 对b的值进行改变:对比发现b的值使这个圆转换了一定的角度

对n的值进行改变:对比发现当n>=2时有如下规律 1、当n为整数时,图形变为2n个花瓣状的图形 2、当n为奇数时,图形变为n个花瓣状的图形 分别让n为2、3、4、5

vb程序设计实验教程习题答案

实验教材实验一 1:单项选择题: A A C C C D C B B C 2:填空题: (1).bas (2).vbp,.frm (3)视图工具箱 (4)对象 (5)属性对象事件方法 (6)Windows (7)事件行为 (8)窗体模块 实验二 1:单项选择题: A D C C A B A B D C B B C B C B A B D C 2:基本运算题: (1)27 (2)3.33333333333333 (3)3 (4)0 (5)-3 (6)2 (7)ab33 (8)类型不匹配 (9)3 (10)AB3 实验三 1:单项选择题: B C B D C 2:填空题: (1)300 (2)321456 (3)Shanghai (4)6 7 6 (5)True (6)2+3=5 (7)”area=” 12.56 (8)VISUAL 实验四 1:单项选择题: C A A C A 2:填空题: (1)7 (2)3 5

(3)输入的数小于0 (4)3 (5)False (6)2010 is not leap year. 试验五 1:单项选择题: A C C A B A C C C B 2:填空题: (1)9 (2)①n ②1 (3)①Len(a) ②n\2 ③Mid(a,(n-i+1),1) ④Mid(a,(n-i+1),1) (4)①n Mod 3=1 And n Mod 5=1 And n Mod 7=1 ②While CountN<5 (5)Mid(c1,1,i) 实验六 1:单项选择题: D B D C D A C A D D 2:填空题: (1)30 (2)3 (3)①a(2) ②a(3) ③a(1) (4)①1 ②2 ③a(i)=a(6-i) (5)①i+j ②0 ③a(i,j) (6)①Print ②k ③a(k,j)=a(j,k) ④a(k,j); 实验七 1:单项选择题: A B B A C B 2:填空题: (1)15 (2)①Preserve a(n+1) ②a(i+1)=a(i) ③Exit For ④a(i+1)=m⑤0 to n+1 (或LBound(a) to UBound(a)) (3)d,c,b,a 实验八 1:单项选择题: C A D B D C A C B 2:填空题: (1)a=9 b=4 (2) 36 25 16 9 4 1 (3)①a ②UBound(b) ③

matlab程序设计实践-牛顿法解非线性方程

中南大学MATLAB程序设计实践学长有爱奉献,下载填上信息即可上交,没有下载券的自行百度。所需m文件照本文档做即可,即新建(FILE)→脚本(NEW-Sscript)→复制本文档代码→运行(会跳出保存界面,文件名默认不要修改,保存)→结果。第一题需要把数据文本文档和m文件放在一起。全部测试无误,放心使用。本文档针对做牛顿法求非线性函数题目的同学,当然第一题都一样,所有人都可以用。←记得删掉这段话 班级: ? 学号: 姓名:

一、《MATLAB程序设计实践》Matlab基础 表示多晶体材料织构的三维取向分布函数(f=f(φ1,φ,φ2))是一个非常复杂的函数,难以精确的用解析函数表达,通常采用离散 空间函数值来表示取向分布函数,是三维取向分布函数的一个实例。 由于数据量非常大,不便于分析,需要借助图形来分析。请你编写一 个matlab程序画出如下的几种图形来分析其取向分布特征: (1)用Slice函数给出其整体分布特征; " ~ (2)用pcolor或contour函数分别给出(φ2=0, 5, 10, 15, 20, 25, 30, 35 … 90)切面上f分布情况(需要用到subplot函数);

(3) 用plot函数给出沿α取向线(φ1=0~90,φ=45,φ2=0)的f分布情况。 (

备注:数据格式说明 解: (1)( (2)将文件内的数据按照要求读取到矩阵f(phi1,phi,phi2)中,代码如 下: fid=fopen(''); for i=1:18 tline=fgetl(fid); end phi1=1;phi=1;phi2=1;line=0; f=zeros(19,19,19); [ while ~feof(fid) tline=fgetl(fid); data=str2num(tline); line=line+1;数据说明部分,与 作图无关此方向表示f随着 φ1从0,5,10,15, 20 …到90的变化而 变化 此方向表示f随着φ 从0,5,10,15, 20 … 到90的变化而变化 表示以下数据为φ2=0的数据,即f(φ1,φ,0)

VB程序设计教程(第3版)课后实验答案最新版2

1、完成实验A(P.259)中的第1、 2、 3、5题。 2、参照第2章例2.6,建立一个类似记事本的应用程序,提供:(1) 剪切、复制和粘贴的编辑操作;(2) 字体大小的格式设置;此外,再对记事本的应用程序的功能进行一点扩允。 1.完成在实验B 顺序结构程序。(P.262)中的第1、2 、4 、5.、6题 2.完成实验C 选择结构(P.266)中的第1、2、4、5题 3.用上面实验B的第二题和实验C的第二题完成下面的实验报告。 1、完成实验D循环结构(P.268)中的第1、3、4、6题,其中第1题利用单循环结构显示如图D.1(P.268)所示的界面,而后将图形改为倒三角形。 2、选做实验E数组(P.271)中的第1、2、3题中的任意二题 3、以实验D中的第4题和实验E中的做完的某一题完成下面的实验报告。 A.1 Private Sub Command1_Click() Label3 = Text1 End Sub A.2 Private Sub Form_Load() Timer1.Interval = 0 End Sub Private Sub Command1_Click() '自动 Timer1.Interval = 200 End Sub Private Sub Command2_Click() '手动 Timer1.Interval = 0 Call MyMove End Sub Private Sub Timer1_Timer() Call MyMove End Sub Sub MyMove() Label1.Move Label1.Left - 50 If Label1.Left < 0 Then Label1.Left = Form1.Width End Sub A.3 Private Sub Form_Click() Text1 = Val(Text1) + 1 End Sub Private Sub Form_Load() Text1 = 0 End Sub A.5

实验二--MATLAB程序的设计(含实验报告)

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2→1 3→10→5→16→8→4→2→1 6→3→10→5→16→8→4→2→1

MATLAB程序设计教程课后答案

实验指导 1、 n=input('请输入一个三位数:'); a=fix(n/100); b=fix((n-a*100)/10); c=n-a*100-b*10; d=c*100+b*10+a 2(1) n=input('请输入成绩'); switch n case num2cell(90:100) p='A'; case num2cell(80:89) p='B'; case num2cell(70:79) p='C'; case num2cell(60:69) p='D'; otherwise p='E'; end price=p (2)n=input('请输入成绩'); if n>=90&n<=100 p='A'; elseif n>=80&n<=89 p='B'; elseif n>=70&n<=79 p='C'; elseif n>=60&n<=69 p='D'; else p='E'; end price=p (3)try n; catch price='erroe' end 3 n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76,908,6]; a=n(1);

for m=2:20 if n(m)>a a=n(m); elseif n(m)=0 disp(A([n],:)); elseif n<0 disp(lasterr); else disp(A([6],:)); disp(lasterr); end 7(1) f=[]; for n=1:40

1实验一 Matlab程序设计与M文件(1)

实验一 Matlab 程序设计与M 文件 一、实验目的 1. 掌握Matlab 程序设计常用命令,如,循环、选择、暂停、显示输出、输入变量值等。 2. 掌握Matlab 的M 文件的创建于使用,包括脚本文件和函数文件。 3. 掌握常用的编程技巧。 二、实验内容 1. 输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。其中90分~100分为A ,80分~89分为B ,79分~79分为C ,60分~69分为D ,60分以下为E 。 要求: (1) 分别用if 语句和switch 语句实现。 (2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 2. 硅谷公司员工的工资计算方法如下: (1) 工作时数超过120小时者,超过部分加发15%。 (2) 工作时数低于60小时者,扣发700元。 (3) 其余按每小时84元计发。 试编程按输入的工号和该号员工的工时数,计算应发工资。 3. 根据2 222211116123n π=++++,求π的近似值。当n 分别取100、1000、10000时,结果是多少? 要求:分别用循环结构和向量运算(使用sum 函数)来实现。 4. 考虑以下迭代公式: 1n n a x b x +=+ 其中a 、b 为正的学数。 (1) 编写程序求迭代的结果,迭代的终止条件为|x n+1-x n |≤10-5,迭代初值x 0=1.0,迭代次数不超过500次。 (2) 如果迭代过程收敛于r ,那么r 的准确值是,当(a,b)的值 取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。

5. 已知 12312311021 323 n n n n f n f n f n f f f f n ---==??==??==??=-+>? 求f 1~f 100中: (1) 最大值、最小值、各数之和。 (2) 正数、零、负数的个数。 6. 若两个连续自然数的乘积减1是素数,则称这两个边疆自然数是亲密数对,该素数是亲密素数。例如,2×3-1=5,由于5是素数,所以2和3是亲密数,5是亲密素数。求[2,50]区间内: (1) 亲密数对的对数。 (2) 与上述亲密数对对应的所有亲密素数之和。 7. 设2411()(2)0.1(3)0.01 f x x x =+-+-+,编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。 8. 一物理系统可用下列方程组来表示: 111211 12 220cos sin 0sin 0cos 000sin 000cos 1a m m a m g m N m N m g θθθθθθ--??????????????????=??????-??????-?????? 从键盘输入m 1、m 2和θ的值,求a 1、a 2、N 1和N 2的值。其中g 取9.8,输入θ时以角度为单位。 要求:定义一个求解线性方程组AX=B 的函数文件,然后在命令文件中调用该函数文件。

Matlab编程与应用习题和一些参考答案

Matlab 上机实验一、二 3.求下列联立方程的解???????=+-+-=-+=++-=--+4 1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b 4.设???? ??????------=81272956313841A ,??????????-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。 >> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8]; >> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3) 5.设 ?? ????++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。 >> x=linspace(0,2*pi,101); >> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r') 6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var ) a=randn(8,6) mean(a) var(a) k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g)

c语言程序设计实践教程答案完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A 6.B

8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为: 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D 6.C 7.D

matlab程序设计作业

Matlab程序设计作业 姓名: 学号: 专业:

? MATLAB 程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y 二[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot 的原始数据、一次拟合曲线和三次拟合曲线,给出 原始曲线 MATLAB 代码和运行结果。 7 6 5 4 3 2 2 3 4 5 6 7 8 9 10

7 6.5 6 5.5 5 4.5 4 3.5 3 2.5 10 一次拟合 三次拟合

x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2]; figure; plot(x,y) p1=polyfit(x,y,1); y1=polyval(p1,x); figure; plot(x,y1) p2=polyfit(x,y,3); y2=polyval(p2,x); figure; plot(x,y2) 2、在[0, 3n区间,绘制y二Sin(x)曲线(要求消去负半波,即(n 2n)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 x=0:pi/1000:3*pi; y=Sin(x); y1=(y>=0).*y; %消去负半波figure(1); plot(x,y1, 'b' ); a=mean(y1) %求出y1 的平均值 b=max(y1) %求出y1 的最大值b, 以及最大值在矩阵中的位置; d=x(find(y1==b)) >> ex1 a = 0.4243 b = 1 d = 1.5708 7.8540 >>

matlab程序设计与应用实验指导书

附件2 《matlab程序设计与应用》实验指导书 山东建筑大学信息与电气工程学院

前言 一、实验目的 本课程是电气工程及其自动化、自动化、电力工程与管理专业本科生的 学科基础选修课,它在线性代数、信号分析和处理、控制系统设计和仿真等 方面有着广泛的应用。主要是学习MATLAB的语法规则、基本命令和使用环境,使学生掌握MATLAB的基本命令和基本程序设计方法,提高使用该语言 的应用能力,具有使用MATLAB语言编程和调试的能力,以便为后续多门课 程使用该语言奠定必要的基础。 通过上机实验,使学生掌握MATLAB在线帮助功能的使用、熟悉MATLAB运行环境和MATLAB语言的主要特点,掌握MA TLAB语言的基本 语法规则及基本操作命令的使用,学会M文件的建立和使用方法以及应用MATLAB实现二维和三维图形的绘制方法,具有使用MATLAB语言编程和 调试的能力。 二、实验前预习 每次实验前,学生须仔细阅读本实验指导书的相关内容,明确实验目的、要求;明确实验步骤、测试数据及需观察的现象;复习与实验内容有关的理论知识;预习仪器设备的使用方法、操作规程及注意事项;做好预习要求中提出的其它事项。 三、实验注意事项 1.实验开始前,应先检查本组电脑设备是否工作正常,matlab软件工作是否正常。 2.实验时每位同学应独立完成实验任务,避免抄袭。 3.实验后应及时将实验数据进行记录与存盘,避免因电脑故障或其它原因造成实验数据的丢失。 4.实验中严格遵循电脑操作规程,如电脑发生异常现象,应立即切断电源,

报告指导教师检查处理。 5.测量数据或观察现象要认真细致,实事求是。 6.未经许可,不得对电脑进行软件及硬件的更改操作。 7.实验结束后,实验记录交指导教师查看并认为无误后,方可关掉电脑离开。 8.爱护公物,发生仪器设备等损坏事故时,应及时报告指导教师,按有关实验管理规定处理。 9.自觉遵守学校和实验室管理的其它有关规定。 四、实验总结 每次实验后,应对实验进行总结,即实验数据进行整理,绘制波形和图表,分析实验现象,撰写实验报告。实验报告除写明实验名称、日期、实验者姓名、同组实验者姓名外,还包括: 1.实验目的; 2.实验内容 3.实验流程图; 4.程序命令清单; 5.运行结果; 6.实验的收获与体会; 7.回答每项实验的有关问答题。

MATLAB程序设计及经典例题解析3

MATLAB程序设计 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。 例3-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。 程序1:首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c =22.7778 程序2:首先建立函数文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:'); x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c =21.1111 x =21.1111 3.1.2 M文件的建立与打开 M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。

1.建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口。 (2) 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 2.打开已有的M文件 打开已有的M文件,也有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。 (2) 命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。 3.2 程序控制结构 3.2.1 顺序结构 1.数据的输入 从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为: A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入什么样的数据。 如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令: xm=input('What''s your name?','s'); 2.数据的输出 MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为

C程序设计教程与实验实验答案

#include void main() { int i; static int a[8]={10,5,4,0,12,18,20,46}; void jhmaxmin(); printf("Original array:\n"); for(i=0;i<8;i++) printf("%5d",a[i]); printf("/n"); jhmaxmin(a,8); printf("Array after swapwing max and min: \n"); for(i=0;i<8;i++) printf("%5d",a[i]); printf("\n"); } void jhmaxmin(int p[],int n) { int t,*max,*min,*end,*q; end=p+n; max=min=p; for(q=p+1;q*max) max=q; if(*q<*min) min=q; } t=*max; *max=*min; *min=t; } Sy8-2 #include int len(char s[]) { char *p=s; while (*p!='\0')p++; return p-s; } main() { char s[80]; gets(s); printf("\"%s\"include %d characters.\n",s,len(s)); }

#include #include void main() { int i,a[26]; char ch,str[80],*p=str; gets(str); for(i=0;i<26;i++) a[i]=0; while(*p!='\0') { ch=*(p++); ch=ch>'A'&&ch<='Z'?ch+'a'-'A':ch; if('a' main() { int a[8],*p; int i,j,t,k; p=a; printf("Input the numbers:"); for(i=0;i<8;i++) scanf("%d",p+i); t=*p; for(i=0;i<8;i++) { for(j=i;j<8;j++) if(j==i||*(p+j)

矩量法matlab程序设计实例

矩量法m atla b程序设计实例: Ha llen 方程求对称振子天线 一、条件与计算目标 已知: 对称振子天线长为L,半径为a ,且天线长度与波长得关系为,,设,半径a=0、0000001,因此波数为。 目标: 用H all en 方程算出半波振子、全波振子以及不同值得对应参数值。 求:(1)电流分布 (2)E 面方向图 (二维),H 面方向图(二维),半波振子空间方向性图(三维) 二、对称振子放置图 图1 半波振子得电流 分布 半波振子天线平行于z 轴放置,在x轴与y轴上得分量都为零,坐标选取方式有两种形式,一般选取图1得空间放置方 式。图1给出了天线得电流分布情况,由图可知,当天线很细时,电流分布近似正弦分布。 三、Ha llen 方程 得解题思路 ()()()()2 1 ' ' ' ' 12,cos sin sin 'z z i z z z z i z k z G z z dz c kz c kz E k z z dz j ωμ'++=-?? 对于中心馈电得偶极子,Hallen 方程为 ()22'1222 ('),'cos sin sin ,2L L i L L V i z G z z dz c kz c kz k z z j η + -- ++= <<+? 脉冲函数展开与点选配,得到 ()1121 ,''cos sin sin ,1,2,,2n n N z i n m m m m z n V I G z z dz c kz c kz k z m N j η +''=++= =???∑? 上式可以写成 矩阵形式为 四、结果与分析 (1)电流分布

C#程序设计基础教程与实训习题答案

附录Ⅰ各章习题答案 第1章C#语言概述 一、判断题 1、√ 2、× 3、√ 4、× 5、√ 6、√ 7、× 8、× 二、选择题 1、C 2、B 3、C 4、A 5、A 6、B 7、B 8、B 三、填空题 1、最新的;面向对象 2、C和C++;JA V A 3、先进设计思想;安全性能 4、灵活性 5、集成开发环境(IDE)——Visual https://www.sodocs.net/doc/773107584.html, 6、Microsoft .NET Framework(微软.NET框架体系) 7、最基本的通用语言运行时库CLR(Common Language Runtime);一些提供了具体功能的类库 8、需要开发和设计的项目文件;应用程序或组件 四、简答题 1、①简洁易用的语法。②自动的资源回收机制。③与Web的紧密结合。④完整的安全性与错误处理。⑤版本处理技术。⑥灵活性和兼容性。 2、C#程序必须包含一个Main方法,Main方法是程序的入口点,程序控制在该方法中开始和结束。该方法用来执行任务,并在任务完成后返回信息。 第2章常用标准控件 一、判断题 1、× 2、× 3、√ 4、× 5、√ 6、× 7、√ 8、√ 二、选择题 1、A 2、C 3、B 4、D 5、A 6、B 7、B 8、D 三、填空题 1、输入/输出信息 2、属性 3、事件 4、TextAlign 5、Click 6、文本框(TextBox) 7、保证数据标准化 8、Show 四、简答题 1、简述生成控件的操作过程。 (1)单击工具箱中相应的工具按钮,这一按钮呈现被按下状态,表明被选定。 (2)移动鼠标到窗体上,这时鼠标的指针变成十字形,在需要放置控件的左上角位置按下鼠标左键。 (3)在窗体范围内向下向右拖动鼠标,这时窗体上会显示一个矩形框,当其大小合适时,松开鼠标左键,窗体上就会显示一个相应大小的这种控件。 另外一种快捷的方法是在工具箱中相应的工具按钮上双击此按钮,窗体上就会出现一个系统默认大小的所选按钮。 2、消息框有多少种Button参数设置? OK:只显示“确定”按钮 OKCancel:显示“确定”和“取消”按钮 AbortRetryIgnore:显示“终止”、“重试”和“忽略”按钮 YesNoCancel:显示“是”、“否”和“取消”

Matlab程序设计实训

实习报告 实习名称Matlab程序设计实训 专业班级**** 姓名*** 学号*** 成绩评定 电气与信息工程学院 和谐勤奋求是创新

实习考核和成绩评定办法 1.实习成绩的考核由指导教师根据实习表现、实习报告、实习成果、现场操作、设计、口试或笔试等几个方面,给出各项权重,综合评定。该实习考核教研室主任审核,主管院长审批备案。 2.成绩评定采用五级分制,即优、良、中、及格、不及格。 3.参加本次实习时间不足三分之二或旷课四天以上者,不得参加本次考核,按不及格处理。 4.实习结束一周内,指导教师提交实习成绩和实习总结。 5.实习过程考核和实习成绩在教师手册中有记载。 实习报告内容 实习报告内容、格式各专业根据实习类别(技能实习、认识实习、生产实习、毕业实习等)统一规范,经教研室主任审核、主管院长审批备案。 注:1. 实习任务书和实习指导书在实习前发给学生,实习任务书放置在实习报告封面后和正文目录前。 2. 为了节省纸张,保护环境,便于保管实习报告,统一采用A4纸,实习报告建议双面打印(正文采 用宋体五号字)或手写,右侧装订。

2016/2017学年第二学期 《Matlab程序设计实训》计划 指导教师:****** 班级:自动化1541、2班 实习地点:1教8楼机房 一、实习目的 实习的目的:了解并掌握MATLAB软件的各种应用开发环境;了解并掌握MATLAB软件强大的科学运算功能;了解并掌握利用MATLAB语言程序设计流程进行程序设计的方法;了解并掌握MATLAB的图形处理功能;了解MATLAB软件的交互式仿真功能;了解并掌握MATLAB软件在控制系统建模、分析以及设计中的应用。 实习的任务:通过实习可以使学生将MATLAB软件与控制系统理论及仿真相结合,加深对控制系统理论知识的理解,验证理论知识的正确性,提高软件的实际操作能力,可以有效地培养学生分析及解决实际问题的能力,不断提高自学能力,养成良好的科学态度以及实事求是、严谨踏实的学习风气,成为真正的应用型本科人才。通过实训达到边学边练、理论与实际操作相结合的学习目的。 二、实习内容 掌握MATLAB编程环境、基础知识;掌握矩阵生成及运算、数组运算;矩阵函数;掌握常用绘图命令及方法;掌握基本图形处理、二维图形处理方法;掌握可视化M文件程序设计及调试;掌握Simulink仿真工具的建立和基本仿真方法。 了解并掌握基于MATLAB的控制系统数学模型及分析方法;了解并掌握基于MATLAB的控制系统PID控制器的基本设计方法。综合应用MATLAB程序设计语言,根据设计任务要求,完成软件程序的编制并调试运行。 四、实习要求 实习期间,严格遵守课堂纪律,不许迟到、早退;实习期间,学习态度端正,认真上机练习;熟练掌握MATLAB软件的应用方法;完成实习报告一份,内容充实,写出实习的体会与收获;实习报告打印成文。

相关主题