24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1377  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

Kevin1987s

新虫 (初入文坛)

[求助] Matlab求助

我编了一个matlab程序,解九元二次方程组
function F=myfun(x)
n1=x(1);
n2=x(2);
n3=x(3);
n4=x(4);
n5=x(5);
n6=x(6);
n7=x(7);
n8=x(8);
n9=x(9);
f1=n1*n6-n1*n8-n3*n6+n3*n8-n2*n5+n4*n5+n2*n7+n4*n7;
f2=n1^2-1000*n1-500*(3^1/2)*n1+n2^2+500*n9+25000*(3^1/2)-14000;
f3=n3^2+n4^2+1500*n4+500*(3^1/2)*n9+n9^2+11000;
f4=n5^2+1000*n5+500*(2^1/2)*n5+n6^2+500*(2^1/2)*n9+n9^2+25000*(3^1/2)-77500;
f5=n7^2+n8^2-1500*n8+500*(3^1/2)*n9+n9^2+11000;
f6=n1^2+n3^2-2*n1*n3+n2^2+n4^2-2*n2*n4-22500;
f7=n5^2+n7^2-2*n5*n7+n6^2+n8^2-2*n6*n8-22500;
f8=n1^2+n7^2-2*n1*n7+n2^2+n8^2-2*n2*n8-22500;
f9=n3^2+n5^2-2*n3*n5+n4^2+n6^2-2*n4*n6-22500;
F=[f1,f2,f3,f4,f5,f6,f7,f8,f9]';


结果是??? Input argument "x" is undefined.

Error in ==> myfun at 2
n1=x(1);

应该怎么改啊?我是新手!多谢啦!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

czxf

银虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
zhangguangping: 金币+2, 谢谢讲解! 2012-05-15 20:32:05
MATLAB函数文件是用来调用的,直接编译函数文件一般都会报错,调用时,直接按照函数文件中声明的函数名及参量进行。建议楼主看下有关matlab函数文件编写及调用的方法,很简单。
6楼2012-05-15 15:22:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

musa_bai

金虫 (小有名气)


zhangguangping: 金币+1, 谢谢交流! 2012-05-15 20:31:13
我也是matlab新手,不能提供有用的帮助。但是看到楼主的这个程序,想问一下楼主,你是想求解什么?如果是想求解n1~n9,那么我感觉f1~f9也是未知数呀,应该求不出来。另外,n1=x(1)是说明把X(1)的值赋给n1,你要给出x的值才行吧。这里边你也没有给出x1的值,当然提示错误了。
2楼2012-05-14 22:14:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zt_chem

木虫 (正式写手)


zhangguangping: 金币+1, 谢谢建议! 2012-05-15 20:31:19
将f1到f9中的n1到n9换成x(1)到x(9)试试
3楼2012-05-15 07:23:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lgycjpcqu

金虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
zhangguangping: 金币+2, 谢谢应助+讲解! 2012-05-15 20:31:50
没问题啊,不会报错啊,你要给x值,我就用你的程序在命令窗口输入myfun([1,1,1,1,1,1,1,1,1]),结果显示为
           2
       22252
       13253
      -37997
       10253
      -22500
    -22500
      -22500
      -22500
楼主,不能直接运行你的m文件,你编写的是一个函数,以向量x为输入变量,必须给x一个值,才可以。你要是直接运行,x没有数值就会出现你碰到的错误。
4楼2012-05-15 10:17:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见