Faits :
A.
Par jugement du 28 janvier 2015, le Tribunal criminel du Littoral et du Val-de-Travers a condamné X._ à une peine privative de liberté de six ans, dont à déduire 272 jours de détention provisoire subis, pour lésions corporelles (<ref-law>), voies de fait (<ref-law>), menaces (<ref-law>), contrainte (<ref-law>), séquestration (<ref-law>), contraintes sexuelles (<ref-law>) et viol (<ref-law>). Il a ordonné l'arrestation immédiate du condamné et sa mise en détention pour des motifs de sûreté. Sur le plan civil, il a arrêté l'indemnité pour tort moral due à la victime à 15'000 fr., avec intérêts à 5 % l'an dès le 23 juin 2013.
B.
B.a. Par jugement d'appel du 3 février 2016, la Cour pénale du Tribunal cantonal neuchâtelois a partiellement admis l'appel formé par X._ et modifié le jugement attaqué en ce sens qu'elle a reconnu X._ coupable de lésions corporelles (<ref-law>), de voies de fait (<ref-law>), de contrainte (<ref-law>), de séquestration (<ref-law>) et de viol (<ref-law>) et l'a condamné à une peine privative de liberté de cinq ans, dont à déduire 272 jours de détention provisoire subis, maintenant le jugement de première instance pour le surplus.
En bref, elle a retenu les faits suivants:
X._ a exercé sur son épouse des violences conjugales et des sévices sexuels et corporels, à réitérées reprises, pendant près de 18 mois. Il lui a fait subir de nombreux actes de contraintes, de lésions corporelles simples et de viols. Les actes de violence ont atteint leur paroxysme le 29 mai 2013. A la suite d'un rêve, X._ était persuadé que son épouse le trompait depuis le 6 janvier 2011. Il l'a empêchée de se rendre à son travail et l'a obligée à téléphoner à son chef pour lui dire qu'elle était malade et qu'elle ne pouvait pas venir. Il l'a ensuite plaquée au sol, lui a attaché les poignets et l'a traînée par les jambes dans la chambre à coucher, sa tête heurtant violemment le carrelage. Il a pris une écharpe qu'il a serrée derrière la tête, lui a rapproché les jambes et la tête et les a fait tenir ensemble, de sorte qu'elle ne pouvait plus bouger. Il lui a ensuite planté des aiguilles à coudre dans la tête, sur les bras et dans le dos. Il a sorti un couteau de cuisine et l'a menacée de le lui planter dans le dos si elle ne donnait pas le nom des personnes avec qui elle le trompait. Après avoir approché le couteau de son visage, il a coupé les foulards qui entouraient les poignets de la victime et lui a interdit d'appeler la police.
Le 22 juin 2013, X._ a forcé son épouse à entretenir un rapport sexuel auquel elle s'était clairement refusée. Il lui a attrapé les mains et lui a tiré les doigts en arrière, lui ordonnant de se rendre dans la chambre à coucher, où il l'a déshabillée avant de la pénétrer sans ménagement.
Le lendemain, il s'est rendu sur son lieu de travail, à A._. Estimant qu'un client se trouvait trop près d'elle, il lui a téléphoné pour lui ordonner de quitter son travail dans les dix minutes. Ensuite, il a obligé sa femme à suivre avec lui ce client qui s'en allait de son côté. Il a appelé ce dernier, puis l'a menacé de se battre avec lui, le laissant finalement partir après cinq ou six minutes d'altercation.
B.b. Par arrêt du 24 janvier 2017 (arrêt 6B_335/2016), la Cour de droit pénal du Tribunal fédéral a admis le recours en matière pénale formé par X._ sur la question de la peine, a annulé le jugement d'appel et a renvoyé la cause à la cour cantonale pour nouvelle décision. Le jugement d'appel était en effet critiquable sur plusieurs points. La cour cantonale n'avait pas exposé pourquoi l'abandon de plusieurs chefs d'inculpation (menaces, contrainte et contrainte sexuelle) n'entraînait aucune diminution de peine; elle avait fixé une peine privative globale de cinq ans, alors qu'elle aurait dû cumuler cette sanction avec une amende pour tenir compte de la prévention de voies de fait; elle n'avait pas respecté les règles applicables en cas de diminution de la responsabilité et, enfin, s'agissant de la violation du principe de la célérité, elle devait calculer la réduction de la peine au vu de l'ensemble des circonstances (gravité de l'atteinte aux droits du prévenu, gravité des infractions, intérêts du lésé, complexité de l'affaire) et non réduire la peine de la durée de la prolongation de la procédure.
B.c. A la suite de cet arrêt de renvoi, la Cour pénale du Tribunal cantonal neuchâtelois a rendu un nouveau jugement d'appel le 20 septembre 2017. Par ce jugement, elle a admis partiellement l'appel de X._ et modifié le jugement de première instance en ce sens qu'elle a reconnu ce dernier coupable de lésions corporelles (<ref-law>), de voies de fait (<ref-law>), de contrainte (<ref-law>), de séquestration (<ref-law>) et de viol (art. 190) et l'a condamné à une peine privative de liberté de quatre ans et demi, dont à déduire 272 jours de détention provisoire subis, et à une amende de 300 fr., la peine de substitution en cas de non-paiement fautif étant de trois jours.
C.
Contre ce dernier jugement, X._ dépose un recours en matière pénale devant le Tribunal fédéral. Il conclut, principalement, au prononcé d'une peine privative de liberté de deux ans avec sursis pendant deux ans, ainsi que d'une amende; à titre subsidiaire, au prononcé d'une peine privative de liberté de trois ans, dont 272 jours ferme et le solde avec sursis pendant deux ans, ainsi que d'une amende; à titre plus subsidiaire, à l'annulation du jugement attaqué et au renvoi de la cause à la cour cantonale pour nouvelle décision au sens des considérants. En outre, il sollicite l'assistance judiciaire.
Invité à se déterminer, le Ministère public neuchâtelois a conclu au rejet du recours sans formuler d'observations. La cour cantonale ne s'est pas déterminée.

