(完整版)MATLAB)课后实验[1]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 MATLAB 运算基础
1. 先求以下表达式的值,尔后显示 MATLAB 工作空间的使用情况并保存全部变量。
(1)
2sin 85 z
1 2
1 e
(2) 1
2
z ln( x 1 x ) ,其中
2
2 x
2 1 2i
5
(3)
a
e e a
z sin( a 0.3) ln , a 3.0, 2.9, L , 2.9, 3
2 2
2
t 0 t 1
(4) 2
z t 1 1 t 2
4
2
t 2t 1 2 t 3
,其中
解:
M 文件:
z1=2*sin(85*pi/180)/(1+exp(2))
x=[2 1+2*i;-.45 5];
z2=1/2*log(x+sqrt(1+x^2))
a=-3.0:0.1:3.0;
z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)
t=0:0.5:2.5;
z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)
4. 完成以下操作:
(1) 求[100,999] 之间能被 21 整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:
m=100:999;
n=find(mod(m,21)==0);
length(n)
ans =
43
(2). 建立一个字符串向量比方:
ch='ABC123d4e56Fg9'; 那么要求结果是:
ch='ABC123d4e56Fg9';
k=find(ch>='A'&ch<='Z');
ch(k)=[]
ch =
123d4e56g9
实验二 MATLAB矩阵解析与办理
1. 设有分块矩阵 A E R
3 3 3 2
O S
2 3 2 2
,其中 E、R、O、S 分别为单位矩阵、随机矩阵、零矩
阵和对角阵,试经过数值计算考据 2
A E R RS
2
O S。
解: M文件以下;
5. 下面是一个线性方程组:
1 1 1
2 3 4
x
1
1 1 1
x
2
3 4 5
x 0.52
1 1 1
3
4 5 6
(1) 求方程的解。
(2) 将方程右边向量元素 b3 改为 0.53 再求解,并比较 b3 的变化和解的相对变化。
(3) 计算系数矩阵 A 的条件数并解析结论。
解: M 文件以下:
实验三选择结构程序设计
1. 求分段函数的值。
2
x x 6 x 0且x 3
2
y x x x x x
5 6 0 5且 2及 3
2
1 其他
x x
用 if 语句实现,分别输出时的 y 值。
解:M 文件以下:
2. 输入一个百分制成绩,要求输出成绩等级 A、B、C、D、E。
其中 90 分~100 分为 A,80 分~89 分为 B,79 分~79 分为 C,60 分~69 分为 D,60 分以下为 E。
要求:
(1) 分别用 if 语句和 switch 语句实现。
(2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
解:M 文件以下
3. 硅谷公司员工的薪水计算方法以下:
(1) 工作时数高出 120 小时者,高出局部加发 15% 。
(2) 工作时数低于 60 小时者,扣发 700 元。
(3) 其他按每小时 84 元计发。
试编程按输入的工号和该号员工的工时数,计算应发薪水。
解:M 文件下
实验四循环结构程序设计
1. 依照
2
1 1 1 1
L ,求π的近似值。
当 n 分别取 100 、1000 、10000
2 2 2 2
6 1 2 3 n
时,结果是多少?
要求:分别用循环结构和向量运算〔使用 sum 函数〕来实现。
解:M 文件以下:
运行结果以下:
2. 依照y 1 1 1 1
L ,求:3 5 2n 1
(1) y<3 时的最大 n 值。
(2) 与(1)的 n 值对应的 y 值。
解:M—文件以下:
3. 考虑以下迭代公式:
x n 1
a
b x
n
其中 a、b 为正的学数。
(1) 编写程序求迭代的结果,迭代的停止条件为 |x n+1 -x n|≤10 -5,迭代初值 x0,迭代次数不高出 500 次。
(2) 若是迭代过程收敛于 r,那么 r 的正确值是
2 4
b b a
2
,当(a,b) 的值取
(1,1) 、
(8,3) 、(10,0.1) 时,分别对迭代结果和正确值进行比较。
解:
M 文件以下:
运算结果以下;
5. 假设两个连续自然数的乘积减 1 是素数,那么称这两个边疆自然数是亲密数对,该素数
是亲密素数。
比方,2× 3-1=5 ,由于 5 是素数,所以 2 和 3 是亲密数,5 是亲密素数。
求[2,50] 区间内:
(1) 亲密数对的对数。
(2) 与上述亲密数对对应的全部亲密素数之和。
解:
M 文件:
实验五函数文件
4. 设f ( x) 1 1
2 4
( x 2) (x 3)
,编写一个 MATLAB 函数文件,使得
调用 f(x) 时,x 可用矩阵代入,得出的 f(x)为同阶矩阵。
解:
函数文件:
function f= fx(x)
%fx fx 求算 x 矩阵下的 f(x) 的函数值
A=0.1+(x-2).^2;
B=0.01+(x-3).^4;
f=1./A+1./B;
clc;
x=input(' 输入矩阵 x='); f=fx(x)
运算结果:
5.
y
f (40)
f (30) f
(20)
(1) 当 f(n)=n+10ln(n 2+5) 时,求 y 的值。
(2) 当 f(n)=1 × 2+2 × 3+3 × 4+...+n × (n+1) 时,求 y 的值。
解:(1)
函数文件:
function f=f(x)
f=x+10*log(x^2+5);
命令文件:
clc;
n1=input( 'n1=' );
n2=input( 'n2=' );
n3=input( 'n3=' );
y1=f(n1);
y2=f(n2);
y3=f(n3);
y=y1/(y2+y3)
(2).
函数文件
function s= g(n)
for i=1:n
g(i)=i*(i+1);
end
s=sum(g);
命令文件:
clc;
n1=input( 'n1=' );
n2=input( 'n2=' );
n3=input( 'n3=' );
y1=g(n1);
y2=g(n2);
y=y1/(y2+y3)
实验八数据办理与多项式计算
2. 将 100 个学生 5 门功课的成绩存入矩阵 P 中,进行以下办理:
(1) 分别求每门课的最高分、最低分及相应学生序号。
(2) 分别求每门课的平均分和标准方差。
(3) 5 门课总分的最高分、最低分及相应学生序号。
(4) 将 5 门课总分按从大到小序次存入 zcj 中,相应学生序号存入 xsxh 。
提示:上机调试时,为防范输入学生成绩的麻烦,可用取值范围在 [45,95] 之间的随机
矩阵来表示学生成绩。
解:M 文件:
clc;
t=45+50*rand(100,5);
P=fix(t); % 生成 100 个学生 5 门功课成绩
[x,l]=max(P)
%x 为每门课最高分行向量 ,l 为相应学生序号
[y,k]=min(P)
%y 为每门课最低分行向列 ,k 为相应学生序号
mu=mean(P) %每门课的平均值行向量
sig=std(P) %每门课的标准差行向量
s=sum(P ,2) %5 门课总分的列向量
[X,m]=max(s)%5 门课总分的最高分 X 与相应学生序号 m
[Y,n]=min(s)%5 门课总分的最低分 Y 与相应学生序号 n
[zcj,xsxh]=sort(s)
%zcj 为 5 门课总分从大到小排序,相应学生序号 xsxh
运行结果:
3. 某气象察看得某日 6:00~18:00 之间每隔 2h 的室内外温度〔 0C 〕如实验表 1 所示。
实验表 1 室内外温度察看结果〔0C〕
时间 h 6 8 10 12 14 16 18
室内温度 t1 18.0
室外温度 t2
试用三次样条插值分别求出该日室内外 6:30~18:30 之间每隔 2h 各点的近似温度〔0C〕。
解:
M 文件:
clc;
h=6:2:18;
t1=[18.0 20.0 22.0 25.0 30.0 28.0 24.0];
t2=[15.0 19.0 24.0 28.0 34.0 32.0 30.0];
T1=interp1(h,t1,'spline')% 室内的 3 次样条插值温度
T2=interp1(h,t2,'spline')% 室外的 3 次样条插值温度
运行结果:
4. lgx 在[1,101] 区间 10 个整数采样点的函数值如实验表 2 所示。
实验表 2 lgx 在 10 个采样点的函数值
x 1 11 21 31 41 51 61 71 81 91
101
lgx 0
试求 lgx 的 5 次拟合多项式 p(x) ,并绘制出 lgx 和 p(x) 在[1,101] 区间的函数曲线。
解:
M 文件:
x=1:10:101;
y=lg10(x);
P=polyfit(x,y,5)
y1=polyval(P ,x);
plot(x,y,':o',x,y1,'-*')
5. 有 3 个多项式 P1(x)=x4+2x3+4x2+5 ,P2(x)=x+2 ,P3(x)=x2+2x+3 ,试进行以下操作:
(1) 求 P(x)=P 1(x)+P 2(x)P 3(x)。
(2) 求 P(x) 的根。
(3) 当 x 取矩阵 A 的每一元素时,求 P(x) 的值。
其中:
1
A 2
0 5
(4) 当以矩阵 A 为自变量时,求 P(x) 的值。
其中 A 的值与第 (3)题相同。
解:M 文件:
clc;clear;
p1=[1,2,4,0,5];
p2=[1,2];
p3=[1,2,3];
p2=[0,0,0,p2];
p3=[0,0,p3];
p4=conv(p2,p3); %p4 是 p2 与 p3 的乘积后的多项式
np4=length(p4);
np1=length(p1);
p=[zeros(1,np4-np1) p1]+p4 %求 p(x)=p1(x)+p2(x)
x=roots(p) %求 p(x) 的根
A=[-1 1.2 -1.4;0.75 2 3.5;0 5 2.5];
y=polyval(p,A) %x 取矩阵 A 的每一元素时的 p(x) 值
实验九数值微积分与方程数值求解
1. 求函数在指定点的数值导数。
实验六高层绘图操作
3.
x
y
1
2
x 0 2
e
2
ln( x 1 x ) x 0
在-5≤x≤5 区间绘制函数曲线。
解:M 文件:
clc;
x=-5:0.01:5;
y=(x+sqrt(pi))/(exp(2)).*(x<=0)+0.5*log(x+sqrt(1+x.^2)).*(x>0); plot(x,y)
2. 用数值方法求定积分。
(1)
2
2 2
I cost 4sin(2 t) 1d t 的近似值。
1
(2)
2
ln(1 x)
I dt
2 0 2
1 x
解:M 文件:
clc;clear;
f=inline('sqrt(cos(t.^2)+4*sin(2*t).^2+1)'); I1=quad(f,0,2*pi)
g=inline('log(1+x)./(1+x.^2)');
I2=quad(g,0,2*pi)
运行结果:
3. 分别用 3 种不相同的数值方法解线性方程组。
6x 5y 2z 5u 4
9x y 4z u 13
3x 4y 2z 2u 1
3x 9y 2u 11
解:M 文件:
clc;clear;
A=[6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2];
b=[-4 13 1 11]';
x=A\b
y=inv(A)*b
[L,U]=lu(A);
z=U\(L\b)
运行结果:
4. 求非齐次线性方程组的通解。
2x 7x 3x x 6
1 2 3 4
3x 5x 2x 2x 4
1 2 3 4
9x 4x x 7x 2
1 2 3 4
解:M 文件
clc;clear;
format rat
A=[2 7 3 1;3 5 2 2;9 4 1 7];
b=[6 4 2]';
[x,y]=line_solution(A,b)
:。
5. 求代数方程的数值解。
(1) 3 x+sin x-e
x=0 在 x0周边的根。
(2) 在给定的初值 x0=1,y0=1 ,z0=1 下,求方程组的数值解。
2
sin x y ln z 7 0
y 3
3x 2 z 1 0
x y z 5 0
解:M 文件:
function g=f(x)
g=3*x+sin(x)-exp(x);
clc;clear;
fzero('f',1.5)
(2). M 文件:
function F=fun(X)
x=X(1);
y=X(2);
z=X(3);
F(1)=sin(x)+y^2+log(z)-7;
F(2)=3*x+2-z^3+1;
F(3)=x+y+z-5;
X=fsolve('myfun',[1,1,1]',optimset('Display','off')) 运行结果:
6. 求函数在指定区间的极值。
(1) f (x)
3 cos log
x x x x
x
e
在(0,1) 内的最小
值。
(2) 3 3 2
f (x , x ) 2x 4x x 10x x x 在[0,0] 周边的最小值点和最小值。
1 2 1 1 2 1 2 2
解:M 文件:
function f=g(u)
x=u(1); y=u(2);
f=2*x.^3+4*x.*y^3-10*x.*y+y.^2;
clc;clear;
format long
f=inline('(x^3+cos(x)+x*log(x))/exp(x)');
[x,fmin1]=fminbnd(f,0,1)
[U,fmin2]=fminsearch('g',[0,0])
8. 求微分方程组的数值解,并绘制解的曲线。
y' y y
1 2 3
y' y y
2 1 3
y' y
3 1 2
y (0) 0,y (0) 1,y (0) 1
1 2 3
解:令 y1=x,y2=y,y3=z; 这样方程变为 :
x' yz
y' xz
z'
,自变量是 t
x(0) 0, y(0) 1, z(0) 1
M 文件:
function xdot=sys(x,y)
xdot=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];
clc;clear;
t0=0;tf=8;
[x,y]=ode23('sys',[t0,tf],[0,1,1])
plot(x,y)
实验十符号计算基础与符号微积分
一、
1. x=6,y=5 ,利用符号表达式求
z
3 x 1 x y
提示:定义符号常数 x=sym( ‘6’),y=sym( ‘5’)。
解:M 文件:
clear all;clc;
x=sym('6');y=sym('5');
z=(1+x)/(sqrt(3+x)-sqrt(y))
运行结果:
2. 分解因式。
(1) x 4-y4 (2) 5135
解:M 文件:
clear all;clc;
syms x y;t=sym('5135');
a=x^4-y^4;
factor(a)
factor(t)
运行结果:
5. 用符号方法求以下极限或导数。
sin x tan x
x(e 1) 2(e 1) arccosx
(1)lim (2) lim
3
x 0 x 1
sin x x 1
x 3 2 2
1 cos(2x ) a t dA d A d A
(3) y , 求y',y'' (4) A , 分别求 , ,
2 x t cos x ln x dx dt dxdt
x 0,y 1
2
y f
2 2
2 x y xy
(5) f (x, y) (x 2x)e , ,
求
x x y
解:M 文件:
clear all;clc;
syms x t a y z;
f1=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/sin(x)^3; %(1)
limit(f1)
f2=(sqrt(pi)-sqrt(acos(x)))/sqrt(x+1); %(2)
limit(f2,x,-1,'right')
y=(1-cos(2*x))/x; %(3)
y1=diff(y)
y2=diff(y,2)
A=[a^x t^3;t*cos(x) log(x)]; %(4)
Ax1=diff(A,x,1)
At2=diff(A,t,2)
Axt=diff(Ax1,t)
f=(x^2-2*x)*exp(-x^2-z^2-x*z); %(5)
Zx=-diff(f,x)/diff(f,z)
dfxz=diff(diff(f,x),z);
x=sym('0');z=sym('1');
eval(dfxz) %符号运算返回数值
运行结果:
6. 用符号方法求以下积分。
dx dx
(1) (2)
4 8 2 2
1 x x (arcsin x) 1 x
2 ln 2
x 1
x x 2
(3) dx (4) e (1 e ) dx
4
0 1 0
x
解:M 文件:
clear;clc;
x=sym('x');
f1=1/(1+x^4+x^8); %(1)
f2=1/(asin(x))^2/sqrt(1-x^2); %(2) f3=(x^2+1)/(x^4+1); %(3)
f4=exp(x)*(1+exp(x))^2; %(4)
F1=int(f1)
F2=int(f2)
F3=int(f3,0,inf)
F4=int(f4,0,log(2))
运行结果:。