625
A Maple egy fejlett matematikai problémamegoldó és programozói szoftver.
  • xDJCx
    #265

    A matek feladatos topicbeli korilleszteses kerdesre itt egy kod a mapleprimesrol,mivel regsztralos az oldal (by Thomas Schramm):

    restart:
    #The general equation for a circle is:
    Kreis := (x,y)->x^2+y^2-2*a*x-2*b*y-c=0; #ez a kifejtett alak
    #A set of [x,y] coordinates for which we might want to fit a circle are:
    Px := [6, 3, 9, 2, 5]: Py := [2, 2, 5, 3, 2]:
    Punkte := zip((x,y)->[x,y], Px, Py);
    #Using this data we construct the corresponding system of equations:
    gls := { op( zip( Kreis, Px, Py) ) };
    #and solve this over-determined system using:
    lsg := linalg[leastsqrs](gls, {a,b,c});
    #The radius of the circle is given by:
    r := evalf( subs( lsg, sqrt(c + a^2 + b^2) ) );
    #Substituting the values for a, b and c into our circle equation, gives the parameteric description of our circle-fit as:
    KF := subs(lsg, Kreis(x,y));
    #The solution curve (circle) of the implicit equation can be directly plotted using:
    g1 := plots[implicitplot]( KF, x=0..10, y=-11..11, thickness=2):
    #And the datapoints using:
    g2 := plot( Punkte, style=point, symbol=cross, color=blue):
    #We display both the data and the circle together.
    plots[display]( {g1,g2}, scaling=constrained );




  • xDJCx
    #264
    Végre egy friss kiadású magyar maple-könyv, a Maple 10-hez:
    Klincsik Mihály - Maróti György: Maple 8 tételben (2006)
  • xDJCx
    #263

    Matematikai függvények elektronikus adatbázisa: ilyen több is van az interneten, van pl. a Wolframos, de itt egy másik:

    http://algo.inria.fr/esf/

    Pl. a cos függvény definíciója, tulajdonságai, azonosságok, sorfejtése stb... A képletek Latex, MathML, Maple formátumában is.
  • xDJCx
    #262

    SAGE is free and open software that supports research and teaching in algebra, geometry, number theory, cryptography, and related areas.

    http://modular.math.washington.edu/sage/

    SAGE runs on Mac OS X, Linux and Windows.
  • CattiBrie
    #261
    ez a factor nagyon tök jó!!!

    köszi
  • xDJCx
    #260

    Kimondottan polinomok osztására a divide, rem és quo parancsok is :

    p1:=x^2+x-2;
    p2:=x+2;
    divide(p1,p2,'q'); # a q itt segédváltozó, ebbe teszi az osztás eredményét
    q;
    # megmondja, hogy osztható-e p1 p2-vel, és a q változóban a hányadost tette.
    # vagy külön megkapható az osztás hányadosa és maradéka is:

    quo(p1,p2,x);# hányados
    rem(q1,q2,x);# osztás maradéka
    #azaz p1 = p2*quo + rem alakba írható így:
    p1= expand(quo(p1,p2,x)*p2+rem(q1,q2,x));# ellenőrzés
    #Itt a factor párja az expand. (elvégzi a szorzás műveleteket)

    p:=(x+2)*(x-1);
    expand(p);

    #A polinom gyökeit pedig lehet a solve-val, vagy az fsolve-val megkapni
    solve(x^2+x-2,x);

    # ha nem sikerül a solve-val a pontos gyök megtalálása, akkor az fsolve-val közelítő gyököket lehet keresni.
    fsolve( x^6 + 6*x^3 - x^2 + 1);

    plot(x^6 + 6*x^3 - x^2 + 1,x=-3..2,y=-15..50);

    # polinomok legnagyobb közös osztója gcd
    gcd(p1,p2);
  • xDJCx
    #259
    Egyébként a behelyettesítés elvégezhető így:
    p:=x^2+x-2;

    eval(p,x=2);# azaz p kifejezés értéke x=2 esetén.

    vagy
    subs(x=2,p);

    Nyilván nem gyöke a kettő. Hanem -2 és 1, a szorzattá bontás alapján:
    factor(p);
    eval(p1,x=-2);
    eval(p1,x=1);

  • xDJCx
    #258

    Az hogy gyöke-e, az egyszerű, be kell helyettesíteni kérdéses gyököt a formulába, ha nullát ad akkor gyöke.

    De lehet a factor-ral is szortattá bontani:
    factor(x^2+x-2);

    A második polinomra nem ad megoldást a factor, általában nehéz ügy a szorzattá bontás.


  • CattiBrie
    #257
    demárminthogy én adok neki egy gyököt meg, h..

    pl

    x^2 + x - 2

    gyöke-e a 2?

    (x-2)(x-...)



    vagy fel tudom e bontani a
    x^6 + 6x^3 - x^2 + 1
    polinomot két másik polinom szorzatára
  • xDJCx
    #256

    p := (x^5+1)/(x^4-x^2);
    convert(p,parfrac);
  • CattiBrie
    #255
    Lehet Maple-lel polinomosztani?
  • xDJCx
    #254
    Már fent van a 10.04-es, ahol a 10-es is volt.
  • xDJCx
    #253

    OreModules - Linear Control Systems over Ore Algebras

    OreModules is a Maple implementation of algorithms which compute parametrizations, extension modules (ext), resolutions and other algebraic objects for linear systems of differential equations, time-delay systems, etc.

    http://wwwb.math.rwth-aachen.de/OreModules/
  • xDJCx
    #252

    Egy jó, magyar nyelvű Maple ismertető:
    Feladatmegoldás Maple-lel

    http://kataszter.apertus.hu/index.php/curriculum/Curriculum?tananyag=pte_maple#{E5A8FC74-1123-4B8E-9491-B980995E6E93}
  • xDJCx
    #251

    Eigenmath: egy ingyenes, kis komputer algebra szoftver. Egyszerű a telepítése, derivál , integrál, mátrixokat számol stb...

    http://eigenmath.net/
  • xDJCx
    #250

    Ganso: ez egy ingyenes optimalizációs szoftvercsomag (dll formában), amely Mapleből is használható. Pl.többváltozós, nemlineáris, nemdifferenciálható függvények globalis optimalizálása (maximum, minimum keresés).

    www.ganso.com.au
    http://www.ganso.com.au/downloads.php

    "GANSO is a programming library for multivariate global and non-smooth nonlinear optimization... Free version, limited to 100 variables and 100 linear constraints)."
  • xDJCx
    #249

    Magyar nyelvű interface a Maplehez?
    Ilyen nincs, de látom kiadtak már a 10-eshez japánt, koreait.
    nyelvűeket. Nem láttam mit tud, mire terjed ki pontosan a fordítás, a helpre biztos nem, az nagyon hosszú.
    Így lenne esélye viszont a magyarnak is, a magyarországi forgalmazó tudna ebben lépni szerintem.

    "Maple 10 Language Pack: Chinese
    This downloadable update provides a translated version of the Maple 10 interface and translated context sensitive menus."
  • xDJCx
    #248

    Axiom is egy ingyenes, nagytudású komputer algebrai rendszer.
    Wikipedián róla: http://en.wikipedia.org/wiki/Axiom_computer_algebra_system

    Maxima-ról:
    http://en.wikipedia.org/wiki/Maxima

    CAS összehasonlítás:
    http://en.wikipedia.org/wiki/Comparison_of_computer_algebra_systems
  • xDJCx
    #247

    "...The Playsome Threesome: Maxima, Maple, and Mathematica
    In this section we shall play with three lovely ladies, Maxima, Maple, and Mathematica. Of these Maxima is a little underdressed perhaps, but a discerning eye will notice lovely tidbits and morsels under her scanty rag. You will find that their accents, phrasing and pronounciation may differ a little, and yet their native tongues are close enough, so that you can understand one, while mastering the language of the other. All three can please a gentleman, and all three can frustrate him too. Their moods are capricious like April weather..."
  • CattiBrie
    #246
    és jó is? :)
  • xDJCx
    #245

    Innen a Maxima tölthető le szabadon:
    http://maxima.sourceforge.net/
    Ez is egy is egy komputer algebrai szoftver, csak ingyenes.

    "Maxima is a full symbolic computation program. It is full featured doing symbolic manipulation of polynomials, matrices, rational functions, integration, Todd-coxeter, graphing, bigfloats. It has a symbolic debugger source level debugger for maxima code. Maxima is based on the original Macsyma developed at MIT in the 1970's. It is quite reliable, and has good garbage collection, and no memory leaks. It comes with hundreds of self tests."
  • xDJCx
    #244

    De ha valaki mindenáron e-t akar használni a mapleben a természetes alapú logaritmus alapjának jelölésére akkor persze megteheti az alias paranccsal, amivel meg lehet adni rövidítéseket:

    restart;
    alias(e=exp(1));
    # ezek után már e úgy használható, ahogy a metakban szokásos
    evalf(e); # 2,718...
    evalf(e^2);# stb.. e^x ...
  • xDJCx
    #243

    Erről már volt szó korábban itt.

    Az e a matekban egy állandó, ez a 2,71828.... A mapleben erre nincs külön lefoglalva változónév. (Legalábbis az újabb verziókban.) Amikor e-t írsz neki, (és korábban nem adtál értéket ennek), akkor csak egy szimbolum számára.
    A Maple-ben exp() jelöli a természetes, tehát e-alapú (e=2,71828...) hatványozást.
    Azaz amit máshol e^valami -vel jelölnek, azt a mapleben exp(valami) -val jelölhető. Ebből következik , hogy az e értékét a mapleben így meg lehet kapni exp(1). (mert ez a e^1 lenne.

    A maple az eredmény kiiratáskor már igyekszik szépen megjeleníteni az eredményt, és így az exp(1)-et beírva, az enterezés után átírja e-re, mert ez a matekban a szokásos jelölése. De ez csak megjelenítés. Az e változó értéke nem lesz továbbra sem 2,718...
    pl.
    restart;
    exp(1);# erre kíírja hogy e
    evalf(%); #erre a számszerű értékét írja ki. (%: az előző eredményre való hivatkozás)

    evalf(e); # nem ír ki számszerű értéket, mert e csak egy érték nélküli változónév
  • CattiBrie
    #242
    :)

    Egyébként mi a különbség az e és az exp() között?

    A sima e az nem az, amire én gondolok? :)
  • xDJCx
    #241

    Itt is egy jó kis ingyenes csomag a Maplehez:
    http://web.mit.edu/drowell/www/syrep/
    "Symbolic Software for Model Generation and Analysis of Linear Dynamical Systems"
    Lineáris, dinamikus rendszerek elemzéséhez (pl. lineáris áramkörök, mechanika, szabályozástechnika területén):




  • xDJCx
    #240

    meg a visszaellenőrzésnél, azért be kell segíteni egy simplify paranccsal olykor.
    simplify() egyszerűsítés

    y:=(x^2+5*x-1)*exp(3*x+7);
    F82:=int(y,x)+c;
    diff(F82,x);# ezt az alakot még lehet egyszerűsíteni
    simplify(%); # egyszerűsítve
  • xDJCx
    #239

    Az.
    Írjál exp()-et e-helyett!
  • CattiBrie
    #238
    ez komoly???


  • xDJCx
    #237

    De szerintem más sem tud, én nem emlékszem legalábbis az egyetemen nyargaló ménesekre..
  • CattiBrie
    #236
    hát akkor én még ló sem vagyok :D
  • xDJCx
    #235

    Persze az inverz műveletet, algoritmust nem úgy kell érteni hogy valamit egyszerűen csak ellenkező sorrendben kell csinálni, és akkor így visszakapom az eredetit.
    A deriválás az mechanikus dolog, az integrálás meg bonyolult, van amikor nem is végezhető el. Meg mondják, hogy deriválni a ló is tud.
  • CattiBrie
    #234
    jaígymár ééétem :)

    de akkor is jobban számol, mint én :DDD
  • xDJCx
    #233

    Van amit ő sem tud, vagy rosszul tudja. Az interneten jó néhány példa van ilyen integrálási bugokra a maplehez.
  • xDJCx
    #232

    Ha valaki modnjuk nem ismerne semmilyen integrálási szabályt, csak azt tudná, hogy az integrálással kapott fügvény deriváltja az integrálandó függvény éppen (egy konstanstól eltekintve), akkor ha sok ideje lenne :), akkor úgyis megkaphatná a határozatlan integrált, hogy elkezdené végigpróbálgatni mindenféle függvényt. Pl. pl. keresnie kéne a sin(x) határozatlan integrálját, és elkezdene vaktában próbálkozni:

    diff(cos(x),x); #ez nem stimmel
    diff(2*cos(x),x);#ez sem
    diff(-cos(x),x);#ez jó


  • CattiBrie
    #231
    "Az integrálás "inverz" művelete a deriválás. Ha nem jól végeznéd az integrálást, akkor nem kapnád vissza deriválással az integrálandó függvényt. "

    De hát a program csinálja az integrálást, már csak "tudja" hogy kell...
  • xDJCx
    #230


    Az integrálás "inverz" művelete a deriválás. Ha nem jól végeznéd az integrálást, akkor nem kapnád vissza deriválással az integrálandó függvényt.
    Ha megváltoztatod, elrontod az integrálás eredményét, nem kapod vissza deriválással az integrálandó függvényt.

    "..100%ban úgy is azt fogod visszakapni, ahonnan elindultál, hiszen csak a saját magát ellenőzri, ugyanazt az eljárást alkalmazza oda és vissza.."
    Ez nem igaz. már eleve nem lehet az eljárás ugyanaz oda-vissza. Egyik integrálás, a másik deriválás, teljesen más algoritmus.
    diff(value(Int(fvek[k-1],x)+c),x) - meg pl. ennél előszőr végrehajtja a belső függvényt, azaz az integrálást, kap rá egy kifejezést, majd ezt deriválja, nem
    egyszerűen kilesi mi volt az Int-en belül.


  • CattiBrie
    #229
    akkor úgy kérdezem hogy ez az ellenőrzés milyen hibát találna meg?
  • xDJCx
    #228

    Ha mindenképpen a 2. oszlopot akarjuk felhasználni az ellenőrzésre:

    tabla[k,3]:=Diff(rhs(tabla[k,2]),x)=diff(rhs(tabla[k,2]),x):

    Mivel a második oszlopban valami1 = valami2 alakú kifejzések szerepelnek, ez egy egyenlet típus a maple-ben. Most nekünk a valami2 kell az integrálás eredménye. Az rhs() parancsal vehető a jobb oldala az egyenletnek. (lhs baloldal lenne : left hand side, right hand side)
  • xDJCx
    #227

    Jó ez az ellenőrzés.
    Azt csinálja, hogy deriválja (x-szerint) a kapott integrált. diff(value(Int(f(x),x)),x) Szóval a 3. oszlopnál táénylegesen elvégzi a kapott eredmény deriválsát.
    Az jó, hogy visszakapom az eredeti fv.-t!

    Azért nem közvetlenül a 2. oszlop szerepel a diffben, mert az oszlopban nem egyszerűen az integrál szerepel, hanem esztétikai okokból az integráljeles alak is az egyenlőségjellel.

    Értelmes viszont így kiiratni, (tartalmilag nincs különség), hogy látszódjék, mit deriválunk:

    tabla[k,3]:=Diff(value(Int(fvek[k-1],x))+c,x)=diff(value(Int(fvek[k-1],x)+c),x):

    Annyi a szépséghibája ekkor, hogy a parciálsi derivált jelet ír ki a maple, mert a c-re azt gondolja, hogy egy változó (amit szerint éppen nem deriválunk perzse), persze az eredmény ezért még jó.
    Ha nem teszem bele a c-t akkor szépen írja ki.
  • CattiBrie
    #226
    lehet, hogy tévedek..

    de ez az ellenőrzés így nem ellenőrzés
    100%ban úgy is azt fogod visszakapni, ahonnan elindultál, hiszen csak a saját magát ellenőzri, ugyanazt az eljárást alkalmazza oda és vissza

    a haramdik oszlopban csak egy diff-nek kéne szerepelnie.. méghozzá a második oszlop tartalmával

    valami: diff(tabla[k,2])

    persze így is tuti ugyanazt kapjuk vissza

    akkor nincs értelme ellenőrizni.. vagy mi