如何用matlab写入这个M-file

来源:百度知道 编辑:UC知道 时间:2024/07/02 09:19:08
要求用户输入x和n的值,求出sin(x),求出的值保留小数点后6位
s=(-1)^(k-1)*x^(2k-1)/factorial(2*k-1)
sin(x)=symsum(s,k,1,n)
然后还要写一个M-file,用来找出sin(x,n)与sin(x)最近似时的n值(n越大与sin(x)越接近),像这样computeN(x,d),要求输入x和d值,求出n值。

matlab中阶乘factorial的参数不可以为符号型的,只能为确定的数,所以将k当作sym型变量是不可取的,建议采用如下循环的方法来实现:
clc;clear;
x=input('请输入x的值:');
n=input('请输入n的值:');
s=0;
for k=1:n
s=s+(-1)^(k-1)*x^(2*k-1)/factorial(2*k-1);
end
str=sprintf('sin(x)的值为%.6f',s);
disp(str);