电子科技大学数学实验-综合训练-TEST1

序号 1 [题目编号=499]

I = ∫ 0 1 ∫ 0.5 1 e 2 x 2 + 3 y 2 d x d y I=\int_0^1\int^1_{0.5}e^{2x^2+3y^2}dxdy I=010.51e2x2+3y2dxdy. 编程返回 I I I.

function r=myfun
syms x y;
f=exp(2*x^2+3*y^2);
r=int(int(f,x,1,0.5),y,1,0);

序号 2 [题目编号=104]

使用函数 plot 绘制函数$ f(x) = (1- 2e{sinx})(2x3 - 3x^2 + 4)$ 在闭区间 [ 0 , 2 π ] [0,2\pi] [0,2π]上的图形,并返回函数在点 0:0.01:2pi 处函数值.

编写本问题的函数文件第一行格式如下:

function a=myfun

% a 存储所求的函数值


序号 3 [题目编号=727]

求解下列线性规划
m a x f = 6 x 1 + 5 x 2 + 4 x 3 3 x 1 + 2 x 2 + 2 x 3 ≤ 25 4 x 1 + 2 x 2 + 3 x 3 ≤ 45 0 ≤ x i , i = 1 , 2 , 3. max f= 6x_1 + 5x_2 + 4x_3\\ 3x_1 + 2x_2 + 2x_3 \le25\\ 4x_1 + 2x_2 + 3x_3\le45\\ 0\le x_i, i = 1,2,3. maxf=6x1+5x2+4x33x1+2x2+2x3254x1+2x2+3x3450xi,i=1,2,3.

编写函数文件返回 2 个参数:第 1 个参数为最优决策,用一个列向量表示,第 2 个返回参数为对应最优决策的目标函数的函数值. 该函数文件第 1 行参考格式如下:

function [x,fval]= myfun

function [a,y]=myfun
A=[3 2 2
  4 2 3
  -1 0 0
  0 -1 0
  0 0 -1];
b=[25;45;0;0;0];
c=[6;5;4];
[a,z]=linprog(-c,A,b);
y=-z;

序号 4 [题目编号=2212]

已知一个函数的表达式用类似 MATLAB 语句表示如下(x1,x2 表示自变量): y=3x1^2+1x1+12x2^2+6x2+2x1x2;

请用 fminsearch 搜索该函数在点(2.5,3.5)附近的极小值点.返回该极值点.编写一个函数返回该极值点.要求该极值点以行向量存储.

function a=myfun
y=@(x)(3*x(1).^2+x(1)+12*x(2).^2+6*x(2)+2*x(1).*x(2));
a=fminsearch(y,[2.5,3.5]);

序号 5 [题目编号=243]

请问 1.7 元钱换成 1 分、2 分、5 分,共有多少种换法. 编写一个函数返回换法数量。编写本问题的函数文件第一行参考格式如下:

function n=myfun

% n 为换法数量

function n=myfun
n=0;
for i=0:100
    for j=0:200
        for k=0:200
            a=5*i+2*j+k;
            if a==170
                n=n+1;
            end
        end
    end
end

序号 6 [题目编号=154]

已知 f ( x , y ) = ∣ s i n ( x y ) ∣ e c o s y f ( x, y) =| sin( xy) | e^{cos y} f(x,y)=sin(xy)ecosy ,求 s = ∑ i = 1 25 f ( i , i ) s=\sum^{25}_{i=1}f(i,i) s=i=125f(i,i)的值。

要求: f (x, y) 定义为函数,尽量避免使用循环语句求 s ,充分利用 Matlab 的数组计算功能。

编写一个函数文件返回 s。

function s=myfun
f=@(x,y)(abs(sin(x*y))*exp(cos(y)));
s=0;
for i=1:25
    s=s+f(i,i);
end

序号 7 [题目编号=1134]

调用函数 find 找出向量 v 中元素大于等于 21,且小于等于 24 的所有元素的和 r,编写一个函数返回 r。

程序框架如下,包含了构造向量 v 的代码。 function r=myfun

%向量v由下列代码产生

rand(‘seed’, 139)

v=fix(28rand(1,50));

function all=myfun
rand('seed', 139) 
v=fix(28*rand(1,50));
r=find(v>=21&v<=24);
all=sum(v(r));

序号 8 [题目编号=67]

