Dezvoltat de | Bernard Parisse |
---|---|
Prima versiune | 2000 |
Ultima versiune | 1.5.0 (decembrie 2018) |
Depozit | sourceforge.net/p/xcas/code/HEAD/tree |
Scris in | C ++ |
Sistem de operare | Linux , Microsoft Windows și macOS |
Mediu inconjurator | Microsoft Windows , Linux , Mac OS X , FreeBSD |
Tip | Calcul formal |
Licență | Licență publică generală GNU |
Site-ul web | site-ul oficial |
Xcas (pronunțat / ikskas /) este un software gratuit și open source de algebră pentru Microsoft Windows , Apple macOS (32 biți), Linux și Unix .
Xcas este o interfață a Giac , o bibliotecă de algebră computerizată gratuită C ++ (licență GPL). GIAC are un mod de compatibilitate cu software - ul Maple și Matlab , WolframAlpha și Python , Mathematica și MuPAD și Yacas și Qcas și WordMat (pentru Microsoft Word ) și CPMP-Unelte și ExpressionsinBar (64 biți app pentru MacOS) și TI calculatoare -89 , TI-92 , Voyage 200 și TI-Nspire . Prin urmare, putem folosi Giac / Xcas, precum și un software gratuit compatibil cu Maple , pentru a dezvolta algoritmi algebrici sau să-l folosim în alt software ...
Xcas pentru Firefox este o versiune a Xcas care poate fi utilizată fără instalare dintr-un browser de Internet.
Xcas este integrat cu complementul CmathOOoCAS care permite efectuarea calculelor formale în foaia de calcul Calc și în procesorul de text Writer din suita de birou OpenOffice.org . Este dezvoltat de Bernard Parisse și Universitatea Joseph-Fourier din Grenoble .
Giac / Xcas este portat la unele calculatoare sub numele KhiCAS :
Iată o scurtă descriere a ceea ce este capabil de Xcas:
Sunt utilizate următoarele funcții preprogramate:
Găsiți mai multe comenzi aici: http://www-fourier.ujf-grenoble.fr/~parisse/giac/cascmd_en.pdf
Primul model: O cădere fără frecare Prima metodă: funcție care returnează un număr (viteza la impact)Știm că gravitația Pământului ne oferă o accelerație de 9,81 m s −2 , deci trebuie doar să o integrăm de două ori pentru a obține poziția.
În rândul 6, umplem L cu două soluții: una negativă și una pozitivă. Vom lua doar soluția pozitivă, care se întâmplă a fi a doua (vom folosi indexul 1, adică L [1] (indexul 0 fiind prima soluție)).
Codul utilizat:
vitesse_chute_1_1(h):={ local a,v,x,L,temps_chute; a(t):=9.81; v:=unapply(int(a(t),t),t); x:=unapply(int(v(t),t),t); L:=solve(x(t)=h,t); temps_chute:=L[1] retourne v(temps_chute); }:;Deci, aici avem funcția de apel:
vitesse_chute_1_1(9)Cine se întoarce:
13.2883407542Care este desigur viteza (în m s -1 ) pe care o atinge obiectul la nivelul solului după o cădere fără frecare de la o înălțime de 9 m .
A doua metodă: funcție care returnează o propoziție și un graficPăstrăm aceeași structură ca funcția speed_fall_1_1 , dar adăugăm o propoziție și un grafic. Punem un minus în fața vitezei și a poziției, deoarece obiectul cade în jos, ceea ce este considerat negativ (altitudinea fiind pozitivă în sus).
Codul utilizat:
vitesse_chute_1_2(h):={ local a,v,x,L,temps_chute; a(t):=9.81; v:=unapply(int(a(t),t),t); x:=unapply(int(v(t),t),t); L:=solve(x(t)=h,t); temps_chute:=L[1]; title="Altitude et vitesse en fonction du temps"; plot(-x(t),t,0,temps_chute,couleur=2+line_width_6); plot(-v(t),t,0,temps_chute,couleur=1+line_width_6); retourne "Chute de "+string(h)+" mètres : Vitesse au niveau du sol après "+string(temps_chute)+" secondes de chute : "+string(v(temps_chute))+" m.s^(-1) = "+string(v(temps_chute)*3.6)+" km.h^(-1)"; }:;Prin urmare, avem funcția de apel:
vitesse_chute_1_2(9)Cine se întoarce:
Precum și un grafic:
Al doilea model: O cădere în aer cu frecare de tip proporțional (la viteză):De data aceasta, se ia în calcul forța de frecare : funcțiile care dau viteza și poziția au fost calculate manual, grație principiului fundamental al dinamicii.
Găsim următoarele funcții (de timp):
NB: Luăm presupunând că și că viteza terminală (viteza maximă în timpul căderii) a acestor mase este de 200 km h −1 .
Mai mult decât atât, nu se pune mai puțin în fața vitezei și poziției, deoarece semnul a fost deja luat în considerare la realizarea formulelor.
Codul utilizat:
vitesse_chute_2(h):={ local g,v,x,L,temps_chute; g:=9.81:; k:=12.4; m:=70:; v:=unapply((m*g)/k*(exp((-t)*(k/m))-1),t); x:=unapply(g*(m/k)^2*(1-e^((-t)*(k/m)))-(m*g*t)/k,t):; L:=solve(x(t)=-h,t) temps_chute:=L[0]; title="Chute de 70 kg de 9 mètre : altitude (vert) et vitesse (rouge) en fonction du temps : (épais = sans frottement ; fin = avec frottements)"; plot(v(t),t,0,temps_chute,couleur=1); plot(x(t),t,0,temps_chute,couleur=2); retourne 0; }:;Prin urmare, avem funcția de apel:
vitesse_chute_2(9)Cine se întoarce:
0(Care este doar acolo pentru a verifica dacă funcția a fost citită până la capăt.)
Precum și un grafic:
Suprapunerea celor două modeleSe poate observa că cele două grafice (cu și fără frecare) sunt într-adevăr diferite; accelerația nu este constantă în caz de frecare: viteza (roșie) tinde să se stabilizeze (să devină orizontală).