freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

maple程序設(shè)計-文庫吧資料

2025-03-11 18:38本頁面
  

【正文】 a:=b: b:=c: a+1。 := m e m o r y_ u s ed 6 3 4 2 3 . k b yte s 顯然 Maple自動求導在計算時間和存儲空間上具有明顯 的優(yōu)越性。 cpu_time:=(time()settime)*seconds。 #計算時間 := c p u _ ti m e .2 3 0 s ec o n d s memory_used:=evalf((kernelopts(bytesused)setbytes)/1024*kbytes,5)。 : = t 1 f o r to do e n d d oi n : = t ^x t t f1_3:=D[1$3](f): #求 f 對 x的三階導數(shù) setbytes:=kernelopts(bytesused): #使用寄存器內(nèi)存量 settime:=time(): #開始計時 f1_3(,22)。,i t 。 t end。 t:=1。在Maple 內(nèi)部對這種方法有一些限制:不能有遞歸程序,不能有記憶選項,不能對全局變量賦值,只能有常數(shù)的循環(huán)變量,等。 : = sx /1 x : = s ( )ln x : = tx ?2 x : = t ^x 2 ?? ? ?? ??sx t ?tx s ?3 txe nd pr o c 程序 fp 是怎樣構(gòu)造的呢?對比 f 和 fp 的源代碼可以幫助我們了解 Maple 自動求導 155 機理: 在 fp 的源代碼中,每一條賦值語句 V:=f(v1,v2, … vn)之前是 Vx:= fp(v1,v2, … vn),此處 vi是局部變量或形式參數(shù), fp(v1,v2, … vn)是對 f(v1,v2, … vn)在形式上的微分,用該賦值語句的的導數(shù)取代 最后一條語句或返回值。 。, , ,tx s t sx。 : = s ( )ln x : = t ^x 2 ?? ??s t ?3 t fp:=D(f)。,s t 。 end。 t:=x^2。 第二個例子試圖說明 Maple 能夠完成對多個函數(shù)的 自動求導: f:=proc(x) local s,t。 Fp xpr o c ( ) : = o pt i o n 。 154 F xpr o c ( ) : = o pt i o n 。 end: 程序進入 n=1 的分支中 , 執(zhí)行到 RETURN 命令就跳出程序 , 而不會接著執(zhí)行后面的語句了 . 另外 , 使用 RETURN 命令在一定程度上可以增加程序的可讀性 . 在第二章中曾提到 Maple 的自動求導功能,下面通過實例說明。 fi。 .019 利用循環(huán) , 程序不像前面那么易懂了 , 但同時帶來的好處也是不可忽視的 , 循環(huán)結(jié)構(gòu)不僅不會受到堆棧的限制 , 而且計算速度得到了很大的提高 . 我們知道 , Maple 子程序默認情 況下把最后一條語句的結(jié)果作為子程序的結(jié)果返回 . 我們可以用 RETURN 命令來顯式地返回結(jié)果 , 比如前面的遞歸結(jié)果可等價地寫成: Fibonacci:=proc(n::nonnegint) option remember。 fi。 fnew:=temp。 for i from 2 to n do temp:=fnew+fold。 else fold:=0。 6765 但是 , 應用上述程序計算 Fibonacci(2021)時則不能進行 , 原因是要計算 F2021, 就先 153 得計算 F199 F199?? , 無限制地遞歸會耗盡系統(tǒng)的堆??臻g而導致錯誤 . 由數(shù)據(jù)結(jié)構(gòu)有關(guān)理論知道 , 遞歸程序理論上都可以用循環(huán)實現(xiàn) , 比如我們重寫上面的程序如下: Fibonacci:=proc(n::nonnegint) local temp,fnew,fold,i。 end: seq(Fibonacci(i),i=0..19)。 else Fibonacci(n1)+Fibonacci(n2)。)。,39。 RETURN(a1) end: mygcdex(2^10,6^50,39。 x:=x1。 y2:= y3。 x2:= x3。 a2:= a3。 y3:=y1q*y2。 q:= floor(a1/a2)。 y2:=1。 y1:=0。 a2:=b。 9 在上面程序中的參數(shù) a、 b后面的雙冒號“::”指定了輸入的參數(shù)類型 . 若類型不匹配時輸出錯誤信息 . 再看下面一個擴展 Euclidean 算法的例子: mygcdex:= proc(a::nonnegint,b::nonnegint,x::name,y::name) local a1,a2,a3,x1,x2,x3,y1,y2,y3,q。 q。 r:=irem(p,q)。 while r0 do p:=q。 q:=min(a,b)。 while 循環(huán) for 循環(huán)在那些已知循環(huán)次數(shù) , 或者循環(huán)次數(shù)可以用簡單表達式計算的情況 下比較適用 . 但有時循環(huán)次數(shù)并不能簡單地給出 , 我們要通過計算 , 判斷一個條件來決定是否繼續(xù)循環(huán) , 這時 , 可以使用 while 循環(huán) . while 循環(huán)標準結(jié)構(gòu)為: while條件表達式 do 循環(huán)體 od Maple 首先判斷條件是否成立 , 如果成立 , 就一遍遍地執(zhí)行循環(huán)體 , 直到條件不成立為止 . 下面看一個簡單的程序 , 是用輾轉(zhuǎn)相除法計算兩個自然數(shù)的最大公約數(shù) ( Euclidean算法 ). GCD:=proc(a::posint, b::posint) local p,q,r。 end。 end: ABS(1/2*b)。(x)。 else 39。 和許多高級語言一樣 , 這種多重分支結(jié)構(gòu)理論上可以多到任意多重 . 再來看看前面的絕對值函數(shù)的程序 , 似乎是完美的 , 但是 , 對于乘積的絕對值則沒有辦法 , 下面用 map命令來修正 , 注意其中的 type(? , `*`)是用來判斷表達式是否為乘積 , 進而對其進行化簡 . ABS:=proc(x) if type(x,numeric) then if x0 then x else x fi。 fi。HAT39。 fi。 elif x=1 then x。 end。(x)。 else 39。 fi。 else if x=1 then x。 fi。ABS39。 fi。 end。 再如下例: ABS:=proc(x) if x0 then x else x。 500500 再看下面一個動畫制作例子 (圖略去 ): for i from 20 to 30 do p||i:=plots[implicitplot](x^3+y^35*x*y=1i/8,x=3..3,y=3..3,numpoints=800, tickmarks=[2,2] ) od: plots[display]( p||(20..30), insequence=true )。 500500 該程序僅僅具有練習例舉的意義 , 因為在 Maple 中像這樣一個問題只需要一個簡單語句就可以完成: Sum(n,n=1..1000)=sum(n,n=1..1000)。 end。 for i from 1 to n do total:=total+i。 x??????????????????????????????????????????????????????????????????????????????????????????????????????x??????????????????????????????????????????????????????????????????????????????????????????x??????????????????????????????????????????????????????????????????????????????x??????????????????????????????????????????????????????????????????x??????????????????????????????????????????????????????x??????????????????????????????????????????x??????????????????????????????x?????????????? ????x ( )xxxxxxxxxx 通過上述例子可以看出, Maple 的 for循環(huán)結(jié)構(gòu)很接近于英語語法 . 在上面例子中 , i稱為循環(huán)變量 , 用于循環(huán)計數(shù) , do 后面的部分 , 稱為循環(huán)體 , 就是需要反復執(zhí)行的語句 , 可以是一條語句 , 也可以是多條語句 . 在循環(huán)體中 , 也可以引用循環(huán)變量 . 循環(huán)體的結(jié)束標志 , 也就是整個 for 循環(huán)結(jié)構(gòu)的結(jié)束標志 , 是字母“ od” . for 循環(huán)結(jié)構(gòu)的語法可總結(jié)為: for循環(huán)變量 from初始值 to 終止值 (by 步長 ) do 循環(huán)體 od 在 for 循環(huán)結(jié)構(gòu)中,初始值和終了值必須是數(shù)值型的 , 而且必須是實數(shù) , 如果初始值是 1, 可以省略不寫 , 而步長用 by 引出 . 對于上面程序中的重復循環(huán)似乎可有可無 , 但實際科學計算中 , 重復次數(shù)往往成千上萬 , 或者重復的次數(shù)無法確定 , 循環(huán)就必不可少了 . 下面再看一個實用程序 —從 1到 n的自然數(shù)的求和程序: 148 SUM:=proc(n) local i, total。 t。 for i from 1 to n do t:=x^(t^x)。 ???1 2 0 ( ) 2 3 ( ) 3 ( ) 5 ???7 2 0 ( ) 2 4 ( ) 3 2 ( ) 5 ?? ?5 0 4 0 ( ) 2 4 ( ) 3 2 ( ) 5 ( ) 7 ?? ?40320 ( ) 2 7 ( ) 3 2 ( ) 5 ( ) 7 147 ?? ?362880 ( ) 2 7 ( ) 3 4 ( ) 5 ( ) 7 ?? ?3 6 2 8 8 0 0 ( ) 2 8 ( ) 3 4 ( ) 5 2 ( ) 7 ⑤ 一個復雜的冪指函數(shù)生成: f:=proc(x,n) local i, t。 ???prime 100 541 ???prime 101 547 ???prime 102 557 ???prime 103 563 ???prime 104 569 ???prime 105 571 ???prime 106 577 ???prime 107 587 ???prime 108 593 ④ 列示 5 到 10 的階乘及其因數(shù)分解: for n in seq(i!,i=5..10) do n=ifactor(n)。 , ,???i 2 ???i 2 4 ???i 3 8 , ,???i 4 ???i 2 16 ???i 3 64 , ,???i 6 ???i 2 64 ??
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1