第一题
某物理系统可用下列方程组来表示:
从键盘输入m1、m2和θ的值,求a1、a2、N1和N2的值。其中g取9.8,输入θ时以pi为单位。
要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。
代码:
%建立一个和函数同名的文件
function [value]=calcLinearEqua(m1,m2,ag)
g=9.8;
A=[m1*cos(ag),-m1,-sin(ag),0;...
m1*sin(ag),0,cos(ag),0;...
0,m2,-sin(ag),0;...
0,0,-cos(ag),1;]
B=[0;m1*g;0;m2*g;]
value=A\B;
end
%主程序文件
clear;clc;
m1=input('输入m1:');
m2=input('输入m2:');
ag=input('输入角度(以pi为单位):');
[result]=calcLinearEqua(m1,m2,ag)
运行结果
第二题:
已知y=f(40)/(f(30)+f(20))
①当f(n)=n+10ln(n^2+5)时,y的值是多少。
②当f(n)=1×2+2×3+3×4+…+n×(n+1)时,y的值是多少。
代码:
clear;clc;
f1=@(n)n+10*log(n^2+5);
y1=f1(40)/(f1(30)+f1(20))
%%
y2=f2(40)/(f2(30)+f2(20))
function[s]=f2(n)
s=0;
for i=1:n
f=i*(i+1);
s=s+f;
end
end
运行结果:
第三题
利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:
(1) 均值,标准差和标准方差。
(2) 最大元素和最小元素。
(3) 大于0.5的随机数个数占总数的百分比。
代码
clear;clc;
A=rand(1,30000);%生成随机数
mu=mean(A)%求均值
v=var(A)%求方差
sigma=std(A,0,2)%求标准方差
max=max(A)%求最大元素
min=min(A)%求最小元素
%求大于0.5的随机数个数占总数的百分比
n=0;
for i=1:30000
if A(i)>0.5
n=n+1;
end
end
p=n/30000
运行结果
第四题
代码
clear;clc;
T1=6:2:18;
tempreture_outside1=[15 19 24 28 34 32 30];
tempreture_inside1=[18 20 22 25 30 28 24];
T2=6.5:2:17.5;
%interp1:一维数据插值(表查找)
tempreture_outside2=interp1(T1,tempreture_outside1,T2,'spline')
tempreture_inside2=interp1(T1,tempreture_inside1,T2,'spline')
运行结果
第五题
代码
clear;clc;
x=1:10:101;
lgx=[0 1.0414 1.3222 1.4914 1.6128 1.7076 1.7853 1.8513 1.9085 1.9590 2.0043];
px=polyfit(x,lgx,5);
px=polyval(px,x);%y = polyval(p,x) 计算多项式 p 在 x 的每个点处的值
plot(x,lgx,x,px);
运行结果