我是编码的初学者,我需要编写一个与牛顿方法一起使用的function.m文件。我无法定义函数,其中r是半径,p是密度:
f(θ)=((r ^ 2)/ 2)*((2 * pi * p) - (θ-sin(θ)* p))
其中半径 r = 30cm 且密度 p = 0.82克/ cm3
到目前为止,我写过:
function y = f1(theta)
r = 0.3;
p = 0.82;
y = (r^2)/2*(2*pi*p - (theta - sin(theta)*p));
我遇到问题的事情:
定义r和p的问题。得到错误:
Undefined function or variable 'r'
无法绘制该功能。
我想做的事情:
感谢所有帮助。谢谢!
答案 0 :(得分:0)
这可以使用匿名函数
完成r=0.3;
p=0.82;
f=@(theta) (r^2)/2*(2*pi*p-theta+p*sin(theta));
然后评估函数只使用例如:f(1)
,并绘制它,例如:
angles=0:.01:pi;
plot(angles,f(angles))
如果您不想使用匿名功能,请使用
function funcVal=func(angles)
r=0.3;
p=0.82;
funcVal=(r^2)/2*(2*pi*p-angles+p*sin(angles));
end
并通过
调用它angles=0:.01:pi;
plot(angles,func(angles))
答案 1 :(得分:0)
我尝试了你的代码而没有改变。我将 M-file 命名为 f1 ,并在命令行中执行该功能。
function y = f1(theta)
r = 0.3;
p = 0.82;
y = (r^2)/2*(2*pi*p - (theta - sin(theta)*p));
我得到的输出如下
为f = f1(45)
f =
-1.7618
这表明你的功能没有问题。看看其他原因。如果你可以提供整个代码,那么诊断会更好。