数学模型与数学建模(急救版80+)常考知识点(一)
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名学生的三门课成绩列表如下:
学生序号 | 1 | 2 | 3 | 4 | 5 |
高等数学 | 78 | 89 | 64 | 73 | 68 |
线性代数 | 83 | 77 | 80 | 78 | 70 |
数学建模 | 82 | 91 | 78 | 82 | 68 |
试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。
% 创建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+)常考知识点(一)的全部内容(原创)
若对各位有帮助的,请点赞收藏哦,以防下次找不到了哦!!!????????
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!