声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1906|回复: 3

[编程技巧] 求助:用MATLAB编一个双重积分的问题?

[复制链接]
发表于 2007-5-30 11:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想把附件中的公式用MATLAB编一个程序画出F21x-theta和M21y-theta图来,但不知道怎么实现,请大家指教!

公式.doc

34.5 KB, 下载次数: 22

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2007-5-30 17:10 | 显示全部楼层
自己先将公式写一写,参数值给定一下,以便于他人计算并给出建议.
 楼主| 发表于 2007-5-30 20:39 | 显示全部楼层
F21x和M21y的计算公式在附件中.下面是我自己编的程序,不知道对不对,而且有错误.希望大家帮我看看.麻烦了!
clear all;
global K Ce;
global t;

miu0=4*pi*(10.^-7);
n=20;
i0=2;
R=0.025;
r=0.0246;
l=0.02;
b=0.01;
e2=0.00015;
L=2.19;
alf=pi/4;
Kc=miu0*(n.^2)*(i0.^2)*R*L/8;
Ce2=e2/(R-r);
K=Kc/l*((R-r).^2);


A=zeros(8,2);
N=0;
sum=0;
syms z;
while N<=7   
   A(N+1,1)=(1+2*N)*pi/8-asin(b/(2*R));
   A(N+1,2)=(1+2*N)*pi/8+asin(b/(2*R));
   theta=[A(N+1,1):0.01:A(N+1,1)];
   f1=-K*z*(sin(theta)./((1-z*Ce2*cos(alf-theta)/L).^2));
   f2=inline('f1','theta','z');
   f3=quad(f2,A(N+1,1),A(N+1,2),-l/2,l/2)
    N=N+1;
    sum=sum+f3;
end
theta=[A(1,1):0.01:A(1,2),A(2,1):0.01:A(2,2),A(3,1):0.01:A(3,2),...
    A(4,1):0.01:A(4,2),A(5,1):0.01:A(5,2),A(6,1):0.01:A(6,2),...
A(7,1):0.01:A(7,2),A(8,1):0.01:A(8,2)];
M21x=sum;   
bar(theta,M21x)



这个程序执行完了之后,总用这样的错误
??? Error using ==> inline/feval
Not enough inputs to inline function.

Error in ==> D:\MATLAB6p5\toolbox\matlab\funfun\quad.m
On line 59  ==> y = feval(f, x, varargin{:});
发表于 2007-5-30 23:34 | 显示全部楼层
虽然修改后可以画出图形,但问题是------theta积分掉了,你还画F21x-theta和M21y-theta图?-----这应该是不对的...
所以将问题描述清楚很重要,否则很容易浪费时间.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 09:39 , Processed in 0.073062 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表