Faits :
A.
Par jugement du 16 mai 2019, le Tribunal correctionnel de l'arrondissement de l'Est vaudois a condamné A._ pour escroquerie, faux dans les titres et infraction à la loi fédérale sur les armes, les accessoires d'armes et les munitions (LArm; RS 514.54) à une peine privative de liberté de six mois, avec sursis durant quatre ans, sous déduction d'un jour de détention provisoire, a dit que A._ était le débiteur des montants de 1'462 fr. 50, valeur échue, en faveur de B._ SA et de 112 fr. 50, valeur échue, en faveur de C._ SA, a ordonné la confiscation et la destruction de divers objets séquestrés et a mis les frais de justice à la charge de A._.
B.
Par jugement du 17 octobre 2019, la Cour d'appel pénale du Tribunal cantonal vaudois a admis partiellement l'appel formé par A._ et réformé le jugement de première instance en ce sens notamment qu'elle a condamné l'appelant pour escroquerie, faux dans les titres et infraction à la LArm à une peine pécuniaire de quatre mois à 70 fr. le jour-amende, avec sursis durant quatre ans, sous déduction d'un jour de détention provisoire.
En résumé, elle a retenu les faits suivants:
B.a. Durant le remplacement effectué pour le compte de D._ du 2 au 20 février 2012 à E._, A._ a facturé à ses patients F._ et G._ des séances fictives, à savoir des séances qu'il ne leur avait pas réellement administrées. Sont concernées les factures datées des 3, 6, 10, 13, 17 et 20 février 2012 et adressées par les patients précités à la B._ SA.
A._ a apposé indûment sur les factures susmentionnées l'en-tête du cabinet médical de H._ - auprès duquel il n'exerçait plus depuis 2006 - et le numéro CAMS attribué à H._ par le Registre de la médecine empirique. Il a remis ensuite ces factures récapitulatives aux patients qui les ont adressées à leur assureur afin de se faire rembourser les montants facturés, après déduction de la quote-part de 20% à 25% laissée à leur charge.
La B._ SA et le C._ SA ont déposé une plainte pénale et se sont constitués partie plaignante demanderesse au pénal et au civil. La B._ SA a chiffré ses conclusions civiles à 192'724 fr. et le C._ SA à 64'521 francs.
B.b. A I._, entre une date indéterminée et le 27 août 2013, A._ a acquis et gardé en sa possession un appareil à électrochocs et un spray d'autodéfense contenant du CS. Ces deux armes proscrites ont été saisies lors de la perquisition effectuée le 27 août 2013 au domicile de A._, puis transmises pour destruction au Bureau des armes. Celui-ci a dénoncé A._.
C.
Contre le jugement du 17 octobre 2019, A._ dépose un recours en matière pénale devant le Tribunal fédéral. Il conclut, pour l'essentiel, à sa libération des chefs d'accusation d'escroquerie, de faux dans les titres et d'infraction à la LArm, au rejet des conclusions civiles et à l'allocation d'une indemnité fondée sur l'art. 429 CPP.
Par ordonnance du 3 février 2020, le Président de la cour de droit pénal du Tribunal fédéral a rejeté la demande d'effet suspensif.
Invités à se déterminer, la cour cantonale et le ministère public y ont renoncé. La B._ SA a déposé une réponse qui a été communiquée au recourant.

