Estratto del documento

Calcolo sviluppo in serie di Taylor

Nota: nel caso del logaritmo il valore è preciso solo per alcune cifre nel caso di x vicino a 1. Questo perché la linearizzazione tende a venir meno man mano che x aumenta. Inoltre, il logaritmo non dipende dal fattoriale e quindi il passo della somma è più grossolano rispetto agli sviluppi dipendenti dal fattoriale.

Nota: Gli sviluppi funzionano per x < 1.

.asciiz "Inserisci l'argomento dello sviluppo. Attenzione: deve essere un numero <1 \n"

.asciiz "Inserisci l'ordine dello sviluppo in serie \n"

.asciiz "Scegli l'operazione: per sin inserire 0, per cos inserire 1, per sinh inserire 2, per cosh inserire 3, per exp inserire 4, per ln inserire 5 \n"

.err: .asciiz "Il valore inserito non è valido. \n"

.data 0x10010200

risultati: .space 8 #posto dove memorizzare il risultato

.text

li $v0, 4
la $a0 str1
syscall #stampo stringa 1
li $v0, 6 #caricamento float da tastiera
syscall #in f0 viene messo x inserito da tastiera
li $t3, 1
mtc1 $t3, $f1
cvt.s.w $f1, $f1
c.lt.s $f1 , $f0
bc1t error
mov.s $f12, $f0 #$f12 = $f0
li $v0, 4
la $a0 str2
syscall #stampo stringa 2
li $v0, 5 #caricamento intero da tastiera
syscall #in v0 viene messo n inserito da tastiera
move $s0, $v0 #$s0 = $v0
li $v0, 4
la $a0 str3
syscall #stampo stringa 3 per scelta operazione
li $v0, 5 #caricamento intero da tastiera
syscall #in v0 viene messo il valore che sceglie l'operazione da calcolare
move $t3, $v0 #$t3 = $v0
slt $t4, $t3, $zero #se viene inserito un numero negativo si genera un messaggio d'errore
bne $t4, 0, error
sgt $t4, $t3, 5 #se viene inserito un numero maggiore del numero di operazioni disponibili si genera un messaggio d'errore
bne $t4, 0, error
li $t1, 2
la $t2, risultati
beq $t3, 0, sin #t3 = 0 vai a sin
beq $t3, 1, cos #t3 = 1 vai a cos
beq $t3, 2, sinh #t3 = 2 vai a sinh
beq $t3, 3, cosh #t3 = 3 vai a cosh
beq $t3, 4, exp #t3 = 4 vai a exp
beq $t3, 5, ln #t3 = 5 vai a ln

#$s0 contiene il numero di elementi della serie da sommare
#$f12 contiene l'argomento dello sviluppo
#$a0 conterrà l'ordine dello sviluppo e verrà passato alle funzioni chiamate

Sviluppo di sin

#(-)^n X^(2n+1) / (2n+1)!
mul $a0, $s0, 2
addi $a0, $a0, 1 #$a0 = 2n+1
jal fattoriale
mtc1 $v0, $f2 #fattoriale restituito in $v0
cvt.s.w $f2, $f2 #$f2 conterrà il fattoriale
mul $a0, $s0, 2
addi $a0, $a0, 1 #$a0 = 2n+1
jal float_pow #arg elevato a 2n+1 calcolato, il risultato viene restituito in $f0
div.s $f4, $f0, $f2 #Calcolo x^(2n+1) / (2n+1)!

Anteprima
Vedrai una selezione di 3 pagine su 7
Programma d'esame su Serie di Taylor in MIPS Pag. 1 Programma d'esame su Serie di Taylor in MIPS Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Programma d'esame su Serie di Taylor in MIPS Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Vito_G17 di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori e calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Ingegneria Prof.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community