Pagina 1 di 2
Problema Matlab con fattoriale

Inviato:
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

Inviato:
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

Inviato:
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

Inviato:
23 dic 2012, 22:28
da ireon
Mi appare scritto "Undefined function 'assumeAlso' for input arguments of type 'sym'."
Re: Problema Matlab con fattoriale

Inviato:
24 dic 2012, 11:24
da dimaios

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

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

Re: Problema Matlab con fattoriale

Inviato:
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 ExpressionsProva 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

Inviato:
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

Inviato:
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

Inviato:
24 dic 2012, 17:16
da ireon
Ho risolto con il seguente codice:
syms x;
f = (x+1)^x-sym('n!');