在matlab中评估函数

时间:2011-04-03 07:07:02

标签: matlab

我已将sin函数扩展为泰勒级数。现在我想在特定点评估它。我在matlab中遇到奇怪的“MuPAD”错误。我做错了什么?

function r1=taylor_sine
syms x;
mysine = taylor(sin(x), 63, 0);
r1 = funm(220, mysine); 

2 个答案:

答案 0 :(得分:1)

我不是100%熟悉你正在使用的语法,也许内联函数语法与扩展语法略有不同,但看起来你的函数没有一个明确定义的输入和输出。非内联matlab函数应如下所示:

%Comment
function [ theta ] = FunctionName( alpha, beta )
theta = alpha + beta;
end

尝试在单独的.m文件中创建函数(文件名与函数名称相同)。创建.m文件后,请确保它位于MatLab的搜索路径中(检查自动填充程序在部分键入时是否显示您的函数名称)。

至于你的功能的实际身体,我看到一些奇怪的事情。什么是“syms x”应该做什么?我会用“x = -pi:0.001:pi;”替换这一行。 (x是从-pi到pi的向量,增量为0.001)。或类似的东西。

对于正常的泰勒近似,我会使用泰勒(sin(x),63)('v'的重载 - 进行Maclaurin近似)。此外,我不会做一个高达63-1顺序的泰勒近似,这太高了,也许MatLab崩溃了。

在下图中,您可以看到-pi和pi之间的7阶近似已经非常好。 Taylor series for different orders of approximation for sin(x)

答案 1 :(得分:1)

你真的是说220吗?或者你的意思是220度,在这种情况下你应该使用220 * pi / 180?

我认为它应该是潜艇而不是 funm

r1 = double( subs(mysine, x, 220*pi/180) );