matlab fsolve三元一次,找人做程序 fsolve 含三个未知数 含有定积分 有偿

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

function test1

clc;

clear;

global dw ls l di de N Fr ni dm gama wi detaij detaej detar wm wbj fai e0 yita0 k m vij

global hej fc M Hij Hej Iij Iej q_ij q_ej xi xe Q_ij Q_ej hij y1 y2

global vej uij uej ri re v_ij v_ej u_ij u_ej Qij Qej Qmax ur pij pej p_ij p_ej tij tej t_ij t_ej g

% 赋初值

dw = 12;

ls = 12.6;

l = 14;

di = 46.2;

de = 70.2;

N = 13;

Fr = 1000; % N

ni = 1000;

dm = (di + de) / 2.0;

gama = dw / dm;

wi = 2.0 * pi * ni / 60.0;

j = 1;

fai = 0.0;

while j < N

fai = fai + 2.0 * pi / N * (j - 1);

wm = 0.5 * wi * (1.0 - gama);

wbj = dm * wi * (1.0 - gama * gama) / (2.0 * dw);

j = j + 1;

end

x0 = [0.03, -0.03, 0.5];

x = fsolve(@fun, x0);

end

function F=fun(x)

global dw ls l di de N Fr ni dm gama wi detaij detaej detar wm wbj fai e0 yita0 k m vij

global hej fc M Hij Hej Iij Iej q_ij q_ej xi xe Q_ij Q_ej hij y1 y2

global vej uij uej ri re v_ij v_ej u_ij u_ej Qij Qej Qmax ur pij pej p_ij p_ej tij tej t_ij t_ej g

j = 1;

fai = 0.0;

while j < N

fai = fai + 2.0 * pi / N * (j - 1);

wm = 0.5 * wi * (1.0 - gama);

wbj = dm * wi * (1.0 - gama * gama) / (2.0 * dw);

j = j + 1;

vij=0.5*dm*((1-gama)*(wi-wm)-gama*wbj);

vej=0.5*dm*((1+gama)*wm-gama*wbj);

uij=0.25*dm*((1-gama)*(wi-wm)+gama*wbj);

uej=0.25*dm*((1-gama)*wm+gama*wbj);

ri=0.5*dw*(1-gama);

re=0.5*dw*(1+gama);%当量曲率半径

e0=2.25*10^5;%Mpa 当量弹性模量

yita0=0.055;%pa*s 常压下动力年度

v_ij=yita0*vij/(e0*ri);

v_ej=yita0*vej/(e0*re);

u_ij=yita0*uij/(e0*ri);

u_ej=yita0*uej/(e0*re);

k=7.86*10^4*l^(8/9);

Qij=k*detaij^(10/9);%法相接触负荷

Qej=k*detaej^(10/9);

%z=13;

%detaj=detaij+detaej;

%Qmax=4.6*Fr/z*cos(0);

%detar=0.000077/cos(fai)*Qmax^0.9/l^(0.8);

ur=0.034;%mm

g=4.1625*10^3;

pij=p_ij*(ls*e0*ri);%流体压力

pej=p_ej*(ls*e0*re);

p_ij=18.4*(1-gama)*g^(-0.3)*u_ij^(0.7);

p_ej=18.4*(1+gama)*g^(-0.3)*u_ej^(0.7);

%摩擦力

tij=t_ij*(l*e0*ri);

tej=t_ej/(l*e0*re);

t_ij=(-9.2)*g^(-0.3)*u_ij^(0.7)+v_ij*Iij./Hij;

t_ej=(-9.2)*g^(-0.3)*u_ej^(0.7)+v_ej*Iej./Hej;

Hij=hij/ri;%油膜厚度

Hej=hej/re;

syms q_ij xi

Iij=2*y1 ;

y1=(int(exp(g*q_ij*(1-(xi/(4*q_ij))^2)^(1/2)),0,4*q_ij));

Iej=2*y2;

syms q_ej xe

y2=(int(exp(g*q_ej*(1-(xe/(4*q_ej))^2)^(1/2)),0,4*q_ej));

q_ij=(Q_ij/(2*pi))^(1/2);

q_ej=(Q_ej/(2*pi))^(1/2);

xi=x/ri;

xe=x/re;

Q_ij=Qij/(ls*e0*ri);

Q_ej=Qej/(ls*e0*re);

hij=ri*1.6*g^(0.6)*u_ij^(0.7)./(Q_ij^(0.13));

hej=re*1.6*g^(0.6)*u_ej^(0.7)./(Q_ej^(0.13));

m=0.0124;%kg

fc=0.5*m*dm*wm^2;%滚子离心力

while j < N;

M=M+Qij;

j=j+1;

end

t1= pij+tij-pej-tej;

t2= Qij+fc-Qej;

t3= tij+tej;

t4=Fr-M;

t5=detar*cos(fai)-ur/2+hij+hej-detaej-detaij;

detaij=x(1);

detaej=x(2);

detar=x(3);

end

F=[t1; t2; t3; t4; t5];

end

错误使用 fsolve (line 258)

FSOLVE requires all values returned by user functions to be of data type double.

出错 test1 (line 32)

x = fsolve(@fun, x0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值