π
<-
Chat plein-écran
[^]

Beta HP Prime 13011/13012: résultats exacts

Beta HP Prime 13011/13012: résultats exacts

Unread postby critor » 16 Nov 2017, 18:47

Hewlett Packard
diffuse cette semaine de nouvelles versions beta de sa suite logicielle
HP Prime
:
  • logiciel de communication
    HP Connectivity Kit
    version
    13012
    du 15 novembre 2017
  • logiciel d'émulation
    HP Prime Virtual Calculator
    version
    13012
    du 15 novembre 2017
  • firmware
    HP Prime
    version
    13011
    du 15 novembre 2017

Pour ceux qui n'en ont pas encore pris connaissance, nous vous invitons à aller voir l'extraordinaire collection de nouveautés des versions betas diffusées la semaine dernière.


La version
13011
apporte moins de nouveautés mais est loin d'être dénuée d'intérêt pour autant.


Les calculatrices collège et graphiques de milieu de gamme actuelles peuvent retourner des résultats :
  • en écriture décimale éventuellement approchée
  • en écriture exacte, malgré l'absence d'un moteur de calcul littéral
Pour les écriture exactes deux familles de formes sont gérées, aussi bien chez
TI
que chez
Casio
:
  • $mathjax$\frac{\pm a\sqrt{b} \pm c\sqrt{d}}{f}$mathjax$
    qui est une famille de nombres avec des propriétés aisément vérifiables par les processeurs légers
  • $mathjax$\pm\frac{a\pi}{b}$mathjax$
    pour la trigonométrie
Il peut arriver que l'on obtienne parfois une écriture décimale alors que l'on attendait une écriture exacte, si cette dernière est désactivée ou mal gérée par l'une des fonctions utilisées lors du calcul. Il reste alors possible de demander manuellement à la calculatrice de récupérer une forme exacte, mais la machine ne recherchera alors que des formes fractionnaires en
$mathjax$\pm\frac{a}{b}$mathjax$
, ce qui fait que la forme exacte pourra ne pas être trouvée ou être fausse.


La
HP Prime
quant à elle dispose de deux applications de calcul directement accessibles au clavier :
  • le calcul numérique avec la touche
    Maison
  • le calcul littéral avec la touche
    CAS
Si l'on souhaite obtenir des résultats en écriture exacte, l'on doit utiliser l'application de calcul littéral.
Pour ceux qui préfèrent utiliser l'application de calcul numérique, il était toutefois possible ici aussi de faire appel à une fonctionnalité de récupération de forme exacte, en sélectionnant un résultat en écriture décimale puis tapant
ab/c
. Mais comme sur les modèles évoqués ci-dessus, le code sous-jacent ne gérait que les écritures fractionnaires en
$mathjax$\pm\frac{a}{b}$mathjax$
.

Le nouveau firmware
13011
étend et multiplie les formes gérées par cette fonctionnalité de récupération :
  • $mathjax$\pm\frac{a\sqrt{c}}{b}$mathjax$
  • $mathjax$\pm\frac{a\pi}{b}$mathjax$
  • $mathjax$ln\left(\frac{a}{b}\right)$mathjax$
  • $mathjax$e^{\frac{a}{b}}$mathjax$
Image Image
Image Image

Statistiquement, il sera donc désormais beaucoup plus fréquent de pouvoir récupérer une forme exacte juste à partir d'un résultat en écriture décimale ! :bj:


Notons également qu'en cas d'erreur dans un programme associé à l'application de calcul littéral, la ligne fautive sera désormais indiquée, facilitant ainsi sa correction. :bj:


Changelog
officiel complet
(anglais)
:
1. Added feature: (this was very close before, but not quite ready. Should be now)
a. Added →Qπ function
b. modified the [a b/c] key in Home to cycle through this value first

FIXED ISSUES:
1. Modifed WAIT(0) to not time out at 60s, but timeout 100ms before TOff auto power off time
2. CAS error cursor positioning not taking lines into account. now will put cursor at right spot in source. Should help with debugging #cas #end blocks in a source file.
3. fix for simplify(sqrt(2)*(cos(x)^2+sin(x)^2))
4. Sorted the items in the "Catalog" section in the Help Tree.
5. ON-ESC then HELP then ON-ESC again caused problem.
6. Alpha on triangle animation in opening startup screen not correct
7. Line plot ignoring frequencies. Bar shouldn't be allowing them.
8. Fix for -- and ++ being inconsitent in the CAS. Would confuse with increment, decrement operators. Now will check if -- or ++ followed by a number, and then convert as appropriate rather then just erroring.
9. Worked on help items. Still undergoing work to correct issues discovered and reported so I don't have the full list yet. If you reported it already to the email and don't see it yet, please wait. Thanks!


