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