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

正文內(nèi)容

maple程序設(shè)計(jì)-全文預(yù)覽

2025-03-31 18:38 上一頁面

下一頁面
  

【正文】 參數(shù) 子程序中的參數(shù) , 就是那些在 proc( )的括號中的變量 . 參數(shù)是一類特殊的變量 , 在調(diào)用子程序時(shí) , 會(huì)把它們替換成實(shí)際的參數(shù) . sqrt1:=proc(x::anything,y::name) y:=x^2。 a:=b。 := m e m o r y_ u s ed 6 3 4 2 3 . k b yte s 顯然 Maple自動(dòng)求導(dǎo)在計(jì)算時(shí)間和存儲(chǔ)空間上具有明顯 的優(yōu)越性。 #計(jì)算時(shí)間 := c p u _ ti m e .2 3 0 s ec o n d s memory_used:=evalf((kernelopts(bytesused)setbytes)/1024*kbytes,5)。,i t 。 t:=1。 : = 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 自動(dòng)求導(dǎo) 155 機(jī)理: 在 fp 的源代碼中,每一條賦值語句 V:=f(v1,v2, … vn)之前是 Vx:= fp(v1,v2, … vn),此處 vi是局部變量或形式參數(shù), fp(v1,v2, … vn)是對 f(v1,v2, … vn)在形式上的微分,用該賦值語句的的導(dǎo)數(shù)取代 最后一條語句或返回值。, , ,tx s t sx。,s t 。 t:=x^2。 Fp xpr o c ( ) : = o pt i o n 。 end: 程序進(jìn)入 n=1 的分支中 , 執(zhí)行到 RETURN 命令就跳出程序 , 而不會(huì)接著執(zhí)行后面的語句了 . 另外 , 使用 RETURN 命令在一定程度上可以增加程序的可讀性 . 在第二章中曾提到 Maple 的自動(dòng)求導(dǎo)功能,下面通過實(shí)例說明。 .019 利用循環(huán) , 程序不像前面那么易懂了 , 但同時(shí)帶來的好處也是不可忽視的 , 循環(huán)結(jié)構(gòu)不僅不會(huì)受到堆棧的限制 , 而且計(jì)算速度得到了很大的提高 . 我們知道 , Maple 子程序默認(rèn)情 況下把最后一條語句的結(jié)果作為子程序的結(jié)果返回 . 我們可以用 RETURN 命令來顯式地返回結(jié)果 , 比如前面的遞歸結(jié)果可等價(jià)地寫成: Fibonacci:=proc(n::nonnegint) option remember。 fnew:=temp。 else fold:=0。 end: seq(Fibonacci(i),i=0..19)。)。 RETURN(a1) end: mygcdex(2^10,6^50,39。 y2:= y3。 a2:= a3。 q:= floor(a1/a2)。 y1:=0。 9 在上面程序中的參數(shù) a、 b后面的雙冒號“::”指定了輸入的參數(shù)類型 . 若類型不匹配時(shí)輸出錯(cuò)誤信息 . 再看下面一個(gè)擴(kuò)展 Euclidean 算法的例子: mygcdex:= proc(a::nonnegint,b::nonnegint,x::name,y::name) local a1,a2,a3,x1,x2,x3,y1,y2,y3,q。 r:=irem(p,q)。 q:=min(a,b)。 end。(x)。 和許多高級語言一樣 , 這種多重分支結(jié)構(gòu)理論上可以多到任意多重 . 再來看看前面的絕對值函數(shù)的程序 , 似乎是完美的 , 但是 , 對于乘積的絕對值則沒有辦法 , 下面用 map命令來修正 , 注意其中的 type(? , `*`)是用來判斷表達(dá)式是否為乘積 , 進(jìn)而對其進(jìn)行化簡 . ABS:=proc(x) if type(x,numeric) then if x0 then x else x fi。HAT39。 elif x=1 then x。(x)。 fi。 fi。 fi。 再如下例: ABS:=proc(x) if x0 then x else x。 500500 該程序僅僅具有練習(xí)例舉的意義 , 因?yàn)樵?Maple 中像這樣一個(gè)問題只需要一個(gè)簡單語句就可以完成: Sum(n,n=1..1000)=sum(n,n=1..1000)。 for i from 1 to n do total:=total+i。 t。 ???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 ⑤ 一個(gè)復(fù)雜的冪指函數(shù)生成: f:=proc(x,n) local i, t。 , ,???i 2 ???i 2 4 ???i 3 8 , ,???i 4 ???i 2 16 ???i 3 64 , ,???i 6 ???i 2 64 ???i 3 2 1 6 , ,???i 8 ???i 2 256 ???i 3 512 , ,???i 10 ???i 2 1 0 2 4 ???i 3 1 0 0 0 ③ 列示第 100 到第 108 個(gè)素?cái)?shù) (第 1 個(gè)素?cái)?shù)是 2): for j from 100 to 108 do prime[j]=ithprime(j)。=2^i, 39。 := total 1 := total 3 := total 6 := total 10 := total 15 ② 列示 2, 4, 6, 8, 10 及其平方數(shù)、立方數(shù): 146 for i from 2 to 10 by 2 do 39。 328509 如果變量 proame (程序被調(diào)用的名字 )存在的話,它可以用來直接訪問該程序 , 通常用 proame(args) 完成調(diào)用 : f:=proc(a) if a0 then RETURN(a^(1/2)) else RETURN(39。 r:=args[1]。 123456784321 顯然 , 在前一個(gè)程序中 , 由于在子程序外已經(jīng)賦值給 a, a 是全局變量 , 它的值不受子程序中同名局部變量的影響;而在后一個(gè)子程序中 , 由于重新把 a定義為全局變量 , 所以子程序外的 a 隨著子程序中的 a 值的變化而變化 . 子程序中的 輸入?yún)?shù) , 它既不是全局的 , 也不是局部的 . 在子程序內(nèi)部 , 它是形式參數(shù) , 也就是說 , 它的具體取值尚未被確定 , 它在程序調(diào)用時(shí)會(huì)被替換成真正的參數(shù)值 . 而在子程序外部 , 它們僅僅表示子程序接受的參數(shù)的多少 , 而對于具體的參數(shù)值沒有關(guān)系 . 變量 nargs, args 與 proame 在所有程序中都有三個(gè)有用的變量: nargs, args 與 proame. 前兩個(gè)給出關(guān)于調(diào)用參量的信息 : nargs 變量是調(diào)用的實(shí)際參量的個(gè)數(shù) , args 變量是包含參量的表達(dá)式序列 , args 的子序列通過范圍或數(shù) 字的參量選取 . 例如 , 第 i 個(gè)參量被調(diào)用的格式為 : args[i]. nargs, args 變量通常在含有可選擇參量的程序中使用 . 下面看一個(gè)例子: p:=proc( ) local i。 evalf(a/2)。 f()。 := a 1 f:=proc( ) local a。 map((xi,u,xx,yy){xx=xi,yy=u*xi},p,t,x,y) end: 調(diào)用該程序可以方便求解: 143 parsolve(u^2+v^2=a^2,[u,v],t)。該程序在代數(shù)方程 f(x,y)=0求解中使用了一個(gè)巧妙的代換 y=tx得到了方程的參數(shù)解 , 它的主要用途是用來畫圖、求積分、求微分和求級數(shù) . 程序如下: parsolve:=proc(f,xy::{list(name),set(name)},t::name) local p,x,y。 ,55 甚至于程序名也可以省略,這種情況通常會(huì)在使用函數(shù) map 時(shí)遇到: map(xif x0 then x else x fi,[4,3,2,0,1])。 ??? ???x 2 2 x y y 2 ??? ??? ???x 3 3 x 2 y 3 x y 2 y 3 ??? ??? ??? ???x 4 4 x 3 y 6 x 2 y 2 4 x y 3 y 4 ?? ? ?? ? ?? ? ?? ? ?? ?x 5 5 x 4 y 10 x 3 y 2 10 x 2 y 3 5 x y 4 y 5 ?? ? ?? ? ?? ? ?? ? ?? ? ?? ?x 6 6 x 5 y 15 x 4 y 2 20 x 3 y 3 15 x 2 y 4 6 x y 5 y 6 F:=proc(n::integer) if n mod 12=0 then true else false fi end: F(123^123), F(1234567890^9)。 141 print(x+y)。 end: P(3,4)。 end。 140 ???x ???2 x 2 ???x ???2 a x b 再改變常數(shù) c 的值,觀察 f 與 g的變化: c := 15。再看下面實(shí)驗(yàn): f(x)。: a:=1: b:=2: c:=3: a*x^2+b*x+c。 := g1 ???x ???x 2 1 := g2 ???y ???y 2 1 g3:=g1+g2。 f2:=y^2+1。 ( )???x 2 a ( )si n ???x 2 a 上述結(jié)果是函數(shù)作用的例子 . 而最后一個(gè)結(jié)果 )sin()( 22 axax ?? 實(shí)際上是算子 f與 算子 g:=tt^2+a 復(fù)合后再作用到參數(shù) x的結(jié)果 . 從數(shù)學(xué)上講 , 作用與復(fù)合是不同的,它們產(chǎn)生的結(jié)果是有區(qū)別的 , 但在使用它們時(shí) , 兩者還是有些重疊的 . 在 Maple 中 , 可以依賴于語法把它們區(qū)分開 : (1) 當(dāng)復(fù)合兩個(gè)算子時(shí) , 結(jié)果仍是算子 , 兩個(gè)算子的定義域必須是相容的; (2) 當(dāng)把一個(gè)算子作用于一個(gè)參數(shù) (參數(shù)必須在算子的定義域中 )時(shí) , 結(jié)果是一個(gè)表達(dá)式 。 ???( ),x y ???x 2 y 2 當(dāng)我們依次把算子 f 作用到參數(shù) 0, a, x^2+a 時(shí)即可得平常意義上的函數(shù)值: f:=tt*sin(t)。 137 第六章 Maple程序設(shè)計(jì) 前面 , 我們使用的是 Maple 的交互式命令環(huán)境 . 所謂交互式命令環(huán)境 , 就是一次輸入一條或幾條命令 , 然后按回車 , 這些命令就被執(zhí)行了 , 執(zhí)行的結(jié)果顯示在同一個(gè)可執(zhí)行塊中 . 對于大多數(shù)用戶來說 , 利用交互式命令環(huán)境解決問題已經(jīng)足夠了 , 但如果要解決一系列同一類型的問題或者希望利用 Maple 編寫需要的解決特定問題的函數(shù)和程序 , 以期更加充分地利用 Maple 的強(qiáng)大功能 , 提高大規(guī)模問題的計(jì)算效率 , 掌握一定的程序設(shè)計(jì)是必要的 . 幸運(yùn)的是 , Maple自身提供了一套編程工具 , 即 Maple語言 . Maple語言實(shí)際上是由 Maple 各種命令以及一些簡單的過程控制語句組成的 . 1編程基礎(chǔ) 所謂算子 , 是從一個(gè)抽象空間到另一個(gè)抽象空間的函數(shù) . 在數(shù)學(xué)上算子的含義通常是函數(shù)到函數(shù)的映射 . 在 Maple 中 , 算子常用“箭頭”記號定義 (也稱箭頭操作符 ): f:=xa*x*exp(x)。 ???x ???x2 1 unapply(x^2+y^2,x,y)。 a ( )sin a f(x^2+a)。 ???( )D g h g ( )D h 另外一個(gè)應(yīng)引起注意的問題是算子 (函數(shù) )與表達(dá)式的異同,在第一章 中曾探討過函數(shù)與表達(dá)式的區(qū) 別,這里再通過幾個(gè)例子說明其中的微妙差異: f1:=x^2+1。 g2:=yy^2+1。x39。 := g ???x ??? ???a x 2 b x c 由此可見, f 中的 a,b,c 已經(jīng)作了代換,而 g中則顯含 a,b,c。 D(g)。 ??? ???x2 2 x 3 ??? ???x2 2 x 15 由此可見,在利用 Maple 進(jìn)行函數(shù)研究時(shí),對同一問題應(yīng)該用不同方法加以校驗(yàn),而這一切的支撐是數(shù)學(xué)基礎(chǔ)! 編程初體驗(yàn) 利用算子可以生成最簡單的函數(shù) —單個(gè)語句的函數(shù) , 但嚴(yán)格意義上講它并非程序設(shè)計(jì)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1