matlab数学实验记录

背景:帮朋友做了一些比较基础的数学实验题,在这里简单做个记录。

1. 求极限

设,f(x)=3.63xln(3.34x),g(x)=1.72ln(3.69x)exp(0.21x)-2.39xexp(-0.12x)-0.93x.
求lim(x→0.2052) [f(x)-f(0.2052)]/[g(x)-g(0.2052)].

两种解答思路。
第一种是带入求极限。

syms x;
f1=3.63*x*log(3.34*x);
g=1.72*log(3.69*x)*exp(0.21*x)-2.39*x*exp(-0.12*x)-0.93*x;

f_3=3.63*0.2052*log(3.34*0.2052);
g_3=1.72*log(3.69*0.2052)*exp(0.21*0.2052)-2.39*0.2052*exp(-0.12*0.2052)-0.93*0.2052;

m=limit((f1-f_3)/(g-g_3),x,0.2052);
m=vpa(m)%将结果转化为小数

第二种方法,使用洛必达。
两种方法均有其局限。

syms x;
f1=3.63*x*log(3.34*x);
g=1.72*log(3.69*x)*exp(0.21*x)-2.39*x*exp(-0.12*x)-0.93*x;

f_3=diff(f1);
g_3=diff(g);

m=limit((f_3/g_3),x,0.2052);
m=vpa(m)%将结果转化为小数

2.求导

设 f(x)=2.46exp(-0.18x)cos(-1.73x)+0.23sin(2.27x)cos(1.85x)+1.50sin(-1.70x)
求f'(3.4760).
syms x_2;
f2=1.44*exp(0.27*x_2)*log(3.38*x_2);
df_f2=diff(f2);
m2=limit(df_f2,x_2,3.4760);
m2=vpa(m2)

3.求方程在某一区间内的近似解

求出方程 3.38cos(2.13x)-2.34xsin(1.29x)-2.34ln(2.97x)=-2.9420
在(0.2609,7.4639)内的近似根.

在f.m文件中定义方程,右边的数字移到左边,形成右边为0的方程。

function f3 = f(x_3)
%f3 = 3.38*cos(2.13*x_3)-2.34*x_3*sin(1.29*x_3)-2.34*log(2.97*x_3)+2.9420;

求解的时候调用该函数。

syms x_3;
fun=@f;
a=0.2609;
b=7.4639;
c=[a b];
z=fzero(fun,c)

4.计算函数在某区间的积分

计算函数f(x)=1.49xcos(1.33x)+1.67cos(-0.18x)[-0.1102,0.5340]内的定积分.
syms x_4;
f4=1.49*x_4*cos(1.33*x_4)+1.67*cos(-0.18*x_4);
y4=int(f4,x_4,-0.1102,0.5340);
y4=vpa(y4)

5.求原函数

设y'(x)=1.36xcos(-1.73y)-1.78sin(-0.27y), y(-8.6068)=-3.0811
计算y(-1.8480).
syms x_5;
syms y_5;
df_f5=1.36*x_5*cos(-1.73*y_5)-1.78*sin(-0.27*y_5);
f5=int(df_f5,x_5);  %原函数
f5_solve_y=limit(f5,x_5,-8.6068);
f5_solve_y=vpa(f5_solve_y);
f5_solve=f5_solve_y+3.0811;
y5=solve(f5_solve,y_5);
answer_5=limit(f5,x_5,-1.8480);
answer_5=limit(answer_5,y5(1,1));
answer_5=vpa(answer_5)

这个结果好像有点问题,等找到了,在这里改。

6.求函数在某点附近的极值点

求函数f(x)=2.33exp(-0.31x)sin(1.01x)-2.18exp(0.12x)sin(-0.62x)-2.91exp(0.15x)-1.0 附近的极小值点.

最开始的想法是,极值点导函数为0.在-1附近确定一个零点区间(利用零点定理)。接着我就遍历找零点了。其实直接找零点就可以了,但是如果有的函数没有零点,调用求零点的函数就不好用了。

syms x_6;
f6=2.33*exp(-0.31*x_6)*sin(1.01*x_6)-2.18*exp(0.12*x_6)*sin(-0.62*x_6)-2.91*exp(0.15*x_6);
df_f6=diff(f6);
%y6=vpasolve(df_f6,x_6);
%y6=vpa(y6)
y6=-1.8350;
for i=1:1000
    answer=vpa(limit(df_f6,x_6,y6));
    if(answer>-0.0001&&answer<0.0001)
        y6=y6+0.00001
        answer
        break;
    end
    y6=y6+0.00001
    answer
end

但是极值点并不是导函数一定为0。以下面的例子为例。