Considérant en droit :
1.
Dénonçant la violation des art. 325 al. 1 let. f et 350 al. 1 CPP, le recourant fait grief à la cour cantonale d'avoir retenu des faits qui n'étaient pas couverts par l'acte d'accusation.
1.1. L'art. 9 CPP consacre la maxime d'accusation. Selon cette disposition, une infraction ne peut faire l'objet d'un jugement que si le ministère public a déposé auprès du tribunal compétent un acte d'accusation dirigé contre une personne déterminée sur la base de faits précisément décrits. En effet, le prévenu doit connaître exactement les faits qui lui sont imputés et les peines et mesures auxquelles il est exposé, afin qu'il puisse s'expliquer et préparer efficacement sa défense (<ref-ruling> consid. 2.2 p. 65; <ref-ruling> consid. 3.4.1 p. 142 s.). Le tribunal est lié par l'état de fait décrit dans l'acte d'accusation (principe de l'immutabilité de l'acte d'accusation), mais peut s'écarter de l'appréciation juridique qu'en fait le ministère public (art. 350 al. 1 CPP), à condition d'en informer les parties présentes et de les inviter à se prononcer (art. 344 CPP). Le principe de l'accusation découle également des art. 29 al. 2 Cst. (droit d'être entendu), 32 al. 2 Cst. (droit d'être informé, dans les plus brefs délais et de manière détaillée des accusations portées contre soi) et 6 par. 3 let. a et b CEDH (droit d'être informé de la nature et de la cause de l'accusation).
Les art. 324 ss CPP règlent la mise en accusation, en particulier le contenu strict de l'acte d'accusation. Selon l'art. 325 CPP, l'acte d'accusation désigne notamment les actes reprochés au prévenu, le lieu, la date et l'heure de leur commission ainsi que leurs conséquences et le mode de procéder de l'auteur (let. f); les infractions réalisées et les dispositions légales applicables de l'avis du ministère public (let. g). En d'autres termes, l'acte d'accusation doit contenir les faits qui, de l'avis du ministère public, correspondent à tous les éléments constitutifs de l'infraction reprochée au prévenu (<ref-ruling> consid. 2.2 p. 65; arrêt 6B_665/2017 du 10 janvier 2018 consid. 1.1). Des imprécisions relatives au lieu ou à la date sont sans portée, dans la mesure où le prévenu ne peut avoir de doute sur le comportement qui lui est reproché (arrêts 6B_696/2019 du 24 septembre 2019 consid. 1.2.1; 6B_275/2016 du 9 décembre 2016 consid. 2.1 et la référence citée).
1.2. Le recourant soutient, d'abord, que l'acte d'accusation ne se rapporte pas à la facturation de prestations fictives, mais à une situation de polypragmasie; c'est ainsi que, selon lui, l'acte d'accusation mentionne qu'il aurait trompé ses patients en leur faisant croire que les séances prodiguées étaient justifiées d'un point de vue médical, alors qu'elles ne l'étaient pas, et qu'il y aurait ainsi eu escroquerie au préjudice de ses patients et des assureurs. En outre, le recourant se plaint de l'imprécision de l'acte d'accusation. Il soutient qu'il lui était impossible de savoir quels patients étaient concernés par la facturation fictive, dès lors que l'acte d'accusation énumère 23 " cas ", pour plus de 300 factures.
1.3.
1.3.1. L'acte d'accusation prévoit notamment ce qui suit: « A._ a prodigué pendant plusieurs mois de suite à ses patients trois à neuf séances de physiothérapie et/ou d'ostéopathie par mois, d'une durée de 5 à 60 minutes, à un tarif fixe de 120 fr., puis 150 fr par séance. Il leur faisait croire que ces séances étaient nécessaires pour les soigner, alors qu'il est médicalement impossible de justifier une telle pratique et contre-indiqué d'enchaîner des séances à intervalle aussi rapproché. Au terme des séances, il se faisait payer, au comptant, par ses patients sans qu'il ne leur remette de quittance. A la fin de chaque mois, il établissait des factures récapitulatives sur lesquelles il mentionnait des dates auxquelles les séances auraient eu lieu qui ne correspondaient pas à la réalité et les traitements prodigués qui ne correspondaient pas aux maux dont souffraient les patients. Il apposait aussi indûment l'en-tête du cabinet médical de H._ - auprès duquel il n'exerçait plus depuis 2006 -, le numéro CAMS attribué à H._ par le Registre de la médecine empirique, le timbre humide « SSPDO » utilisé par les physio-ostéopathes diplômés. Il remettait ensuite ces factures récapitulatives aux patients qui les adressaient à leur assureur afin de se faire rembourser les montants facturés, après déduction de la quote-part de 20% à 25% laissée à la charge des patients. "
L'acte d'accusation énumère ensuite 23 cas, pour plus de 300 factures. Il mentionne notamment, sous lettre h, qu'entre le 27 janvier et le 27 septembre 2012, A._ a établi 9 factures mensuelles pour un montant total de 11'850 fr. au nom de G._, facturant à cette dernière 8 à 9 séances par mois. Il note, sous lettre j, qu'entre le 27 janvier et le 25 octobre 2012, A._ a établi 10 factures mensuelles pour un montant total de 13'050 fr. au nom de F._, facturant à ce dernier 8 à 9 séances par mois.
1.3.2. La cour cantonale a retenu que le recourant avait facturé à certains de ses patients des séances fictives qui n'avaient pas réellement eu lieu. Elle a estimé que la phrase du chiffre 1 de l'acte d'accusation aux termes de laquelle «... des factures récapitulatives sur lesquelles il mentionnait des dates auxquelles les séances auraient eu lieu qui ne correspondaient pas à la réalité et les traitements prodigués qui ne correspondaient pas aux maux dont souffraient les patients » décrivait suffisamment les actes consistant à facturer des séances fictives.
1.3.3. La cour de céans ne peut pas suivre l'interprétation que fait la cour cantonale de l'acte d'accusation. Celui-ci mentionne que le recourant a prodigué à ses patients des séances de thérapie, alors que celles-ci n'étaient pas nécessaires pour les soigner. La phrase citée par la cour cantonale signifie que le recourant établissait des factures récapitulatives, en y mentionnant un traitement qui ne correspondait pas aux maux dont souffraient les patients et avec une date qui ne correspondait pas à la réalité. On ne peut pas déduire de cette phrase que les séances facturées n'avaient pas eu lieu. En condamnant le recourant pour facturation de prestations fictives, la cour cantonale s'est donc écartée de l'acte d'accusation.
En outre, l'acte d'accusation ne désigne pas précisément la date de la commission des actes reprochés (escroquerie, mais aussi faux dans les titres). Il fixe un cadre légal de huit mois (entre le 27 janvier et le 27 septembre 2012) pour les factures établies au nom de G._ et de près de neuf mois (entre le 27 janvier et le 25 octobre 2012) pour les factures établies au nom de F._. Il est certes admissible que l'acte d'accusation n'indique qu'un cadre légal lorsque l'instruction ne permet pas de déterminer précisément la date de la commission de l'infraction, par exemple en raison de l'écoulement du temps ou s'agissant de délits collectifs, comme les infractions commises par métier (cf. HEIMGARTNER/NIGGLI, in Basler Kommentar, Schweizerische Strafprozessordnung, 2e éd., 2014, n° 20 ad art. 325 CPP; SCHUBARTH/GRAA, in Commentaire romand, Code de procédure pénale, 2e éd., 2019, n° 44, 49 ad art. 325 CPP). En l'espèce, il ne s'agit toutefois pas de l'une de ces hypothèses. Il appartenait donc à l'acte d'accusation de mentionner plus précisément les patients concernés et les factures en cause, afin que le recourant puisse connaître les actes qui lui étaient reprochés.
En définitive, la cour cantonale ne pouvait pas condamner le recourant pour avoir facturé des séances fictives à ses patients F._ et G._ sur la base de l'acte d'accusation du 8 février 2019. L'acte d'accusation ne couvre pas la facturation de prestations fictives. En outre, il n'est pas suffisamment précis et ne permet pas de déterminer les factures incriminées et les clients concernés. Le jugement attaqué doit donc être annulé s'agissant des infractions d'escroquerie et de faux dans les titres et la cause renvoyée sur ces points à la cour cantonale pour nouveau jugement.
2.
Le recourant conteste sa condamnation pour violation de la LArm.
2.1. Aux termes de l'art. 33 al. 1 LArm, est puni d'une peine privative de liberté de trois ans au plus ou d'une peine pécuniaire quiconque, intentionnellement, sans droit, offre, aliène, acquiert, possède, fabrique, modifie, transforme, porte, exporte vers un Etat Schengen ou introduit sur le territoire suisse des armes, des éléments essentiels d'armes, des composants d'armes spécialement conçus, des accessoires d'armes, des munitions ou des éléments de munitions, ou en fait le courtage (al. 1 let. a). Si l'auteur agit par négligence, la peine est une amende. Dans les cas de peu de gravité, le juge peut exempter l'auteur de toute peine (al. 2).
2.2. Invoquant l'erreur sur les faits (art. 13 CP), le recourant soutient qu'il a cru que le spray de défense, qui lui avait été remis par une connaissance, était autorisé. Il explique qu'il existe plusieurs sortes de sprays, dont certains ne sont pas interdits et ne tombent pas sous le coup de la LArm, et qu'il n'est donc pas possible pour un béotien de faire la différence et de connaître la composition du produit, l'existence de sprays de défense en vente libre ajoutant la confusion dans le public.
Déterminer si le recourant savait que le spray litigieux était illicite est une constatation de fait, qui lie la cour de céans, à moins que le recourant ne démontre que celle-ci était manifestement inexacte (cf. <ref-ruling> consid. 12 p. 152; <ref-ruling> consid. 6.3 p. 375). En l'espèce, la cour cantonale a retenu que le recourant savait qu'il s'agissait d'un spray de défense illicite en raison du contexte dans lequel il était entré dans sa possession. Elle a expliqué que le recourant s'était fait agresser par une bande de Serbes et de Kosovars dans une discothèque, que des menaces de mort avaient été proférées, que la sécurité s'était interposée et qu'une fois la situation réglée, un client lui avait remis ce spray et le taser pour le trajet du retour. Dans son argumentation, le recourant n'établit pas que la constatation de la cour cantonale est arbitraire, mais se borne à affirmer qu'il ne connaissait pas l'illicéité de ce spray de défense, au motif qu'il existe plusieurs sortes de sprays dont certains ne sont pas interdits et qu'il est impossible pour un béotien de faire la différence. Purement appellatoire, cette argumentation est irrecevable.
Pour le surplus, le grief tiré de la violation du droit d'être entendu (défaut de motivation) doit être rejeté, dans la mesure où la cour cantonale a expliqué les raisons qui l'ont conduite à retenir que le recourant savait que le spray de défense n'était pas autorisé.
2.3. S'agissant de l'appareil à électrochocs, le recourant fait valoir qu'il a agi par négligence et que, par conséquent, il ne s'est rendu coupable que d'une contravention (art. 33 al. 2 LArm), qui serait prescrite.
La cour cantonale a retenu que le recourant savait qu'il s'agissait d'une arme compte tenu du contexte dans lequel le recourant a obtenu le taser (cf. considérant 2.2 ci-dessus). Dans son argumentation, le recourant n'établit pas que cette constatation de fait est manifestement inexacte, de sorte que la cour de céans est liée par celle-ci. Dans la mesure où le recourant savait que le taser était une arme et qu'il a accepté de la détenir, il a agi intentionnellement. Le grief du recourant doit donc être rejeté.
3.
Le recourant critique la mesure de la peine.
Ce grief est sans objet, dans la mesure où la cause est renvoyée à la cour cantonale pour qu'elle statue à nouveau sur les infractions d'escroquerie et de faux dans les titres.
4.
Le recourant fait valoir que le dispositif du jugement attaqué devrait mentionner que les conclusions civiles de C._ SA sont rejetées.
La cour cantonale a jugé qu'aucune prétention civile ne devait être allouée au C._ SA (jugement attaqué p. 24). En effet, le montant de 112 fr. 50 correspondait à la séance de J._ du 31 octobre 2011 qui avait été facturée à double à l'assurance susmentionnée. Or, la cour cantonale avait libéré le recourant de cette accusation, dès lors que ce cas de double facturation n'était pas couvert par l'acte d'accusation.
Dans la mesure où seul le dispositif déploie des effets juridiques et revêt l'autorité de chose jugée (cf. BERNARD CORBOZ, in Commentaire de la LTF, 2e éd., 2014, n° 31 ad art. 112 LTF; arrêt 6B_1189/2017 du 23 mai 2018 consid. 1.3), il doit mentionner le rejet des conclusions civiles du C._ SA. Le recours doit donc être admis sur ce point et le dispositif du jugement attaqué doit être corrigé dans ce sens.
5.
Le recourant conteste la confiscation d'un agenda bleu 2012 et d'un agenda noir 2012, au motif que ceux-ci ne constituent pas des objets dangereux au sens de l'art. 69 CP.
En l'espèce, ces deux agendas, en lien avec les facturations fictives de février 2012, ont été confisqués au recourant et maintenus au dossier. Dans la mesure où la cause est renvoyée à la cour cantonale pour nouveau jugement s'agissant de l'escroquerie, elle devra se prononcer à nouveau sur la question de la confiscation des deux agendas. Le grief soulevé est donc sans objet.
6.
Le recourant conteste la répartition des frais et le montant de l'indemnité selon l'art. 429 CPP.
Dès lors que le recours est partiellement admis et le jugement attaqué annulé, ces griefs sont également sans objet.
7.
Le recours est partiellement admis. Pour le surplus, il est rejeté dans la mesure où il est recevable.
Le recourant, qui succombe partiellement, supporte une partie des frais judiciaires, de même que l'intimée B._ SA, qui a conclu au rejet du recours (art. 66 al. 1 LTF). Le recourant peut prétendre à des dépens réduits, à la charge pour moitié chacun, d'une part, du canton de Vaud et, d'autre part, de l'intimée B._ SA (art. 68 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis, le jugement attaqué est annulé et la cause est renvoyée à la cour cantonale pour nouvelle décision. Pour le reste, le recours est rejeté dans la mesure où il est recevable.
2.
Une partie des frais judiciaires, arrêtée à 1'500 fr., est mise à la charge du recourant.
3.
Une partie des frais judiciaires, arrêtée à 1'500 fr., est mise à la charge de l'intimée B._ SA.
4.
Une indemnité de 1'500 fr., à verser au recourant à titre de dépens pour la procédure devant le Tribunal fédéral, est mise pour moitié à la charge du canton de Vaud et pour moitié à la charge de l'intimée B._ SA.
5.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 8 juin 2020
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Kistler Vianin