Téléchargements
:

Source
:
http://www.hpmuseum.org/forum/thread-9504.html
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.1%
 
Posts: 33703
Images: 8790
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby hpfx » 17 Nov 2017, 01:02

critor wrote:Le nouveau firmware
13011
étend et multiplie les formes gérées par cette fonctionnalité de récupération :
  • $mathjax$\pm\frac{a\sqrt{c}}{b}$mathjax$
  • $mathjax$\pm\frac{a\pi}{b}$mathjax$

J'ai trouvé que ça retourne aussi les formes
ln(a)
et
exp(a)
, mais en effet pas de forme telles que celles des Casio ou TI, pourtant bien plus intéressantes je trouve, car utilisé dans les racines de l'eq du 2nd degrés.
Est-ce qu'ils vont corriger le tir ?...
User avatar
hpfxPremium
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 12.5%
 
Posts: 39
Joined: 21 Apr 2016, 14:32
Gender: Not specified

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby critor » 17 Nov 2017, 12:49

Merci pour la précision.
J'avais omis de tester les logarithmes et exponentielles, puisque la concurrence non formelle ne les gère pas, puisque je n'en avais pas vu de mention dans le topic du changelog sur HP-Museum, et puisque mes tests avaient déjà échoué avec les formes en
$mathjax$\frac{\pm a\sqrt{b} \pm c\sqrt{d}}{f}$mathjax$
.

Il est vrai que l'absence de gestion des formes en
$mathjax$\frac{\pm a\sqrt{b} \pm c\sqrt{d}}{f}$mathjax$
manque, puisqu'en effet cela couvre nombre de racines de polynômes du 2nd degré
(Première)
.

D'un autre côté, la gestion des logarithmes et exponentielles est une excellente chose pour les élèves de Terminale, vu que le BAC n'interroge quasiment que sur ces fonctions.

Le temps de prendre quelques captures les illustrant, et l'article sera corrigé.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.1%
 
Posts: 33703
Images: 8790
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby critor » 17 Nov 2017, 13:22

Voilà, c'est fait. Merci encore. :)
Image Image
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.1%
 
Posts: 33703
Images: 8790
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby Hamza.S » 17 Nov 2017, 17:04

Avec des variables, peut-on passer d'une forme à une autre avec ln? (Propriétés ln)
sur les anciennes versions je n'y suis pas arrivé
Image
User avatar
Hamza.SAdmin.
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 7.2%
 
Posts: 3572
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby critor » 17 Nov 2017, 17:25

Si tu poses la question dans le contexte de la nouvelle fonctionnalité, une seule forme logarithmique est recherchée :
$mathjax$ln\left(\frac{a}{b}\right)$mathjax$
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.1%
 
Posts: 33703
Images: 8790
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby critor » 18 Nov 2017, 09:47

Personnellement, je me demandais à quoi cette fonctionnalité pouvait bien servir. Les gens n'ont qu'à faire les calculs dans l'appli de calcul littéral liée à la touche
CAS
si ils veulent des résultats exacts, non ?

Pour la France, oui. Mais c'était oublier que d'autres pays, Pays-Bas et Portugal notamment, imposent le mode examen et interdisent le CAS.
Je viens de tester, lorsque l'on coche la désactivation du CAS en mode examen ça bloque la touche
CAS
mais pas la touche
ab/c
, ce qui est normal selon moi le calcul exact n'étant pas du calcul littéral.

Une superbe fonctionnalité donc, pour les candidats des pays concernés. :bj:
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.1%
 
Posts: 33703
Images: 8790
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby Hamza.S » 18 Nov 2017, 22:43

critor wrote:Si tu poses la question dans le contexte de la nouvelle fonctionnalité, une seule forme logarithmique est recherchée :
$mathjax$ln\left(\frac{a}{b}\right)$mathjax$

d'accord, en fait la HP Prime peut donner les propriétés de ln mais il faut utiliser une fonction spécifique, contrairement à la Nspire CAS ou c'est plus complexe à faire et elle ne donne pas toutes les propriétés.
je n'ai pas encore trouvé les propriétés des racines carrées pour la HP Prime (avec des variables).
Image
User avatar
Hamza.SAdmin.
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 7.2%
 
Posts: 3572
Images: 18
Joined: 07 Nov 2014, 00:43
Gender: Male
Calculator(s):

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby critor » 18 Nov 2017, 22:45

Pour cette fonctionnalité, on est dans le cas particulier où on obtient un résultat en écriture décimale approchée, et où on demande à la calculatrice de trouver une forme exacte plausible.

Il n'y a pas cette limitation si tu utilises l'appli de calcul littéral pour obtenir directement des formes exactes.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 98.1%
 