Considérant en droit :
1.
Le recourant s'en prend à la quotité de la peine qui lui a été infligée (<ref-law>).
1.1.
1.1.1. Selon l'<ref-law>, le juge fixe la peine d'après la culpabilité de l'auteur. Il prend en considération les antécédents et la situation personnelle de ce dernier ainsi que l'effet de la peine sur son avenir (al. 1). L'alinéa 2 de cette disposition énumère une série de critères à prendre en considération pour déterminer la culpabilité de l'auteur (<ref-ruling> consid. 5.4 p. 59; <ref-ruling> consid. 2.1 et les références citées).
Selon l'<ref-law>, si, en raison d'un ou de plusieurs actes, l'auteur remplit les conditions de plusieurs peines de même genre, le juge le condamne à la peine de l'infraction la plus grave et l'augmente dans une juste proportion. Ainsi, dans un premier temps, le juge doit fixer le cadre de la peine pour l'infraction la plus grave et déterminer, à l'intérieur de ce cadre, la peine de base pour cette infraction. Dans un second temps, il doit augmenter la peine de base pour tenir compte des autres infractions en application du principe de l'aggravation (Asperationsprinzip) (arrêt 6B_483/2016 du 30 avril 2018 consid. 3.5, destiné à la publication; <ref-ruling>; <ref-ruling> consid. 2b p. 104; <ref-ruling> consid. 2c/dd p. 305; arrêt 6B_579/2008 du 27 décembre 2008 consid. 4.4). Lorsque les différentes infractions sont étroitement liées sur les plans matériel et temporel, de sorte qu'elle ne peuvent pas être séparées et être jugées pour elles seules, le juge ne viole pas le droit fédéral s'il ne détermine pas pour chaque infraction une peine hypothétique, mais fixe une peine de manière globale (arrêt 6B_1011/2014 du 16 mars 2015 consid. 4.4). Le juge a l'obligation d'aggraver la peine en cas de concours d'infraction (<ref-ruling>).
1.1.2. Selon l'<ref-law>, la juridiction d'appel jouit d'un plein pouvoir d'examen sur tous les points attaqués du jugement. Elle revoit notamment librement les questions d'appréciation, telles la fixation de la peine (cf. LUZIUS EUGSTER, in Basler Kommentar, Schweizerische Strafprozessordnung, 2e éd. 2014, n° 1 ad <ref-law>; HUG/ SCHEIDEGGER, in Kommentar zur Schweizerischen Strafprozessordnung, Donatsch/Hansjakob/Lieber [éd.], 2e éd. 2014, n° 20 ad <ref-law>). Ainsi, elle peut s'écarter de la peine fixée en première instance, mais, conformément à son obligation de motiver (<ref-law>), elle doit expliquer pourquoi cette peine n'était pas correcte. Lorsque le prévenu est condamné pour plusieurs infractions en première instance puis qu'il est acquitté de certains chefs d'accusation en appel, sa faute est diminuée, ce qui doit en principe entraîner une réduction de peine. La cour d'appel qui considère toutefois que la peine fixée en première instance est trop basse, peut la maintenir, mais elle doit motiver sa décision, par exemple en expliquant que les premiers juges auraient mal apprécié les faits et qu'il n'y aurait pas lieu de réduire encore cette peine (cf. <ref-law>; <ref-ruling> consid. 1c/bb p. 21; <ref-ruling> consid. 4 p. 397; cf. également arrêts 6B_859/2013 du 2 octobre 2014 consid. 4.2; 6B_1066/2013 du 27 février 2014 consid. 5.2.1; WIPRÄCHTIGER/ECHLE, in Basler Kommentar, Strafrecht I, 3e éd., 2013, n° 7 ad art. <ref-law>).
1.2. En l'espèce, la cour cantonale a retenu que la culpabilité du recourant, sans la diminution de la responsabilité, était lourde, la faute, considérée globalement, étant très grave, et a estimé qu'une peine de six ans correspondait à cette culpabilité. A cet égard, elle a précisé que l'abandon des chefs d'inculpation de menaces, de contrainte et de contrainte sexuelle n'avait aucune conséquence sur la culpabilité du recourant et, partant, sur sa peine. Ensuite, elle a retenu une responsabilité pénale légèrement diminuée qui devait influencer la peine - toujours hypothétique - qui, sur la base de cette diminution, devait être fixée à cinq ans. Enfin, pour tenir compte du temps qui était écoulé depuis le précédent jugement, elle a fixé la peine à quatre ans et demi.
1.3. Le recourant reproche à la cour cantonale de ne pas avoir réduit la peine malgré l'abandon de divers chefs d'inculpation lors de la fixation de la peine. Ainsi, elle n'aurait pas tenu compte que, en lieu et place de rapports sexuels " quotidiens et parfois même plusieurs fois par jour ", des agissements moins nombreux puisque limités à des rapports " fréquents " auraient été retenus. Elle n'aurait également tiré aucune conséquence de l'abandon de la prévention de contrainte sexuelle ainsi que des autres chefs d'inculpation (menace et contrainte).
1.3.1. La cour cantonale a renoncé à réduire la peine à la suite de l'abandon des divers chefs d'accusation pour les motifs suivants:
S'agissant des faits du 29 mai 2013, elle a considéré que les infractions de menaces et de contrainte n'entraient pas en concours avec la séquestration et estimé que l'abandon de ces deux préventions, en raison d'un concours imparfait entre les dispositions précitées, n'avait pas d'incidence sur la fixation de la peine (jugement attaqué p. 11). Cette motivation ne peut pas être suivie. En effet, en retenant le concours d'infractions, le tribunal de première instance a nécessairement dû tenir compte de ces infractions en aggravant la peine de base. Si ces deux infractions sont absorbées par le séquestre (concours imparfait), l'<ref-law> n'est plus applicable et toute aggravation de la peine de base est exclue. L'abandon de ces deux chefs d'inculpation doit donc conduire à une réduction de la peine, ne serait-ce que minime, à moins d'admettre que le tribunal de première instance n'a pas appliqué correctement l'<ref-law>, ce que ne retient pas la cour cantonale.
Concernant les faits du 23 juin 2013, la cour cantonale a abandonné l'infraction de contrainte, car l'élément constitutif de la menace contre la victime ne figurait pas dans les faits visés. La cour cantonale a expliqué qu'au regard des nombreuses infractions graves retenues contre le prévenu, l'abandon de la contrainte pour des faits relativement peu importants ne jouait pas de rôle sur la culpabilité de l'auteur (jugement attaqué p. 11 et 12). Dans la mesure où le tribunal de première instance avait retenu cette infraction en concours avec d'autres infractions, il a augmenté la peine de base. Son abandon devrait donc conduire à une diminution de la peine, ne serait-ce que minime.
La cour cantonale a abandonné l'infraction de contrainte sexuelle, qui concernait peut-être des actes non consentis de pénétrations anales et des fellations forcées, au motif qu'elle ne correspondait pas à un état de fait décrit dans l'acte d'accusation. Elle a considéré que la contrainte sexuelle n'avait pas de portée propre et que son abandon ne devait avoir aucune incidence sur la peine (jugement attaqué p. 12). Les explications de la cour cantonale ne convainquent pas non plus sur ce point. Le tribunal de première instance avait tenu compte de cette infraction dans la fixation de la peine, de sorte que son abandon devait conduire à une réduction de peine.
Enfin, la cour cantonale a fixé une peine d'amende pour tenir compte du concours avec les voies de fait conformément à la jurisprudence (<ref-ruling> consid. 4.3.1 p. 58). Le montant de l'amende devrait donc en principe déjà tenir compte de la culpabilité du recourant pour cette infraction spécifique, de sorte que la peine privative de liberté prononcée antérieurement (qui devait tenir compte du concours avec les voies de fait) devrait être légèrement diminuée.
1.3.2. En définitive, la cour cantonale a exposé cette fois les raisons qui l'ont amenée à maintenir la même peine qu'en première instance malgré l'abandon de divers chefs d'inculpation, mais les explications qu'elle donne reposent sur des considérations contraires aux règles sur le concours. Le recours doit donc être admis, le jugement attaqué doit être annulé et la cause renvoyée à la cour cantonale pour qu'elle tienne compte de l'abandon des divers chefs d'inculpation ou explique pourquoi la peine prononcée en première instance doit être maintenue.
1.4. Le recourant reproche à la cour cantonale de ne pas avoir tenu compte des facteurs liés à l'auteur lui-même (Täterkomponente). Il invoque l'absence d'antécédents, son jeune âge, ainsi que le fait que " son incarcération a été vécue comme une vraie leçon des limites à ne pas franchir ".
1.4.1. La cour cantonale n'a pas méconnu ces facteurs, mais a considéré que, globalement, ces éléments n'amenaient pas à augmenter ou à diminuer la peine, par rapport à la peine hypothétique de cinq ans.
1.4.2. Son raisonnement ne soulève aucune critique.
L'absence d'antécédents a en principe un effet neutre sur la fixation de la peine et n'a donc pas à être prise en considération dans un sens atténuant (<ref-ruling> consid. 2.6 p. 2).
Le jeune âge n'impose pas, à lui seul, une réduction de la peine. Le recourant n'expose du reste pas en quoi cette circonstance personnelle pourrait influer sur l'appréciation de la faute.
Dans la mesure de leur recevabilité, les griefs soulevés par le recourant doivent donc être rejetés.
1.5. Le recourant se plaint du fait que le retard dans la procédure s'est encore amplifié depuis le jugement de première instance en raison des recours qu'il a dû former au Tribunal fédéral contre les décisions de l'instance d'appel pour faire respecter ses droits. En particulier, il reproche à la cour cantonale d'avoir mis près de huit mois pour corriger son premier jugement d'appel. Selon le recourant, cette attente excessive doit être réparée par une réduction de peine plus importante que celle accordée par la cour cantonale.
La cour cantonale a admis que le principe de la célérité avait été violé à plusieurs égards. Elle a retenu que le tribunal de première instance qui avait pris six mois pour motiver son jugement n'avait pas respecté les délais fixés à l'<ref-law>, ce qui avait retardé la procédure d'appel. Elle a tenu compte d'une détention illicite de trois mois. Enfin, elle a pris en considération le temps qui s'était écoulé depuis le précédent jugement. En raison de l'ensemble de ces éléments, elle a réduit la peine de cinq ans (peine hypothétique fixée à la suite de la diminution légère de responsabilité) à quatre ans et demi. Une réduction de six mois apparaît adéquate. Le grief soulevé doit être rejeté.
2.
Le recourant reproche à la cour cantonale de ne pas avoir discuté la question du sursis complet ou partiel.
Vu la quotité de la peine prononcée, cette question n'entre pas en ligne de compte. Le grief doit être rejeté.
3.
Le recours doit être partiellement admis, le jugement attaqué doit être annulé et la cause doit être renvoyée à la cour cantonale pour qu'elle fixe une peine dans le sens des considérants ci-dessus. Pour le surplus, le recours doit être rejeté dans la mesure où il est recevable.
Le recourant qui obtient gain de cause ne supporte pas de frais judiciaires (<ref-law>) et peut prétendre à une indemnité de dépens à la charge du canton de Neuchâtel (art. 68 al. 1 et 2 LTF), ce qui rend sans objet la demande d'assistance judiciaire.

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 nouveau jugement. Pour le surplus, le recours est rejeté dans la mesure où il est recevable.
2.
Il n'est pas perçu de frais judiciaires.
3.
Le canton de Neuchâtel versera au mandataire du recourant la somme de 3000 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Le présent arrêt est communiqué aux parties et à la Cour pénale du Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 11 juin 2018
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Kistler Vianin