设 $z = xye{cos(x2 - xy+ y^2 )} $请用meshgrid函数产生区域-4≤x≤4,-4≤y≤4上的网格,并计算z在这些点的函数值,网格点由x=-4:0.1:4, y=-4:0.15:4确定。

function r=myfun
x=meshgrid(-4:0.1:4);
y=meshgrid(-4:0.15:4);
z=x.*y.*exp(cos(x.^2-x.*y+y.^2))

序号 9 [题目编号=2171]

求解下列线性规划模型:

min f(x1,x2,x3)= 3.5x1 + 7x2 + 2x3 s.t.

9x1 + 7x2 + 6x3 <= 550

6x1 + 6x2 + 5x3 >= 55

4x1 + 4x2 + 3x3 >= 75

1 <= x1 <= 34

4 <= x2 <= 34

3 <= x3 <= 24

编写程序调用 linprog 求解该模型,并返回 linprog 的前 3 个输出参数,即:第 1 个位最优解,第 2 个为最优值,第 3 个为返回参数.

编写本问题的函数文件第一行格式参考如下语句:

function [x,val,flag]=myfun

function [x,val,flag]=myfun
C=[3.5;7;2];
a=[9 7 6;-6 -6 -5;-4 -4 -3];
b=[550;-55;-75];
c=[];
d=[];
e=[1;4;3];
f=[34;34;24];
[x,val,flag]=linprog(C,a,b,c,d,e,f);

序号 10 [题目编号=474]

请用 ode23 函数求解下面的微分方程,并绘出曲线。
d x d t = 0.005 ( 1 + 1 1 + t ) x − 0.01 x 2 , x ( 0 ) = 10 , x ∈ [ 0 , 40 ] \frac{dx}{dt}=0.005(1+\frac{1}{1+t})x-0.01x^2,x(0)=10,x\in[0,40] dtdx=0.005(1+1+t1)x0.01x2,x(0)=10,x[0,40]

编写一个 function 文件返回函数 x(t)在 t=0:0.1:40 处的函数值(用 1 个列向量存储).

function b=myfun
x0=10;
t0=0:0.1:40;
[a,b]=ode23(@hhh,t0,x0)
plot(a,b,'r.');
function dfun=hhh(t,x)
dfun=0.005*(1+1/(1+t))*x-0.01*x^2;

序号 11 [题目编号=1319]

已知一个连续型随机变量 X 服从均值为 15,标准差为 2 的正态分布; 另外离散型随机变量Y1 的分布律如下表所示:

Y 1 Y_1 Y19101112
概率0.20.20.40.2

请编写程序估计事件 { X + Y 1 ≤ 30 } \{X + Y_1\le 30\} {X+Y130}发生的概率. 编写一个函数文件返回该概率值.提示:产生正态分布随机数函数 normrnd.

基本用法:

normrnd(均值, 标准差).

normrnd(均值, 标准差,行数,列数).

function gl=myfun
N=10000;
Y=[];
for i=1:N
   a=rand(1);
   if a<=0.2
       Y=[Y,9];
   elseif a<=0.4
       Y=[Y,10];
   elseif a<=0.6
       Y=[Y,11];
   else
       Y=[Y,12];
   end
end
X=normrnd(15,2,1,N);
final=X+Y;
r=length(find(final<=30));
gl=r/N;

序号 12 [题目编号=2106]

用数显温度计和欧姆表测得温度 t 和定值电阻阻值 R 的关系,如下表.表 1 电阻 R 与温度 t 关系数据

t: 2.11 3.27 4.24 4.82 5.31 5.33 8.36 8.36 8.48 8.96

R: 38.6045 69.268 104.319 132.336 154.612 156.71 357.703 355.583 367.637 404.467

已知 R 和 t 的函数关系近似为 R = a + bt + ct^2,用多项式拟合法处理数据,并推算温度 t 依次取数组 3:0.5:40 各元素值时电阻值 R.

编写本问题的函数文件第一行格式如下: function r=myfun

%变量 r 与数组 3:0.5:40 同维数

function gl=myfun
t=[2.11 3.27 4.24 4.82 5.31 5.33 8.36 8.36 8.48 8.96];
R=[38.6045 69.268 104.319 132.336 154.612 156.71 357.703 355.583 367.637 404.467];
a=polyfit(t,R,2);
v=3:0.5:40;
gl=polyval(a,v);

