帮我把这个用C写的程序改成matlab语言编写的程序

来源:百度知道 编辑:UC知道 时间:2024/06/26 02:31:02
SOURCE CODE
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#define TWOPI 6.283185307179586
double f(double y) // Computes the force
{
return -y - y*y*y;
}
/***************************************************************************
*
* Does 1 time step of position Verlet. Includes periodic boundary conditions
*
****************************************************************************/
void update_1_step(int N, double h, double y[], double v[]) // position Verlet
{
double f(double y);
int i;
//
// half-step in y
//
for (i = 0; i < N; i++)
{
y[i] += 0.5 * h * v[i];
}
//
// full-step in v;
// v[0] and v[N-1] treated separately because of periodic boundary conditions.
//
v[0] += h * (f(y[0] - y[1]) + f(y[0] - y[N-1]));
for (i = 1; i < N-1; i++)
{
v[i] += h * (f(y[i] -

呵呵,看来我们有研究相同的问题吧
matlab是一种科学的计算语言,采用的是解释执行的方式,在配置比较水的机器(比如说我的),运行起来速度不敢恭维,但是他适合工程师用,快速建立起自己的运算平台,很多语法是类似c语言。你可以考察一下matlab的安装目录下extern下面lib库中的函数,可以发现,有很多的c语言代码,实际上,其内核有很多c的成分。
所以你应该可以明白了,可以运行,但是要把matlab的库函数包含在c编译库中。
你完全可以在extern中的example中,在matlab环境下面运行几个c代码试一试,当然所采用的指令是mex(把c语言用于matlab中),mcc把matalb代码转化为c代码,一些具体的参数,你可以用matlab强大的help工具获得。我们还可以一起探讨一下啊,给各邮箱之类的吧,呵呵,很乐意的