24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1959  |  回复: 3

poko宝贝

木虫 (正式写手)

[求助] 求助!!!使用 Numerical recipes in C++求解非线性方程组 已有1人参与

Golbally Convergent  for Nonlinear Equation
调用的newt函数。没有学过指针函数什么的,照葫芦画瓢写的很烂。编译提示错误是:
newt.cpp(22): warning #159: declaration is incompatible with previous "fmin" (declared at line 342 of "/usr/include/bits/mathcalls.h"
float fmin(float x[]);
newt.cpp(38): internal error: assertion failed at: "shared/edgcpfe/lower_c99.c", line 2870
f=fmin(x);
^
code如下,其中void *vecfunc(int n,float x[],float fvec[])是很复杂的非线性方程组,这里为了简洁易见,简单列了几个方程,可能解不出来。
Numerical recipes in C++书里格式是 void (*vecfunc)(int n,float x[],float fvec[]),但是调用的时候老出错,就把括号去了。
整个调用的函数包已经打包在附件,急用,请大神帮忙。
//////////////////////////////////////////////////

#include <math.h>
#define NRANSI
#include "nrutil.h"
#include "nrutil.cpp"

#include "newt.cpp"
#include "fdjac.cpp"
#include "fmin.cpp"
#include "lnsrch.cpp"
#include "lubksb.cpp"
#include "ludcmp.cpp"

void *vecfunc(int n, float x[], float fvec[]);
int main()
{
int n;
n=5;
float x[n];
float *fvec;
int *check;

check=ivector(1,n);
fvec=vector(1,n);

newt(x, n, check,&nbsp;&nbsp;vecfunc);

free_ivector(check,1,n);
free_vector(fvec,1,n);
return 1;
}

void *vecfunc(int n,float x[],float fvec[])
{
//float x[5];
//float fvec[5];

fvec[1]=x[1]*x[2]+x[5]-1.0;
fvec[2]=x[1]+x[2]-x[3];
fvec[3]=x[1]*x[4]+x[2]+x[3]-10.0;&nbsp; &nbsp; &nbsp; &nbsp;
fvec[4]=x[1]+x[2]+x[3]-1.0;
fvec[5]=x[4]+x[5]-1.0;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
}
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Golbally_Convergent__for_Nonlinear_Equation.zip
  • 2017-02-09 13:21:52, 12.55 K

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijf517

木虫 (小有名气)

这些代码虽然文件后缀是cpp, 但是和C++一毛钱关系都没有,是彻头彻尾的C语言写的,连C++里最基本的STL模板库都不用。如果你是新手刚开始学习数值计算,还是建议使用C++语言,无论是前期编程还是后期维护都比C语言方便的多。关于你的代码, 看起来像是用牛顿迭代法求解非线性方程组的。x应该是位置向量,在迭代前应该赋予初值的。你的代码定义了数组x后没初始化就直接用了。可能有的编译器会自动把x初始化为0, 但这不是个好的变成习惯。还有,在C/C++语言里,数组的索引是从0开始的,你定义的数组大小为5,所以在fvec里只能使用0~4的下标,所以x[5]这种写法是错误的,内存越界了。
2楼2017-02-09 22:04:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cob

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
c不是很熟,就用matlab吧,fsolve函数可以解方程组.很方便.
3楼2017-02-10 08:50:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

poko宝贝

木虫 (正式写手)

引用回帖:
2楼: Originally posted by lijf517 at 2017-02-09 22:04:55
这些代码虽然文件后缀是cpp, 但是和C++一毛钱关系都没有,是彻头彻尾的C语言写的,连C++里最基本的STL模板库都不用。如果你是新手刚开始学习数值计算,还是建议使用C++语言,无论是前期编程还是后期维护都比C语言方 ...

谢谢。已经改了但是还是有问题。非常感谢。要好好学习一下编程了。
4楼2017-02-13 10:28:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 poko宝贝 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 l7k6xnh0yc 2026-05-14 4/200 2026-05-15 17:43 by x0mp7owy2b
[教师之家] 上海大学实验技术岗位非升即走 +3 嘻嘻哈哈乐呵呵 2026-05-15 3/150 2026-05-15 15:40 by 187385hgh
[论文投稿] 有带发论文的吗 +4 山楂之术 2026-05-09 4/200 2026-05-15 15:40 by 妹子不好惹
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
[基金申请] 青C资助名额大幅增加! +11 西葫芦炒鸡蛋 2026-05-13 15/750 2026-05-15 14:36 by ambravo
[公派出国] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 l7k6xnh0yc 2026-05-14 3/150 2026-05-15 12:03 by onwj4wpxp2
[基金申请] 精华III评审感受-评审感受-评审感受 +14 ferrarichen 2026-05-11 18/900 2026-05-15 11:12 by cmhchen
[基金申请] 这年头没有找到涵评专家,还有中面上的可能吗 +9 dd921ww 2026-05-12 10/500 2026-05-15 10:41 by muyiliuhui
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 l7k6xnh0yc 2026-05-14 3/150 2026-05-15 09:23 by onwj4wpxp2
[教师之家] 教学课件你会给同学吗 +8 硕士研究生吗 2026-05-13 8/400 2026-05-14 22:23 by 常规沥青
[考博] 26应届毕业生考博求助 +3 wo一定上岸 2026-05-13 3/150 2026-05-14 21:47 by 明海天涯
[有机交流] 求助2,4-二氯-5-嘧啶甲醛的合成方法 20+3 光吃不拉 2026-05-14 5/250 2026-05-14 20:15 by 一切都是空工
[高分子] 本人最近太闲了,谁有问题可以提,每天会统一回复 +8 一切都是空工 2026-05-12 19/950 2026-05-14 20:03 by 一切都是空工
[考博] 申博自荐 +4 食品的橙子 2026-05-09 6/300 2026-05-14 16:05 by great1919
[考博] 材料类只有一篇综述能申博么 +4 乐逍遥谷 2026-05-13 4/200 2026-05-14 12:05 by zhyzzh
[基金申请] 请问大佬b0816评完了吗 +3 市民华南虎 2026-05-12 7/350 2026-05-14 07:41 by 市民华南虎
[硕博家园] 导师各种操作恶心咋办 +11 苍白的小青天 2026-05-09 13/650 2026-05-13 17:11 by 六两废铜
[考博] 西南大学考核制博士 +3 lijunjie84 2026-05-11 6/300 2026-05-12 18:09 by lijunjie84
[文学芳草园] 窗边初夏的小雨 +7 阿美_Lml888 2026-05-09 10/500 2026-05-12 15:27 by 阿美_Lml888
[考博] 现在不知道怎么办,感觉很痛苦 +4 qweww 2026-05-11 5/250 2026-05-11 20:23 by Oversize
信息提示
请填处理意见