序号 13 [题目编号=1144]

编程调用 fzero 求解方程 x 3 + 8 x − 20 = 0 x^3 + 8x - 20 = 0 x3+8x20=0 ,并将所求根赋给变量 xp,编写一个函数调用 fzero,并返回 xp。要求将 fzero 的第 2 个输入参数(即解方程的初始解)设置为 2.

function fin=myfun
fun=@(x)(x^3+8*x-20);
fin=fzero(fun,2);

序号 14 [题目编号=1302]

编写一个 function 文件调用函数 quad 求定积分 ∫ 0 1 1 ( x 2 − x + 1 ) 3 / 2 d x \int^1_0\frac{1}{(x^2-x+1)^{3/2}}dx 01(x2x+1)3/21dx. 要求该 function 文件返回 1 个参数. 该参数表示调用 quad 所得积分结果.

function fin=myfun
fin=quad(@fun,0,1)
end
function f=fun(x)
f=1./(x.^2-x+1).^(3/2)
end

序号 15 [题目编号=1058]

用蒙特卡罗法求解优化模型
m a x f = 10 x 1 3 + x 1 x 2 2 + x 3 x 1 2 + x 2 − x 3 − 5 ≤ 0 x 1 + x 2 2 + x 3 − 3 ≤ 0 0 ≤ x 1.2.3 ≤ 8 max f= 10x_1^3 + x_1x_2^2 + x_3\\ x_1^2 + x_2 - x_3 - 5\le0\\ x_1 + x_2^2 + x_3 - 3\le0\\ 0\le x_{1.2.3}\le 8 maxf=10x13+x1x22+x3x12+x2x350x1+x22+x3300x1.2.38
编写一个 function 文件返回 2 个参数:第 1 个为该方法估算出的“最大值”;第 2 个为对应的“最大值点”。

要求该函数文件前 2 行如下:

function [val,x] =myfun rand(‘seed’,2089)

function [val,x]=myfun
rand('seed',2089)
N=10000;
x1=8*rand(N,1);
x2=8*rand(N,1);
x3=8*rand(N,1);
r=find(x1.^2+x2-x3-5<=0&x1+x2.^2+x3-3<=0);
f=10*x1(r).^3+x1(r).*x2(r).^2+x3(r);
[val,rr]=max(f);
x=[x1(rr),x2(rr),x3(rr)];

序号 16 [题目编号=2288]

随机产生一个字符串数组(由 26 个英文字母组成),找出字符数组中的出现字符串’cj’的下标(以行向量存储)。编写一个函数返回下标。

要求产生字符串数组 w 的方法采用如下代码: function r=myfun

rand(‘seed’,2547)

w = 97+fix(13rand(1,39500)); %产生小写字母 w = char(w); %根据 ASCII 码值转为字符数组

背景:已知小写字母的 ASCII 码范围是 97~122,大写字母的 ASCII 码范围是 65~90.

function r=myfun 
rand('seed',2547) 
w = 97+fix(13*rand(1,39500)); %产生小写字母 
w = char(w); %根据 ASCII 码值转为字符数组
N=length(w);
r=[];
for i=1:N
   if w(i)=='c'&w(i+1)=='j'
       r=[r,i];
   end
end

序号 17 [题目编号=2154]

某种产品在生产过程中的性能指标 y 与它所含的某种材料的含量 x 有关,现将试验所得数据记录列出:

x: 2 3.2 3.5 3.7 4.5 4.6 6.3 6.8 7.5 8.6 9.7 9.8

y: 21.6589 48.8389 57.0166 65.11 90.8245 95.3963 171.403 199.262 237.889 309.451

390.893 399.454

已知 x 和 y 的函数关系近似的可以用 Matlab 表达式表示如下: y = ax^2+blog(x),

其中参数 a 和 b 为正数.

用 lsqcurvefit 拟合数据(调用函数 lsqcurvefit 时 a,b,c 的初始值均设为 1),并推算 x 在数组 3:0.2:24 各元素取值时,y 的估算值. 编写函数返回 y 的估算值(用行向量存储).

编写本问题的函数文件第一行格式如下: function r=myfun

%变量 r 与数组 3:0.2:24 同维数

