24小时热门版块排行榜    

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

宁静心空

银虫 (著名写手)

[求助] matlab 积分计算无法得到结果 已有1人参与

function FXX
clear;clc;
syms ks s a n m x y
xr=3000;
f1(s,a,n,m,x)=s*(1-log(1+x/xr)/log(1+1e6/xr))/(log(exp(1)+(x/a)^n))^m;
% f1(s,a,n,m,x)=s+a+n+m+x;
f2(s,a,n,m,x)=diff(f1,x);
y1=(f1(0.45,1,1,1,y)-f1(0.45,1,1,1,0.01))*f2(0.45,1,1,1,y)/y^2
y2=(f1(0.45,1,1,1,y)-0.45)*f2(0.45,1,1,1,y)/y^2
y3=int(y1,y,0.01,1e6)
y4=int(y2,y,1,1e6)
return
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

宁静心空

银虫 (著名写手)

月只蓝: 提醒:为了表示对他人回复的尊重,请及时给予应助者金币 2017-02-05 11:01:21
引用回帖:
2楼: Originally posted by wdlgezi at 2015-01-07 22:04:13
问题1:代码“f1(s,a,n,m,x)=...;f2(s,a,n,m,x)=...;”中f1(s,a,n,m,x)和f2(s,a,n,m,x)这样的写法有误,若想后面y1,y2的代码不做大改动,则需把上面两行代码改为:f1=inline('s*(1-log(1+x/xr)/log(1+1e6/xr))/(log ...

已按照所提问题进行修改,问题已解决。Matlab新手上路,感谢指教,学习了
3楼2015-01-08 11:02:26
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

wdlgezi

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
宁静心空(月只蓝代发): 金币+10, 感谢应助! 2017-02-05 11:00:58
问题1:代码“f1(s,a,n,m,x)=...;f2(s,a,n,m,x)=...;”中f1(s,a,n,m,x)和f2(s,a,n,m,x)这样的写法有误,若想后面y1,y2的代码不做大改动,则需把上面两行代码改为:f1=inline('s*(1-log(1+x/xr)/log(1+1e6/xr))/(log(exp(1)+(x/a)^n))^m');
f2=inline('diff((s*(1-log(1+x/xr)/log(1+1e6/xr))/(log(exp(1)+(x/a)^n))^m),x)');其中,inline函数相当于定义了f1(a,m,n,s,x,xr) =...这样一个函数,这样后面就可以直接使用了,如f1(0.45,1,1,1,0.01,xr),注意是6个变量。
    或者可以不用inline函数,将所有的f1(s,a,n,m,x)的形式均去掉,而使用subs赋值函数
问题2:y3,y4的积分是没有解析解的,要用数值解quad去求
敢问路在何方
2楼2015-01-07 22:04:13
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见