Template:複變運算/doc:修订间差异
imported>A2569875 |
(没有差异)
|
2024年1月6日 (六) 11:52的最新版本
Template:NoteTA Template:Other usesTemplate:Documentation subpageTemplate:High-use Template:LuaTemplate:模板樣式 Template:Tl模板為Help:计算功能的一個擴展,提供了一些Help:计算不支援的計算。
概要
本模板比Help:计算多了以下功能:
- 複變數四则运算(能支持到簡單的四元數);
- 簡單的函數與變數定義(用於Template:Braces與Template:Tl);
- 簡單的[[Help:数学公式|Template:LᴀTᴇX数学公式]]輸出;
- 運算途中呼叫其他模塊中返回數字的LUA數學函數或數學模板
使用方法
本模板的第一參數為欲計算的運算式,關於運算式的語法詳見#語法一節。參數number class為指定運算時使用的數體。若使用其軟重定向版本Template:Tl則有第二參數可以使用,用途為指定輸出的小數位數。
其基礎語法為: Template:Squote 或 Template:Squote
參數說明
- 第一參數:要計算的數學式
- Template:Para:使用的数域,可以是:
- Template:Para:布林值,是否直接輸出適用於
<math></math>的Template:LᴀTᴇX原始碼 - Template:Para:布林值,是否直接輸出完整的
<math></math>数学公式 - Template:Para:布林值,是否允許載入其他模塊中返回數字的LUA數學函數或數學模板
語法
本節將說明本模板輸入的運算式之語法。
Template:HideH Template:複變運算/語法 Template:HideF
自訂函數用法
- 具名函數
基本函數定義方式為「Template:Math」。
例如若要表達,則其應寫為「Template:Math」
- 匿名函數
匿名函數的語法為「Template:Nowrap」
- 以上例而言,對應的匿名函數應寫為「
Template:Math」
匿名函數可以被直接呼叫,例如「Template:Tlx」→「Template:計算結果」
- 函數中的函數
函數中可以包含另一個函數,例如「Template:Tlx」→「Template:計算結果」
- 函數作為參數
- 部分函數是以函數作為參數,例如
summation(Template:0)、product(Template:0)和一些微積分函數。條件運算式(if(Template:0))也有函數呼叫的版本iff(Template:0)。
- 求和、求積與微積分函-{}-數
- 求和函-{}-數(
summation(start,end,function),)、求積函-{}-數(summation(start,end,function),)、微分(diff(function,x0),)、積分(integral(a,b,function),)、極限(limit(x0,way,function),)皆須傳入一個匿名函數,作為其數列計算的依據。 - 以求和函-{}-數
summation(start,end,function)為例,若要表達,從1到5的和,則代碼為:
- 求和/求積函-{}-數的變數
- 一般求和/求積函-{}-數的變數通常是i、j或k,而在此運算系統中,i、j與k已被視作常數無法使用。若需要讓顯示出來的結果為i、j或k可在英文字母後方加「t」,如it、jt或kt,顯示時t會省去:
- 求和函-{}-數(
- 函數條件運算式(
iff(條件,為真,為假))- 條件運算式除了給定條件外,其為真的結果與為假的結果要是一個無參數的匿名函數。無參數的匿名函數定義方式為「Template:Nowrap」
- 例如「Template:Tlx」→「Template:計算結果」
- 例如「Template:Tlx」→「Template:計算結果」
- 條件運算式除了給定條件外,其為真的結果與為假的結果要是一個無參數的匿名函數。無參數的匿名函數定義方式為「Template:Nowrap」
- 函數的遞迴
- 具名函數可以遞迴調用,但須注意遞迴需要消耗較多的效能。函數的遞迴需要給出初始條件與遞迴結果,因此需要使用條件運算式,若用
if(Template:0)會導致無窮呼叫而發生錯誤,因此需要使用到iff(Template:0)。
- 以階乘為例,時定義為1(初始條件),其餘為:
- 例如「Template:Tlx」→「Template:計算結果」
範例
Template:((計算|:x,y↦x^2+y^2;(5,2)Template:))→Template:計算Template:((計算|maximum(2,5,7,6,9,999)Template:))→Template:計算Template:((計算|log(2,256)Template:))→Template:計算Template:((計算|sin(div(pi,6))Template:))→Template:計算Template:((計算|sin(pi/6)Template:))→Template:計算Template:((計算|cos(div(2⋅pi,3))Template:))→Template:計算Template:((計算|factorial(5)Template:))→Template:計算
限制
本模板僅支援輸入數字(0-9)、已定義的運算子符號({{#invoke:Complex Number/Calculate/doc.lua|allOperator|comma=、 |pattern=%s}})和半角英文字母(a-z及A-Z),其餘字元都會被忽略。
- Template:Tlx→「Template:複變運算」(
≈被忽略,剩下「2<空白>3」而無法運算) - Template:Tlx→「Template:複變運算」(
²和₆被忽略,剩下「+」而無法運算)
參數
Template:TemplateDataHeader <templatedata> { "params": { "1": { "label": "運算式", "description": "要計算的運算式", "type": "string", "required": true }, "2": { "label": "小數位數 (計算模板專用)", "description": "使用Template:計算模板時才支持這個參數。", "type": "number" }, "number class": { "label": "運算數字模式", "description": "要運算的數字模式,可以是實數、cmath(複數)、qmath(四元數)、no calc(不計算)、mathtag(以<math>輸出)或直接寫Module:模組名稱.運算庫來指定使用特定模組來運算。", "type": "string", "default": "cmath", "suggestedvalues": [ "real", "cmath", "qmath", "no calc", "mathtag", "實數", "複數", "四元數" ] }, "use math": { "label": "使用<math>", "description": "是否使用<math>", "type": "boolean", "default": "no" }, "should math": { "label": "是否以<math>原碼輸出", "description": "輸出結果字串是否轉換為<math>原碼格式輸出。若use math設定為是,則此參數會自動當成是。", "type": "boolean", "default": "no" }, "useOtherModule": { "label": "是否可呼叫其他模組", "description": "是否可呼叫其他模組的函數。", "type": "boolean", "default": "no" } }, "format": "inline", "description": "進行複變數的運算" } </templatedata>