function fin=myfun 
x=[2 3.2 3.5 3.7 4.5 4.6 6.3 6.8 7.5 8.6 9.7 9.8];
y=[21.6589 48.8389 57.0166 65.11 90.8245 95.3963 171.403 199.262 237.889 309.451 390.893 399.454];
fun=@(a,x)(a(1)*x.^2+a(2)*log(x));
a=[1,1];
a=lsqcurvefit(fun,a,x,y);
r=3:0.2:24;
fin=fun(a,r);

序号 18 [题目编号=2252]

下列模型为一个二元函数有约束极值问题.函数的表达式部分用类似 MATLAB 语句表示

(x1,x2 表示自变量):

max f(x1,x2) = 7x1^2+7x1+3x2^2+7x2+3x1x2 s.t.

5x1 + 5x2 <= 175

5x1 + 3x2 >= 30

9<= x1^2 + 6x2^2 <=2275

0<= x1 <=17

0 <= x2 <= 22

请用 fmincon 求解.初始迭代点取(1.5,6).

编写一个函数返回 fmincon 求出的近似最优解.要求返回值以行向量存储.

function fin=myfun 
a=[5 5;-5 -3];
b=[175;-30];
c=[0;0];
d=[17,22];
fun=@(x)-7*x(1).^2-7*x(1)-3*x(2).^2-7*x(2)-3*x(1).*x(2);
fin=fmincon(fun,[1.5;6],a,b,[],[],c,d,@mycon)
fin=fin'
function [g,ceq]=mycon(x)
g=9*x(1).^2+6*x(2).^2-2275;
ceq=[];

序号 19 [题目编号=1068]

请向曲线 x = -3, x = 3, y = 0, y = 10 所围矩形区域内随机投 10000 个点,绘出投点,并统计在曲线 $y = e^{0.1x} + sin x $上方的点出现的频率 p。

编程函数完成以上功能。要求该函数返回变量 p。

function fin=myfun 
N=10000;
x=-3+6*rand(N,1);
y=10*rand(N,1);
r=find(exp(0.1*x)+sin(x)<y);
plot(x(r),y(r),'r.')
hold on
ezplot(@(x)exp(0.1*x)+sin(x),[-3,3])
l=length(r);
fin=l/N;

序号 20 [题目编号=2273]

下列模型为一个二元函数有约束极值问题.函数的表达式部分用类似 MATLAB 语句表示

(x1,x2 表示自变量):

max f(x1,x2) = 7x1^2+4x1+9x2^2+9x2+6x1x2

4x1 + 4x2 <= 155

7x1 + 5x2 >= 40

6 x1^2 + 4 x2^2 <= 1550

7 x1 + 4 x1x2 >= 40

0 <= x1 <= 13

0 <= x2 <= 20

请用 fmincon 求解.初始迭代点取(4.5,7).

编写一个函数返回 fmincon 求出的近似最优解.要求返回值以行向量存储.

function fin=myfun 
a=[4 4;-7 -5];
b=[155;-40];
c=[0;0];
d=[13;20];
fun=@(x)-7*x(1).^2-4*x(1)-9*x(2).^2-9*x(2)-6*x(1).*x(2);
[h,hh]=fmincon(fun,[4.5;7],a,b,[],[],c,d,@mycon)
fin=h'
function [g,ceq]=mycon(x)
g=[6*x(1)^2+4*x(2)^2-1550;(-7)*x(1)-4*x(1)*x(2)+40];
ceq=[]

序号 21 [题目编号=1942]

已知 f(x)=20sin(x)cos(x)+30exp(-5x),求函数在自变量取值为 0:0.2:50 这些节点时的函数值,并求函数 f(x)在这些点处函数值的和 s,并返回这些节点函数值的绝对值的最大值 m. 编写函数依次返回 2 个参数: 第 1 个输出参数为 s,第 2 个输出参数为 m.

function [s,m]=myfun 
x=0:0.2:50;
f=20*sin(x).*cos(x)+30*exp(-5*x);
s=sum(f);
m=max(abs(f));

序号 22 [题目编号=1988]

编写一个函数,其输入参数为一个向量,找出该向量中小于等于 0.9 的数的下标组成的数组(用行向量表示)并返回。

要求返回参数数组中的元素是递增排列的.该函数的声明语句参考如下:

function idx=myfun(v)

function fin=myfun(v)
n=length(v);
fin=[];
for i=1:n
   if v(i)<=0.9
       fin=[fin,i];
   end