Posts: 33703
Images: 8790
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Beta HP Prime 13011/13012: résultats exacts

Unread postby compsystems » 19 Nov 2017, 10:40

challenge for the tiplanet community> port the source code of QPI (ℚ_quotient_PI_root_ln_e) to TIBASIC or LUA or upython or c++ on ti68calcs or tinspire cx cas

HP-Prime Code
Code: Select all
// QPI by Han Duong
// ported from QPI 4.3a for the HP48G/GX(1998) by Mika Heiskanen & Andre Schoorl
// http://www.hpcalc.org/details/1403
// QPIRLNe: convert decimal to ℚ(p/q) or p/q*PI or SQRoot(p/q) or LN(p/q) or e^(p/q)

export qpiEXPLN:=100; // max denom for exp(p/q) or ln(p/q)
export qpiMAXINT:=2^20; // largest n allowed for sqrt(n)=a*sqrt(b)
export qpiDIGITS:=10; // controls accuracy (best results at 9 or 10)

qpi_approx();
qpi_asqrtb();
qpi_out();
qpi_outsqrt();
qpi_real();
qpi_complex();
qpi_list();
qpi_root();
qpi_pi();
qpi_ln();
qpi_exp();
//qpi_symb();

EXPORT QPI(r)
BEGIN

  case
    if TYPE(r)==0 then qpi_real(r); end;
    if TYPE(r)==1 then RETURN(r); end;
    if TYPE(r)==3 then qpi_complex(r); end;
    if TYPE(r)==6 then qpi_list(r); end;
    if TYPE(r)==8 then QPI(approx(r)); end;
    DEFAULT msgbox("Object type: " + TYPE(r) + " not supported!");
  end;

END;


qpi_real(r)
BEGIN
  local frac;

  if r then
    frac:=qpi_approx(r);

    if frac(2)<100 then
      qpi_out(frac);
    else
      qpi_root(r,frac);
    end;
  else
    RETURN(0);
  end;
END;


qpi_complex(c)
BEGIN
  local rpart, ipart;

  rpart:=STRING(qpi_real(RE(c)));
  ipart:=STRING(qpi_real(abs(IM(c))));

  if IM(c)>0 then
    expr("'" + rpart + "+" + ipart + "*'");
  else
    expr("'" + rpart + "-" + ipart + "*'");
  end;

END;


qpi_list(l)
BEGIN
  local i,n;

  n:=SIZE(l);
  for i from 1 to n do
    l(i):=QPI(l(i));
  end;

  RETURN(l);
 
END;


qpi_root(r,frac)
BEGIN
  local frac1;

  if r^2<500001 then

    frac1:=qpi_approx(r^2);
    if r<0 then frac1(1):=-frac1(1); end;
    frac1(3):=1;
    if (frac1(2)<1000) AND (frac1(2)<=frac(2)) then
      if frac1(2)<10 then
        qpi_out(frac1);
      else
        qpi_pi(r,frac1);
      end;
    else // sqrt denom not smaller
      qpi_pi(r,frac);
    end;   

  else // r^2>500000

    qpi_pi(r,frac);

  end; // end_if r^2<500000
END;


qpi_pi(r,frac)
BEGIN
  local frac1;

  if abs(r/pi)<101 then

    frac1:=qpi_approx(r/pi);
    frac1(3):=2;
    if (frac1(2)<1000) AND (frac1(2)<=frac(2)) then
      if frac1(2)<10 then
        qpi_out(frac1);
      else
        qpi_ln(r,frac1);
      end;
    else // (r/pi) denom not smaller
      qpi_ln(r,frac);
    end;

  else // abs(r/pi)>100

    qpi_ln(r,frac);

  end; // end_if abs(r/pi)<101
END;


qpi_ln(r,frac)
BEGIN
  local frac1,tmp;

  tmp:=e^(r);

  if tmp<1001 then

    // check for LN(0)
    if tmp then
      frac1:=qpi_approx(tmp);
    else
      frac1:=qpi_approx(MINREAL);
    end;
    frac1(3):=3;

    if (frac1(1)*frac1(2)==1) OR (frac1(2)>qpiEXPLN) then

      qpi_exp(r,frac);

    else

      if (frac1(2)<=frac(2)) then
        if frac1(2)<10 then
          qpi_out(frac1);
        else
          qpi_exp(r,frac1);
        end;
      else
        qpi_exp(r,frac);
      end;

    end; // end_if p*q==1 or q>50

  else // e^(r)>1000

    qpi_exp(r,frac);

  end; // end_if e^(r)<1001
END;


