1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

ứng dụng matlab trong kỹ thuật

Chủ đề trong 'Cơ khí - Tự động hoá' bởi DONKIHOTES, 29/08/2007.

  1. 0 người đang xem box này (Thành viên: 0, Khách: 0)
  1. yahoo_yahoo

    yahoo_yahoo Thành viên mới

    Tham gia ngày:
    18/03/2006
    Bài viết:
    836
    Đã được thích:
    0
    Đang quan tâm vào spam phát :D
  2. ntdu

    ntdu Thành viên mới

    Tham gia ngày:
    30/11/2006
    Bài viết:
    196
    Đã được thích:
    0
    Nếu bạn tính toán nhiều với cac tính toán biểu tượng như vậy thì nên dùng MATHEMATICA hay hơn.
  3. vudha

    vudha Thành viên mới

    Tham gia ngày:
    23/07/2006
    Bài viết:
    121
    Đã được thích:
    0
    Tình hình là em bắt đầu ghét cái Matlab này, các bác cho em hỏi tại sao đoạn này nó không vẽ được đồ thị? Nếu nhập luôn C= sin(x)*cos(x) +sin +cos +1 thì nó vẽ được, còn thế này thì nó báo lỗi ??? Như vậy rất khó khăn cho việc vẽ đồ thị cho 1 hàm chưa biết trước.(Kiểu như tìm 1 nghiệm rồi vẽ đồ thị của nghiệm đó)

    a=sin(x);
    b=cos(x);
    c=a*b+a+b+1
    x=[0:Pi/2:2*pi]
    plot(x,c)

    c =

    sin(x)*cos(x)+sin(x)+cos(x)+1

    x =
    Columns 1 through 4
    0 1.5708 3.1416 4.7124
    Column 5
    6.2832
    ??? Error using ==> plot
    Conversion to double from sym is not possible.
  4. riquelmebk

    riquelmebk Thành viên mới

    Tham gia ngày:
    12/04/2007
    Bài viết:
    41
    Đã được thích:
    0
    Bạn đưa đoạn code chưa đầy đủ của bạn gì cả.
    Ở đoạn đầu, có phần khai báo syms x; không được đưa vào.
    Cần nhớ Matlab là công cụ tính toán số mạnh, còn tính toán symbolic thì không nên dùng Matlab mà dùng Maple. (Khi dùng Matlab theo mình bạn nên quên chữ symbolic đi và cũng nên đọc sách hướng dẫn trước, sau khi hiểu căn bản rồi thì đọc help của nó).
    Để vẽ đồ thị này bạn thích dùng ký hiệu a, b thì đây
    x=[0:Pi/2:2*pi];
    a=sin(x);
    b=cos(x);
    c=a.*b+a+b+1;
    plot(x,c);
  5. vudha

    vudha Thành viên mới

    Tham gia ngày:
    23/07/2006
    Bài viết:
    121
    Đã được thích:
    0
    syms q real n k t w x Vx D W i ;
    M=[1.5 0;0 3 ];
    B=[0 0;0 0];
    C=[0.75 0;0 6 ];
    k=2;
    a0=[1; 2]
    ax=[1; 2]
    bx=[2 ;4]
    V0= inv(C)*a0
    omega=pi;
    D=[bx(1);bx(2); ax(1);ax(2)]

    for i=1:1:k

    A=[C*M*(i^2)*(omega^2) -i*omega*B;i*omega*B C-i^2*omega^2*M]
    X=inv(A)*D
    U=[X(1) ;X(2)]
    V=[X(3);X(4)]
    q(i)=V0(i) +U(i)*sin(i*omega*t) +V(i)*cos(i*omega*t)
    end
    t=[0:0.2:2]
    z=q(1)
    plot(t,z)
    Dạ đây là code của em, các nghiệm q(1)q(2) đã ok. Z cũng đã hiện ra nhưng chịu không thể vẽ được đồ thị của z
    t =
    Columns 1 through 3
    0 0.2000 0.4000
    Columns 4 through 6
    0.6000 0.8000 1.0000
    Columns 7 through 9
    1.2000 1.4000 1.6000
    Columns 10 through 11
    1.8000 2.0000

    z =

    4/3+6489742860748373/36028797018963968*sin(pi*t)-5127046347837279/72057594037927936*cos(pi*t)

    ??? Error using ==> plot
    Conversion to double from sym is not possible.
  6. riquelmebk

    riquelmebk Thành viên mới

    Tham gia ngày:
    12/04/2007
    Bài viết:
    41
    Đã được thích:
    0
    Không biết chắc thuật toán của cậu là thế nào nhưng chắc là giải hệ dao động nào đấy (Làm với thầy Khang hay thầy Hoàng đấy?). Nhưng mình đã nói là cậu nên quên chữ symbolic đi rồi. Đừng dùng nó nữa.
    clc;clear all;
    M=[1.5 0;0 3 ]
    B=[0 0;0 0]
    C=[0.75 0;0 6 ]
    k=2
    a0=[1; 2]
    ax=[1; 2]
    bx=[2 ;4]
    V0= inv(C)*a0
    omega=pi
    D=[bx(1);bx(2); ax(1);ax(2)]
    t=[0:0.2:2];
    for i=1:1:k
    A=[C*M*(i^2)*(omega^2) -i*omega*B;i*omega*B C-i^2*omega^2*M]
    X=inv(A)*D
    U=[X(1) ;X(2)]
    V=[X(3);X(4)]
    q(i,:)=V0(i) +U(i)*sin(i*omega*t) +V(i)*cos(i*omega*t)
    end;
    z=q(1,:);
    plot(t,z);
  7. nbnlpt

    nbnlpt Thành viên quen thuộc

    Tham gia ngày:
    22/09/2006
    Bài viết:
    86
    Đã được thích:
    1
    Nếu bạn đã có t và z là nghiệm dưới dạng biểu thức symbolic và muốn vẽ ra thì phải dùng hàm: fplot:
    > fplot(z,t);
    vậy là ok!
    chúc thành công!
  8. vudha

    vudha Thành viên mới

    Tham gia ngày:
    23/07/2006
    Bài viết:
    121
    Đã được thích:
    0
    Cảm ơn các bác ạ. Em làm đồ án với thầy Khang. Em cũng thấy simbolic nó hơi thừa :D , nhưng đây chỉ là bài toán cụ thể em làm demo thôi, thầy bắt làm tổng quát cơ. Một lần nữa cảm ơn các bác rất nhiều. Lần sau bí em lại hỏi
  9. DONKIHOTES

    DONKIHOTES Thành viên quen thuộc

    Tham gia ngày:
    15/09/2005
    Bài viết:
    143
    Đã được thích:
    0
    thế này nhé,khi bạn viết dòng c=cos(x)*sin(x)+cos(x)+
    sin(x) thì matlab cần phải hiểu x là gì.Tức là bạn phải định nghĩa x trước(matlab thực hiện lần lượt từng dòng lệnh).như vậy ban phải khai báo x=[0:0.1:1] trước
    sau đó bạn mớỗcg các dòng lẹnh còn lại thì matlab mới hiểu.chúc bạn thành công!
  10. mazocchi

    mazocchi Thành viên mới

    Tham gia ngày:
    13/04/2007
    Bài viết:
    24
    Đã được thích:
    0
    Hi,
    Mình nghe nói có cuốn "Ứng dụng Matlab trong tính toán kĩ thuật" của tác giả Nguyễn Hoài Sơn, khoảng hơn 300 trang. Nhưng tìm mua mãi mà không được. Bác nào biết thì giúp đỡ nhé.

Chia sẻ trang này