当前位置:文档之家› matlab实验3代码

matlab实验3代码

1编写程序计算([-3, 3],步长0.01)
解:
x1=-3:0.01:(-1+0.01);
y1=(-x1.^2-4.*x1-3)/2;
plot(x1,y1)

x2=-1:0.01:(1-0.01);
y2=-x2.^2+1;
hold on
plot(x2,y2)

x3=1:0.01:3
y3=(-x3.^2+4*x3-3)/2;
hold on
plot(x3,y3)

2.利用menu函数输入选择参数ch。当ch=1时,产生[-10, 10]之间均匀分布的随机数;当ch=2时,产生[-5, 5]之间均匀分布的随机数;当ch=3时,产生[-1, 1]之间均匀分布的随机数;当ch=4时,产生均值为0,方差为1的正态分布随机数。要求使用switch函数。
解:
CH = menu('please choose a number', '1', '2','3','4');
switch CH
case 1
a = -10; b = 10;%注意两个分号
result = a + (b-a) * rand(1);
case 2
a = -5; b = 5;
result = a + (b-a) * rand(1);
case 3
a = -1; b = 1;
result = a + (b-a) * rand(1);
case 4
result =randn(1);
end
disp(result);

3、加权平均分程序编写,输入某同学某学期6门课程的成绩,并按学分2、3、2、4、2.5、1分别进行加权,计算出学生的加权平均分
解:
wi = [2 3 2 4 2.5 1];
s = input('\n请输入6门课程的成绩,以空格分隔:\n', 's');
s = str2num(s); %s是一个ASCII字符串表示的数值,这种调用格式把字符串转换成数值
if numel(s) < 6 %numel()用于计算数组中满足指定条件的元素个数
error('课程不足6门');
end
xi = s(1:6);
average_score = sum(wi.*xi) / sum(wi);
fprintf('\n 加权平均分:%2f\n', average_score);

4、企业发放的奖金按照个人完成的的利润(I)提成,分段提成比例KI为
┍ 10% I<=10 万
┋ 5% 10KI= 2% 20┗ 1% I>40 万
即如王某完成25万元利润时,个人可得:
y=10*10%+10*5%+5*2% 万
据此编写程序,求企业职工的奖金
解:
p=input('请输入利润 p=');%注意下
if p<=10
k=0.1*p;
elseif p<=20
k=1+0.05*(p-10);
elseif p<=40
k=1.5+0.02*(p-20);
else
k=1.9+0.01*(p-40);
end
k

5请修改下面的程序,让他们没有for循环语句!
解:
A=[1 2 3; 4 5 6; 7 8 9];
A(find(A>8|A<2))=0

6、编程求
的值,要求:
使用循环语句编程,但不能使用数组运算符和sum;
使用数组运算符和sum编程,不能使用循环结构。
解:
%方法一
y=0;
n=88;
for j=1:n
y=y+1/((j+1)^2);%注意分号
end
y %注意
%方法二
a=1:88;
y=sum(1./(a+1).^2)

相关主题
文本预览
相关文档 最新文档