qpi_exp(r,frac)
BEGIN
  local frac1;

  if r<0 then
    qpi_out(frac);
  else

    frac1:=qpi_approx(LN(r));
    frac1(3):=4;
    if frac1(2)>qpiEXPLN then
      qpi_out(frac);
    else
      if frac1(2)<=frac(2) then
        qpi_out(frac1);
      else
        qpi_out(frac);
      end;
    end;

  end;
END;


// returns frac(t+1) where
// frac:={p/q, sqrt(p/q), p/q*pi, ln(p/q), e^(p/q)}
// and list:={p,q,t}
qpi_out(list)
BEGIN
  local s0="(", s1=")'";

  if list(3)==1 then

    qpi_outsqrt(list);

  else

    if list(1)<0 then s0:="-" + s0; end;
    if list(3) then s1:=")" + s1; end;

    case
      if list(3)==2 then s1:=")*π'"; end;
      if list(3)==3 then s0:="LN(" + s0; end;
      if list(3)==4 then s0:="e^(" + s0; end;
    end;

    s0:="'" + s0;

    if list(2)==1 then
      expr(s0 + abs(list(1)) + s1);
    else
      expr(s0 + abs(list(1)) + "/" + list(2) + s1);
    end;
  end;
END;


qpi_outsqrt(list)
BEGIN
  local ab1, ab2;
  local s0="'";

  if list(1)<0 then s0:=s0+"-"; end;

  ab1:=qpi_asqrtb(abs(list(1)));
  ab2:=qpi_asqrtb(list(2));

  if ab1(1)<>ab2(1) then
    if ab2(1)==1 then
      s0:=s0 + ab1(1) + "*";
    else
      s0:=s0 + "(" + ab1(1) + "/" + ab2(1) + ")*";
    end;
  end;

  s0:=s0 + "√(";

  if ab2(2)==1 then
    s0:=s0 + ab1(2);
  else
    s0:=s0 + ab1(2) + "/" + ab2(2);
  end;

  expr(s0+")'");
END;


// returns {a,b} where n=a*sqrt(b)
qpi_asqrtb(n)
BEGIN
  local div,quo,rem,num,den,nodd;

  if n>qpiMAXINT then RETURN({1,n}); end;

  div:=1;
  num:=n;
  den:=4;
  nodd:=3;

  repeat
    quo:=IP(num/den);
    rem:=num MOD den;

    if rem==0 then
      div:=div*(IP(nodd/2)+1);
      num:=quo;
    else
      nodd:=nodd+2;
      den:=den+nodd;
    end;
  until (quo==0) OR (nodd>qpiMAXINT) end;

  RETURN({div,num});
END;


// returns {p,q,0} where r=p/q
qpi_approx(r)
BEGIN
  local num,inum,den,iden;
  local p0,q0,p1,q1,p2,q2;
  local quo,rem;

  if NOT(r) then RETURN({0,1,0}); end;

  num:=abs(r);
  inum:=IP(num);
  den:=1;

  while num-inum do
    num:=num*10;
    den:=den*10;
    inum:=IP(num);
  end;

  iden:=den;

  rem:=den; den:=num;
  p1:=0; p2:=1;
  q1:=1; q2:=0;

  repeat
    p0:=p1; p1:=p2;
    q0:=q1; q1:=q2;
    num:=den; den:=rem;
    quo:=IP(num/den);
    rem:=num MOD den;
    p2:=quo*p1+p0;
    q2:=quo*q1+q0;
  until 10^qpiDIGITS*abs(inum*q2-iden*p2)<iden*p2 end;

  if (r>0) then
    RETURN({p2,q2,0});
  else
    RETURN({−p2,q2,0});
  end;


END;

#cas
qpi_symb(f):=
begin
  local j,n,g,r;
  if (type(f) <> DOM_SYMBOLIC) then return(f); end;

  n:=dim(f)+1;

  for j from 2 to n do

    g:=f[j];
    if (type(g) == DOM_FLOAT) then
      r:=QPI(g);
      f[j]:=r;
    end;
    if (type(g) == DOM_SYMBOLIC) then
      r:=qpif(g);
      f[j]:=r;
    end;
  end;
  return(f);
end;
#end
Last edited by compsystems on 19 Nov 2017, 10:56, edited 2 times in total.
User avatar
compsystems
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 29.7%
 
Posts: 232
Joined: 30 May 2011, 13:44
Gender: Male
Calculator(s):

Next

Return to News HP

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
-
Featured topics
Concours TI-Planet-Casio de rentrée 2019. 3 défis pour plus d'une 15aine de calculatrices graphiques et nombre de goodies sortant de l'ordinaire ! :D
Comparaisons des meilleurs prix pour acheter sa calculatrice !
12
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
606 utilisateurs:
>548 invités
>52 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)