例1.1 求解线性方程组。
命令如下:> a=[2,3,-1;8,2,3;45,3,9];
> b=[2;4;23];
> x=inv(a)*bx =
例1.2 绘制正弦曲线和余弦曲线。
命令如下:>> x=[0:0.5:360]*pi/180;
>> plot(x,sin(x),x,cos(x))
例1.3 输入10个学生的成绩并对成绩按升序排序。
>>g=[45 56 34 24 76 89 32];
>>f=sort(g)f =
例1.4 设有常微分方程初值问题,试求其数值解,并与精确解相比较。
(1)建立函数文件。
function yp=funt(t,y)
yp=(y^2-t-2)/4/(t+1);
(2)求解微分方程:
t0=0;tf=10;y0=2;
[t,y]=ode23('funt',[t0,tf],y0);
y1=sqrt(t+1)+1;
t'例2.1 计算表达式的值,并将结果赋给变量x,然后显示出结果。
在matlab命令窗口输入命令:
>>x=(5+cos(47*pi/180))/1+sqrt(7)-2*i) %计算表达式的值。
2.2 a=[1 2 3;4 5 6;7 8 9]a =
例2.3 分别建立×2和与矩阵a同样大小的零矩阵。
1)建立一个3×3零矩阵:zeros(3)
> zeros(3)ans =
建立一个3×2零矩阵:zeros(3,2)
> zeros(3,2)ans =
3)建立与矩阵a同样大小零矩阵:zeros(size(a))
> a=[2 4 7 5;7 8 9 10];zeros(size(a))ans =
例2.4 产生5阶随机方阵a,其元素为[10,90]区间的随机整数,然后判断a的元素是否能被3整除。
(1) 生成5阶随机方阵a。
> a=fix((90-10+1)*rand(5)+10)a =
2) 判断a的元素是否可以被3整除。
>> p=rem(a,3)==0p =
例3.1 建立一个命令文件将变量a,b的值互换,然后运行该命令文件。
首先建立命令文件并以文件名存盘:
clear;
a=1:10; b=[11,12,13,14;15,16,17,18];
c=a;a=b;b=c;ab
anta =
b =例3.2 建立一个函数文件将变量a,b的值互换,然后在命令窗口调用该函数文件。
首先建立函数文件。
function [a,b]=fexch(a,b) %exch
c=a;a=b;b=c;
clear;
x=1:10; y=[11,12,13,14;15,16,17,18];
[x,y]=fexch(x,y)
例3.5 输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。
c=input('请输入一个字符','s');
if c>='a' &c<='z'
disp(setstr(abs(c)+1));
elseif c>='a'& c<='z'
disp(setstr(abs(c)-1));
elseif c>='0'& c<='9'
disp(abs(c)-abs('0'))
elsedisp(c);
end例3.6 某商场对顾客所购买的商品实行打折销售,已知打折标准为:
商品**小于200元时,折扣率为0;
商品**大于或等于200元且小于500时,折扣率为0.03;
商品**大于或等于500且小于1000元时,折扣率为0.05;
商品**大于或等于1000且小于2500元时,折扣率为0.08;
商品**大于或等于2500且小于5000元时,折扣率为0.1;
商品**大于或等于5000元时,折扣率为0.14;
求所售商品的实际销售**。
>price=input('请输入商品**');
switch fix(price/100)
case rate=0;
case rate=3/100;
case num2cell(5:9)
rate=5/100;
case num2cell(10:24)
rate=8/100;
case num2cell(25:49)
rate=10/100;
otherwise
rate=14/100;
endprice=price*(1-rate)
请输入商品**890
price =
例3.7 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。
程序如下:a=[1,2,3;4,5,6]; b=[7,8,9;10,11,12];
tryc=a*b;
catchc=a.*b;endc
lasterr %显示出错原因。c =
ans =error using ==
inner matrix dimensions must agree.
例3.8 已知求y的表达式,当n=100时,求y的值。
程序如下 y=0;n=100;
for i=1:n
y=y+1/i/i;endy
补充知识: 在实际matlab编程中,为提高程序的执行速度,常用向量运算来代替循环操作:
n=100; i=1:n;
f=1./i.^2;
y=sum(f)
例3.9 求定积分。
程序如下:a=0;b=3*pi;n=1000; h=(b-a)/n;
x=a:h:b; f=exp(-0.5*x).*sin(x+pi/6);
for i=1:n
s(i)= f(i)+f(i+1))*h/2;
ends=sum(s)
补充知识:事实上,matlab提供了有关数值积分的标准函数,实际应用中可直接调用这些函数求数值积分。
例3.10 已知5个学生4门功课的成绩,求每名学生的总成绩。
程序如下:s=0;
a=[65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87]
for k=a
s=s+k;
enddisp(s');
结果为:a =
例3.11 产生一个长度为6的调和数列。
程序如下:x=zeros(1,6);
i=1;while i<=6
x(i)=1/i;
i=i+1;
endformat rat %使用分数表示数值。
disp(x
例3.12 用while语句实现例3.8。
数学建模实验作业
实验二 matlab程序设计。一 实验目的。熟悉matlab软件环境,掌握matlab软件编程 二 实验内容与要求。1 matlab工作环境 2 变量 数组与矩阵 3 程序设计 4 内部函数与自定义函数 三 实验习题。1 建立矩阵a,然后找出大于4的元素的位置。2 产生5阶随机方阵a,其元素为 10...
数学建模作业实验
图论组合优化实验。解 分类讨论 只用一台,花钱 购置 2.5 维护 0.3 0.5 0.8 1.2 四年后卖了得1.1 共支出 2.5 0.3 0.5 0.8 1.2 1.1 4.2万元 用两台 分两种 第一 各用两年,购置 2.5 2.8 维护 2 0.3 0.5 卖了得 2 1.6 共支出 2....
数学建模作业实验
6多元分析试验。解 1 由题可以得出如下的r程序 则可以得出y关于x1 x2 x3的线性回归方程 y 10.12799 0.05140x1 0.58695 x2 0.28685x3 由上述的结果可以得知方程的常量与x2显著性为 表示十分的显著,x3显著性为 表示显著,而x2为不显著。由此结果可以看出...