数学模型与数学建模(急救版80+)常考知识点(一)

2023-12-28 04:35:30

Matlab

常考

1.重点基础

clear: 清除内存里的数据 ??clc:清屏

变量名的第一个字符必须是字母,后面可加字母、数字和下划线的任意组合;变量名有大小区分

>> A=[1,-2,5,6,-4,9]

A =

?????1 ???-2 ????5 ????6 ???-4 ????9

>> A=[1,-2,5;6,-4,9]

A =

?????1 ???-2 ????5

?????6 ???-4 ????9

>> A=[1,-2;5,6;-4,9]

A =

?????1 ???-2

?????5 ????6

? ? -4 ????9

【注】易错

求AX=B:即A\B(A左除B) ?inv(A)*B

求XA=B:即B/A(A右除B) ?B*inv(A)


题一:求方程 x4+7x3 +9x-20=0的全部根。

>>p=[1,7,0,9,-20];
>>x=roots(p);
x =
  -7.2254 + 0.0000i
  -0.4286 + 1.5405i
  -0.4286 - 1.5405i
  1.0826 + 0.0000i

?


2.选择结构

选择结构的语句有if语句和switch语句。

1. if语句

格式一: ?if 条件

??????????语句组

???????????End

格式二: ??if 条件

???????????语句组1

???????????else

???????????语句组2

???????????end

格式三: ?if ?条件1

??????????语句组1

??????????elseif ?条件2

??????????语句组2

??????????……

??????????elseif ?条件m

??????????语句组m

??????????else

??????????语句组m+1

??????????End

题二:编写函数文件求小于任意自然数n的Fibonacci数列各项。

?首先:建立名为ffib的m文件:

function f=ffib(n)
%用于求Fibonacci数列的函数文件
%f=ffib(n)
f=[1,1];
i=1;
while f(i)+f(i+1)<n
f(i+2)=f(i)+f(i+1);
i=i+1;
end

其次:在命令窗口输入:ffib(2000) ??#可求小于2000的Fibonacci数

ffib(2000)   #可求小于2000的Fibonacci数

【拓展】

Fibonacci数列:又称斐波那契数列(Fibonacci sequence),又称黄金分割数列。因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定z义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。

详情请见其他大佬博主优秀作品http://t.csdnimg.cn/O59MK,谢谢!

题三:利用函数的递归调用,求n!

首先:建立factor的m文件:

function f=factor(n)

if n<=1

f=1;

else

f=factor(n-1)*n;

end

return; %返回在命令文件main2.m中调用函数文件factor.m:

其次:在命令窗口输入:

for i=1:10

fac(i)=factor(i);

end

Fac

题四:输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。

循环结构:

A = zeros(1, 20);
for i = 1:20
    A(i) = input('输入一个数:');
end
max_value = A(1);
min_value = A(1);
for i = 2:20
    if A(i) > max_value
        max_value = A(i);
    end
    if A(i) < min_value
        min_value = A(i);
    end
end
disp("最大值:" + max_value);
disp("最小值:" + min_value);

调用MATLAB的max函数和min函数:

A = zeros(1, 20);
for i = 1:20
    A(i) = input('输入一个数:');
end
max_value = max(A);
min_value = min(A);
disp("最大值:" + max_value);
disp("最小值:" + min_value);

题五:求Fibonacci数列

(1)大于4000的最小项?

a = 0;
b = 1;
c = a + b;

while c <= 4000
    a = b;
    b = c;
    c = a + b;
end

min_item = c;

(2)5000之内的项数?

a = 0
b = 1
count = 1;
while b <= 5000
    temp = b;
    b = a + b;
    a = temp;
end
min_item = b;
disp(min_item);

(3)小于4000的最大项 ???????

a = 1;
b = 1;
c = a + b;

while c < 4000
    a = b;
    b = c;
    c = a + b;
end

max_item = b;
disp(max_item);

(4)小于4000的所有数的和

fibonacci_sum = 0;
a = 0;
b = 1;

while b < 4000
    fibonacci_sum = fibonacci_sum + b;
    a = b;
    b = a + b;
end

disp(fibonacci_sum)

(5)小于4000的所有数并输出

f = [1,1];
i = 1;
while f(i) + f(i+1) < 4000
    f(i+2) = f(i) + f(i+1);
    i = i + 1;
end

disp(f)

【注】

?函数格式:plot(x,y) ?其中x和y为坐标向量

?函数功能:以向量x、y为轴,绘制曲线

?det(A)矩阵A的行列式 eig(A)矩阵A的特征值 inv(A)矩阵求逆?

题六:试用ROOTS函数求多项式x4+8x3-10的根?

>> x=[1,8,0,0,-10]
x =
     1     8     0     0   -10
>> y=roots(x)
y =
  -8.0194 + 0.0000i
   1.0344 + 0.0000i
  -0.5075 + 0.9736i
  -0.5075 - 0.9736i

题七:已知某班的5名学生的三门课成绩列表如下:

学生序号12345
高等数学7889647368
线性代数8377807870
数学建模8291788268

试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。

% 创建5x3的矩阵存储成绩
scores = [78, 89, 64; 83, 77, 80; 82, 91, 78; 73, 68, 68];
% 使用max函数分别找出每门课的最高分及其学生序号
math_max_score = max(scores(:, 1));
math_max_index = find(scores(:, 1) == math_max_score);
for i = 1:length(math_max_index)
    disp(['高等数学最高分:', num2str(math_max_score), ',学生序号:',
        num2str(math_max_index(i))]);
end
english_max_score = max(scores(:, 2));
english_max_index = find(scores(:, 2) == english_max_score);
for i = 1:length(english_max_index)
    disp(['线性代数最高分:', num2str(english_max_score), ',学生序号:',    
         num2str(english_max_index(i))]);
end
matlab_max_score = max(scores(:, 3));
matlab_max_index = find(scores(:, 3) == matlab_max_score);
for i = 1:length(matlab_max_index)
    disp(['数学建模最高分:', num2str(matlab_max_score), ',学生序号:',
         num2str(matlab_max_index(i))]);
end
% 计算每名学生的总分
total_scores = sum(scores, 2);
% 找出总分最高的学生序号
highest_total_score = max(total_scores);
highest_total_index = find(total_scores == highest_total_score);
disp(['总分最高分:', 
num2str(highest_total_score), ',学生序号:', num2str(highest_total_index)]);

题八:有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。

%定义多项式函数P1(x)和P2(x)
P1 = @(x) x.^4 + 0*x.^3 + 0*x.^2 - 2*x + 1;
P2 = @(x) x.^4 + 0*x.^3 + x.^2 + 4*x - 0.5;
%计算P(x) = P1(x) + P2(x)
P(x) = @(x) P1(x) + P2(x);
%计算xi = 0.2*i 各点上的P(xi)值
xi = 0:0.25;
P_xi = P(xi);
%输出结果
disp('xi==');
disp(xi);

disp('P(xi) = ');
disp(P_xi);

?以上就是数学模型与数学建模(急救版80+)常考知识点(一)的全部内容(原创)

若对各位有帮助的,请点赞收藏哦,以防下次找不到了哦!!!????????

文章来源:https://blog.csdn.net/qq_70423325/article/details/135242563
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。