end

序号 23 [题目编号=1642]

已知分段函数 y 分为 3 种情况,该分段函数的式子用 MATLAB 表达式进行表述,具体如

下:

  1. 当 x>=6 时,y=4x^8+10;

  2. 当 4<=x<6 时,y=5x+10;

  3. 当 x<4 时,y=2x^2+6.

请编写一个 MATLAB 函数计算该分段函数的函数值。要求:

\1) 输入参数为自变量的取值,可以为一个标量,也可以为一个行向量或列向量。

\2) 当输入参数为向量时,表示可以同时计算该函数在多个点(向量的各个元素)的函数值。

要求该函数的定义形式如下: function y=myfun(x)

function fin=myfun(x)
i=length(x);
fin=[];
for i=1:i
if x(i)>=6
    r=4*x(i).^8+10;
elseif x(i)>=4
    r=5*x(i)+10;
else
    r=2*x(i).^2+6;
end
fin=[fin;r];
end
[a,b]=size(x);
if a==1
    fin=fin';
else
    fin=fin;
end

序号 24 [题目编号=1289]

编写一个 function 文件调用 fsolve 函数求解下列方程组:

4 x 1 2 + 3 x 2 2 = 1 x 1 3 − 8 x 2 3 = 1 4x_1^2 + 3x_2^2 = 1\\ x_1^3 - 8x_2^3 = 1 4x12+3x22=1x138x23=1
要求该function文件返回1个参数:返回一个行向量表示求根结果.调用fsolve函数的初始迭代点取[0 0].

function fin=myfun(x)
x0=[0 0];
fin=fsolve(@fun,x0);
end

function f=fun(x)
f=[4*x(1).^2+3*x(2).^2-1
   x(1).^3-8*x(2).^3-1];
end

序号 25 [题目编号=893]

请找出 1 到 500 中能被 29 或 31 整除的所有这些整数平方的和 s。编写函数返回 s.

function fin=myfun
x=[1:500];
i=find(rem(x,29)==0|rem(x,31)==0);
fin=sum(x(i).^2);

序号 26 [题目编号=2064]

已知 4.2 x1+ 3.3 x2+ 4.2 x3<=46,其中 x1, x2, x3 都是非负整数.

编程求出方程组所有的解,用矩阵 M 存储. M 的每一行表示一个解,第 1、2、3 列分别存储 x1,x2,x3 的值.

并且矩阵的元素分别按照第 1 列从小到大排列,如果第 1 列元素相同,则按照第 2 列递增排

列,如果第 2 列相同,则按照第 3 列递增排列.

function fin=myfun
fin=[];
for x1=0:20
    for x2=0:20
        for x3=0:20
            if 4.2*x1+ 3.3*x2+ 4.2*x3<=46
                fin=[fin;x1 x2 x3];
            end
        end
    end
end

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
西安科技大学Matlab数学实验是一门将数学理论与计算机科学相结合的实践课程。通过这门课程,学生将学习如何利用Matlab软件进行数学建模与计算。 这门实验课程旨在培养学生的数学建模与计算思维能力,提高他们的创新能力、动手能力和解决实际问题的能力。学生将通过实践研究和分析真实的数学问题,运用Matlab软件进行数据分析、模拟计算、图像处理等方面的操作和实验。而这些实验内容既有基础的数学理论知识的应用,也有对实际问题的分析和解决。 在实验中,学生将学习如何使用Matlab软件进行数学建模和模拟实验,通过编写和运行代码来解决数学问题。他们将学习如何使用Matlab进行矩阵运算、符号计算、曲线拟合、数值积分和微分方程求解等。同时,学生还将学习如何利用Matlab进行数据可视化和图像处理,从而更好地理解与展示数学理论。 这门实验课程不仅能够提高学生的Matlab应用能力,还可以培养学生的科研兴趣和创新精神。通过实践探索和解决实际问题,学生们将提升他们的问题解决能力和团队合作能力。 综上所述,西安科技大学Matlab数学实验是一门结合数学理论与计算机科学的实践课程,通过Matlab软件的应用,学生将能够提高他们的数学建模与计算能力,并培养他们的创新能力和解决实际问题的能力。这门实验课程不仅有利于学生的学术发展,同时也对他们的职业发展具有积极的促进作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值