Pagina 1 di 2

Problema Matlab con fattoriale

MessaggioInviato: 23 dic 2012, 17:04
da ireon
Se io scrivo in Matlab le seguenti istruzioni:

syms x;
f = (x+1)^x-factorial(x);


Mi appare il messaggio d'errore "N must be a matrix of non negative integers"

Quindi come faccio a scrivere correttamente la funzione?

Re: Problema Matlab con fattoriale

MessaggioInviato: 23 dic 2012, 18:45
da g.schgor
Prova a definire x come intero e limitarlo ai primi numeri (4 o 5)

Re: Problema Matlab con fattoriale

MessaggioInviato: 23 dic 2012, 20:33
da DirtyDeeds
Prova con queste dichiarazioni:

Codice: Seleziona tutto
syms x positive;
assumeAlso(x,'integer');

Re: Problema Matlab con fattoriale

MessaggioInviato: 23 dic 2012, 22:28
da ireon
Mi appare scritto "Undefined function 'assumeAlso' for input arguments of type 'sym'."

Re: Problema Matlab con fattoriale

MessaggioInviato: 24 dic 2012, 11:24
da dimaios
:shock: Sei sicuro di cosa hai scritto ?
Prova a copiare sul workspace queste righe di codice ( cut & paste e premi enter ).

Codice: Seleziona tutto
clear all;
syms x positive;
assumeAlso(x,'integer');
f = (x+1)^x-factorial(x);


A me funziona correttamente.

Re: Problema Matlab con fattoriale

MessaggioInviato: 24 dic 2012, 14:07
da ireon
Mi appare scritto il messaggio d'errore, posto l'immagine:

Immagine

Re: Problema Matlab con fattoriale

MessaggioInviato: 24 dic 2012, 14:41
da dimaios
Verifica se i comandi esistono nella tua versione di Matlab.
Secondo le release notes di Matlab risulterebbe che ....
R2012a
New Features, Bug Fixes, Compatibility Considerations
expand all
New Special Functions
New Vector Analysis Functions
Computations with Symbolic Functions
Assumptions on Variables

You can set assumptions on symbolic variables by using these functions:

assume sets assumptions on symbolic variables.

assumeAlso adds assumptions on symbolic variables without erasing the previous assumptions.

assumptions shows assumptions set on symbolic variables.

New Relational Operators Create Equations, Inequalities, and Relations
New Logical Operators Create Logical Expressions


Prova a digitare :

Codice: Seleziona tutto
help assumeAlso


e vedi se la funzione esiste nella tua versione di Matlab che dall'immagine risulta essere la 2011b.

Re: Problema Matlab con fattoriale

MessaggioInviato: 24 dic 2012, 15:56
da ireon
Non esiste nella mia versione, mi appare scritto "assumeAlso not found." Non c'è un altro modo per sottrarre una quantità fattoriale incognita?

Re: Problema Matlab con fattoriale

MessaggioInviato: 24 dic 2012, 16:10
da dimaios
Fai un tentativo con questo :

Codice: Seleziona tutto
syms x positive;
f = (x+1)^x-factorial(round(x));

Re: Problema Matlab con fattoriale

MessaggioInviato: 24 dic 2012, 17:16
da ireon
Ho risolto con il seguente codice:

syms x;
f = (x+1)^x-sym('n!');