【高中數學/對數函數】比較a=ln2/2,b=ln5/5的大小

【問題】

比較a=ln2/2,b=ln5/5的大小

【解答】

a-b=ln2/2-ln5/5=(5*ln2-2*ln5)/10=(ln2^5-ln5^2)/10=(ln32-ln25)/10>0

所以a>b

【圖像】

如果繪出函數y=lnx/x的圖像,再標記出a,b的位置,則繪出圖像如下:

由上圖可以看出,a,b兩點的高度差在圖上并不明顯,這也是不多的直觀圖像輸給理論計算的場合,為方便比較,特地把ab的值寫出以方便判斷。

【代碼】

<!DOCTYPE html>
<html lang="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<head><title>UNASSIGNED</title><style type="text/css">.centerlize{margin:0 auto;border:0px solid red;width:1200px;height:600px;}</style></head><body οnlοad="draw();"><div class="centerlize"><canvas id="myCanvas" width="10px" height="10px" style="border:1px dashed black;">如果看到這段文字說您的瀏覽器尚不支持HTML5 Canvas,請更換瀏覽器再試.</canvas></div></body>
</html>
<script type="text/javascript">
<!--
/*****************************************************************
* 將全體代碼拷貝下來,粘貼到文本編輯器中,另存為.html文件,
* 再用chrome瀏覽器打開,就能看到動畫效果。
******************************************************************/// 系統常量定義處
const TITLE="比較a=ln2/2,b=ln5/5的大小";    // 圖像標題
const WIDTH=1200;                    // 畫布寬度
const HEIGHT=600;                    // 畫布高度
const ScaleUnit=100;                // 縮放比例// 系統變量定義處
var context=0;                        // 畫布環境
var stage;                            // 舞臺對象
var timeElapsed=0;                    // 動畫運作的的時間
const TIME_END=100000;                // 動畫運作的期限//-------------------------------
// Canvas開始運作,由body_onload調用
//-------------------------------
function draw(){document.title=TITLE;// 畫圖前初始化var canvas=document.getElementById('myCanvas');    canvas.width=WIDTH;canvas.height=HEIGHT; context=canvas.getContext('2d');  // 進行屏幕坐標系到笛卡爾坐標系的變換// 處置完成前,原點在左上角,向右為X正向,向下為Y的正向// 處置完畢后,原點移動到畫布中央,向右為X正向,向上為Y的正向context.translate(WIDTH/2,HEIGHT/2);context.rotate(Math.PI);context.scale(-1,1);// 初始化舞臺stage=new Stage();// 開始動畫animate();
};//-------------------------------
// 畫圖
//-------------------------------
function animate(){    timeElapsed+=1;// 時間每輪增加1stage.update(timeElapsed);stage.paintBg(context);stage.paint(context);if(timeElapsed<TIME_END){        window.requestAnimationFrame(animate);}
}//-------------------------------
// 舞臺對象定義處
//-------------------------------
function Stage(){var obj=new Object;obj.curve1={name:"曲線:y=lnx/x",xEnd:5.5,x:0,y:0,color:"maroon",setY:function(x){this.y=Math.log(x)/x;// 解析式let coord={"x":x,"y":this.y};this.pts0.push(coord);            },"pts0":[],"pts1":[],};// 隨時間更新位置obj.update=function(t){// 記錄曲線1的xy值if(obj.curve1.x<obj.curve1.xEnd){obj.curve1.x+=0.01;obj.curve1.setY(obj.curve1.x);}        };// 畫前景obj.paint=function(ctx){  // 曲線一名稱drawText(ctx,this.curve1.name,-130,225,this.curve1.color,18);// 曲線一當前點坐標drawText(ctx,"當前 X:"+this.curve1.x.toFixed(3)+"  Y:"+this.curve1.y.toFixed(3),-130,205,this.curve1.color,18);// 寫出ab的值var value=Math.log(2)/2;var text="a="+value.toFixed(3);drawText(ctx,text,-130,185,this.curve1.color,18);var value=Math.log(5)/5;var text="b="+value.toFixed(3);drawText(ctx,text,-130,165,this.curve1.color,18);// 繪制曲線一paintCurve(ctx,this.curve1.color,this.curve1.pts0);// 繪制曲線一的高低點var mm=findMaxMin(this.curve1.pts0);markMaxMin(ctx,mm,this.curve1.color);// 標記ab位置        paintPoint(ctx,2,Math.log(2)/2,"a","black");        paintPoint(ctx,5,Math.log(5)/5,"b","black");};// 畫背景obj.paintBg=function(ctx){// 清屏ctx.clearRect(-600,-300,1200,600);ctx.fillStyle="white";ctx.fillRect(-600,-300,1200,600);// 畫X軸drawAxisX(ctx,-600,600,50);// 畫Y軸drawAxisY(ctx,-300,300,50);// 畫網格線drawGrid(ctx,-600,-300,50,1200,600,50);// 左上角標題var metrics = ctx.measureText(TITLE);var textWidth = metrics.width;drawText(ctx,TITLE,-WIDTH/2+textWidth,HEIGHT/2-30,"grey",18);// 右下角作者,日期const waterMarkTxt="逆火原創@"+(new Date()).toLocaleDateString();metrics = ctx.measureText(waterMarkTxt);textWidth = metrics.width;drawText(ctx,waterMarkTxt,WIDTH/2-textWidth,-HEIGHT/2,"lightGrey",16);};return obj;
}// 描繪并標識一個點
function paintPoint(ctx,x,y,text,color){ctx.beginPath();ctx.arc(x*ScaleUnit,y*ScaleUnit,4,0,Math.PI*2,false);ctx.closePath();ctx.strokeStyle=color;ctx.stroke();drawText(ctx,text,x*ScaleUnit+9,y*ScaleUnit-5,color,12);
}// 連點成線畫曲線
function paintCurve(ctx,color,cds){ctx.strokeStyle = color;ctx.beginPath();     for(var i=0; i<cds.length; i++){let y=cds[i].y;if(Math.abs(cds[i].y*ScaleUnit)<300){ctx.lineTo(cds[i].x*ScaleUnit,cds[i].y*ScaleUnit);}}     ctx.stroke();        
}// 找到坐標數組的最大最小值
function findMaxMin(cds){if(cds.length<1){return null;}var retval={max:-10000,max_x:0,min:10000,min_x:0};for(var i=0;i<cds.length;i++){var y=cds[i].y;if(y>retval.max){retval.max=y;retval.max_x=cds[i].x;}if(y<retval.min){retval.min=y;retval.min_x=cds[i].x;}} return retval;
}// 繪出最大最小值
function markMaxMin(ctx,mm,color){if(mm==null){return;}// 最大值var x=mm.max_x;var y=mm.max;ctx.strokeStyle=color;ctx.beginPath();ctx.arc(x*ScaleUnit,y*ScaleUnit,5,0,Math.PI*2,false);ctx.closePath();ctx.stroke();var text="max@x="+x.toFixed(3)+" y="+y.toFixed(3);drawText(ctx,text,x*ScaleUnit,y*ScaleUnit,color,12);// 最小值var x=mm.min_x;var y=mm.min;ctx.strokeStyle=color;ctx.beginPath();ctx.arc(x*ScaleUnit,y*ScaleUnit,5,0,Math.PI*2,false);ctx.closePath();ctx.stroke();var text="min@x="+x.toFixed(3)+" y="+y.toFixed(3);drawText(ctx,text,x*ScaleUnit,y*ScaleUnit,color,12);
}// 定點畫實心圓
function drawSolidCircle(ctx,x,y,r,color){ctx.save();ctx.beginPath();ctx.arc(x,y,r,0,2*Math.PI);ctx.fillStyle=color;ctx.fill();ctx.stroke();ctx.restore();
}// 兩點之間畫線段
function drawLine(ctx,x1,y1,x2,y2,color){ctx.save();ctx.lineWidth=0.25;ctx.strokeStyle=color;ctx.fillStyle=color;ctx.beginPath();ctx.moveTo(x1,y1);ctx.lineTo(x2,y2);ctx.stroke();ctx.closePath();ctx.restore();
}// 畫橫軸
function drawAxisX(ctx,start,end,step){const AXISY_COLOR="black";ctx.save();ctx.lineWidth=0.5;ctx.strokeStyle=AXISY_COLOR;// 畫軸ctx.beginPath();ctx.moveTo(start, 0);ctx.lineTo(end, 0);ctx.stroke();ctx.closePath();// 畫箭頭ctx.beginPath();ctx.moveTo(end-Math.cos(getRad(15))*10, Math.sin(getRad(15))*10);ctx.lineTo(end, 0);ctx.lineTo(end-Math.cos(getRad(15))*10, -Math.sin(getRad(15))*10);ctx.stroke();ctx.closePath();// 畫刻度var x,y;y=5;for(x=start;x<end;x+=step){if(x==0){continue;}ctx.beginPath();ctx.moveTo(x, 0);ctx.lineTo(x, y);ctx.stroke();ctx.closePath();drawText(ctx,x/ScaleUnit+"",x,y-20,AXISY_COLOR,12);}ctx.restore();
}// 畫縱軸
function drawAxisY(ctx,start,end,step){const AXISY_COLOR="black";ctx.save();ctx.lineWidth=0.5;ctx.strokeStyle=AXISY_COLOR;// 畫軸ctx.beginPath();ctx.moveTo(0, start);ctx.lineTo(0, end);ctx.stroke();ctx.closePath();// 畫箭頭ctx.beginPath();ctx.moveTo(Math.sin(getRad(15))*10, end-Math.cos(getRad(15))*10);ctx.lineTo(0, end);ctx.lineTo(-Math.sin(getRad(15))*10, end-Math.cos(getRad(15))*10);ctx.stroke();ctx.closePath();// 畫刻度var x,y;x=5;for(y=start;y<end;y+=step){ctx.beginPath();ctx.moveTo(x, y);ctx.lineTo(0, y);var text=y/ScaleUnit+"";var metrics = ctx.measureText(text);var textWidth = metrics.width;drawText(ctx,text,x-textWidth-5,y,AXISY_COLOR,12);ctx.stroke();ctx.closePath();}ctx.restore();
}// 畫網格線
function drawGrid(ctx,x1,y1,step1,x2,y2,step2){ctx.save();ctx.lineWidth=0.25;ctx.strokeStyle="lightgrey";    // 分十格var x,y;for(x=x1;x<x2;x+=step1/10){ctx.beginPath();ctx.moveTo(x, y1);ctx.lineTo(x, y2);ctx.stroke();ctx.closePath();}for(y=y1;y<y2;y+=step2/10){ctx.beginPath();ctx.moveTo(x1, y);ctx.lineTo(x2, y);ctx.stroke();ctx.closePath();}// 十小格間的分割線ctx.lineWidth=0.25;ctx.strokeStyle="grey";ctx.setLineDash([4,4]);// 設置虛線for(x=x1;x<x2;x+=step1){ctx.beginPath();ctx.moveTo(x, y1);ctx.lineTo(x, y2);ctx.stroke();ctx.closePath();}for(y=y1;y<y2;y+=step2){ctx.beginPath();ctx.moveTo(x1, y);ctx.lineTo(x2, y);ctx.stroke();ctx.closePath();}ctx.restore();
}//-------------------------------
// 角度得到弧度
//-------------------------------
function getRad(degree){return degree/180*Math.PI;
}//-------------------------------
// 得到顏色
//-------------------------------
function getColor(index){var arr=["aqua"/* aqua湖綠色*/,"black"/* black黑色*/,"blue"/* blue藍色*/,"fuchsia"/* fuchsia 紫紅*/,"green"/* green 綠色*/,"grey"/* grey 草木灰*/,"lime"/* lime 亮綠色*/,"maroon"/* maroon 棕色*/,"navy"/* navy 海軍藍*/,"orange"/* orange 橙色*/,"purple"/* purple 紫色*/,"red"/* red 大紅*/,        "skyblue"/* skyblue 天藍*/,"teal"/* teal 藍綠色*/,"yellow"/* yellow 亮黃*/,"#aa0000"/* #aa0000 鐵銹紅*/,        ];if(index>arr.length){index=index % arr.length;}return arr[index];
}//-------------------------------------
// 繪制文字,指定顏色
// ctx:繪圖環境
// text:文字
// x,y:坐標
// color:顏色
// size:字體大小
//-------------------------------------
function drawText(ctx,text,x,y,color,size){ctx.save();ctx.translate(x,y)ctx.rotate(getRad(180))ctx.scale(-1,1)ctx.textBaseline="bottom";ctx.textAlign="center";ctx.fillStyle=color;ctx.font = size+"px consolas";ctx.fillText(text,0,0);ctx.restore();
}// JS開立方
function kaiLiFang(x){if(x>0){return Math.pow(x,1/3);}else{return -Math.pow(-x,1/3);}
}
//-->
/**************************************
《希望》
人的希望就像一顆恒星,
每到深夜又會重放光芒,
無論你因為環境影響,
還是為自身條件所限,
被動或主動放棄過它多少次,
它一直都在那,
靜靜地看著你。
**************************************/
</script>

END

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43163.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43163.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43163.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

隨手記:對比兩個對象不一樣的值,生成一個新的對象

diffObject(obj1, obj2) {let changeForm {}for (let key in obj1) {if (!obj1.hasOwnProperty(key) || obj1[key] ! obj2[key]) {// 新舊數據不相同的key值changeForm[key] obj1[key]}}console.log(changeForm, changeForm)},

初次用bable遍歷vue項目下的中文

利用 babel 找到 AST 中的中文 // vite-plugin-babel-transform.js const parser require(babel/parser) const traverse require(babel/traverse).default // const types require(babel/types) // const generate require(babel/generator).default const fs require(f…

【PHP小課堂】學習PHP中的字符串操作函數(二)

學習PHP中的字符串操作函數&#xff08;二&#xff09; 接下來我們繼續 PHP 中字符串函數的學習。今天學習的內容主要是帶下劃線的一些字符串函數&#xff0c;上篇文章說過&#xff0c;這些系統函數的命名是 PHP 非常令人詬病的&#xff0c;有些東西真的只能靠我們的記憶來強行…

顯卡、顯卡驅動、cuda、cuDNN之間關系

顯卡、顯卡驅動、CUDA 和 cuDNN 是構成高性能計算和深度學習環境的關鍵組件&#xff0c;它們之間有著緊密的聯系。下面是對這些組件及其關系的詳細介紹&#xff1a; 顯卡&#xff08;GPU&#xff09; 顯卡&#xff0c;全稱為圖形處理器&#xff08;Graphics Processing Unit&…

【Unity2D 2022:NPC】制作任務系統

一、接受任務 1. 編輯NPC對話腳本&#xff1a; &#xff08;1&#xff09;創建靜態布爾變量用來判斷ruby是否接受到任務 public class NPCDialog : MonoBehaviour {// 創建全局變量用來判斷ruby是否接到任務public static bool receiveTask false; } &#xff08;2&#xff…

python學習-錯誤與異常

代碼是人的邏輯思維的具體體現&#xff0c;因為沒有一個人的邏輯思維是完美無缺的&#xff0c;所以人在編寫代碼時必然會出現各種錯誤。既然錯誤或多或少都會發生&#xff0c;那么如何捕捉錯誤&#xff0c;并且捕捉到錯誤后要如何處理&#xff0c;就顯得很重要。 語法錯誤 Py…

SPI通信協議和W25Q64

前言&#xff1a; STM32中的通信接口&#xff1a; UART 單總線 IIC SPI CAN 1. SPI FLASH W25Q64的關系 SPI:一種通信接口&#xff0c;可以用于和搭載SPI接口的設備通信 FLASH:是一種掉電不丟失的存儲 -- 手機8256G的256 單片機 64K512K的512 芯片內部flash&…

STM32 GPIO的工作原理

STM32的GPIO管腳有下面8種可能的配置:&#xff08;4輸入 2 輸出 2 復用輸出) &#xff08;1&#xff09;浮空輸入_IN_FLOATING 在上圖上&#xff0c;陰影的部分處于不工作狀態&#xff0c;尤其是下半部分的輸出電路&#xff0c;實際上是與端口處于隔離狀態。黃色的高亮部分顯示…

響應式布局下關于gird柵格布局的一些構思

1、傳列數&#xff0c;根據列數計算元素容器寬度 好處是子元素可以寫百分比寬度&#xff0c;不用固定某一種寬度&#xff0c;反正知道列數通過計算間距就能得到外層容器的寬度。 舉個簡單的例子&#xff1a; &#xff08;ps:以下用例皆在html中去模擬&#xff0c;就不另外起r…

Python 獲取 SQL 指紋和 HASH 值

前言 本文介紹一個提取 SQL 指紋的方法&#xff0c;就是將 SQL 語句的條件轉換為 &#xff1f;可用于脫敏和 SQL 聚類分析的場景。 1. 工具安裝 這里用到的工具&#xff0c;就是 pt 工具集中的 pt-fingerprint 含在 Percona Toolkit 中&#xff0c;安裝方法可參考 Percona T…

python7:裝飾器

目錄 1.調用外部程序os.system-阻塞式調用subprocess-python中的模塊 2.裝飾器前戲作用域&#xff08;1&#xff09;全局和局部-就近原則&#xff08;2&#xff09;嵌套作用域&#xff08;3&#xff09;內置作用域、變量 高階函數&#xff1a;函數是最高級的對象&#xff08;1&…

海外媒體投稿:5個軟文代發經典案例,教大家獲得突破

隨著互聯網的飛速發展&#xff0c;軟文代發成為一種高效的推廣方法。下面我們就詳細介紹五個成功軟文代發推廣實例&#xff0c;致力于幫助讀者把握有關方法&#xff0c;完成突破。 第一實例&#xff1a;社交網絡散播在如今社交媒體時代&#xff0c;軟文代發能夠通過社交平臺迅速…

nodejs實現:支付寶訂單查詢

nodejs實現&#xff1a;支付寶訂單查詢&#xff1b; 原生http請求&#xff0c;不使用三方庫&#xff1b; 代碼如下&#xff1a; const https require(https); const crypto require(crypto); const querystring require(querystring);// 支付寶公共參數 const PRIVATE_KE…

[C++] 輕熟類和對象

類的定義 格式規范 class為定義類的關鍵字&#xff0c;后有類名&#xff0c;類的主體存于{}中&#xff1b;類定義結束時后面的分號不能省略&#xff1b;類體的內容成為類的成員&#xff0c;類中的變量成為成員變量&#xff0c;函數成為方法或成員函數&#xff1b;C兼容C語言的…

微軟 Edge 瀏覽器全解析

微軟 Edge 是微軟推出的一個現代化瀏覽器,繼承了 Internet Explorer(IE)的部分功能,但在速度、安全性和兼容性方面做出了很大改進。下面是對微軟 Edge 瀏覽器的詳細解析,包括其特點、安裝、配置和常見問題的解答。 微軟 Edge 瀏覽器的特點 基于 Chromium 內核 Edge 瀏覽…

SpringBoot配置flyway

背景 目前我們的項目代碼都會交由Git、SVN等版本管理工具進行管理&#xff0c;但是我們的sql腳本&#xff0c;尤其是各類ddl腳本并沒有進行版本的管理&#xff08;python的web框架Django默認就提供了類似的工具&#xff0c;從一開始就鼓勵開發者通過版本管理的方式進行數據庫的…

C++中的多重繼承和虛繼承:橫向繼承、縱向繼承和聯合繼承;虛繼承

多重繼承 A.橫向多重繼承&#xff1a; B.縱向多重繼承&#xff1a; C.聯合多重繼承&#xff1a; 因為 single 和 waiter 都繼承了一個 worker 組件&#xff0c;因此 SingingWaiter 將包含兩個 worker 組件&#xff0c;那么將派生類對象的地址賦給基類指針將出現二義性 那么如何…

idea http client插件上傳文件,并忽略https證書驗證

上傳文件 ### 傳臨時素材 圖片 POST https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token{{access_token}}&typeimage Content-Type: multipart/form-data; boundary----WebKitFormBoundarywKUX3Xj6aL5Wssnb------WebKitFormBoundarywKUX3Xj6aL5Wssnb Conten…

從Helm到 Operator:Kubernetes應用管理的進化

&#x1f9f0;Helm 的作用 在開始前需要先對 kubernetes Operator 有個簡單的認識。 以為我們在編寫部署一些簡單 Deployment 的時候只需要自己編寫一個 yaml 文件然后 kubectl apply 即可。 apiVersion: apps/v1 kind: Deployment metadata: labels: app: k8s-combat …

去水印小程序源碼修復版-前端后端內置接口+第三方接口

去水印小程序源碼&#xff0c;前端后端&#xff0c;內置接口第三方接口&#xff0c; 修復數據庫賬號密碼錯誤問題&#xff0c;內置接口支持替換第三方接口&#xff0c; 文件挺全的&#xff0c;可以添加流量主代碼&#xff0c;搭建需要準備一臺服務器&#xff0c;備案域名和http…