其他分享
首页 > 其他分享> > 华中农业大学数学实验期末考试答案(matlab)

华中农业大学数学实验期末考试答案(matlab)

作者:互联网

1

在这里插入图片描述
这题通过生成一个全是1的矩阵,然后加上一个对角阵就行了。

 A=ones(10,10)*3+diag([0:9])
 DET_A=det(A)
 INV_A=inv(A)

2

在这里插入图片描述
这一题之前我写过一个求线性方程组的小程序
求解线性方程组
在这里插入图片描述

3

在这里插入图片描述

function y=test2(x)
if(x<=0)
    y=sin(x);
elseif(x<=2)
    y=0.5-exp(x);
else
    y=0.5;
end
end

在这里插入图片描述

4

在这里插入图片描述
记住符求导和积分的代码就行

syms x
F=4*x^4-12*x^3-14*x^2+5*x+9
DIFF=diff(F)
INT=int(F)

在这里插入图片描述

5、 定义 x 为 0 到 2π 之间的一组向量,且 x 向量中相邻两个值之间的增量为 π/100。定义 y1 向量中的值为 x 向量的 sin 值,定义 y2 向量中的值为 x 向量的 cox 值,在同一张图中绘制 y1 曲线和 y2 曲线,并添加相关图形的标注。

x = 0: pi/100: 2*pi ; 
y1 = sin(x) ; 
y2 = cos(x); 
plot(x, y1); 
hold on; %图形保持
plot(x, y2); 
title('y1 = sin(x) & y2 = cos(x)'); 
xlabel('横坐标 x '); 
ylabel('纵坐标 y '); 
axis([-0.4 7 -1.1 1.1]) 
legend('y1 = sin(x)', 'y2 = cos(x)' ); 
grid on; box on;

在这里插入图片描述

6、 分别定义 x和y 为 -10 到 10之间的向量,且 向量中相邻两个值之间的增量为0.1,以x和y为网格点,将Z = -X.^2 - Y.^2 + 200和Z = X.2+Y.2 + 10两个三维曲面画成一个大图的两个子图,并添加相关图形的标注。

x=-10:0.1:10;
y=x;
[X,Y]=meshgrid(x,y);
z1=-X.^2 - Y.^2 + 200;
z2=X.^2+Y.^2 + 10;
subplot(1,2,1)
surf(X,Y,z1,'FaceAlpha',0.5)
title("-X^2 - Y^2 + 200")
subplot(1,2,2)
surf(X,Y,z2,'FaceAlpha',0.5)
title("X^2+Y^2 + 10")

在这里插入图片描述

7

在这里插入图片描述

H=[1 -1; -1 2];  
f=[-2 ;-6]; 
A=[1 1; -1 2]; 
b=[2;2]; 
Aeq=[];beq=[]; 
lb=[0;0]; ub=[]; 
[x,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub)

在这里插入图片描述

8

在这里插入图片描述
用两种方法

xdata=[0.02,0.02,0.06,0.06,0.11,0.11,0.22,0.22,0.56,0.56,1.1,1.1];
ydata=[76,47,97,107,123,139,159,152,191,201,207,200];
f=inline('p(1)*xdata./(p(2)+xdata)','p','xdata'); 
p1=lsqcurvefit(f,[200,0.1],xdata,ydata)  % 最优化函数
p2=nlinfit(xdata,ydata,f,[200,0.1])   % 非线性回归函数 

在这里插入图片描述

9、 从键盘输入1个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,用和除以10的余数取代该数字,然后将第1位数与第3位数交换,第2位数与第4位数交换。

clear;clc
x=input("请输入亲想加密的数字:");
c4=mod(x,10);
c1=floor(mod(x/1000,10));
x=x-c1*1000;
c2=floor(mod(x/100,10));
x=x-c2*100;
c3=floor(mod(x/10,10));
disp("亲输入的数字是这样滴:")
D1=sprintf('千位: %d  百位: %d  十位:  %d  个位: %d',c1,c2,c3,c4);
disp(D1)
c1=mod(c1+7,10);
c2=mod(c2+7,10);
c3=mod(c3+7,10);
c4=mod(c4+7,10);
disp("开始第一次加密:")
disp("每位数字都加上7,用和除以10的余数取代该数字")
disp("加密后的样子:")
D2=sprintf('千位: %d  百位: %d  十位:  %d  个位: %d',c1,c2,c3,c4);
disp(D2)
disp("开始第二次加密:")
disp("将第1位数与第3位数交换,第2位数与第4位数交换。")
D2=sprintf('千位: %d  百位: %d  十位:  %d  个位: %d',c3,c4,c1,c2);
disp(D2)
result=c3*1000+c4*100+c1*10+c2;
D3=sprintf('最终加密后的数字:%d',result);
disp(D3)

在这里插入图片描述
在这里插入图片描述

10

在这里插入图片描述
循环:

a=0;
for(i=1:100)
    a=a+1/(i*i);
end
a=(a*6)^(1/2);
loop=a

sum函数:

i=1:100;
m=1./i.^2;
x=(6*sum(m))^(1/2);
vector=x

最后结果是:loop=vector=3.1321

标签:disp,10,华中农业大学,期末考试,matlab,c2,c1,100,mod
来源: https://blog.csdn.net/dream_of_grass/article/details/122634984