声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1698|回复: 10

[编程技巧] 问一个积分的问题

[复制链接]
发表于 2011-6-28 14:04 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 皮卡丘 于 2011-6-28 16:14 编辑

我在求积分的时候一直出现这个问题:Not enough inputs to inline function. 想问问高手应该如何解决啊!A5=zeros(1,mm);代码如下:
K11=[ks1 -ks1 0 0 0 A5 A5 A5;
    -ks1 (ks1+ks2)+k21+k22+k23+k24 -ks2 0 0 k023 A5 A5;
    0 -ks2 (ks2+kb) -kb 0 A5 A5 A5;
    0 0 -kb (kb+k1f) -k1f A5 A5 A5;
    0 0 0 -k1f k1f A5 A5 A5;
    A5' k022 A5' A5' A5' k024+k_uu0 k_uv0 k_uw0;
    A5' A5' A5' A5' A5' k_uv0' k_vv0 k_vw0;
    A5' A5' A5' A5' A5' k_uw0' k_vw0' k_ww0];



for i=1:1:(5+mm*3)
    for j=1:(5+mm*3)
        fun=inline(K11(i,j));
       [ql]=guasslegendre(fun,-1,1);  
         KL(i,j)=ql;
    end
end
整个矩阵的变量就是x ,范围是[-1 1]

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2011-6-29 00:01 | 显示全部楼层
LZ好像有点高估看官!?
给的代码不齐, 并无法复製LZ的错误!?
 楼主| 发表于 2011-6-29 09:15 | 显示全部楼层
回复 2 # ChaChing 的帖子

哎呀 不好意思了 应该是这样:
syms x theta
A=[x*theta,cos(theta);x*sin(theta),x^2+cos(theta)]
就是类似于这样的一个积分,要对x,theta分别在[-1 1],[0 2*pi]上积分,真实矩阵是200*200,所以用Int很慢,想用dblquad可是又老是有这样那样的错误,所以想问问哪位大侠可以帮忙解决一下,谢谢~
发表于 2011-6-29 23:20 | 显示全部楼层
回复 3 # 皮卡丘 的帖子

个人水平/时间有限, 还是不知道LZ怎使用dblquad, 出现那样的错误!? :@)
 楼主| 发表于 2011-6-30 12:23 | 显示全部楼层
回复 4 # ChaChing 的帖子

fun=inline('A','x','theta')
dblquad(fun,-1,1,0,2*pi)
发表于 2011-7-1 00:11 | 显示全部楼层
回复 5 # 皮卡丘 的帖子

没出现1F说的"Not enough inputs to inline function"的错误!?
到底...???

LZ在command window一行一行试下, 并看看差异!
syms x theta
A=[x*theta,cos(theta);x*sin(theta),x^2+cos(theta)]
aa='A'
 楼主| 发表于 2011-7-1 09:40 | 显示全部楼层
回复 6 # ChaChing 的帖子

谢谢你首先!我试了syms x theta
A=[x*theta,cos(theta);x*sin(theta),x^2+cos(theta)]

fun=inline(A,'x','theta')
dblquad(fun,-1,1,0,2*pi)有错误;试了syms x theta
A=[x*theta,cos(theta);x*sin(theta),x^2+cos(theta)]
aa='A'
fun=inline(aa,'x','theta')
dblquad(fun,-1,1,0,2*pi) 也有错误 想问问大侠应该如何修改啊~
发表于 2011-7-1 14:34 | 显示全部楼层
回复 7 # 皮卡丘 的帖子

1.矩阵可以当fun handle? 不清楚
2.LZ需分清楚symbolic与char的差异
  1. clc; clear; syms x theta
  2. A=[x*theta,cos(theta);x*sin(theta),x^2+cos(theta)];
  3. ii=1; jj=1;
  4. fun=inline(char(A(ii,jj)),'x','theta'); dblquad(fun,-1,1,0,2*pi)
复制代码

点评

赞成: 5.0
赞成: 5
牛。。。。。  发表于 2011-7-1 19:19
 楼主| 发表于 2011-7-1 15:42 | 显示全部楼层
回复 8 # ChaChing 的帖子

哇哇 没想到困扰了我好多天的问题 大侠一下就解决了 实在是太感谢你了 谢谢啦~~~
发表于 2011-7-2 00:16 | 显示全部楼层
回复 9 # 皮卡丘 的帖子

别生气, 其实LZ早给问题清楚些, 比个人厉害的人才愿意出手!
 楼主| 发表于 2011-7-2 15:26 | 显示全部楼层
回复 10 # ChaChing 的帖子

嘻嘻 您说的是~~~
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-29 13:29 , Processed in 0.082664 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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