Ito ang command ginsh na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
ginsh - GiNaC Interactive Shell
SINPOSIS
ginsh [file ...]
DESCRIPTION
ginsh ay isang interactive na frontend para sa GiNaC symbolic computation framework. Ito ay
nilayon bilang isang tool para sa pagsubok at pag-eksperimento sa mga tampok ng GiNaC, hindi bilang isang
kapalit para sa tradisyonal na interactive na computer algebra system. Bagama't marami itong magagawa
mga bagay na kayang gawin ng mga tradisyunal na system na ito, hindi nagbibigay ang ginsh ng mga programming construct tulad nito
mga loop o conditional expression. Kung kailangan mo ang pagpapaandar na ito pinapayuhan kang magsulat
iyong programa sa C++, gamit ang "katutubong" GiNaC class framework.
PAGGAMIT
INPUT FORMAT
Pagkatapos ng startup, ipinapakita ng ginsh ang isang prompt ("> ") na nagpapahiwatig na handa na itong tanggapin ang iyong
input. Ang katanggap-tanggap na input ay mga numeric o simbolikong expression na binubuo ng mga numero (hal
42, 2/3 or 0.17), mga simbolo (hal x or resulta), tulad ng mga operator ng matematika + at *, at
mga function (hal kasalanan or normal). Ang bawat input expression ay dapat wakasan sa alinman sa a
tuldok-kuwit (;) o isang tutuldok (:). Kung winakasan ng semicolon, susuriin ng ginsh ang
expression at i-print ang resulta sa stdout. Kung winakasan ng colon, ginsh lang
suriin ang expression ngunit hindi i-print ang resulta. Posibleng magpasok ng maramihan
mga expression sa isang linya. Ang whitespace (mga puwang, tab, bagong linya) ay maaaring malayang mailapat sa pagitan
mga token. Upang huminto sa ginsh, ipasok umalis or lumabas, o mag-type ng EOF (Ctrl-D) sa prompt.
KOMENTARYO
Anumang bagay na sumusunod sa dobleng slash (//) hanggang sa dulo ng linya, at lahat ng linya ay nagsisimula
may markang hash (#) ay itinuturing bilang isang komento at hindi pinansin.
NUMERO
tumatanggap ang ginsh ng mga numero sa karaniwang mga notasyong desimal. Kabilang dito ang di-makatwirang katumpakan
mga integer at rational pati na rin ang mga floating point na numero sa pamantayan o siyentipiko
notasyon (hal 1.2E6). Ang pangkalahatang tuntunin ay kung ang isang numero ay naglalaman ng decimal point
(.), ito ay isang (hindi eksaktong) floating point number; kung hindi, ito ay isang (eksaktong) integer o
makatwiran. Maaaring tukuyin ang mga integer sa binary, octal, hexadecimal o arbitrary (2-36)
base sa pamamagitan ng prefixing sa kanila ng #b, #o, #x, O #nR , Ayon sa pagkakabanggit.
SYMBOL
Ang mga simbolo ay binubuo ng isang string ng mga alphanumeric na character at ang underscore (_), may
ang unang character ay hindi numeric. Hal a at mu_1 ay katanggap-tanggap na mga pangalan ng simbolo, habang
2pi ay hindi. Posibleng gumamit ng mga simbolo na may parehong mga pangalan bilang mga function (hal kasalanan);
Nagagawang makilala ng ginsh ang dalawa.
Ang mga simbolo ay maaaring magtalaga ng mga halaga sa pamamagitan ng pagpasok
simbolo = pagpapahayag;
Upang alisin sa pagkakatalaga ang halaga ng isang nakatalagang simbolo, i-type
alisin sa pagkakatalaga('simbolo');
Awtomatikong sinusuri ang mga itinalagang simbolo (= pinapalitan ng kanilang itinalagang halaga) kapag
sila ay ginagamit. Upang sumangguni sa hindi nasuri na simbolo, maglagay ng mga solong panipi (') sa paligid ng pangalan,
tulad ng ipinakita para sa "unassign" na utos sa itaas.
Ang mga simbolo ay itinuturing na nasa kumplikadong domain bilang default, ibig sabihin, ang mga ito ay itinuturing na parang
tumayo sila para sa mga kumplikadong numero. Maaaring baguhin ang pag-uugaling ito sa pamamagitan ng paggamit ng mga keyword
totoong_simbolo at complex_symbols at nakakaapekto sa lahat ng bagong likhang simbolo.
Ang mga sumusunod na simbolo ay paunang natukoy na mga constant na hindi maaaring italaga ng isang halaga ng
user:
Pi Constant ni Archimedes
Katalan Ang Constant ng Catalan
Euler Euler-Mascheroni Constant
I sqrt(-1)
Mabigo isang bagay ng klase ng "fail" ng GiNaC
Mayroon ding espesyal
Mga Digit
simbolo na kumokontrol sa numeric na katumpakan ng mga kalkulasyon na may hindi eksaktong mga numero.
Ang pagtatalaga ng isang integer na halaga sa mga digit ay magbabago sa katumpakan sa ibinigay na bilang ng
mga decimal na lugar.
MGA WILDCARD
Ang has(), find(), match() at subs() function ay tumatanggap ng mga wildcard bilang mga placeholder para sa
mga ekspresyon. Ang mga ito ay may syntax
$numero
halimbawa $0, $1 atbp.
LAST PULIT MGA PAGPAPAHAYAG
Ang ginsh ay nagbibigay ng tatlong espesyal na simbolo
%, %% at %%%
na tumutukoy sa huli, pangalawa sa huli, at pangatlo sa huling naka-print na expression, ayon sa pagkakabanggit.
Ang mga ito ay madaling gamitin kung gusto mong gamitin ang mga resulta ng mga nakaraang pag-compute sa isang bago
pagpapahayag.
OPERATOR
Ang ginsh ay nagbibigay ng mga sumusunod na operator, na nakalista sa bumabagsak na pagkakasunud-sunod ng pangunguna:
! postfix factorial
^ kapangyarihan
+ unary plus
- unary minus
* pagpaparami
/ dibisyon
+ dagdag
- pagbabawas
< mas mababa sa
> mas mataas sa
<= mas mababa o katumbas
>= mas malaki o katumbas
== kapantay
!= hindi pantay
= pagtatalaga ng simbolo
Ang lahat ng binary operator ay left-associative, maliban sa ^ at = alin ang tama-
nag-uugnay. Ang resulta ng operator ng pagtatalaga (=) ay ang kanang bahagi nito, kaya ito ay
posibleng magtalaga ng maraming simbolo sa isang expression (hal a = b = c = 2;).
MGA LISTA
Ang mga listahan ay ginagamit ng subs at isolve mga function. Ang isang listahan ay binubuo ng isang pambungad na kulot na brace
({), isang (posibleng walang laman) pagkakasunod-sunod ng mga expression na pinaghihiwalay ng kuwit, at isang pansarang curly brace
(}).
MATRICES
Ang isang matrix ay binubuo ng isang pambungad na square bracket ([), isang hindi walang laman na pagkakasunod-sunod na pinaghihiwalay ng kuwit
ng matrix row, at isang closing square bracket (]). Ang bawat hilera ng matrix ay binubuo ng isang pambungad
square bracket ([), isang hindi walang laman na comma-separated sequence ng mga expression, at isang pagsasara
square bracket (]). Kung ang mga hilera ng isang matrix ay hindi magkapareho ang haba, ang lapad ng
ang matrix ay nagiging ang pinakamahabang row at ang mas maiikling row ay pinupuno sa dulo ng
mga elemento ng halagang zero.
Mga function
Ang isang function na tawag sa ginsh ay may form
pangalan(argumento)
saan argumento ay isang comma-separated sequence ng mga expression. Nagbibigay ang ginsh ng ilang
mga built-in na function at "nai-import" din ang lahat ng simbolikong function na tinukoy ng GiNaC at
karagdagang mga aklatan. Walang paraan upang tukuyin ang iyong sariling mga function maliban sa pag-link
ginsh laban sa isang library na tumutukoy sa mga simbolikong GiNaC function.
Ang ginsh ay nagbibigay ng Tab-completion sa mga pangalan ng function: kung ita-type mo ang unang bahagi ng isang function
pangalan, ang pagpindot sa Tab ay makukumpleto ang pangalan kung maaari. Kung hindi kakaiba ang bahaging na-type mo,
Ang pagpindot muli sa Tab ay magpapakita ng listahan ng mga tumutugmang function. Pagpindot sa Tab ng dalawang beses sa
prompt ay ipapakita ang listahan ng lahat ng magagamit na mga function.
Ang isang listahan ng mga built-in na function ay sumusunod. Halos lahat sila ay nagtatrabaho bilang kani-kanilang GiNaC
mga pamamaraan ng parehong pangalan, kaya hindi ko ilalarawan ang mga ito nang detalyado dito. Mangyaring sumangguni sa
Dokumentasyon ng GiNaC.
charpoly(matris, simbolo) - katangiang polynomial ng isang matrix
coeff(pagpapahayag, bagay, numero) - kinukuha ang coefficient ng object^number mula sa a
polinomyal
mangolekta(pagpapahayag, bagay-o-listahan) - nangongolekta ng mga coefficient ng mga katulad na kapangyarihan (resulta
sa recursive form)
collect_distributed(pagpapahayag, listahan) - nangongolekta ng mga coefficient ng mga katulad na kapangyarihan
(resulta sa distributed form)
collect_common_factors(pagpapahayag) - nangongolekta ng mga karaniwang salik mula sa mga tuntunin ng mga kabuuan
conjugate(pagpapahayag) - kumplikadong banghay
nilalaman(pagpapahayag, simbolo) - bahagi ng nilalaman ng isang polynomial
decomp_rational(pagpapahayag, simbolo) - decompose rational function sa polynomial
at wastong rational function
degree(pagpapahayag, bagay) - antas ng isang polynomial
denom(pagpapahayag) - denominator ng isang rational function
determinant(matris) - determinant ng isang matrix
diag(ekspresyon...) - bumubuo ng diagonal matrix
pagkakaiba(pagpapahayag, simbolo [, numero]) - bahagyang pagkita ng kaibhan
hatiin(pagpapahayag, pagpapahayag) - eksaktong polynomial division
eval(pagpapahayag [, antas]) - sinusuri ang isang expression, pinapalitan ang mga simbolo ng kanilang
itinalagang halaga
evalf(pagpapahayag [, antas]) - sinusuri ang isang expression sa isang floating point number
evalm(pagpapahayag) - sinusuri ang mga kabuuan, produkto at integer na kapangyarihan ng mga matrice
palawakin(pagpapahayag) - nagpapalawak ng isang expression
kadahilanan(pagpapahayag) - pinagsasama ang isang expression (univariate)
hanapin(pagpapahayag, huwaran) - nagbabalik ng listahan ng lahat ng paglitaw ng isang pattern sa isang
pagpapahayag
mag-solve(pagpapahayag, simbolo, numero, numero) - numerong mahanap ang ugat ng isang real-valued
function sa loob ng isang agwat
gcd(pagpapahayag, pagpapahayag) - pinakadakilang pangkaraniwang naghahati
mayroon(pagpapahayag, huwaran) - nagbabalik ng "1" kung ang unang expression ay naglalaman ng pattern
bilang isang subexpression, "0" kung hindi man
integer_content(pagpapahayag) - integer na nilalaman ng isang polynomial
kabaligtaran(matris) - kabaligtaran ng isang matris
ay(kaugnayan) - nagbabalik ng "1" kung totoo ang kaugnayan, "0" kung hindi man (false o
undecided)
lcm(pagpapahayag, pagpapahayag) - hindi bababa sa karaniwang maramihang
lcoeff(pagpapahayag, bagay) - nangungunang koepisyent ng isang polynomial
ldegree(pagpapahayag, bagay) - mababang antas ng isang polynomial
isolve(equation-list, listahan ng simbolo) - lutasin ang sistema ng mga linear na equation
mapa(pagpapahayag, huwaran) - ilapat ang function sa bawat operand; ang magiging function
ang inilapat ay tinukoy bilang isang pattern na may "$0" na wildcard na nakatayo para sa mga operand
tugma(pagpapahayag, huwaran) - suriin kung ang expression ay tumutugma sa isang pattern; nagbabalik a
listahan ng mga wildcard substitutions o "FAIL" kung walang tugma
hindi(pagpapahayag) - bilang ng mga operand sa pagpapahayag
normal(pagpapahayag [, antas]) - normalisasyon ng rational function
numero(pagpapahayag) - numerator ng isang rational function
numero_denom(pagpapahayag) - numerator at denumerator ng isang rational function bilang a
listahan
op(pagpapahayag, numero) - i-extract ang operand mula sa expression
kapangyarihan(expr1, expr2) - exponentiation (katumbas ng pagsulat ng expr1^expr2)
prem(pagpapahayag, pagpapahayag, simbolo) - pseudo-remainder ng polynomials
primpart(pagpapahayag, simbolo) - primitive na bahagi ng isang polynomial
quo(pagpapahayag, pagpapahayag, simbolo) - quotient ng polynomials
ranggo(matris) - ranggo ng isang matrix
rem(pagpapahayag, pagpapahayag, simbolo) - natitira sa mga polynomial
resulta(pagpapahayag, pagpapahayag, simbolo) - resulta ng dalawang polynomial na may
paggalang sa simbolo s
serye(pagpapahayag, relasyon-o-simbulo, order) - pagpapalawak ng serye
sprem(pagpapahayag, pagpapahayag, simbolo) - kalat-kalat na pseudo-natitira ng mga polynomial
sqrfree(pagpapahayag [, listahan ng simbolo]) - square-free factorization ng isang polynomial
sqrt(pagpapahayag) - square root
subs(pagpapahayag, relasyon-o-listahan)
subs(pagpapahayag, hanapin-listahan, palitan-sa-listahan) - kapalit na mga subexpression (ikaw
maaaring gumamit ng mga wildcard)
tcoeff(pagpapahayag, bagay) - trailing coefficient ng isang polynomial
oras(pagpapahayag) - ibinabalik ang oras sa mga segundo na kailangan upang suriin ang ibinigay
pagpapahayag
bakas(matris) - bakas ng isang matris
transpose(matris) - transpose ng isang matrix
alisin sa pagkakatalaga('simbolo') - alisin ang pagkakatalaga ng isang nakatalagang simbolo (isipin ang mga quote, mangyaring!)
yunit(pagpapahayag, simbolo) - bahagi ng yunit ng isang polynomial
ESPESYAL UTOS
Upang lumabas sa ginsh, pumasok
umalis
or
lumabas
Ang ginsh ay maaaring magpakita ng isang (maikling) tulong para sa isang partikular na paksa (karamihan ay tungkol sa mga function at operator)
sa pamamagitan ng pagpasok
?paksa
Type
??
ay magpapakita ng listahan ng mga magagamit na paksa ng tulong.
Ang utos
i-print (pagpapahayag);
ay magpi-print ng dump ng panloob na representasyon ng GiNaC para sa ibinigay pagpapahayag. Ito ay
kapaki-pakinabang para sa pag-debug at para sa pag-aaral tungkol sa GiNaC internals.
Ang utos
print_latex(pagpapahayag);
nagpi-print ng LaTeX na representasyon ng ibinigay pagpapahayag.
Ang utos
print_csrc(pagpapahayag);
nilimbag ang ibinigay pagpapahayag sa paraang magagamit sa isang C o C++ na programa.
Ang utos
iprint(pagpapahayag);
nilimbag ang ibinigay pagpapahayag (na dapat suriin sa isang integer) sa decimal, octal, at
mga representasyong hexadecimal.
Sa wakas, nakatakas ang shell
! [utos [argumento]]
pumasa sa ibinigay utos at opsyonal argumento sa shell para ipatupad. Kasama nito
paraan, maaari kang magsagawa ng mga utos ng shell mula sa loob ng ginsh nang hindi kinakailangang huminto.
HALIMBAWA
> a = x^2-x-2;
-2-x+x^2
> b = (x+1)^2;
(x+1)^2
> s = a/b;
(x+1)^(-2)*(-2-x+x^2)
> diff(s, x);
(2*x-1)*(x+1)^(-2)-2*(x+1)^(-3)*(-x+x^2-2)
> (mga) normal;
(x-2)*(x+1)^(-1)
> x = 3^50;
717897987691852588770249
> s;
717897987691852588770247/717897987691852588770250
> Mga Digit = 40;
40
> (mga) evalf;
0.999999999999999999999995821133292704384960990679
> unassign('x');
x
> s;
(x+1)^(-2)*(-x+x^2-2)
> serye(sin(x),x==0,6);
1*x+(-1/6)*x^3+1/120*x^5+Order(x^6)
> lsolve({3*x+5*y == 7}, {x, y});
{x==-5/3*y+7/3,y==y}
> lsolve({3*x+5*y == 7, -2*x+10*y == -5}, {x, y});
{x==19/8,y==-1/40}
> M = [ [a, b], [c, d] ];
[[-x+x^2-2,(x+1)^2],[c,d]]
> determinant(M);
-2*d-2*x*cx^2*cx*d+x^2*dc
> collect(%, x);
(-d-2*c)*x+(dc)*x^2-2*dc
> malutas ang quantum field theory;
error sa pag-parse sa quantum
> huminto
DIAGNOSTICS
error sa pag-parse sa foo
Naglagay ka ng isang bagay na hindi na-parse ng ginsh. Pakisuri ang syntax ng
iyong input at subukang muli.
argumento num sa tungkulin Dapat ay isang uri
Ang numero ng argumento num sa ibinigay tungkulin dapat sa isang tiyak na uri (hal. a
simbolo, o isang listahan). Ang unang argumento ay may numero 0, ang pangalawang argumento bilang 1,
at iba pa
Gumamit ng ginsh online gamit ang mga serbisyo ng onworks.net