r语言可以写c程序吗,[求助]R一般用什么写程序?

我想到的就这些,不知说道要点了么.R大多自习的,多看文档,论坛好多R的文档的.

这是R一本教程中编写的一个函数,命名为 bisect.R并存放在C:\R\work,

可以通过菜单操作调用程序.但这里说命令操作:

setwd("c:\\R\\work") #工作目录设定为C:\R\work

source("bisext.R") #将函数调用内存,否则在控制台直接输入会提示错误

fzero("x^3-x-1",1,2) #可以使用该函数了

#R中一个二分法求非线性方程根的函数

fzero

if (f(a)*f(b)>0)

list(fail="finding root is fail!")

else{

repeat {

if (abs(b-a)

x

if (f(a)*f(x)<0) b

}

list(root=(a+b)/2, fun=f(x))

}

}

%%作为对比,这是Matlab的二分法. 3年前的东西了,还好没删.

%%它命名为nabisect.m,位于c:matlab\work 中,work文件夹在 set path选项卡search path的搜索路径

%只要输入nabisect(fname,a,b,e)就可以运行,Matlab会在搜索路径搜索该函数,并自动加入内存.

%但 R需要用source(){或者通过菜单或者在控制台直接输入函数}来调入内存.

function x=nabisect(fname,a,b,e)

%Using: 二分法解非线性方程

%Fomart:x=nabisect(fname,a,b,e) fname为函数句柄或

%内嵌函数 表达式为f(x)  a,b为区间端点,e为精度(默认

%为1e-4) x为返回值,程序要求函数在两端点值必须异号

%,中间变量fa fb fx的引用可以最大限度减少fname调用次数

% 例子:fun=inline('x^3-3*x-1');

%      x=nabisect(fun,1,2,0.05)

if nargin<4,e=1e-4;end;

fa=feval(fname,a);fb=feval(fname,b);

if fa*fb>0,error('函数在两端点值必须异号');end

x=(a+b)/2;m=0;

while (b-a)>(2*e),

fx=feval(fname,x);m=m+1;

if fa*fx<0,

b=x;fb=fx;

else a=x;fa=fx;

end

x=(a+b)/2;

end

P.S.

filename.R 和 file.m 文件格式都可以用记事本打开,这表明.R和.m的文件同.txt文件仅仅扩展名不同.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值