- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab第2章练习及答案
第二章例题
命令文件(Script File)和函数文件(Function File) 例2-1
建立一个M文件,其功能是:用两个实变量R、M生成复变量RM,然后运行该M文件。
程序1:建立一个命令文件。
clear;
R=[1,2,3;4,5,6];
M=[11,12,13;14,15,16];
RM=R+i*M
以文件名setcomp保存命令文件,然后在MATLAB的命令窗口中输入setcomp,将会执行该命令文件,输出为:
程序2:建立一个函数文件。
function RM=fsetcomp(R,M)
RM=R+i*M;
以文件名fsetcomp保存命令文件,
然后在MATLAB的命令窗口中输入fsetcomp,将会输出出错信息。
在命令窗口输入:
a=[1,2,3;4,5,6];
b=[11,12,13;14,15,16];
c=fsetcomp(a,b)
顺序结构 例2-2
求一元二次方程ax2?+?bx?+?c?=?0的根。
由于MATLAB能进行复数运算,所以不需要判断方程的判别式,而直接根据求根公式求根。程序如下:
a=2;
b=6;
c=3;
% a=input(a=?);
% b=input(b=?);
% c=input(c=?);
d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];
disp([x1=,num2str(x(1)),,x2=,num2str(x(2))]);
用网孔分析法或节点电压法分析
1、用网孔分析法求下图中电流I1,I2,I3
解:建模:
(1)标出网孔电流方向及符号(如下图)
(2)列网孔方程
(3)写成矩阵形式
(4)待求量与网孔电流的关系
I1=Ia; I2=-Ib; I3=Ia-Ib;
编程:
clear,close all,format compact
R1=6;R2=3;R3=6;Us1=24;Us2=30;%输入已知参数
r11=R1+R3;r12=-R3;%为已知矩阵元素赋值
r21=-R3;r22=R2+R3;
R=[r11 r12;r21 r22];Us=[Us1;Us2];%列出已知矩阵
I=R\Us;%算出未知矩阵
Ia=I(1),Ib=I(2),%从矩阵元素中求出网孔电流
pause(5) %暂停5秒
I1=Ia;I2=-Ib;I3=Ia-Ib;%写出待求量与网孔电流的关系
disp([I1=,num2str(I1),,I2=,num2str(I2) ,,I3=,num2str(I3)]);
选择结构 例2-3
%判断是否为偶数,单分支
x=input(输入x=);%当x为矩阵时,逻辑判断里面的每一个元素
if rem(x,2)==0
disp(x is even);
end
%判断是否全为偶数 ,双分支
x=input(输入x=);
if rem(x,2)==0
disp(x is all even);
else
disp(x is not all even);
end
%计算分段函数 :
程序如下:
x=input(请输入x的值:);
if x0
y=log(x*x+1)+sqrt(x*x+1);
else
y=sin(x)/(x+1);
end
disp(y)
多分支if语句:例2-4
% %判断是否全为偶数,多分支
x=input(输入x=);
if isempty(x)
disp(x is empty)
elseif isnan(x)
disp(x is not a number)
elseif isinf(x)
disp(x is a inf)
elseif isstr(x)
disp(x is a string)
elseif rem(x,2)==0
disp(x is all even);
else disp(x is not all even);
end
%输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。
c=input(请输入一个字符,s);
if c=A c=Z
disp(lower(c));
elseif c=a c=z
disp(upper(c));
elseif c=0 c=9
disp(str2num(c)^2);
else
disp(c);
end
switch语句 例2-5:
将上例改用switch语句实现。
c=input(请输入一个字符:,s);
cc=abs(c);
文档评论(0)