3.1 基础训练
1. 用左除运算符求解线性方程组
返回解向量(1 个返回参数)。
注:要求本问题不使用符号计算函数 solve 解线性方程组。
解:
function x=myfun
A=[7 1 2 -1
2 6 1 3
1 -4 10 3
2 -1 -3 11];
b=[6;5;4;3]
x=A\b;
3.2 建模训练
已知某种生物分 3 个年龄组,0~2 岁为第一组,3-4 岁为第二组,5~6 岁为第三组. 每两
年为一个时段. 设
为第 个年龄组在第 个时段的数量. 记
.
根 据 生 物 繁 殖 率 以 及 存 活 率 , 得 到 该 种 生 物 数 量 变 化 规 律 的 数 学 模 型
,已知
.
一. 实验任务
(1)请编程计算 10 年后该种生物各年龄组数量.
(2)如果使用某种杀虫剂后,生物数量变化规律由式子
决定, 反应使用杀虫剂的剂量(
),请编
写程序确定 使得三个年龄组昆虫数量最后基本趋于稳定.
二. 实验目的
了解差分模型。熟悉 Matlab 矩阵计算函数。
三. 实验过程
根据生物数量增长模型进行逐步递推即可计算出不同时段的昆虫数量。
(1)编程计算 10 年后该种生物各年龄组数量
.31132,43104,5362,6274321432143214321xxxxxxxxxxxxxxxx)(kjxjkTkkkkxxxX),,()(3)(2)(1)()()1(015.00004.0230kkXX,...)2,1,0(kTX)15,20,10()0()()1(015.00004.0230kkXrrXr9.01.0rr
X=[10; 20; 15];
T=[0 3 2; 0.4 0 0; 0 0.15 0];
for i=1:5
X=T*X;
end
disp(X)
133.2000
12.9600
6.5520
(2)确定 使得三个年龄组昆虫数量最后基本趋于稳定
clc
for r=linspace(0.1,0.9,100),
T=[0 3*r 2*r; 0.4 0 0; 0 0.15 0];
d=eig(T);
if abs(max(d)-1)<0.001,
disp(r)
end
end
法二:
这样的方法得到的 r 精度有限,可能会找到多个数值满足搜索条件。
探究找到使得最大特征值等于 1 的参数 。
找到 使得 L 的最大特征值为 1.
根据特征值计算方法:
该方程含有 2 个符号: 和 。
(*)
以将
用 det 计算行列式
代入(*),求解方程
,即可解得 。
,解方程得到 。
clear
syms r
I=sym(eye(3))
L=[0 3*r 2*r; 0.4 0 0; 0 0.15 0];
lamda = 1;
f= det(lamda*I-L)
r=solve([char(f),'=0'])
vpa(r)
%验证
r=sym(25/33);
L=[0 3*r 2*r; 0.4 0 0; 0 0.15 0];
d=eig(L)
vpa(d)
rrr0||LIr10||LIr||LIr
运行结果如下:
r =
25/33
ans =
0.7575757575757575757
得所求r的精确解为 。
四. 实验自评与改进方向
1. 可以探寻用其他方法找到 r 准确值的方法;
五. 实验体会,收获及建议
1. 初步了解数学建模在处理问题中的应用。
2. 体会到了应用数学解决实际问题的成就感。特别是计算矩阵的幂的快速方法。
3325