2010-02-22 9 views
1

J'ai un problème avec la résolution d'une intégration simple via MATLAB. Je veux résoudre ce problème et ne pas avoir de problèmes avec d'autres programmes.Mathématiques symboliques dans MATLAB, résolution d'une intégration simple

Eh bien, j'ai cette équation:

syms Kx

fX (x) = k * e^(- 3 * x) pour 2 < = x < = 6

que je veux pour intégrer de l'intervalle 2 à 6. Alors je résoudrais l'équation, de sorte que fX (x) = 1, et résolve l'équation pour k. Je tape:

S = résoudre ('int (k * exp (-3 * x), x, 2,6) = 1', k);

et je reçois l'erreur suivante: Erreur , (en entier) mauvais numéro (ou type) d'arguments: les options non valides ou les valeurs des options passées à l'intégration indéfinie . Options inconnues: {2, 6}

Pourquoi la fonction int ne peut-elle pas prendre mes limites?

+0

Avez-vous déjà attribué une valeur à x? –

+0

non ... J'ai: syms k x S = résoudre ('int (k * exp (-3 * x), x, 2,6) = 1', k); –

Répondre

4

solve(int(k*exp(-3*x),x,2,6) - 1,k) devrait fonctionner :)

Indication:

  1. ne pas utiliser = 1 mais -1 (cela signifie que f (x) - 1 = 0)
  2. ne pas utiliser ' '

Le résultat est pour moi:

-(3*exp(6))/(1/exp(12) - 1) 

J'ai aussi essayé de le résoudre à la main et j'ai obtenu le même résultat.

+0

Merci! ... Cela a fait l'affaire, mais pourquoi cette résolution-commande ne peut-elle pas gérer d'autres équations (= 0)? –

+1

@Soren: Il peut. Vous ne devriez pas utiliser de chaîne, et vous devriez utiliser le signe d'égalité '=='. (Et si vous utilisez une entrée de chaîne, cela doit être dans la syntaxe MuPAD, '' int (k * exp (-3 * x), x = 2..6) == ''. Mais ne faites pas ça .) –

Questions connexes