AYUDA URGENTE
Publicado por María (5 intervenciones) el 19/02/2017 20:51:54
Hola que tal, tengo el siguiente programa en matlab que me calcula cuatro funciones a partir de definir cada una función independiente que corresponde a su serie de Taylor, el caso es que en este programa que adjunto me calcula el error y me pide tanto el orden n como el valor de x y ahi todo bien.
Después considere utilizar el while para que me repitiera el ciclo pero con una función diferente solo que ahora este solo me pregunta el orden y el valor de x más no con cual función lo quiero realizar y se repite indefinidamente la misma pregunta del orden y valor de x, ¿Qué me recomendarían hacer? es que no entiendo muy bien que condicional usar para que me deje continuar sin que me pida lo que me esta pidiendo y según me recomendó alguien me dice que sale mejor usar el for, solo no se como
---
Estos son los programas para cada función:
Seno:
Coseno:
Tangente:
Logaritmo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
disp('Según la función ingrese:');
disp('sen para sen(x)');
disp('cos para cos(x)');
disp('tan para tan(x)');
disp('log para logaritmo(x)');
p= input('ingrese la función: ');
switch p
case 'sen'
n=input('ingrese el orden n: ');
x=input('ingrese valor x: ');
[y] =sen_taylor(n,x)
error=sin(x)-y
case 'cos'
n=input('ingrese el orden n: ');
x=input('ingrese valor x: ');
[y] =cos_taylor(n,x)
error=cos(x)-y
case 'tan'
n=input('ingrese el orden n: ');
x=input('ingrese valor x: ');
[y] =tan_taylor(n,x)
error=tan(x)-y
case 'log'
n=input('ingrese el orden n: ');
x=input('ingrese valor x: ');
[y] =log_taylor(n,x)
error=log(x)-y
end
Después considere utilizar el while para que me repitiera el ciclo pero con una función diferente solo que ahora este solo me pregunta el orden y el valor de x más no con cual función lo quiero realizar y se repite indefinidamente la misma pregunta del orden y valor de x, ¿Qué me recomendarían hacer? es que no entiendo muy bien que condicional usar para que me deje continuar sin que me pida lo que me esta pidiendo y según me recomendó alguien me dice que sale mejor usar el for, solo no se como
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
disp('Según la función ingrese:');
disp('sen para seno(x)');
disp('cos para coseno(x)');
disp('tan para tangente(x)');
disp('log para logaritmo(x)');
p= input('ingrese nombre de la función: ');
while p=='sen'|p=='cos'|p=='tan'|p=='log'
switch p
case 'sen'
n=input('ingrese el orden n: ');
x=input('ingrese valor x: ');
[y] =sen_taylor(n,x)
error=sin(x)-y
case 'cos'
n=input('ingrese el orden n: ');
x=input('ingrese valor x: ');
[y] =cos_taylor(n,x)
error=cos(x)-y
case 'tan'
n=input('ingrese el orden n: ');
x=input('ingrese valor x: ');
[y] =tan_taylor(n,x)
error=tan(x)-y
case 'log'
n=input('ingrese el orden n: ');
x=input('ingrese valor x: ');
[y] =log_taylor(n,x)
error=log(x)-y
end
end
Estos son los programas para cada función:
Seno:
1
2
3
4
5
6
7
8
function [y] =sen_taylor(n,x)
s=zeros(size(x));
for i=0:n-1
f=(-1).^i*x.^(2*i+1)/factorial(2*i+1);
s=f+s;
end
y=s;
end
Coseno:
1
2
3
4
5
6
7
8
function [y] =cos_taylor(n,x)
s=zeros(size(x));
for i=0:n
f=(-1)^i *(x.^(2*i)/factorial (2*i));
s=f+s;
end
y=s;
end
Tangente:
1
2
3
4
5
function [y] =tan_taylor(n,x)
m=sen_taylor(n,x);
k=cos_taylor(n,x);
y=m/k;
end
Logaritmo:
1
2
3
4
5
6
7
8
function [y] =log_taylor(n,x)
s=zeros(size(x));
for i=1:n-1
f=((-1)^(i+1) *(x-1).^(i))/i;
s=f+s;
end
y=s;
end
Valora esta pregunta


0