用MATLAB求解

2024-05-17 07:13

1. 用MATLAB求解

你的题目有些岐义,例如:第二组动物1000头是每头都有繁殖能力还是说其中500头是母的有繁殖能力。如果后面假设成立,那么为何是500头,而不是250?
所以,这里我就假设1000头都是母的,都有繁殖能力。
解题的关键是建立迭代公式,其实这道题目可以笔算,但是建立迭代模型的最大好处是:题目条件变化,计算模型不变。
-----------------------------------------------华丽分割线------------------------------------------------
根据题目,显然15年后原有的动物全部嗝屁了,剩下的都是它们的后代,所以只要计算繁殖的后代头数就可以了。
先看第一个五年
第三组:1000*3(第一组)
第二组:1000*4(第一组)+1000/4(第三组)
第一组:1000/2(第二组)
即五年后,第一组:7000 第二组:500  第三组:250
因为,题目都是围绕五年一个计是单位进行计算的,所以不妨设(这个假设不会影响计算结果,只是为了更容易理解和建立模型):最大年龄为3岁,将其分成三个年龄组:第一组,1岁;第二组,2岁;第三组,3岁。

于是建立迭代公式,设三组头数分别为x,y,z,则初始值
1)  x0=y0=z0=1000
2)  x(n)=z(n-1)*3+y(n-1)*4
3)  y(n)=x(n-1)/2
4)  z(n)=y(n-1)/4
Matlab代码如下:
% 1)  x0=y0=z0=1000
% 2)  x(n)=z(n-1)*3+y(n-1)*4
% 3)  y(n)=x(n-1)/2
% 4)  z(n)=y(n-1)/4
x0=1000;y0=1000;z0=1000;n=3;
i=1;
while i<=n
    x=z0*3+y0*4;
    y=x0/2;
    z=y0/4;
    x0=x;y0=y;z0=z;
    i=i+1;
end
disp(sprintf('%d年后,这种动物还有[%d  %d  %d]头',n*5,x,y,z)); 
运行结果:
15年后,这种动物还有[14375  1375  875]头

用MATLAB求解

2. MATLAB程序求解


3. MATLAB求解

使用matlab求解方程组,可以用solve()函数求解。
求解方法:
>> syms x y z
>> [x,y,z]=solve(x^2+y^2+z^2==49,x-2*y+z==-1,3*x-5*y+2*z==2)
运行结果,得到其两组交点
x1=6,y1 =2,z1 = -3
x2= 8/3,y2 =-4/3,z2 =-19/3

MATLAB求解

4. MATLAB求解

一般来说,求解非线性方程组可以用fsolve()函数命令得到。求解过程如下:
>>x0=[650 320 -5870   -6055]; %x的初值
>>fun=@(x)[(x(1)+x(3)-x(4)).^2.*(0.5*x(1)-x(2)).*(10000-x(1)+x(2)).^(-2)-0.002;(1000-x(1)-x(2)).*(x(2)-x(3)).*(0.5*x(1)-x(2)).^(-1).*(30000-x(2)+x(4)).^(-1)-20;(x(3)-x(4)).*(x(1)+x(3)-x(4)).*(x(2)-x(3)).^(-1)-25;x(4).*(3000-x(2)+x(4)).*(x(3)-x(4)).^(-1).*(x(1)+x(3)-x(4)).^(-1)-132];  %自定义函数
>>[x,fval,exitflag] = fsolve(fun,x0);  %x的解向量
>>a=x(1),b=x(2),c=x(3),d=x(4)  %a、b、c、d的解
计算结果

5. MATLAB求解

这个式子右边ft等式少了一个括号和下引号,姑且认为你加在最后,则求解答案为

MATLAB求解

6. 用MATLAB求解

你的题目有些岐义,例如:第二组动物1000头是每头都有繁殖能力还是说其中500头是母的有繁殖能力。如果后面假设成立,那么为何是500头,而不是250?
所以,这里我就假设1000头都是母的,都有繁殖能力。
解题的关键是建立迭代公式,其实这道题目可以笔算,但是建立迭代模型的最大好处是:题目条件变化,计算模型不变。
-----------------------------------------------华丽分割线------------------------------------------------
根据题目,显然15年后原有的动物全部嗝屁了,剩下的都是它们的后代,所以只要计算繁殖的后代头数就可以了。
先看第一个五年
第三组:1000*3(第一组)
第二组:1000*4(第一组)+1000/4(第三组)
第一组:1000/2(第二组)
即五年后,第一组:7000 第二组:500  第三组:250
因为,题目都是围绕五年一个计是单位进行计算的,所以不妨设(这个假设不会影响计算结果,只是为了更容易理解和建立模型):最大年龄为3岁,将其分成三个年龄组:第一组,1岁;第二组,2岁;第三组,3岁。

于是建立迭代公式,设三组头数分别为x,y,z,则初始值
1)  x0=y0=z0=1000
2)  x(n)=z(n-1)*3+y(n-1)*4
3)  y(n)=x(n-1)/2
4)  z(n)=y(n-1)/4
Matlab代码如下:
% 1)  x0=y0=z0=1000
% 2)  x(n)=z(n-1)*3+y(n-1)*4
% 3)  y(n)=x(n-1)/2
% 4)  z(n)=y(n-1)/4
x0=1000;y0=1000;z0=1000;n=3;
i=1;
while i<=n
    x=z0*3+y0*4;
    y=x0/2;
    z=y0/4;
    x0=x;y0=y;z0=z;
    i=i+1;
end
disp(sprintf('%d年后,这种动物还有[%d  %d  %d]头',n*5,x,y,z)); 
运行结果:
15年后,这种动物还有[14375  1375  875]头

7. MATLAB求解

(1)
    20    26   -16
    29   106    30
   -29   -22    35
(2)
    11    -3   -39
    78    44   -15
   -30   -21   109
(3)
     1     4    -1
    -2    -3    -7
    -4    -1    10

(4)
    -2     3
     5     9
(5)
     4     3     3
(6)
 -8
(7)
     1
     4
     6
    -2
     5
     3
     3
     9
    -8

MATLAB求解

8. 使用MATLAB求解方法?

题主的问题就是已知x、y数据,根据模型,拟合其a、b、c系数。此类问题求解过程:
1、已知数据
x=[。。。]
y=[。。。]
2、定义拟合函数
fun=@(p,x)p(1)*exp(x +p(2))+p(3)   %a—p(1),b—p(2),c—p(3)
3、设定a、b、c的初始值
p0=[0,0,0]
4、利用nlinfit()非线性回归函数,拟合其系数
[p,r] = nlinfit(x,y,fun,p0)  %p—系数,r—残差
5、利用fun(p,x)计算,x、y的一系列对应值,用plot()绘图函数,绘制原始数据与拟合数据比较图
6、结果

最新文章
热门文章
推荐阅读