求一个复杂公式化简的编程问题
本帖最后由 0900567 于 2011-4-13 18:03 编辑在求解 积分|k1|+|k2| 的公式编程的M文件时,k1 和k2 的公式有点复杂,所以我想用一些符号去代替其中的一些有规律的项,但是编程出现了问题,小弟有点不会编了。请高手指教。公式如图
程序M文件
function y=ffun(x)
syms E L G N A B C k1 k2
E=(40+20*cos(x))^2;
L=-(40+20*cos(x)).*cos(x);
G=20*20;
N=-20;
A=E*G;
B=-(L*G+N*E).^2.;
C=L*N;
k1=(-B+sqrt(B.^2.-4*A.*C).)./(2*A);
k2=(-B+sqrt(B.^2.-4*A.*C).)./(2*A);
y=abs(k1)+abs(k2);
y=quad('jifen',0,pi) %计算数值积分
有报错信息吗,最起码要把出现的问题贴出来啊! 回复 1 # 0900567 的帖子
两点建议
1.程序直接贴上, 不然要试还得练打字:@(
2.同楼上, 贴上完整报错信息, 大家节省时间:@) 回复 3 # ChaChing 的帖子
求指点! 回复 4 # 0900567 的帖子
问下你的程序functiony=ffun(x)是怎么被调用的啊,x的输入是向量吗?
k1=(-B+sqrt(B.^2.-4*A.*C))./(2*A);
k2=(-B+sqrt(B.^2.-4*A.*C))./(2*A);
给定一个x值,这样改了是有结果的。 本帖最后由 0900567 于 2011-4-14 08:26 编辑
回复 5 # meiyongyuandeze 的帖子
就是想对|K1| +|k2|做数值积分,他的表达是太复杂想化简下。 本帖最后由 meiyongyuandeze 于 2011-4-14 08:27 编辑
回复 6 # 0900567 的帖子
你的公式我改了下,能运行过,在5楼 回复 7 # meiyongyuandeze 的帖子
我怎么一运行就报告错误呢?能帮我发下你改过的程序么?
谢谢您 回复 7 # meiyongyuandeze 的帖子
我的也能运行了,我以前改的一个公式少了个点再次感谢你,我的两个问题都是您帮我解决的。希望能和你成为朋友,望以后多多关照! 回复 8 # 0900567 的帖子
没保存,在窗口中调试的。你程序中式那个语句调用的ffun函数啊,x值是怎么赋值的?我调试仅是对你的函数ffun进行的,我取定x为一个值,运行可以没错 回复 10 # meiyongyuandeze 的帖子
我还是想利用你上次帮我想的公式,求解变上限积分的问题调用的方式我给你发下哈!
i=1;
for x=0:pi/10:pi
v(i)=x;
yzz(i)=quad('jifen',0,v(i));
i=i+1;
end
jifen就是那个K1+K2的M文件中编辑的公式y 回复 11 # 0900567 的帖子
clc
i=1;
for x=0:pi/10:pi
v(i)=x;
yzz(i)=quad('ffun',0,v(i));
i=i+1;
end
function y=ffun(x)
syms E L G N A B C k1 k2
E=(40+20*cos(x)).^2;
L=-(40+20*cos(x)).*cos(x);
G=20*20;
N=-20;
A=E*G;
B=-(L*G+N*E).^2;
C=L*N;
k1=(-B+sqrt(B.^2-4*A.*C))./(2*A);
k2=(-B+sqrt(B.^2-4*A.*C))./(2*A);
y=abs(k1)+abs(k2);
这样程序是运行通了的,不过也不知道是不是你要的结果,给你参考吧!
回复 12 # meiyongyuandeze 的帖子
我的 做好了 谢谢! 回复 13 # 0900567 的帖子
最好能回来和我们分享下自己的程序,也让我们学习下,个人意见! 回复 14 # meiyongyuandeze 的帖子
问一下 程序如何分享?不太会弄啊
页:
[1]
2