matlab第2章练习及答案

更新时间:2023-10-06 15:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第二章例题

命令文件(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

(2)列网孔方程

?(R1?R3)Ia?R3Ib?Us1???R3Ia?(R2?R3)Ib?Us2(3)写成矩阵形式

?R3??Ia??Us1??R1?R3????R3????R2?R3IbUs2??????

(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),%从矩阵元素中求出网孔电流

3

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

?ln(x2?1)?x2?1,x?0%计算分段?y??sinxx≥0? ,数 x?1 : ?程序如下:

x=input('请输入x的值:'); if x<0

y=log(x*x+1)+sqrt(x*x+1); else

y=sin(x)/(x+1); end disp(y)

4

多分支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:

5

本文来源:https://www.bwwdw.com/article/s07d.html

Top