求函数f(x)=3.72ln(2.01x)+2.48exp(0.37x)0.0 附近的极小值点.

这里的表达式,限制了x取值>.0,观察求导后的函数,就可以发现极小值点为0.

7.做回归拟合

2 次多项式回归.
x:0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0;
y:5.09,3.50,4.77,8.89,15.86,25.69,38.37,53.91,72.30,93.54,117.63,144.58,174.39;

直接调用拟合函数。

x7=[0:1:12];
y7=[5.09 3.5 4.77 8.89 15.86 25.69 38.37 53.91 72.3 93.54 117.63 144.58 174.39];
c7=polyfit(x7,y7,2)  %出来的第一个系数为最高次

8.求逆矩阵

求方阵
     -7.6601      1.2948      7.5063     -0.5817      3.9396
      3.7618      2.7242      3.2562     -3.9318     -0.2218
     -4.2637      3.4419     -3.6102     -1.0410     -3.3719
     -0.0968      0.2087     -0.3382     -2.1051     -5.3646
     -1.7319      5.9619      0.2353      1.3588      2.6502
的逆矩阵.

直接调用函数即可。两次使用求逆函数=输入的方阵,可进行验证自己的输入和逆矩阵的结果对不对。

x8=[-7.6601 1.2948 7.5063 -0.5817 3.9396;
    3.7618 2.7242 3.2562 -3.9318 -0.2218;
    -4.2637 3.4419 -3.6102 -1.0410 -3.3719;
    -0.0968 0.2087 -0.3382 -2.1051 -5.3646;
    -1.7319 5.9619 0.2353 1.3588 2.6502];
y8=inv(x8)

9.解线性方程组
首先需要看系数矩阵的维度。

解线性方程组:
-1.0466 x1 -0.6193 x2 -4.9286 x3 +3.2542 x4 +3.9877 x5 +0.4566 x6 -1.1589 x7 =2.0045
8.1765 x1 +3.7670 x2 +2.9347 x3 +3.9000 x4 -5.3686 x5 -4.7677 x6 -3.5935 x7 =3.9038
5.4497 x1 -2.8112 x2 +3.8385 x3 +1.8753 x4 -3.8464 x5 -3.1588 x6 -7.0073 x7 =6.9906
-5.4031 x1 -0.4984 x2 +0.4850 x3 +7.8460 x4 -5.1051 x5 -6.8625 x6 +5.5618 x7 =0.9874
-3.2240 x1 -6.2861 x2 -0.7454 x3 +2.1658 x4 +5.6702 x5 +1.6493 x6 -0.5828 x7 =-2.6078

只有5个方程,但是未知数有7个,求出来的特解中含有两个0.

x9=[-1.0466 -0.6193 -4.9286 3.2542 3.9877 0.4566 -1.1589;
    8.1765 3.7670 2.9347 3.9000 -5.3686 -4.7677 -3.5935;
    5.4497 -2.8112 3.8385 1.8753 -3.8464 -3.1588 -7.0073;
    -5.4031 -0.4984 0.4850 7.8460 -5.1051 -6.8625 5.5618;
    -3.2240 -6.2861 -0.7454 2.1658 5.6702 1.6493 -0.5828];
y9=[2.0045;
    3.9038;
    6.9906;
    0.9874;
    -2.6078];
A9=[x9,y9];
B9=rref(A9)  %最右边的一列为特解

10.解线性方程组规划

 min f=9.4815x1-6.8944x2+4.2195x3+0.4276x4+1.0994x5+2.0388x6-6.4675x7
8.5495x1+7.6978x2+8.5663x3+4.8160x4+6.1954x5+6.9311x6+2.9474x7<=311.3189
5.3757x1+6.7962x2+7.2812x3+6.0753x4+3.3751x5-1.0000x6+4.7122x7>=212.3530
1.2934x1+3.3176x2-6.0116x3-4.0093x4-7.7640x5-8.4895x6-3.2951x7>=-191.5335

不等式输入的时候,注意要转化为<的方向,若为>,则*(-1)转化为对应方向。

C10=[9.4815 -6.8944 4.2195 0.4276 1.0994 2.0388 -6.4675];
A10=[8.5495 7.6978 8.5663 4.8160 6.1954 6.9311 2.9474;
    -5.3757 -6.7962 -7.2812 -6.0753 -3.3751 1 -4.7122;
    -1.2934 -3.3176 6.0116 4.0093 7.7640 8.4895 3.2951];
b10=[311.3189;-212.353;191.5335];
lb=[0;0;0;0;0;0;0];
ub=[];
[x10,fval]=linprog(C10,A10,b10,[],[],lb,ub)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿群今天学习了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值