ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

第二单元 用python学习微积分(十一)最值问题下和相关变率

2022-01-09 18:57:59  阅读:208  来源: 互联网

标签:plt python 微积分 color set ax x1 驻点 最值


本文内容来自于学习麻省理工学院公开课:单变量微积分-相关变率-网易公开课

一、最值问题举例

1、将一根长度为1的线,切成2段, 每一段圈成一个正方形,求所能得到的最大面积

f(x) =\frac{x^2}{16} + \frac{(1-x)^2}{16} = \frac{x^2 +1-2x+x^2}{16}| = \frac{x^2 -x+\frac{1}{2}}{8}_{x<1}

f'(x) =(\frac{x^2 -x+\frac{1}{2}}{8})' = \frac{1}{4}x - \frac{1}{8}

f'(x) = \frac{1}{4}x - \frac{1}{8}|_{x=\frac{1}{2}} =0 , f(\frac{1}{2}) = \frac{1}{32}

计算两端:

f(x)|_{x=1} = \frac{1}{16}, f(x)|_{x=0} = \frac{1}{16}

f'(x) = \frac{1}{4}x - \frac{1}{8}|_{x>\frac{1}{2}} >0, 驻点 所以满足条件时应该x越大函数取值越大, 当x->1时, 函数最大 f(x)|_{x\rightarrow1} = \frac{1}{16}f(x)|_{x\rightarrow1} = \frac{1}{16}

f'(x) = \frac{1}{4}x - \frac{1}{8}|_{x<\frac{1}{2}} <0, 驻点 所以满足条件时应该x越小函数取值越大, 当x->0时, 函数最大 f(x)|_{x\rightarrow0} = \frac{1}{16}

考虑两边高中间低这种驻点,所以驻点处得到最小面积值 1/32

from sympy import *
import numpy as np 

import matplotlib.pyplot as plt 

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['left'].set_position('zero')
ax.spines['bottom'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.set_aspect(10 ) 

def DrawXY(xFrom,xTo,steps,expr,color,label,plt):
    yarr = []
    xarr = np.linspace(xFrom ,xTo, steps) 
    for xval in xarr:
        yval = expr.subs(x,xval)
        yarr.append(yval)
    y_nparr = np.array(yarr) 
    plt.plot(xarr, y_nparr, c=color, label=label)    

def TangentLine(exprY,x0Val,xVal):
    diffExpr = diff(exprY)
    x1,y1,xo,yo = symbols('x1 y1 xo yo')
    expr = (y1-yo)/(x1-xo) - diffExpr.subs(x,x0Val)
    eq = expr.subs(xo,x0Val).subs(x1,xVal).subs(yo,exprY.subs(x,x0Val))
    eq1 = Eq(eq,0)
    solveY = solve(eq1)
    return xVal,solveY

def DrawTangentLine(exprY, x0Val,xVal1, xVal2, clr, txt):
    x1,y1 = TangentLine(exprY, x0Val, xVal1)
    x2,y2 = TangentLine(exprY, x0Val, xVal2)
    if len(txt)>0:
        plt.plot([x1,x2],[y1,y2], color = clr, label=txt)
    else:
        plt.plot([x1,x2],[y1,y2], color = clr)
        
x= symbols('x')
y = x*x/16 + (1-x)*(1-x)/16
DrawXY(0,1,100,y,'green','x*x/16 + (1-x)*(1-x)/16',plt)
plt.plot([0,1],[1/16,1/16], color = 'gray', label= 'y=1/16')

plt.legend(loc='lower right')
plt.show() 

 

2、找到固定容积的无顶盖的盒子,使其表面积的最小值, (提示:底部是正方形--- 由于有正方形周长最短)

V= x^2 y

此处y可以称约束, y = \frac{V}{x^2}

A = x^2+ 4xy(没有顶)

A = x^2 + 4x\frac{V}{x^2} = x^2 +4\frac{V}{x}

A' = 0

A' = 2x - \frac{4V}{x^2} .......2x - \frac{4V}{x^2} = 0......x^3 = 2V ......x = 2^{\frac{1}{3}} V^{\frac{1}{3}}(驻点)

端点 0<x<\infty

A(0^+) = \infty

A(\infty) = \infty

因为驻点为 x = 2^{\frac{1}{3}} V^{\frac{1}{3}} ,所以图应该是

考虑二阶导数

A'' = 4+\frac{8V}{x^3} (由x>0, 式子恒正,因此图形应该是上凹, 而驻点应该是最小点)

最优解为: y = \frac{V}{(2^{\frac{1}{3}}V^{\frac{1}{3}})^2} = 2^{-\frac{2}{3}}V^{\frac{1}{3}} ;A = x^2 +4\frac{V}{x} = (2^{\frac{1}{3}} V^{\frac{1}{3}})^2 + 4(\frac{V}{2^{\frac{1}{3}} V^{\frac{1}{3}}}) =2^{\frac{2}{3}}V^{\frac{2}{3}} + 2\times2^{\frac{2}{3}}V^{\frac{2}{3}} = 3\times2^{\frac{2}{3}}V^{\frac{2}{3}}(我算的答案和视频中不同....)

无量纲的解,这些比值才有意义,单位需要统一:

\frac{A}{V^{\frac{2}{3}}} =3\times 2^{\frac{2}{3}}(我算的答案和视频中不同....)

\frac{x}{y} = \frac{2^{\frac{1}{3}} V^{\frac{1}{3}}}{2^{-\frac{2}{3}}V^{\frac{1}{3}}} = 2 , 所以做盒子的最优解是,底边和高的比为2

3、隐函数求导法

V = x^2y , V是固定值

A = x^2+ 4xy(没有顶), 要求最小值

因为y是x的函数,

\frac{d}{dx}(V = x^2y)

\frac{d}{dx}(0 = 2xy+x^2y')

y' =-\frac{2xy}{x^2} = -\frac{2y}{x}

\frac{dA}{dx}=2x+ 4y + 4xy' = 2x+ 4y + 4x(-\frac{2y}{x}) = 2x-4y = 0

\frac{x}{y} = 2

很快得到了解,但是无法检查这个解是最大值、最小值还是驻点 ...

就本题来说,只能用方法一来计算边界,但是老师说现实生活中,很多公式会很容易看到边界等等,因此很容易分辨这个解是否是所需要的.........

二、相关变率

1、有个警察,离道路30英尺。您开车过来。警察有个雷达,正在测速。雷达显示距离您50英尺,并且您的车沿雷达方向以每秒80英尺的速度逼近。超速每秒95英尺, 每小时65英里, 问题是您超速了没?

注意:这里汽车前行到图上直线垂足处是变化的,所以距离为x, 同时汽车和警察的距离也是变化的设为D,时间变化设为t, 这里主要就是求 \frac{dx}{dt}

标签:plt,python,微积分,color,set,ax,x1,驻点,最值
来源: https://blog.csdn.net/bullseye/article/details/122397190

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有