关于fzero求解出错的问题
小弟一初学者,在用fzero求解方程时遇到这样的问题,请高人指点啊!方程如下:function qr
clear;format long;
tic
global R T P A B C D E F G H I J;
P=8;
T=483;
R=0.082057;
x0=10;
A=10;
B=2;
C=3;
D=4;
E=5;
F=6;
G=7;
H=8;
I=5;
J=2;
den1=fzero(@fun,x0);
t1=toc
disp(den1);
function f=fun(x)
global R T P A B C D E F G H I J;
f=P*T^4-x*R*T^5-(B*x*T^5-A*T^4-C*T^2+D*T-E)*x^2-(H*R*T^5-G*T^4-J*T^3)*x^3-I*(G+J*T^3)*x^6-C*x^3*T^2*(1+F*x^2)*exp(-F*x^2);
程序报错:
??? Error using ==> fzero
Too many input arguments.
Error in ==> qr at 19
den1=fzero(@fun,x0);
于是我又把A B C D E F G H I J设为fzero的传递参数,如下:
function qr
clear;format long;
tic
global R T P;
P=8;
T=483;
R=0.082057;
x0=10;
A=10;
B=2;
C=3;
D=4;
E=5;
F=6;
G=7;
H=8;
I=5;
J=2;
den1=fzero(@fun,x0,[],A,B,C,D,E,F,G,H,I,J);
t1=toc
disp(den1);
function f=fun(x,A,B,C,D,E,F,G,H,I,J)
global R T P;
f=P*T^4-x*R*T^5-(B*x*T^5-A*T^4-C*T^2+D*T-E)*x^2-(H*R*T^5-G*T^4-J*T^3)*x^3-I*(G+J*T^3)*x^6-C*x^3*T^2*(1+F*x^2)*exp(-F*x^2);
??? Error using ==> fzero
Too many input arguments.
Error in ==> qr at 19
den1=fzero(@fun,x0,[],A,B,C,D,E,F,G,H,I,J);
运行后还是报错,而且错误似乎没变,百思不得其解啊,请高人指点啊 原帖由 隐身猪 于 2006-12-24 23:46 发表
小弟一初学者,在用fzero求解方程时遇到这样的问题,请高人指点啊!方程如下:
function qr
clear;format long;
tic
global R T P A B C D E F G H I J;
P=8;
T=483;
R=0.082057;
x0=10;
A=10 ...
将文件名和函数名改为myqr 请问上面的朋友,改为myqr有什么依据吗? 修改:den1=fsolve(@fun,x0); 原帖由 隐身猪 于 2006-12-25 01:17 发表
请问上面的朋友,改为myqr有什么依据吗?
qr是matlab自带的内建函数
回复
稍微修改了一下,可以求解.一般尽量不要用全局变量.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function f=myfunf(x)
global R T P A B C D E1 F G H I1 J1;
f=P*T^4-x*R*T^5-(B*x*T^5-A*T^4-C*T^2+D*T-E1)*x^2...
-(H*R*T^5-G*T^4-J1*T^3)*x^3-I1*(G+J1*T^3)*x^6-C*x^3...
*T^2*(1+F*x^2)*exp(-F*x^2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function myqr %%%此处应听取eight的建议改函数名
clear all
format long
tic
global R T P A B C D E1 F G H I1 J1
P=8;
T=483;
R=0.082057;
x0=10;
A=10;
B=2;
C=3;
D=4;
E1=5;
F=6;
G=7;
H=8;
I1=5;
J1=2;
den1=fzero(@myfunf,x0);
t1=toc
den1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
t1 =
0.18700000000000
den1 =
0.13207430034183
[ 本帖最后由 xjzuo 于 2006-12-25 14:59 编辑 ] xjzuo朋友,你的代码在我机子上还是无法运行,总是报有错:
??? Error using ==> fzero
Too many input arguments.
Error in ==> E:\work\myqr.m
On line 20==> den1=fzero(@myfunf,x0);
我开始还以为是7.0在我机子上有问题,就装了个6.5,结果发现还是运行不了。难道是我的机子有问题?我机子是双核的,难道问题出在这里?
页:
[1]