0900567 发表于 2011-4-13 10:50

求一个复杂公式化简的编程问题

本帖最后由 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)    %计算数值积分

meiyongyuandeze 发表于 2011-4-13 11:29

有报错信息吗,最起码要把出现的问题贴出来啊!

ChaChing 发表于 2011-4-13 11:44

回复 1 # 0900567 的帖子

两点建议
1.程序直接贴上, 不然要试还得练打字:@(
2.同楼上, 贴上完整报错信息, 大家节省时间:@)

0900567 发表于 2011-4-13 18:04

回复 3 # ChaChing 的帖子

求指点!

meiyongyuandeze 发表于 2011-4-13 20:06

回复 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

本帖最后由 0900567 于 2011-4-14 08:26 编辑

回复 5 # meiyongyuandeze 的帖子

就是想对|K1| +|k2|做数值积分,他的表达是太复杂想化简下。

meiyongyuandeze 发表于 2011-4-14 08:27

本帖最后由 meiyongyuandeze 于 2011-4-14 08:27 编辑

回复 6 # 0900567 的帖子

你的公式我改了下,能运行过,在5楼

0900567 发表于 2011-4-14 08:30

回复 7 # meiyongyuandeze 的帖子

我怎么一运行就报告错误呢?能帮我发下你改过的程序么?
谢谢您

0900567 发表于 2011-4-14 08:33

回复 7 # meiyongyuandeze 的帖子

我的也能运行了,我以前改的一个公式少了个点再次感谢你,我的两个问题都是您帮我解决的。希望能和你成为朋友,望以后多多关照!

meiyongyuandeze 发表于 2011-4-14 08:34

回复 8 # 0900567 的帖子

没保存,在窗口中调试的。你程序中式那个语句调用的ffun函数啊,x值是怎么赋值的?我调试仅是对你的函数ffun进行的,我取定x为一个值,运行可以没错

0900567 发表于 2011-4-14 08:42

回复 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

meiyongyuandeze 发表于 2011-4-14 09:14

回复 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);

这样程序是运行通了的,不过也不知道是不是你要的结果,给你参考吧!

0900567 发表于 2011-4-15 08:52

回复 12 # meiyongyuandeze 的帖子

我的 做好了 谢谢!

meiyongyuandeze 发表于 2011-4-16 20:11

回复 13 # 0900567 的帖子

最好能回来和我们分享下自己的程序,也让我们学习下,个人意见!

0900567 发表于 2011-4-16 20:46

回复 14 # meiyongyuandeze 的帖子

问一下 程序如何分享?不太会弄啊
页: [1] 2
查看完整版本: 求一个复杂公式化简的编程问题