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

    Lehet azt is csinalni, hogy a solve és indets parancsokat használva a Maple maga találja ki, melyik a hiányzó ismeretlen az egyenletben (an=a1+(n-1)*d) , és arra az ismeretlenre oldja meg. Az alábbi eljárás ezt csinálja, a változónevekkel kicsit trükközni kell.

    szsor:=proc({an::numeric:='a__n',a1::anything:='a__1',n::posint:='N',d::anything:='d_'})
    description "an=a1+(n-1)*d keplet tetszoleges ismeretlenjenek szamitasa a masik ketto ismereteben.";
    local eq,valt,nevek;
    nevek:=table(['a__n'="an",a__1="a1",N="n",d_="d"]);
    eq:=an=a1+(n-1)*d;
    valt:=convert(indets(eq,And(name,Not(constant))),list)[];
    if nops([valt])>1 or nops([valt])=0 then return "Egynel tobb parameter erteke nincs megadva, vagy mindegyik erteke meg van adva."; end if;
    return parse(nevek[valt])=solve(eq,valt);
    end proc;


    szsor(a1=1,d=0.5,n=10);# an ismeretlen
    szsor(a1=1,d=0.5,an=5.5);# n ismeretlen
    szsor(a1=1,n=10,an=5.5);# d az ismeretlen
    szsor(d=0.5,n=10,an=5.5);# a1 ismeretlen
    szsor(a1=1,n=10);# tul keves megadott parameter
    szsor(a1=1,n=10,an=5.5,d=0.5);# tul sok megadott parameter